From 3a705fa3514dc612bca633cd22e23691eeb763bb Mon Sep 17 00:00:00 2001 From: Color_yr <402067010@qq.com> Date: Thu, 28 Aug 2025 13:49:55 +0800 Subject: [PATCH] up Closed #69 #67 #57 --- core/AllMusic.java | 8 ++ core/command/CommandEX.java | 21 +++-- core/command/CommandMute.java | 56 ------------- core/command/CommandStop.java | 15 ---- core/command/PermissionList.java | 8 ++ core/command/{ => sub}/CommandAddList.java | 3 +- core/command/{ => sub}/CommandBan.java | 3 +- core/command/{ => sub}/CommandBanPlayer.java | 3 +- core/command/{ => sub}/CommandCancel.java | 3 +- .../{ => sub}/CommandClearBanList.java | 3 +- .../{ => sub}/CommandClearBanPlayerList.java | 3 +- core/command/{ => sub}/CommandClearList.java | 3 +- core/command/{ => sub}/CommandCookie.java | 3 +- core/command/{ => sub}/CommandDelete.java | 3 +- core/command/{ => sub}/CommandHelp.java | 3 +- core/command/{ => sub}/CommandHud.java | 4 +- core/command/{ => sub}/CommandHudSet.java | 5 +- core/command/{ => sub}/CommandLastPage.java | 6 +- core/command/{ => sub}/CommandList.java | 3 +- core/command/sub/CommandMute.java | 83 +++++++++++++++++++ core/command/{ => sub}/CommandNext.java | 3 +- core/command/{ => sub}/CommandNextPage.java | 6 +- core/command/{ => sub}/CommandPush.java | 6 +- core/command/{ => sub}/CommandReload.java | 3 +- core/command/{ => sub}/CommandSearch.java | 7 +- core/command/{ => sub}/CommandSelect.java | 7 +- core/command/sub/CommandStop.java | 33 ++++++++ core/command/{ => sub}/CommandTest.java | 3 +- core/command/{ => sub}/CommandUnban.java | 3 +- .../command/{ => sub}/CommandUnbanPlayer.java | 3 +- core/command/{ => sub}/CommandUrl.java | 3 +- core/command/{ => sub}/CommandVote.java | 6 +- 32 files changed, 215 insertions(+), 107 deletions(-) delete mode 100644 core/command/CommandMute.java delete mode 100644 core/command/CommandStop.java create mode 100644 core/command/PermissionList.java rename core/command/{ => sub}/CommandAddList.java (90%) rename core/command/{ => sub}/CommandBan.java (92%) rename core/command/{ => sub}/CommandBanPlayer.java (91%) rename core/command/{ => sub}/CommandCancel.java (96%) rename core/command/{ => sub}/CommandClearBanList.java (76%) rename core/command/{ => sub}/CommandClearBanPlayerList.java (77%) rename core/command/{ => sub}/CommandClearList.java (77%) rename core/command/{ => sub}/CommandCookie.java (94%) rename core/command/{ => sub}/CommandDelete.java (93%) rename core/command/{ => sub}/CommandHelp.java (98%) rename core/command/{ => sub}/CommandHud.java (95%) rename core/command/{ => sub}/CommandHudSet.java (97%) rename core/command/{ => sub}/CommandLastPage.java (76%) rename core/command/{ => sub}/CommandList.java (92%) create mode 100644 core/command/sub/CommandMute.java rename core/command/{ => sub}/CommandNext.java (80%) rename core/command/{ => sub}/CommandNextPage.java (76%) rename core/command/{ => sub}/CommandPush.java (94%) rename core/command/{ => sub}/CommandReload.java (73%) rename core/command/{ => sub}/CommandSearch.java (70%) rename core/command/{ => sub}/CommandSelect.java (86%) create mode 100644 core/command/sub/CommandStop.java rename core/command/{ => sub}/CommandTest.java (95%) rename core/command/{ => sub}/CommandUnban.java (91%) rename core/command/{ => sub}/CommandUnbanPlayer.java (89%) rename core/command/{ => sub}/CommandUrl.java (86%) rename core/command/{ => sub}/CommandVote.java (91%) diff --git a/core/AllMusic.java b/core/AllMusic.java index b4fb6a8d..99dd43ff 100644 --- a/core/AllMusic.java +++ b/core/AllMusic.java @@ -121,6 +121,14 @@ public class AllMusic { } } + /** + * 获取正在播放的玩家列表 + * @return 列表 + */ + public static Set getNowPlayPlayer() { + return nowPlayPlayer; + } + /** * 检查是否需要放歌 * diff --git a/core/command/CommandEX.java b/core/command/CommandEX.java index fa125353..72f75d64 100644 --- a/core/command/CommandEX.java +++ b/core/command/CommandEX.java @@ -1,6 +1,7 @@ package com.coloryr.allmusic.server.core.command; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.sub.*; import com.coloryr.allmusic.server.core.music.play.MusicSearch; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.message.PAL; @@ -225,7 +226,7 @@ public class CommandEX { return; } - if (isAdmin(name) || AllMusic.side.checkPermission(sender)) { + if (checkAdmin(sender, name)) { command = commandAdminList.get(args[0]); if (command != null) { command.execute(sender, name, args); @@ -233,7 +234,7 @@ public class CommandEX { } } if (AllMusic.getConfig().needPermission && - !AllMusic.side.checkPermission(sender, "allmusic.addmusic")) + !AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_ADD_MUSIC)) AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.noPer); else { switch (AllMusic.getConfig().defaultAddMusic) { @@ -258,7 +259,7 @@ public class CommandEX { List arguments = new ArrayList<>(); if (arg.length == 0) { arguments.addAll(normal); - if (isAdmin(name) || AllMusic.side.checkPermission(sender)) { + if (checkAdmin(sender, name)) { arguments.addAll(admin); } if (AllMusic.getSearch(name) != null) { @@ -267,7 +268,7 @@ public class CommandEX { } else { if (arg[0] == null || arg[0].isEmpty() || arg.length == 1) { arguments.addAll(normal); - if (isAdmin(name) || AllMusic.side.checkPermission(sender)) { + if (checkAdmin(sender, name)) { arguments.addAll(admin); } if (arg[0] == null || arg[0].isEmpty()) { @@ -280,7 +281,7 @@ public class CommandEX { if (command != null) { arguments.addAll(command.tab(sender, name, arg, 1)); } - if (isAdmin(name) || AllMusic.side.checkPermission(sender)) { + if (checkAdmin(sender, name)) { command = CommandEX.commandAdminList.get(arg[0]); if (command != null) { arguments.addAll(command.tab(sender, name, arg, 1)); @@ -291,4 +292,14 @@ public class CommandEX { return arguments; } + + /** + * 检查是否为管理员 + * @param sender 用户 + * @param name 用户名 + * @return 是否为管理员 + */ + public static boolean checkAdmin(Object sender, String name) { + return isAdmin(name) || AllMusic.side.checkPermission(sender); + } } diff --git a/core/command/CommandMute.java b/core/command/CommandMute.java deleted file mode 100644 index 6b408196..00000000 --- a/core/command/CommandMute.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.coloryr.allmusic.server.core.command; - -import com.coloryr.allmusic.server.core.AllMusic; -import com.coloryr.allmusic.server.core.music.play.PlayMusic; -import com.coloryr.allmusic.server.core.sql.DataSql; - -import java.util.ArrayList; -import java.util.List; - -public class CommandMute extends ACommand { - @Override - public void execute(Object sender, String name, String[] args) { - if (args.length == 2 && args[1].equalsIgnoreCase("list")) { - DataSql.task(() -> { - if (DataSql.checkMuteListPlayer(name)) { - DataSql.removeMuteListPlayer(name); - AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.mute2); - } else { - DataSql.addMuteListPlayer(name); - AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.mute1); - if (PlayMusic.nowPlayMusic != null && PlayMusic.nowPlayMusic.isList()) { - AllMusic.side.runTask(() -> { - AllMusic.side.sendStop(name); - AllMusic.side.clearHud(name); - }); - } - } - }); - } else { - DataSql.task(() -> { - if (DataSql.checkMutePlayer(name)) { - DataSql.removeMutePlayer(name); - AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.mute3); - } else { - DataSql.addMutePlayer(name); - AllMusic.side.runTask(() -> { - AllMusic.side.sendStop(name); - AllMusic.side.clearHud(name); - AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.mute); - }); - } - }); - } - } - - @Override - public List tab(Object player, String name, String[] args, int index) { - if (args.length == index || (args.length == index + 1 )) { - return new ArrayList() {{ - add("list"); - }}; - } else { - return super.tab(player, name, args, index); - } - } -} diff --git a/core/command/CommandStop.java b/core/command/CommandStop.java deleted file mode 100644 index 1f175be7..00000000 --- a/core/command/CommandStop.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.coloryr.allmusic.server.core.command; - -import com.coloryr.allmusic.server.core.AllMusic; -import com.coloryr.allmusic.server.core.utils.HudUtils; - -public class CommandStop extends ACommand { - @Override - public void execute(Object sender, String name, String[] args) { - AllMusic.side.clearHud(name); - AllMusic.side.sendStop(name); - HudUtils.clearHud(name); - AllMusic.removeNowPlayPlayer(name); - AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.stopPlaying); - } -} diff --git a/core/command/PermissionList.java b/core/command/PermissionList.java new file mode 100644 index 00000000..3fe1fa9f --- /dev/null +++ b/core/command/PermissionList.java @@ -0,0 +1,8 @@ +package com.coloryr.allmusic.server.core.command; + +public class PermissionList { + public static final String PERMISSION_VOTE = "allmusic.vote"; + public static final String PERMISSION_ADD_MUSIC = "allmusic.addmusic"; + public static final String PERMISSION_SEARCH = "allmusic.search"; + public static final String PERMISSION_PUSH = "allmusic.push"; +} diff --git a/core/command/CommandAddList.java b/core/command/sub/CommandAddList.java similarity index 90% rename from core/command/CommandAddList.java rename to core/command/sub/CommandAddList.java index 99b5c80e..2f20434e 100644 --- a/core/command/CommandAddList.java +++ b/core/command/sub/CommandAddList.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.utils.Function; public class CommandAddList extends ACommand { diff --git a/core/command/CommandBan.java b/core/command/sub/CommandBan.java similarity index 92% rename from core/command/CommandBan.java rename to core/command/sub/CommandBan.java index 22b673c5..83d8457a 100644 --- a/core/command/CommandBan.java +++ b/core/command/sub/CommandBan.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.music.SongInfoObj; import com.coloryr.allmusic.server.core.sql.DataSql; diff --git a/core/command/CommandBanPlayer.java b/core/command/sub/CommandBanPlayer.java similarity index 91% rename from core/command/CommandBanPlayer.java rename to core/command/sub/CommandBanPlayer.java index c61b2f2c..c4ab2915 100644 --- a/core/command/CommandBanPlayer.java +++ b/core/command/sub/CommandBanPlayer.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ICommand; import com.coloryr.allmusic.server.core.sql.Cache; import com.coloryr.allmusic.server.core.sql.DataSql; diff --git a/core/command/CommandCancel.java b/core/command/sub/CommandCancel.java similarity index 96% rename from core/command/CommandCancel.java rename to core/command/sub/CommandCancel.java index 6ec07035..c12602bd 100644 --- a/core/command/CommandCancel.java +++ b/core/command/sub/CommandCancel.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ICommand; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.message.PAL; import com.coloryr.allmusic.server.core.objs.music.SongInfoObj; diff --git a/core/command/CommandClearBanList.java b/core/command/sub/CommandClearBanList.java similarity index 76% rename from core/command/CommandClearBanList.java rename to core/command/sub/CommandClearBanList.java index 08668765..c91cb893 100644 --- a/core/command/CommandClearBanList.java +++ b/core/command/sub/CommandClearBanList.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.sql.DataSql; public class CommandClearBanList extends ACommand { diff --git a/core/command/CommandClearBanPlayerList.java b/core/command/sub/CommandClearBanPlayerList.java similarity index 77% rename from core/command/CommandClearBanPlayerList.java rename to core/command/sub/CommandClearBanPlayerList.java index 09338538..f2fc8762 100644 --- a/core/command/CommandClearBanPlayerList.java +++ b/core/command/sub/CommandClearBanPlayerList.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.sql.DataSql; public class CommandClearBanPlayerList extends ACommand { diff --git a/core/command/CommandClearList.java b/core/command/sub/CommandClearList.java similarity index 77% rename from core/command/CommandClearList.java rename to core/command/sub/CommandClearList.java index 7ff39245..7e2b0b3e 100644 --- a/core/command/CommandClearList.java +++ b/core/command/sub/CommandClearList.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.music.play.PlayMusic; public class CommandClearList extends ACommand { diff --git a/core/command/CommandCookie.java b/core/command/sub/CommandCookie.java similarity index 94% rename from core/command/CommandCookie.java rename to core/command/sub/CommandCookie.java index 66c28ef6..a883680e 100644 --- a/core/command/CommandCookie.java +++ b/core/command/sub/CommandCookie.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import okhttp3.Cookie; import java.util.ArrayList; diff --git a/core/command/CommandDelete.java b/core/command/sub/CommandDelete.java similarity index 93% rename from core/command/CommandDelete.java rename to core/command/sub/CommandDelete.java index b1b57039..59482383 100644 --- a/core/command/CommandDelete.java +++ b/core/command/sub/CommandDelete.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.utils.Function; diff --git a/core/command/CommandHelp.java b/core/command/sub/CommandHelp.java similarity index 98% rename from core/command/CommandHelp.java rename to core/command/sub/CommandHelp.java index dc54e799..1b0a7063 100644 --- a/core/command/CommandHelp.java +++ b/core/command/sub/CommandHelp.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; public class CommandHelp extends ACommand { diff --git a/core/command/CommandHud.java b/core/command/sub/CommandHud.java similarity index 95% rename from core/command/CommandHud.java rename to core/command/sub/CommandHud.java index a291e197..8df7ebde 100644 --- a/core/command/CommandHud.java +++ b/core/command/sub/CommandHud.java @@ -1,6 +1,8 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.ICommand; import com.coloryr.allmusic.server.core.objs.enums.HudType; import com.coloryr.allmusic.server.core.objs.message.PAL; import com.coloryr.allmusic.server.core.utils.HudUtils; diff --git a/core/command/CommandHudSet.java b/core/command/sub/CommandHudSet.java similarity index 97% rename from core/command/CommandHudSet.java rename to core/command/sub/CommandHudSet.java index 1de32a70..8efe6f7e 100644 --- a/core/command/CommandHudSet.java +++ b/core/command/sub/CommandHudSet.java @@ -1,6 +1,9 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.AHudCommand; +import com.coloryr.allmusic.server.core.command.ICommand; import com.coloryr.allmusic.server.core.objs.enums.HudDirType; import com.coloryr.allmusic.server.core.objs.enums.HudType; import com.coloryr.allmusic.server.core.objs.hud.PosObj; diff --git a/core/command/CommandLastPage.java b/core/command/sub/CommandLastPage.java similarity index 76% rename from core/command/CommandLastPage.java rename to core/command/sub/CommandLastPage.java index 0b61e4da..90ba03e1 100644 --- a/core/command/CommandLastPage.java +++ b/core/command/sub/CommandLastPage.java @@ -1,6 +1,8 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.PermissionList; import com.coloryr.allmusic.server.core.music.play.MusicSearch; import com.coloryr.allmusic.server.core.objs.music.SearchPageObj; @@ -8,7 +10,7 @@ public class CommandLastPage extends ACommand { @Override public void execute(Object sender, String name, String[] args) { if (AllMusic.getConfig().needPermission && - !AllMusic.side.checkPermission(name, "allmusic.search")) { + !AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_SEARCH)) { AllMusic.side.sendMessage(sender, AllMusic.getMessage().search.noPer); return; } diff --git a/core/command/CommandList.java b/core/command/sub/CommandList.java similarity index 92% rename from core/command/CommandList.java rename to core/command/sub/CommandList.java index f2fce40d..c2d09b9d 100644 --- a/core/command/CommandList.java +++ b/core/command/sub/CommandList.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.message.PAL; diff --git a/core/command/sub/CommandMute.java b/core/command/sub/CommandMute.java new file mode 100644 index 00000000..2c734601 --- /dev/null +++ b/core/command/sub/CommandMute.java @@ -0,0 +1,83 @@ +package com.coloryr.allmusic.server.core.command.sub; + +import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.CommandEX; +import com.coloryr.allmusic.server.core.music.play.PlayMusic; +import com.coloryr.allmusic.server.core.sql.DataSql; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class CommandMute extends ACommand { + @Override + public void execute(Object sender, String name, String[] args) { + if (args.length == 2) { + if (args[1].equalsIgnoreCase("list")) { + DataSql.task(() -> { + if (DataSql.checkMuteListPlayer(name)) { + DataSql.removeMuteListPlayer(name); + AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.mute2); + } else { + DataSql.addMuteListPlayer(name); + AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.mute1); + if (PlayMusic.nowPlayMusic != null && PlayMusic.nowPlayMusic.isList()) { + AllMusic.side.runTask(() -> { + AllMusic.side.sendStop(name); + AllMusic.side.clearHud(name); + }); + } + } + }); + } else if (CommandEX.checkAdmin(sender, name)) { + String finalName = args[1]; + DataSql.task(() -> { + if (DataSql.checkMutePlayer(finalName)) { + DataSql.removeMutePlayer(finalName); + AllMusic.side.sendMessage(sender, "已取消玩家:" + finalName + "的静音"); + } else { + DataSql.addMutePlayer(finalName); + AllMusic.side.runTask(() -> { + AllMusic.side.sendStop(finalName); + AllMusic.side.clearHud(finalName); + AllMusic.side.sendMessage(sender, "已设置玩家:" + finalName + "的静音"); + }); + } + }); + } + } else { + DataSql.task(() -> { + if (DataSql.checkMutePlayer(name)) { + DataSql.removeMutePlayer(name); + AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.mute3); + } else { + DataSql.addMutePlayer(name); + AllMusic.side.runTask(() -> { + AllMusic.side.sendStop(name); + AllMusic.side.clearHud(name); + AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.mute); + }); + } + }); + } + } + + @Override + public List tab(Object player, String name, String[] args, int index) { + if (args.length == index || (args.length == index + 1)) { + if (CommandEX.checkAdmin(player, name)) { + List players = new ArrayList<>(); + for (Object item : AllMusic.side.getPlayers()) { + players.add(AllMusic.side.getPlayerName(item)); + } + return players; + } + return new ArrayList<>() {{ + add("list"); + }}; + } else { + return super.tab(player, name, args, index); + } + } +} diff --git a/core/command/CommandNext.java b/core/command/sub/CommandNext.java similarity index 80% rename from core/command/CommandNext.java rename to core/command/sub/CommandNext.java index 92159e2b..4f6b95da 100644 --- a/core/command/CommandNext.java +++ b/core/command/sub/CommandNext.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.sql.DataSql; diff --git a/core/command/CommandNextPage.java b/core/command/sub/CommandNextPage.java similarity index 76% rename from core/command/CommandNextPage.java rename to core/command/sub/CommandNextPage.java index 20a9b206..fb89132f 100644 --- a/core/command/CommandNextPage.java +++ b/core/command/sub/CommandNextPage.java @@ -1,6 +1,8 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.PermissionList; import com.coloryr.allmusic.server.core.music.play.MusicSearch; import com.coloryr.allmusic.server.core.objs.music.SearchPageObj; @@ -8,7 +10,7 @@ public class CommandNextPage extends ACommand { @Override public void execute(Object sender, String name, String[] args) { if (AllMusic.getConfig().needPermission && - !AllMusic.side.checkPermission(name, "allmusic.search")) { + !AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_SEARCH)) { AllMusic.side.sendMessage(sender, AllMusic.getMessage().search.noPer); return; } diff --git a/core/command/CommandPush.java b/core/command/sub/CommandPush.java similarity index 94% rename from core/command/CommandPush.java rename to core/command/sub/CommandPush.java index 6b72aa21..e41a430a 100644 --- a/core/command/CommandPush.java +++ b/core/command/sub/CommandPush.java @@ -1,6 +1,8 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.PermissionList; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.message.PAL; import com.coloryr.allmusic.server.core.objs.music.SongInfoObj; @@ -14,7 +16,7 @@ public class CommandPush extends ACommand { @Override public void execute(Object sender, String name, String[] args) { if (AllMusic.getConfig().needPermission && - !AllMusic.side.checkPermission(name, "allmusic.push")) { + !AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_PUSH)) { AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.noPermission); return; } diff --git a/core/command/CommandReload.java b/core/command/sub/CommandReload.java similarity index 73% rename from core/command/CommandReload.java rename to core/command/sub/CommandReload.java index c8261f54..372616c3 100644 --- a/core/command/CommandReload.java +++ b/core/command/sub/CommandReload.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; public class CommandReload extends ACommand { @Override diff --git a/core/command/CommandSearch.java b/core/command/sub/CommandSearch.java similarity index 70% rename from core/command/CommandSearch.java rename to core/command/sub/CommandSearch.java index 94810bb8..140cd826 100644 --- a/core/command/CommandSearch.java +++ b/core/command/sub/CommandSearch.java @@ -1,12 +1,15 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.CommandEX; +import com.coloryr.allmusic.server.core.command.PermissionList; public class CommandSearch extends ACommand { @Override public void execute(Object sender, String name, String[] args) { if (AllMusic.getConfig().needPermission && - !AllMusic.side.checkPermission(sender, "allmusic.search")) { + !AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_SEARCH)) { AllMusic.side.sendMessage(sender, AllMusic.getMessage().search.noPer); return; } diff --git a/core/command/CommandSelect.java b/core/command/sub/CommandSelect.java similarity index 86% rename from core/command/CommandSelect.java rename to core/command/sub/CommandSelect.java index 0817fc2c..e4fd9271 100644 --- a/core/command/CommandSelect.java +++ b/core/command/sub/CommandSelect.java @@ -1,6 +1,9 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.CommandEX; +import com.coloryr.allmusic.server.core.command.PermissionList; import com.coloryr.allmusic.server.core.objs.message.PAL; import com.coloryr.allmusic.server.core.objs.music.SearchPageObj; import com.coloryr.allmusic.server.core.sql.DataSql; @@ -14,7 +17,7 @@ public class CommandSelect extends ACommand { @Override public void execute(Object sender, String name, String[] args) { if (AllMusic.getConfig().needPermission && - !AllMusic.side.checkPermission(name, "allmusic.search")) { + !AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_SEARCH)) { AllMusic.side.sendMessage(sender, AllMusic.getMessage().search.noPer); return; } diff --git a/core/command/sub/CommandStop.java b/core/command/sub/CommandStop.java new file mode 100644 index 00000000..f56ea0e0 --- /dev/null +++ b/core/command/sub/CommandStop.java @@ -0,0 +1,33 @@ +package com.coloryr.allmusic.server.core.command.sub; + +import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.CommandEX; +import com.coloryr.allmusic.server.core.utils.HudUtils; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class CommandStop extends ACommand { + @Override + public void execute(Object sender, String name, String[] args) { + if (args.length == 2 && CommandEX.checkAdmin(sender, name)) { + name = args[1]; + AllMusic.side.sendMessage(sender, "已停止玩家:" + name + "的音乐播放"); + } else { + AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.stopPlaying); + } + AllMusic.side.sendStop(name); + HudUtils.clearHud(name); + } + + @Override + public List tab(Object player, String name, String[] args, int index) { + if (args.length == index || (args.length == index + 1) && CommandEX.checkAdmin(player, name)) { + return new ArrayList<>(AllMusic.getNowPlayPlayer()); + } else { + return Collections.emptyList(); + } + } +} diff --git a/core/command/CommandTest.java b/core/command/sub/CommandTest.java similarity index 95% rename from core/command/CommandTest.java rename to core/command/sub/CommandTest.java index a6ef87a0..953d6cd7 100644 --- a/core/command/CommandTest.java +++ b/core/command/sub/CommandTest.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.music.api.APIMain; import com.coloryr.allmusic.server.core.objs.music.SongInfoObj; import com.coloryr.allmusic.server.core.utils.Function; diff --git a/core/command/CommandUnban.java b/core/command/sub/CommandUnban.java similarity index 91% rename from core/command/CommandUnban.java rename to core/command/sub/CommandUnban.java index a98219b4..682e3f7c 100644 --- a/core/command/CommandUnban.java +++ b/core/command/sub/CommandUnban.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.sql.Cache; import com.coloryr.allmusic.server.core.sql.DataSql; import com.coloryr.allmusic.server.core.utils.Function; diff --git a/core/command/CommandUnbanPlayer.java b/core/command/sub/CommandUnbanPlayer.java similarity index 89% rename from core/command/CommandUnbanPlayer.java rename to core/command/sub/CommandUnbanPlayer.java index d0a01bfb..3021b70d 100644 --- a/core/command/CommandUnbanPlayer.java +++ b/core/command/sub/CommandUnbanPlayer.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ICommand; import com.coloryr.allmusic.server.core.sql.Cache; import com.coloryr.allmusic.server.core.sql.DataSql; diff --git a/core/command/CommandUrl.java b/core/command/sub/CommandUrl.java similarity index 86% rename from core/command/CommandUrl.java rename to core/command/sub/CommandUrl.java index 3f198df3..f6dfb02a 100644 --- a/core/command/CommandUrl.java +++ b/core/command/sub/CommandUrl.java @@ -1,6 +1,7 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.music.MusicObj; diff --git a/core/command/CommandVote.java b/core/command/sub/CommandVote.java similarity index 91% rename from core/command/CommandVote.java rename to core/command/sub/CommandVote.java index d91c7009..4cb732ec 100644 --- a/core/command/CommandVote.java +++ b/core/command/sub/CommandVote.java @@ -1,6 +1,8 @@ -package com.coloryr.allmusic.server.core.command; +package com.coloryr.allmusic.server.core.command.sub; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.command.ACommand; +import com.coloryr.allmusic.server.core.command.PermissionList; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.message.PAL; import com.coloryr.allmusic.server.core.sql.DataSql; @@ -9,7 +11,7 @@ public class CommandVote extends ACommand { @Override public void execute(Object sender, String name, String[] args) { if (AllMusic.getConfig().needPermission && - !AllMusic.side.checkPermission(name, "allmusic.vote")) { + !AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_VOTE)) { AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.noPermission); return; } else if (PlayMusic.getListSize() == 0 && PlayMusic.getIdleListSize() == 0) {