Merge pull request #109 from hutuyee/main

fix: 命令 searchapi 参数携带错误
This commit is contained in:
Color_yr authored and GitHub committed 2026-06-20 22:43:18 +08:00
commit 51d367e6de
2 files changed
+24 -6

No files matched your search

@@ -99,13 +99,24 @@ public class CommandEX {
* @param isDefault 是否是默认点歌方式
*/
public static void searchMusicApi(Object sender, String name, String[] args, boolean isDefault) {
if (args == null || args.length < 2) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.error2);
return;
}
String apiname = args[0];
if (!AllMusic.MUSIC_APIS.containsKey(apiName)) {
AllMusic.side.sendMessage(sender, "不存在的音乐源:" + apiName);
return;
}
PlayerAddMusicObj obj = new PlayerAddMusicObj();
obj.sender = sender;
obj.name = name;
obj.args = new String[args.length - 1];
System.arraycopy(args, 1, obj.args, 0, obj.args.length);
obj.args = args;
obj.isDefault = isDefault;
obj.api = args[0];
obj.api = apiname;
if (AllMusic.side.onMusicAdd(sender, obj)) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().addMusic.cancel);
@@ -13,20 +13,27 @@ public class CommandSearchApi extends ACommand {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().search.noPer);
return;
}
if (CommandEX.checkMoney(sender, name, AllMusic.getConfig().cost.searchCost)) {
return;
}
if (CommandEX.cost(sender, name, AllMusic.getConfig().cost.searchCost,
AllMusic.getMessage().cost.search)) {
return;
}
if (args.length < 2) {
// args 应该是:["searchapi", "api名", "歌曲名"]
if (args.length < 3) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.error2);
return;
}
// 去掉 args[0] 的子命令名 searchapi,保留 ["api名", "歌曲名"]
String[] newArgs = new String[args.length - 1];
System.arraycopy(args, 1, newArgs, 0, newArgs.length);
AllMusic.side.sendMessage(sender, AllMusic.getMessage().search.startSearch);
CommandEX.searchMusicApi(sender, name, args, false);
CommandEX.searchMusicApi(sender, name, newArgs, false);
}
}
}