Files
AllMusic/core/command/sub/CommandVote.java
T

65 lines
3.4 KiB
Java
Raw Normal View History

2025-08-28 13:49:55 +08:00
package com.coloryr.allmusic.server.core.command.sub;
2023-10-22 10:14:55 +08:00
2024-04-19 09:46:54 +08:00
import com.coloryr.allmusic.server.core.AllMusic;
2025-08-28 13:49:55 +08:00
import com.coloryr.allmusic.server.core.command.ACommand;
import com.coloryr.allmusic.server.core.command.PermissionList;
2026-02-26 20:18:57 +08:00
import com.coloryr.allmusic.server.core.music.PlayMusic;
2026-04-04 12:33:44 +08:00
import com.coloryr.allmusic.server.core.music.PlayRuntime;
2025-09-24 22:16:24 +08:00
import com.coloryr.allmusic.server.core.objs.message.ARG;
2025-03-24 18:20:45 +08:00
import com.coloryr.allmusic.server.core.sql.DataSql;
2023-10-22 10:14:55 +08:00
2024-04-17 22:15:12 +08:00
public class CommandVote extends ACommand {
2023-10-22 10:14:55 +08:00
@Override
2025-01-19 22:51:01 +08:00
public void execute(Object sender, String name, String[] args) {
2024-04-17 22:15:12 +08:00
if (AllMusic.getConfig().needPermission &&
2025-08-28 13:49:55 +08:00
!AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_VOTE)) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.noPermission);
2023-10-22 10:14:55 +08:00
return;
2024-04-17 22:15:12 +08:00
} else if (PlayMusic.getListSize() == 0 && PlayMusic.getIdleListSize() == 0) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.emptyPlay);
2024-08-16 18:49:30 +08:00
} else if (PlayMusic.nowPlayMusic == null) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.emptyPlayingMusic);
2024-04-17 22:15:12 +08:00
} else if (args.length == 2) {
if (args[1].equalsIgnoreCase("cancel")) {
2024-08-16 18:49:30 +08:00
if (!name.equalsIgnoreCase(PlayMusic.getVoteSender())) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.err1);
return;
2024-08-16 18:49:30 +08:00
} else if (PlayMusic.getVoteTime() <= 0) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.err2);
return;
}
2025-01-19 22:51:01 +08:00
AllMusic.side.broadcast(AllMusic.getMessage().vote.cancel);
2024-08-16 18:49:30 +08:00
PlayMusic.clearVote();
2024-04-17 22:15:12 +08:00
} else {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error);
}
return;
} else if (args.length > 2) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error);
return;
2024-08-16 18:49:30 +08:00
} else if (PlayMusic.getVoteTime() <= 0) {
PlayMusic.startVote(name);
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.doVote);
String data = AllMusic.getMessage().vote.bq;
2026-04-04 12:33:44 +08:00
data = data.replace(ARG.player, name)
.replace(ARG.time, String.valueOf(AllMusic.getConfig().voteTime))
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
AllMusic.side.broadcast(data);
2026-03-04 13:57:59 +08:00
AllMusic.side.broadcast(AllMusic.miniMessage(AllMusic.getMessage().vote.bq1)
.append(AllMusic.miniMessageRun(AllMusic.getMessage().vote.bq2, "/music vote")));
2024-04-17 22:15:12 +08:00
} else {
2024-08-16 18:49:30 +08:00
if (!PlayMusic.containVote(name)) {
PlayMusic.addVote(name);
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.agree);
String data = AllMusic.getMessage().vote.bqAgree;
2025-09-24 22:16:24 +08:00
data = data.replace(ARG.player, name)
2026-04-04 12:33:44 +08:00
.replace(ARG.count, String.valueOf(PlayMusic.getVoteCount()))
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
2025-01-19 22:51:01 +08:00
AllMusic.side.broadcast(data);
2023-10-22 10:14:55 +08:00
} else {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.arAgree);
2023-10-22 10:14:55 +08:00
}
}
2025-03-24 18:20:45 +08:00
DataSql.removeMutePlayer(name);
2023-10-22 10:14:55 +08:00
}
}