Files
AllMusic/core/command/CommandEX.java
T

513 lines
25 KiB
Java
Raw Normal View History

2023-03-02 08:42:34 +08:00
package coloryr.allmusic.core.command;
2020-02-29 22:09:52 +08:00
2023-03-02 08:42:34 +08:00
import coloryr.allmusic.core.AllMusic;
import coloryr.allmusic.core.hud.HudUtils;
import coloryr.allmusic.core.music.play.MusicSearch;
import coloryr.allmusic.core.music.play.PlayMusic;
import coloryr.allmusic.core.objs.SearchMusicObj;
import coloryr.allmusic.core.objs.hud.PosObj;
import coloryr.allmusic.core.objs.music.MusicObj;
import coloryr.allmusic.core.objs.music.SearchPageObj;
import coloryr.allmusic.core.utils.Function;
2020-02-29 22:09:52 +08:00
2021-06-12 15:57:35 +08:00
import java.util.Locale;
2020-02-29 22:09:52 +08:00
public class CommandEX {
2023-01-06 17:03:07 +08:00
/**
* 搜索音乐
2023-01-08 20:55:21 +08:00
*
* @param sender 发送者
* @param name 用户名
* @param args 参数
2023-01-06 17:03:07 +08:00
* @param isDefault 是否是默认点歌方式
*/
2021-06-21 22:25:17 +08:00
private static void searchMusic(Object sender, String name, String[] args, boolean isDefault) {
2021-03-19 15:32:47 +08:00
MusicObj obj = new MusicObj();
2021-02-07 20:26:36 +08:00
obj.sender = sender;
2021-11-30 13:37:43 +08:00
obj.name = name;
2021-02-07 20:26:36 +08:00
obj.args = args;
obj.isDefault = isDefault;
2022-12-27 11:33:26 +08:00
if (AllMusic.side.onMusicAdd(sender, obj)) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.Cancel);
2022-12-27 11:33:26 +08:00
return;
}
2021-03-19 15:32:47 +08:00
MusicSearch.addSearch(obj);
2020-08-19 19:18:38 +08:00
}
2020-02-29 22:09:52 +08:00
2023-01-06 17:03:07 +08:00
/**
* 检查金额是否够
2023-01-08 20:55:21 +08:00
*
2023-01-06 17:03:07 +08:00
* @param sender 发送者
2023-01-08 20:55:21 +08:00
* @param name 用户名
* @param cost 金额
2023-01-06 17:03:07 +08:00
* @return 结果
*/
2023-01-03 18:31:35 +08:00
private static boolean checkMoney(Object sender, String name, int cost) {
2023-01-08 14:31:20 +08:00
if (!AllMusic.getConfig().UseCost || AllMusic.economy == null) {
return false;
}
if (!AllMusic.economy.check(name, cost)) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Cost.NoMoney);
return true;
2023-01-03 18:31:35 +08:00
}
return false;
}
2023-01-06 17:03:07 +08:00
/**
* 扣钱
2023-01-08 20:55:21 +08:00
*
* @param sender 发送者
* @param name 用户名
* @param cost 金额
2023-01-06 17:03:07 +08:00
* @param message 结果消息
* @return 结果
*/
2023-01-03 18:31:35 +08:00
private static boolean cost(Object sender, String name, int cost, String message) {
2023-01-08 20:55:21 +08:00
if (!AllMusic.getConfig().UseCost || AllMusic.economy == null) {
2023-01-08 14:31:20 +08:00
return false;
}
2023-01-06 17:03:07 +08:00
if (AllMusic.economy.cost(name, cost)) {
2023-01-03 18:31:35 +08:00
AllMusic.side.sendMessage(sender, message
2023-01-06 17:03:07 +08:00
.replace("%Cost%", "" + cost));
2023-01-03 18:31:35 +08:00
return false;
} else {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Cost.CostFail);
2023-01-03 18:31:35 +08:00
return true;
}
}
2023-01-06 17:03:07 +08:00
/**
* 添加音乐
2023-01-08 20:55:21 +08:00
*
2023-01-06 17:03:07 +08:00
* @param sender 发送者
2023-01-08 20:55:21 +08:00
* @param name 用户名
* @param args 参数
2023-01-06 17:03:07 +08:00
*/
2021-06-21 22:25:17 +08:00
private static void addMusic(Object sender, String name, String[] args) {
String musicID;
2020-04-13 13:04:04 +08:00
if (args[0].contains("id=") && !args[0].contains("/?userid")) {
2020-02-29 22:09:52 +08:00
if (args[0].contains("&user"))
2021-06-21 22:25:17 +08:00
musicID = Function.getString(args[0], "id=", "&user");
2020-02-29 22:09:52 +08:00
else
2021-06-21 22:25:17 +08:00
musicID = Function.getString(args[0], "id=", null);
2020-02-29 22:09:52 +08:00
} else if (args[0].contains("song/")) {
if (args[0].contains("/?userid"))
2021-06-21 22:25:17 +08:00
musicID = Function.getString(args[0], "song/", "/?userid");
2020-02-29 22:09:52 +08:00
else
2021-06-21 22:25:17 +08:00
musicID = Function.getString(args[0], "song/", null);
2020-02-29 22:09:52 +08:00
} else
2021-06-21 22:25:17 +08:00
musicID = args[0];
if (Function.isInteger(musicID)) {
2023-01-06 17:03:07 +08:00
if (PlayMusic.getSize() >= AllMusic.getConfig().MaxList) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.ListFull);
} else if (AllMusic.getConfig().BanMusic.contains(musicID)) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.BanMusic);
2021-06-21 22:25:17 +08:00
} else if (PlayMusic.isHave(musicID)) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.ExistMusic);
2020-02-29 22:09:52 +08:00
} else {
2023-01-06 17:03:07 +08:00
if (checkMoney(sender, name, AllMusic.getConfig().AddMusicCost)) {
2023-01-03 18:31:35 +08:00
return;
}
2023-01-06 17:03:07 +08:00
if (cost(sender, name, AllMusic.getConfig().AddMusicCost,
AllMusic.getMessage().Cost.AddMusic)) {
2023-01-03 18:31:35 +08:00
return;
2020-08-19 19:18:38 +08:00
}
2021-06-21 22:25:17 +08:00
AllMusic.getConfig().RemoveNoMusicPlayer(name);
2022-12-27 10:31:41 +08:00
if (AllMusic.side.needPlay()) {
2021-03-19 15:32:47 +08:00
MusicObj obj = new MusicObj();
2022-12-26 15:36:01 +08:00
obj.sender = sender;
obj.id = musicID;
2021-11-30 13:37:43 +08:00
obj.name = name;
2021-02-07 20:41:12 +08:00
obj.isDefault = false;
2022-12-27 11:33:26 +08:00
if (AllMusic.side.onMusicAdd(sender, obj)) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.Cancel);
2022-12-27 11:33:26 +08:00
return;
}
2021-02-07 20:41:12 +08:00
PlayMusic.addTask(obj);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.Success);
2020-02-29 22:09:52 +08:00
} else
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.NoPlayer);
2020-02-29 22:09:52 +08:00
}
} else
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.NoID);
2020-02-29 22:09:52 +08:00
}
2023-01-06 17:03:07 +08:00
/**
* 展示搜歌结果
2023-01-08 20:55:21 +08:00
*
2023-01-06 17:03:07 +08:00
* @param sender 发送者
* @param search 搜歌结果
*/
2023-01-06 18:15:10 +08:00
public static void showSearch(Object sender, SearchPageObj search) {
2020-03-05 19:27:39 +08:00
int index = search.getIndex();
2023-01-09 15:56:26 +08:00
SearchMusicObj item;
2020-03-20 22:25:51 +08:00
String info;
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "");
2020-03-25 22:14:05 +08:00
if (search.haveLastPage()) {
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessageRun(sender, "§d[AllMusic]§2输入/music lastpage上一页",
2023-01-06 17:03:07 +08:00
AllMusic.getMessage().Page.Last, "/music lastpage");
2020-03-25 22:14:05 +08:00
}
2020-03-07 15:56:57 +08:00
for (int a = 0; a < index; a++) {
2023-01-06 18:04:01 +08:00
item = search.getRes(a + search.getPage() * 10);
2023-01-06 17:03:07 +08:00
info = AllMusic.getMessage().Page.Choice;
2023-08-03 10:15:57 +08:00
info = info.replace("%Index%", "" + (a + 1))
2023-01-06 18:04:01 +08:00
.replace("%MusicName%", item.name)
.replace("%MusicAuthor%", item.author)
.replace("%MusicAl%", item.al);
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessageRun(sender, info,
2023-01-06 17:03:07 +08:00
AllMusic.getMessage().Click.This, "/music select " + (a + 1));
2020-03-05 19:27:39 +08:00
}
2020-03-07 15:56:57 +08:00
if (search.haveNextPage()) {
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessageRun(sender, "§d[AllMusic]§2输入/music nextpage下一页",
2023-01-06 17:03:07 +08:00
AllMusic.getMessage().Page.Next, "/music nextpage");
2020-03-05 19:27:39 +08:00
}
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "");
2020-03-04 11:53:37 +08:00
}
2023-01-06 17:03:07 +08:00
/**
* 执行命令
2023-01-08 20:55:21 +08:00
*
2023-01-06 17:03:07 +08:00
* @param sender 发送者
2023-01-08 20:55:21 +08:00
* @param name 用户名
* @param args 参数
2023-01-06 17:03:07 +08:00
*/
2021-06-21 22:25:17 +08:00
public static void ex(Object sender, String name, String[] args) {
2020-02-29 22:09:52 +08:00
if (args.length == 0) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
2021-09-04 20:29:47 +08:00
return;
2020-02-29 22:09:52 +08:00
} else if (args[0].equalsIgnoreCase("help")) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Help.Normal.Head);
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Normal.Base,
AllMusic.getMessage().Click.Check, "/music ");
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Normal.Stop,
AllMusic.getMessage().Click.This, "/music stop");
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Normal.List,
AllMusic.getMessage().Click.This, "/music list");
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Normal.Vote,
AllMusic.getMessage().Click.This, "/music vote");
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Normal.NoMusic,
AllMusic.getMessage().Click.This, "/music nomusic");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Normal.Search,
AllMusic.getMessage().Click.Check, "/music search ");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Normal.Select,
AllMusic.getMessage().Click.Check, "/music select ");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Normal.Hud1,
AllMusic.getMessage().Click.Check, "/music hud enable ");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Normal.Hud2,
AllMusic.getMessage().Click.Check, "/music hud ");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Normal.Hud3,
AllMusic.getMessage().Click.Check, "/music hud picsize ");
2023-01-09 15:56:26 +08:00
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Normal.Hud4,
AllMusic.getMessage().Click.Check, "/music hud picrotate ");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Normal.Hud5,
AllMusic.getMessage().Click.Check, "/music hud picrotatespeed ");
2023-01-06 17:03:07 +08:00
if (AllMusic.getConfig().Admin.contains(name)) {
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Admin.Reload,
AllMusic.getMessage().Click.This, "/music reload");
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Admin.Next,
AllMusic.getMessage().Click.This, "/music next");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Admin.Ban,
AllMusic.getMessage().Click.Check, "/music ban ");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Admin.Url,
AllMusic.getMessage().Click.Check, "/music url ");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Admin.Delete,
AllMusic.getMessage().Click.Check, "/music delete ");
AllMusic.side.sendMessageSuggest(sender, AllMusic.getMessage().Help.Admin.AddList,
AllMusic.getMessage().Click.Check, "/music addlist ");
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Admin.ClearList,
AllMusic.getMessage().Click.This, "/music clearlist");
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Admin.Login,
2023-08-03 10:15:57 +08:00
AllMusic.getMessage().Click.Check, "/music login ");
AllMusic.side.sendMessageRun(sender, AllMusic.getMessage().Help.Admin.Code,
AllMusic.getMessage().Click.This, "/music code");
2021-09-04 17:22:48 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2020-02-29 22:09:52 +08:00
} else if (args[0].equalsIgnoreCase("stop")) {
2021-11-30 13:37:43 +08:00
AllMusic.side.clearHud(name);
2023-01-08 20:55:21 +08:00
AllMusic.side.sendStop(name);
2021-06-21 22:25:17 +08:00
HudUtils.clearHud(name);
AllMusic.removeNowPlayPlayer(name);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().MusicPlay.StopPlay);
2021-09-04 20:29:47 +08:00
return;
2020-02-29 22:09:52 +08:00
} else if (args[0].equalsIgnoreCase("list")) {
2021-11-30 13:37:43 +08:00
if (PlayMusic.nowPlayMusic == null || PlayMusic.nowPlayMusic.isNull()) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().MusicPlay.NoMusic);
2020-02-29 22:09:52 +08:00
} else {
2023-01-06 17:03:07 +08:00
String info = AllMusic.getMessage().MusicPlay.Play;
2021-11-30 13:37:43 +08:00
info = info.replace("%MusicName%", PlayMusic.nowPlayMusic.getName())
.replace("%MusicAuthor%", PlayMusic.nowPlayMusic.getAuthor())
.replace("%MusicAl%", PlayMusic.nowPlayMusic.getAl())
.replace("%MusicAlia%", PlayMusic.nowPlayMusic.getAlia())
.replace("%PlayerName%", PlayMusic.nowPlayMusic.getCall());
AllMusic.side.sendMessage(sender, info);
2020-02-29 22:09:52 +08:00
}
2020-03-07 15:56:57 +08:00
if (PlayMusic.getSize() == 0) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().MusicPlay.NoPlay);
2020-02-29 22:09:52 +08:00
} else {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().MusicPlay.ListMusic.Head
2023-08-03 10:15:57 +08:00
.replace("%Count%", "" + PlayMusic.getSize()));
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, PlayMusic.getAllList());
2020-02-29 22:09:52 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2020-02-29 22:09:52 +08:00
} else if (args[0].equalsIgnoreCase("vote")) {
2023-01-06 17:03:07 +08:00
if (AllMusic.getConfig().NeedPermission &&
2023-01-03 18:31:35 +08:00
AllMusic.side.checkPermission(name, "allmusic.vote")) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Vote.NoPermission);
2020-03-17 12:07:37 +08:00
return;
}
2023-01-06 17:03:07 +08:00
if (PlayMusic.getSize() == 0 && AllMusic.getConfig().PlayList.size() == 0) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().MusicPlay.NoPlay);
2021-11-30 13:37:43 +08:00
} else if (PlayMusic.voteTime == 0) {
2023-08-03 10:15:57 +08:00
PlayMusic.voteTime = AllMusic.getConfig().VoteTime;
2021-06-21 22:25:17 +08:00
AllMusic.addVote(name);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Vote.DoVote);
String data = AllMusic.getMessage().Vote.BQ;
2023-08-03 10:15:57 +08:00
AllMusic.side.bq(data.replace("%PlayerName%", name)
.replace("%Time%", String.valueOf(AllMusic.getConfig().VoteTime)));
2021-11-30 13:37:43 +08:00
} else if (PlayMusic.voteTime > 0) {
2021-06-21 22:25:17 +08:00
if (!AllMusic.containVote(name)) {
AllMusic.addVote(name);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Vote.Agree);
String data = AllMusic.getMessage().Vote.BQAgree;
2021-06-21 22:25:17 +08:00
data = data.replace("%PlayerName%", name)
2020-04-19 20:36:12 +08:00
.replace("%Count%", "" + AllMusic.getVoteCount());
2021-11-30 13:37:43 +08:00
AllMusic.side.bq(data);
2020-02-29 22:09:52 +08:00
} else {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Vote.ARAgree);
2020-02-29 22:09:52 +08:00
}
}
2021-06-21 22:25:17 +08:00
AllMusic.getConfig().RemoveNoMusicPlayer(name);
2021-09-04 20:29:47 +08:00
return;
2020-02-29 22:09:52 +08:00
} else if (args[0].equalsIgnoreCase("nomusic")) {
2023-01-08 20:55:21 +08:00
AllMusic.side.sendStop(name);
2021-11-30 13:37:43 +08:00
AllMusic.side.clearHud(name);
2021-06-21 22:25:17 +08:00
AllMusic.getConfig().AddNoMusicPlayer(name);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().MusicPlay.NoPlayMusic);
2021-09-04 20:29:47 +08:00
return;
2020-02-29 22:45:22 +08:00
} else if (args[0].equalsIgnoreCase("search") && args.length >= 2) {
2023-01-06 17:03:07 +08:00
if (AllMusic.getConfig().NeedPermission &&
2023-01-03 18:31:35 +08:00
AllMusic.side.checkPermission(name, "allmusic.search")) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.NoPer);
2020-03-17 12:07:37 +08:00
return;
}
2023-01-06 17:03:07 +08:00
if (checkMoney(sender, name, AllMusic.getConfig().SearchCost)) {
2023-01-03 18:31:35 +08:00
return;
}
2023-01-06 17:03:07 +08:00
if (cost(sender, name, AllMusic.getConfig().SearchCost,
AllMusic.getMessage().Cost.Search)) {
2023-01-03 18:31:35 +08:00
return;
2020-08-19 19:18:38 +08:00
}
2023-01-03 18:31:35 +08:00
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.StartSearch);
2021-06-21 22:25:17 +08:00
searchMusic(sender, name, args, false);
2021-09-04 20:29:47 +08:00
return;
2020-02-29 22:09:52 +08:00
} else if (args[0].equalsIgnoreCase("select") && args.length == 2) {
2023-01-06 17:03:07 +08:00
if (AllMusic.getConfig().NeedPermission &&
2023-01-03 18:31:35 +08:00
AllMusic.side.checkPermission(name, "allmusic.search")) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.NoPer);
2020-03-17 12:07:37 +08:00
return;
}
2023-01-06 18:15:10 +08:00
SearchPageObj obj = AllMusic.getSearch(name);
2020-02-29 22:09:52 +08:00
if (obj == null) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.NoSearch);
2020-02-29 22:09:52 +08:00
} else if (!args[1].isEmpty() && Function.isInteger(args[1])) {
int a = Integer.parseInt(args[1]);
if (a == 0) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.ErrorNum);
2020-02-29 22:09:52 +08:00
return;
}
String[] ID = new String[1];
2023-01-06 18:04:01 +08:00
ID[0] = obj.getSong((obj.getPage() * 10) + (a - 1));
2023-01-03 18:31:35 +08:00
AllMusic.side.sendMessage(sender,
2023-01-06 17:03:07 +08:00
AllMusic.getMessage().Search.Chose.replace("%Num%", "" + a));
2021-06-21 22:25:17 +08:00
addMusic(sender, name, ID);
AllMusic.removeSearch(name);
2020-02-29 22:09:52 +08:00
} else {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.ErrorNum);
2020-02-29 22:09:52 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2020-03-07 15:56:57 +08:00
} else if (args[0].equalsIgnoreCase("nextpage")) {
2023-01-06 17:03:07 +08:00
if (AllMusic.getConfig().NeedPermission &&
2023-01-03 18:31:35 +08:00
AllMusic.side.checkPermission(name, "allmusic.search")) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.NoPer);
2020-03-17 12:07:37 +08:00
return;
}
2023-01-06 18:15:10 +08:00
SearchPageObj obj = AllMusic.getSearch(name);
2020-03-05 19:27:39 +08:00
if (obj == null) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.NoSearch);
2020-03-07 15:56:57 +08:00
} else if (obj.nextPage()) {
2021-06-21 22:25:17 +08:00
showSearch(sender, obj);
2020-03-07 15:56:57 +08:00
} else {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.CantNext);
2020-03-05 19:27:39 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2020-03-07 15:56:57 +08:00
} else if (args[0].equalsIgnoreCase("lastpage")) {
2023-01-06 17:03:07 +08:00
if (AllMusic.getConfig().NeedPermission &&
2023-01-03 18:31:35 +08:00
AllMusic.side.checkPermission(name, "allmusic.search")) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.NoPer);
2020-03-17 12:07:37 +08:00
return;
}
2023-01-06 18:15:10 +08:00
SearchPageObj obj = AllMusic.getSearch(name);
2020-03-05 19:27:39 +08:00
if (obj == null) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.NoSearch);
2020-03-07 15:56:57 +08:00
} else if (obj.lastPage()) {
2021-06-21 22:25:17 +08:00
showSearch(sender, obj);
2020-03-07 15:56:57 +08:00
} else {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Search.CantLast);
2020-03-05 19:27:39 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2020-05-02 21:53:22 +08:00
} else if (args[0].equalsIgnoreCase("hud")) {
2020-03-11 18:10:14 +08:00
if (args.length == 1) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
2020-03-02 21:25:31 +08:00
} else {
2020-05-02 21:53:22 +08:00
if (args[1].equalsIgnoreCase("enable")) {
2020-05-02 23:04:57 +08:00
if (args.length == 3) {
2020-05-02 21:53:22 +08:00
try {
2021-06-12 15:57:35 +08:00
String pos = args[2].toLowerCase(Locale.ROOT);
2021-06-21 22:25:17 +08:00
boolean temp = HudUtils.setHudEnable(name, pos);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Hud.State
2020-05-02 21:53:22 +08:00
.replace("%State%", temp ? "启用" : "关闭")
2023-01-06 17:03:07 +08:00
.replace("%Hud%", AllMusic.getMessage().HudList.Get(pos)));
2020-05-02 21:53:22 +08:00
} catch (Exception e) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
2020-05-02 21:53:22 +08:00
}
} else {
2021-06-21 22:25:17 +08:00
boolean temp = HudUtils.setHudEnable(name, null);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Hud.State
2020-05-02 21:53:22 +08:00
.replace("%State%", temp ? "启用" : "关闭")
2023-01-06 17:03:07 +08:00
.replace("%Hud%", AllMusic.getMessage().HudList.All));
2020-05-02 21:53:22 +08:00
}
2020-07-19 12:24:02 +08:00
} else if (args[1].equalsIgnoreCase("reset")) {
2021-06-21 22:25:17 +08:00
HudUtils.reset(name);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Hud.Reset);
2022-06-19 16:24:15 +08:00
} else if (args[1].equalsIgnoreCase("picsize")) {
if (args.length != 3 || !HudUtils.setPicSize(name, args[2])) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
2022-06-19 16:24:15 +08:00
return;
}
2023-01-03 18:31:35 +08:00
AllMusic.side.sendMessage(sender,
2023-01-06 17:03:07 +08:00
AllMusic.getMessage().Hud.PicSize.replace("%Size%", args[2]));
2023-01-09 15:56:26 +08:00
} else if (args[1].equalsIgnoreCase("picrotate")) {
if (args.length != 3) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
return;
}
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Hud.PicRotate
.replace("%State%", String.valueOf(HudUtils.setPicRotate(name, args[2]))));
} else if (args[1].equalsIgnoreCase("picrotatespeed")) {
if (args.length != 3 || !HudUtils.setPicRotateSpeed(name, args[2])) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
return;
}
AllMusic.side.sendMessage(sender,
2023-01-09 16:54:42 +08:00
AllMusic.getMessage().Hud.PicRotateSpeed.replace("%Size%", args[2]));
2020-05-02 21:53:22 +08:00
} else if (args.length != 4) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
2020-05-02 21:53:22 +08:00
} else {
2020-05-02 23:32:23 +08:00
try {
2023-01-09 16:54:42 +08:00
PosObj obj = HudUtils.setHudPos(name, args[1], args[2], args[3]);
2020-05-02 23:32:23 +08:00
if (obj == null) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
2020-05-02 23:32:23 +08:00
} else {
2023-01-06 17:03:07 +08:00
String temp = AllMusic.getMessage().Hud.Set
2020-05-02 23:32:23 +08:00
.replace("%Hud%", args[1])
.replace("%x%", args[2])
.replace("%y%", args[3]);
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, temp);
2020-05-02 23:32:23 +08:00
}
} catch (Exception e) {
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.Error);
2020-03-02 21:25:31 +08:00
}
2020-05-02 21:53:22 +08:00
}
2020-03-02 21:25:31 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2021-09-04 17:22:48 +08:00
} else if (args[0].equalsIgnoreCase("reload")) {
2021-11-30 13:37:43 +08:00
AllMusic.side.reload();
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2已重读配置文件");
2021-09-04 20:29:47 +08:00
return;
2023-01-06 17:03:07 +08:00
} else if (AllMusic.getConfig().Admin.contains(name)) {
2021-09-04 17:22:48 +08:00
if (args[0].equalsIgnoreCase("next")) {
2021-11-30 13:37:43 +08:00
PlayMusic.musicLessTime = 1;
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2已强制切歌");
2021-09-04 17:22:48 +08:00
AllMusic.getConfig().RemoveNoMusicPlayer(name);
2021-09-04 20:29:47 +08:00
return;
2021-09-04 17:22:48 +08:00
} else if (args[0].equalsIgnoreCase("ban") && args.length == 2) {
if (Function.isInteger(args[1])) {
AllMusic.getConfig().addBanID(args[1]);
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2已禁止" + args[1]);
2021-09-04 17:22:48 +08:00
} else {
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2请输入有效的ID");
2021-09-04 17:22:48 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2021-09-04 17:22:48 +08:00
} else if (args[0].equalsIgnoreCase("url") && args.length == 2) {
MusicObj obj = new MusicObj();
2022-12-26 15:36:01 +08:00
obj.sender = sender;
2021-09-04 17:22:48 +08:00
obj.isUrl = true;
obj.url = args[1];
PlayMusic.addTask(obj);
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().AddMusic.Success);
2021-09-04 20:29:47 +08:00
return;
2021-09-04 17:22:48 +08:00
} else if (args[0].equalsIgnoreCase("delete") && args.length == 2) {
if (!args[1].isEmpty() && Function.isInteger(args[1])) {
int music = Integer.parseInt(args[1]);
if (music == 0) {
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2请输入有效的序列ID");
2021-09-04 17:22:48 +08:00
return;
}
if (music > PlayMusic.getSize()) {
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2序列号过大");
2021-09-04 17:22:48 +08:00
return;
}
PlayMusic.remove(music - 1);
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2已删除序列" + music);
2021-09-04 17:22:48 +08:00
} else {
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2请输入有效的序列ID");
2021-09-04 17:22:48 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2021-09-04 17:22:48 +08:00
} else if (args[0].equalsIgnoreCase("addlist") && args.length == 2) {
if (Function.isInteger(args[1])) {
AllMusic.getMusicApi().setList(args[1], sender);
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2添加空闲音乐列表" + args[1]);
2021-09-04 17:22:48 +08:00
} else {
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2请输入有效的音乐列表ID");
2021-09-04 17:22:48 +08:00
}
2021-09-04 20:29:47 +08:00
return;
2021-09-04 17:22:48 +08:00
} else if (args[0].equalsIgnoreCase("clearlist")) {
2023-01-06 17:03:07 +08:00
AllMusic.getConfig().PlayList.clear();
2023-08-03 10:15:57 +08:00
AllMusic.saveConfig();
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§2添加空闲音乐列表已清空");
2021-09-04 20:29:47 +08:00
return;
2021-11-18 22:02:50 +08:00
} else if (args[0].equalsIgnoreCase("code")) {
AllMusic.getMusicApi().sendCode(sender);
return;
2021-09-04 17:22:48 +08:00
} else if (args[0].equalsIgnoreCase("login")) {
2021-11-18 22:02:50 +08:00
if (args.length != 2) {
2021-12-01 12:34:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§c没有手机验证码");
return;
2021-11-18 22:02:50 +08:00
}
2021-11-30 13:37:43 +08:00
AllMusic.side.sendMessage(sender, "§d[AllMusic]§d重新登录网易云账户");
2021-11-18 22:02:50 +08:00
AllMusic.getMusicApi().login(sender, args[1]);
2021-09-04 20:29:47 +08:00
return;
2021-09-04 17:22:48 +08:00
}
2021-09-04 20:00:41 +08:00
}
2023-01-06 17:03:07 +08:00
if (AllMusic.getConfig().NeedPermission &&
2023-01-03 18:31:35 +08:00
AllMusic.side.checkPermission(name, "allmusic.addmusic"))
2023-01-06 17:03:07 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().Command.NoPer);
2020-08-19 19:18:38 +08:00
else {
2023-01-06 17:03:07 +08:00
switch (AllMusic.getConfig().DefaultAddMusic) {
2020-08-19 19:18:38 +08:00
case 1:
2021-06-21 22:25:17 +08:00
searchMusic(sender, name, args, true);
2020-08-19 19:18:38 +08:00
break;
case 0:
default:
2021-06-21 22:25:17 +08:00
addMusic(sender, name, args);
2020-08-19 19:18:38 +08:00
}
}
2020-02-29 22:09:52 +08:00
}
}