This commit is contained in:
Coloryr committed 2026-11-05 00:23:25 +08:00
1 parent 4c83a39bff
commit d51408ed48
6 files changed
+26 -16

No files matched your search

@@ -31,12 +31,14 @@ public class CommandAgree extends ACommand {
}
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.agree);
// 先把自己算进去再广播,否则第一票永远显示"共有0名玩家同意"
PlayMusic.addVote(name);
String data = AllMusic.getMessage().vote.bqAgree;
data = data.replace(ARG.player, name)
.replace(ARG.count, String.valueOf(vote.votePlayer.size()))
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
AllMusic.side.broadcast(data);
PlayMusic.addVote(name);
}
}
@@ -41,6 +41,7 @@ public class CommandCancel implements ICommand {
return;
}
PlayMusic.remove(id);
AllMusic.side.sendMessage(sender, AllMusic.getMessage().cancel.done);
} catch (Exception e) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().cancel.err4);
@@ -59,7 +60,8 @@ public class CommandCancel implements ICommand {
for (int a = 1; a < list1.size(); a++) {
SongInfoObj item = list1.get(a);
if (item.getCall().equalsIgnoreCase(name)) {
list.add(String.valueOf(a));
// 用户序号是 1 起(list[a] 对应序号 a+1)
list.add(String.valueOf(a + 1));
}
}
}
@@ -24,8 +24,6 @@ public class CommandHelp extends ACommand {
.append(AllMusic.side.clickSuggest(AllMusic.getMessage().click.clickRun, "/music push ")));
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(AllMusic.getMessage().help.normal.push1)
.append(AllMusic.side.clickRun(AllMusic.getMessage().click.clickRun, "/music push cancel")));
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(AllMusic.getMessage().help.normal.vote)
.append(AllMusic.side.clickRun(AllMusic.getMessage().click.clickRun, "/music vote")));
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(AllMusic.getMessage().help.normal.mute)
.append(AllMusic.side.clickRun(AllMusic.getMessage().click.clickRun, "/music mute")));
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(AllMusic.getMessage().help.normal.mutelist)
@@ -12,6 +12,7 @@ import com.coloryr.allmusic.server.core.saves.BanSave;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
public class CommandPush extends ACommand {
@Override
@@ -35,20 +36,21 @@ public class CommandPush extends ACommand {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.noId);
return;
}
SongInfoObj id1 = PlayMusic.findMusicIndex(1);
if (id1 != null && id1.getId().equalsIgnoreCase(music.getId())) {
SongInfoObj next = PlayMusic.getNextMusic();
if (next != null && next.getId().equalsIgnoreCase(music.getId())
&& next.getApi().equalsIgnoreCase(music.getApi())) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.pushErr);
return;
}
VoteItem item = new VoteItem(music.getApi(), music.getId(), name, VoteItem.VoteType.PUSH);
// 发起人自己也算一票,和 /music vote 保持一致
item.votePlayer.add(name.toLowerCase(Locale.ROOT));
if (PlayMusic.startVote(item)) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
} else {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err5);
}
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
} else if (args.length == 2) {
if (args[1].equalsIgnoreCase("cancel")) {
if (!PlayMusic.haveVote(name, VoteItem.VoteType.PUSH)) {
@@ -56,7 +58,7 @@ public class CommandPush extends ACommand {
return;
}
PlayMusic.removeVote(name, VoteItem.VoteType.PUSH);
AllMusic.side.sendMessage(name, AllMusic.getMessage().push.cancel1);
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.cancel1);
return;
} else {
try {
@@ -72,13 +74,13 @@ public class CommandPush extends ACommand {
}
VoteItem item = new VoteItem(music.getApi(), music.getId(), name, VoteItem.VoteType.PUSH);
// 发起人自己也算一票,和 /music vote 保持一致
item.votePlayer.add(name.toLowerCase(Locale.ROOT));
if (PlayMusic.startVote(item)) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
} else {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err5);
}
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
}
} else if (args.length > 2) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error);
@@ -95,7 +97,8 @@ public class CommandPush extends ACommand {
for (int a = 1; a < list1.size(); a++) {
SongInfoObj item = list1.get(a);
if (item.getCall().equalsIgnoreCase(name)) {
list.add(String.valueOf(a));
// 用户序号是 1 起(list[a] 对应序号 a+1)
list.add(String.valueOf(a + 1));
}
}
@@ -80,6 +80,11 @@ public class PlayMusic {
public static boolean haveVote(String name, VoteItem.VoteType voteType) {
name = name.toLowerCase(Locale.ROOT);
// 正在进行的投票已经从 voteList 里 poll 出去了,要单独判断,
// 否则发起人自己根本取消不了当前这一票
if (vote != null && vote.getType() == voteType && vote.getVoteSender().equalsIgnoreCase(name)) {
return true;
}
for (VoteItem item : voteList) {
if (item.getType() == voteType && item.getVoteSender().equalsIgnoreCase(name)) {
return true;
@@ -196,10 +201,10 @@ public class PlayMusic {
if (vote.getVoteSender().equalsIgnoreCase(name) && vote.getType() == voteType) {
removeVote();
if (voteType == VoteItem.VoteType.NEXT) {
AllMusic.side.broadcast(AllMusic.getMessage().push.cancel);
AllMusic.side.broadcast(AllMusic.getMessage().vote.cancel);
}
else {
AllMusic.side.broadcast(AllMusic.getMessage().vote.cancel);
AllMusic.side.broadcast(AllMusic.getMessage().push.cancel);
}
return;
}
@@ -62,7 +62,7 @@ public class PushObj {
if (doVote == null)
doVote = "<light_purple>[AllMusic]<yellow>已发起插歌投票";
if (bq == null)
bq = "<light_purple>[AllMusic]<yellow>" + ARG.player + "发起了插歌投票,将曲目" + ARG.musicName + "-" + ARG.musicAuthor + "调整到下一首播放," + ARG.time + "秒后结束,输入/music push 同意插歌,需要至少" + ARG.countAll + "名玩家同意才会插歌。";
bq = "<light_purple>[AllMusic]<yellow>" + ARG.player + "发起了插歌投票,将曲目" + ARG.musicName + "-" + ARG.musicAuthor + "调整到下一首播放," + ARG.time + "秒后结束,输入/music agree 同意插歌,需要至少" + ARG.countAll + "名玩家同意才会插歌。";
if (bq1 == null)
bq1 = "<light_purple>[AllMusic]<yellow>或者点击 ";
if (bq2 == null)