mirror of
https://github.com/Coloryr/AllMusic.git
synced 2026-11-08 18:54:44 +00:00
投票序列
This commit is contained in:
1 parent
45d1d13c64
commit
126a32ab60
18 files changed
+409
-313
No files matched your search
+1
-1
@@ -12,7 +12,7 @@ allprojects {
|
||||
apply(plugin = "com.gradleup.shadow")
|
||||
|
||||
group = "com.coloryr"
|
||||
version = "4.1.9"
|
||||
version = "4.2.0"
|
||||
|
||||
// 设置项目JDK版本
|
||||
java.sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
@@ -55,11 +55,11 @@ public class AllMusic {
|
||||
/**
|
||||
* 配置文件版本号
|
||||
*/
|
||||
public static final String configVersion = "401";
|
||||
public static final String configVersion = "402";
|
||||
/**
|
||||
* 语言文件配置版本号
|
||||
*/
|
||||
public static final String messageVersion = "400";
|
||||
public static final String messageVersion = "401";
|
||||
/**
|
||||
* 日志
|
||||
*/
|
||||
|
||||
@@ -44,6 +44,7 @@ public class CommandEX {
|
||||
commandList.put("push", new CommandPush());
|
||||
commandList.put("join", new CommandJoin());
|
||||
commandList.put("cancel", new CommandCancel());
|
||||
commandList.put("agree", new CommandAgree());
|
||||
|
||||
commandAdminList.put("reload", new CommandReload());
|
||||
commandAdminList.put("next", new CommandNext());
|
||||
@@ -197,7 +198,7 @@ public class CommandEX {
|
||||
musicID = api1.getMusicId(arg);
|
||||
|
||||
if (api1.checkId(musicID)) {
|
||||
if (PlayMusic.getListSize() >= AllMusic.getConfig().maxPlayList) {
|
||||
if (PlayMusic.getListSize() >= AllMusic.getConfig().limit.maxPlayerList) {
|
||||
AllMusic.side.sendMessageTask(sender, AllMusic.getMessage().addMusic.listFull);
|
||||
} else if (BanSave.checkBanMusic(musicID, api)) {
|
||||
AllMusic.side.sendMessageTask(sender, AllMusic.getMessage().addMusic.banMusic);
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
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.PlayMusic;
|
||||
import com.coloryr.allmusic.server.core.music.PlayRuntime;
|
||||
import com.coloryr.allmusic.server.core.music.VoteItem;
|
||||
import com.coloryr.allmusic.server.core.objs.message.ARG;
|
||||
|
||||
public class CommandAgree extends ACommand {
|
||||
@Override
|
||||
public void execute(Object sender, String name, String[] args) {
|
||||
if (AllMusic.getConfig().needPermission &&
|
||||
!AllMusic.side.checkPermission(sender, PermissionList.PERMISSION_VOTE)) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.noPermission);
|
||||
return;
|
||||
}
|
||||
|
||||
VoteItem vote = PlayMusic.getVote();
|
||||
|
||||
if (vote == null) {
|
||||
AllMusic.side.sendMessage(name, AllMusic.getMessage().vote.err4);
|
||||
return;
|
||||
}
|
||||
if (vote.votePlayer.contains(name)) {
|
||||
AllMusic.side.sendMessage(name, AllMusic.getMessage().vote.err5);
|
||||
return;
|
||||
}
|
||||
|
||||
AllMusic.side.sendMessage(name, AllMusic.getMessage().vote.agree);
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -50,10 +50,10 @@ public class CommandBan extends ACommand {
|
||||
if (args.length == index || (args.length == index + 1)) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (PlayMusic.nowPlayMusic != null) {
|
||||
list.add(PlayMusic.nowPlayMusic.getID());
|
||||
list.add(PlayMusic.nowPlayMusic.getId());
|
||||
}
|
||||
for (SongInfoObj item : PlayMusic.getList()) {
|
||||
list.add(item.getID());
|
||||
list.add(item.getId());
|
||||
}
|
||||
|
||||
return list;
|
||||
|
||||
@@ -24,6 +24,8 @@ public class CommandHelp extends ACommand {
|
||||
.append(AllMusic.side.miniMessageSuggest(AllMusic.getMessage().click.clickRun, "/music push ")));
|
||||
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(AllMusic.getMessage().help.normal.push1)
|
||||
.append(AllMusic.side.miniMessageRun(AllMusic.getMessage().click.clickRun, "/music push cancel")));
|
||||
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(AllMusic.getMessage().help.normal.vote)
|
||||
.append(AllMusic.side.miniMessageRun(AllMusic.getMessage().click.clickRun, "/music vote")));
|
||||
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(AllMusic.getMessage().help.normal.mute)
|
||||
.append(AllMusic.side.miniMessageRun(AllMusic.getMessage().click.clickRun, "/music mute")));
|
||||
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(AllMusic.getMessage().help.normal.mutelist)
|
||||
|
||||
+23
-41
@@ -4,7 +4,7 @@ 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.PlayMusic;
|
||||
import com.coloryr.allmusic.server.core.music.PlayRuntime;
|
||||
import com.coloryr.allmusic.server.core.music.VoteItem;
|
||||
import com.coloryr.allmusic.server.core.objs.message.ARG;
|
||||
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
|
||||
import com.coloryr.allmusic.server.core.saves.BanSave;
|
||||
@@ -32,22 +32,27 @@ public class CommandPush extends ACommand {
|
||||
return;
|
||||
}
|
||||
SongInfoObj id1 = PlayMusic.findMusicIndex(1);
|
||||
if (id1 != null && id1.getID().equalsIgnoreCase(music.getID())) {
|
||||
if (id1 != null && id1.getId().equalsIgnoreCase(music.getId())) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.pushErr);
|
||||
return;
|
||||
}
|
||||
|
||||
VoteItem item = new VoteItem(music.getApi(), music.getId(), name, VoteItem.VoteType.PUSH);
|
||||
if (PlayMusic.startVote(item)) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
|
||||
} else {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err3);
|
||||
}
|
||||
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
|
||||
} else if (args.length == 2) {
|
||||
if (args[1].equalsIgnoreCase("cancel")) {
|
||||
if (!name.equalsIgnoreCase(PlayMusic.getPushSender())) {
|
||||
if (!PlayMusic.haveVote(name, VoteItem.VoteType.PUSH)) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err1);
|
||||
return;
|
||||
}
|
||||
if (PlayMusic.getPushTime() <= 0) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err2);
|
||||
return;
|
||||
}
|
||||
PlayMusic.clearPush();
|
||||
AllMusic.side.broadcast(AllMusic.getMessage().push.cancel);
|
||||
PlayMusic.removeVote(name, VoteItem.VoteType.PUSH);
|
||||
AllMusic.side.sendMessage(name, AllMusic.getMessage().push.cancel1);
|
||||
return;
|
||||
} else {
|
||||
try {
|
||||
@@ -61,43 +66,20 @@ public class CommandPush extends ACommand {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.noId1.replace(ARG.index, args[1]));
|
||||
return;
|
||||
}
|
||||
|
||||
VoteItem item = new VoteItem(music.getApi(), music.getId(), name, VoteItem.VoteType.PUSH);
|
||||
if (PlayMusic.startVote(item)) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
|
||||
} else {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err3);
|
||||
}
|
||||
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
|
||||
}
|
||||
} else if (args.length > 2) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error);
|
||||
return;
|
||||
}
|
||||
if (PlayMusic.getPushTime() <= 0) {
|
||||
if (music == null) {
|
||||
return;
|
||||
}
|
||||
PlayMusic.startPush(name, music);
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
|
||||
String data = AllMusic.getMessage().push.bq;
|
||||
data = data.replace(ARG.player, name)
|
||||
.replace(ARG.time, String.valueOf(AllMusic.getConfig().voteTime))
|
||||
.replace(ARG.musicName, music.getName())
|
||||
.replace(ARG.musicAuthor, music.getAuthor())
|
||||
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
|
||||
AllMusic.side.broadcast(data);
|
||||
AllMusic.side.broadcast(AllMusic.side.miniMessage(AllMusic.getMessage().push.bq1)
|
||||
.append(AllMusic.side.miniMessageRun(AllMusic.getMessage().push.bq2, "/music push")));
|
||||
} else {
|
||||
if (music != null) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err3);
|
||||
return;
|
||||
}
|
||||
if (!PlayMusic.containPush(name)) {
|
||||
PlayMusic.addPush(name);
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.agree);
|
||||
String data = AllMusic.getMessage().push.bqAgree;
|
||||
data = data.replace(ARG.player, name)
|
||||
.replace(ARG.count, String.valueOf(PlayMusic.getVoteCount()))
|
||||
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
|
||||
AllMusic.side.broadcast(data);
|
||||
} else {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.arAgree);
|
||||
}
|
||||
}
|
||||
BanSave.removeMutePlayer(name);
|
||||
}
|
||||
|
||||
|
||||
+19
-28
@@ -4,10 +4,11 @@ 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.PlayMusic;
|
||||
import com.coloryr.allmusic.server.core.music.PlayRuntime;
|
||||
import com.coloryr.allmusic.server.core.objs.message.ARG;
|
||||
import com.coloryr.allmusic.server.core.music.VoteItem;
|
||||
import com.coloryr.allmusic.server.core.saves.BanSave;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class CommandVote extends ACommand {
|
||||
@Override
|
||||
public void execute(Object sender, String name, String[] args) {
|
||||
@@ -21,15 +22,17 @@ public class CommandVote extends ACommand {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.emptyPlayingMusic);
|
||||
} else if (args.length == 2) {
|
||||
if (args[1].equalsIgnoreCase("cancel")) {
|
||||
if (!name.equalsIgnoreCase(PlayMusic.getVoteSender())) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.err1);
|
||||
return;
|
||||
} else if (PlayMusic.getVoteTime() <= 0) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.err2);
|
||||
VoteItem vote = PlayMusic.getVote();
|
||||
if (vote == null) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.err4);
|
||||
return;
|
||||
}
|
||||
AllMusic.side.broadcast(AllMusic.getMessage().vote.cancel);
|
||||
PlayMusic.clearVote();
|
||||
if (!PlayMusic.haveVote(name, VoteItem.VoteType.NEXT)) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.err1);
|
||||
return;
|
||||
}
|
||||
PlayMusic.removeVote(name, VoteItem.VoteType.NEXT);
|
||||
AllMusic.side.sendMessage(name, AllMusic.getMessage().push.cancel1);
|
||||
} else {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error);
|
||||
}
|
||||
@@ -37,27 +40,15 @@ public class CommandVote extends ACommand {
|
||||
} else if (args.length > 2) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error);
|
||||
return;
|
||||
} else if (PlayMusic.getVoteTime() <= 0) {
|
||||
PlayMusic.startVote(name);
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.doVote);
|
||||
String data = AllMusic.getMessage().vote.bq;
|
||||
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);
|
||||
AllMusic.side.broadcast(AllMusic.side.miniMessage(AllMusic.getMessage().vote.bq1)
|
||||
.append(AllMusic.side.miniMessageRun(AllMusic.getMessage().vote.bq2, "/music vote")));
|
||||
} else {
|
||||
if (!PlayMusic.containVote(name)) {
|
||||
PlayMusic.addVote(name);
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.agree);
|
||||
String data = AllMusic.getMessage().vote.bqAgree;
|
||||
data = data.replace(ARG.player, name)
|
||||
.replace(ARG.count, String.valueOf(PlayMusic.getVoteCount()))
|
||||
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
|
||||
AllMusic.side.broadcast(data);
|
||||
String player = name.toLowerCase(Locale.ROOT);
|
||||
VoteItem item = new VoteItem(PlayMusic.nowPlayMusic.getApi(), PlayMusic.nowPlayMusic.getId(), player, VoteItem.VoteType.NEXT);
|
||||
item.votePlayer.add(player);
|
||||
|
||||
if (PlayMusic.startVote(item)) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.doVote);
|
||||
} else {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.arAgree);
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().vote.err3);
|
||||
}
|
||||
}
|
||||
BanSave.removeMutePlayer(name);
|
||||
|
||||
@@ -26,13 +26,14 @@ public class PlayMusic {
|
||||
*/
|
||||
private static final Set<String> nowPlayPlayer = new HashSet<>();
|
||||
/**
|
||||
* 切歌投票的玩家
|
||||
* 投票序列
|
||||
*/
|
||||
private static final Set<String> votePlayer = new HashSet<>();
|
||||
private static final Queue<VoteItem> voteList = new ConcurrentLinkedQueue<>();
|
||||
/**
|
||||
* 插歌投票的玩家
|
||||
* 当前投票
|
||||
*/
|
||||
private static final Set<String> pushPlayer = new HashSet<>();
|
||||
private static VoteItem vote;
|
||||
|
||||
/**
|
||||
* 总歌曲长度
|
||||
*/
|
||||
@@ -65,22 +66,6 @@ public class PlayMusic {
|
||||
* 切歌投票时间
|
||||
*/
|
||||
private static int voteTime = 0;
|
||||
/**
|
||||
* 切歌发起人
|
||||
*/
|
||||
private static String voteSender;
|
||||
/**
|
||||
* 插歌投票时间
|
||||
*/
|
||||
private static int pushTime = 0;
|
||||
/**
|
||||
* 插歌发起人
|
||||
*/
|
||||
private static String pushSender;
|
||||
/**
|
||||
* 插歌目标
|
||||
*/
|
||||
private static SongInfoObj push;
|
||||
/**
|
||||
* 空闲列表取出的歌曲序号
|
||||
*/
|
||||
@@ -93,115 +78,140 @@ public class PlayMusic {
|
||||
new Thread(PlayMusic::task, "allmusic_task").start();
|
||||
}
|
||||
|
||||
public static boolean haveVote(String name, VoteItem.VoteType voteType) {
|
||||
name = name.toLowerCase(Locale.ROOT);
|
||||
for (VoteItem item : voteList) {
|
||||
if (item.getType() == voteType && item.getVoteSender().equalsIgnoreCase(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加投票的玩家
|
||||
* 通过投票
|
||||
*
|
||||
* @param player 用户名
|
||||
*/
|
||||
public static void addVote(String player) {
|
||||
player = player.toLowerCase();
|
||||
votePlayer.add(player);
|
||||
}
|
||||
player = player.toLowerCase(Locale.ROOT);
|
||||
if (vote == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
public static void startVote(String player) {
|
||||
player = player.toLowerCase();
|
||||
voteSender = player;
|
||||
votePlayer.add(player);
|
||||
voteTime = AllMusic.getConfig().voteTime;
|
||||
vote.votePlayer.add(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加投票的玩家
|
||||
* 发起投票
|
||||
*
|
||||
* @param player 用户名
|
||||
* @param vote 投票内容
|
||||
*/
|
||||
public static void addPush(String player) {
|
||||
player = player.toLowerCase();
|
||||
pushPlayer.add(player);
|
||||
public static boolean startVote(VoteItem vote) {
|
||||
String id = vote.getId();
|
||||
String api = vote.getApi();
|
||||
for (VoteItem item : voteList) {
|
||||
if (item.getId().equalsIgnoreCase(id) && item.getApi().equalsIgnoreCase(api)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
voteList.add(vote);
|
||||
voteTime = AllMusic.getConfig().vote.voteTime;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void startPush(String player, SongInfoObj music) {
|
||||
player = player.toLowerCase();
|
||||
push = music;
|
||||
pushSender = player;
|
||||
pushPlayer.add(player);
|
||||
pushTime = AllMusic.getConfig().voteTime;
|
||||
public static SongInfoObj getMusic(String id, String api) {
|
||||
for (SongInfoObj item : playList) {
|
||||
if (item.getId().equalsIgnoreCase(id) && item.getApi().equalsIgnoreCase(api)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void pushTick() {
|
||||
pushTime--;
|
||||
public static void doVote() {
|
||||
if (vote == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (vote.getType() == VoteItem.VoteType.NEXT) {
|
||||
if (nowPlayMusic != null && nowPlayMusic.getApi()
|
||||
.equalsIgnoreCase(vote.getApi()) && nowPlayMusic.getId().equalsIgnoreCase(vote.getId())) {
|
||||
musicLessTime = 0;
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().vote.next);
|
||||
}
|
||||
} else {
|
||||
SongInfoObj obj = getMusic(vote.getId(), vote.getApi());
|
||||
if (obj != null) {
|
||||
synchronized (playList) {
|
||||
playList.remove(obj);
|
||||
playList.add(0, obj);
|
||||
}
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().push.doPush);
|
||||
}
|
||||
}
|
||||
|
||||
vote = null;
|
||||
}
|
||||
|
||||
public static void voteTick() {
|
||||
voteTime--;
|
||||
}
|
||||
|
||||
public static SongInfoObj getPush() {
|
||||
return push;
|
||||
}
|
||||
|
||||
public static int getPushTime() {
|
||||
return pushTime;
|
||||
}
|
||||
|
||||
public static String getPushSender() {
|
||||
return pushSender;
|
||||
}
|
||||
|
||||
public static int getVoteTime() {
|
||||
return voteTime;
|
||||
}
|
||||
|
||||
public static String getVoteSender() {
|
||||
return voteSender;
|
||||
public static VoteItem getVote() {
|
||||
return vote;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取投票数量
|
||||
*
|
||||
* @return 数量
|
||||
*/
|
||||
public static int getVoteCount() {
|
||||
return votePlayer.size();
|
||||
return voteList.size();
|
||||
}
|
||||
|
||||
public static int getPushCount() {
|
||||
return pushPlayer.size();
|
||||
public static void removeVote(String name, VoteItem.VoteType voteType) {
|
||||
if (vote != null) {
|
||||
if (vote.getVoteSender().equalsIgnoreCase(name) && vote.getType() == voteType) {
|
||||
removeVote();
|
||||
if (voteType == VoteItem.VoteType.NEXT) {
|
||||
AllMusic.side.broadcast(AllMusic.getMessage().push.cancel);
|
||||
}
|
||||
else {
|
||||
AllMusic.side.broadcast(AllMusic.getMessage().vote.cancel);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
VoteItem item1 = null;
|
||||
for (VoteItem item : voteList) {
|
||||
if (item.getType() == voteType && item.getVoteSender().equalsIgnoreCase(name)) {
|
||||
item1 = item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (item1 != null) {
|
||||
voteList.remove(item1);
|
||||
}
|
||||
}
|
||||
|
||||
public static void removeVote() {
|
||||
vote = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空投票
|
||||
* 下一个投票
|
||||
* @return 投票
|
||||
*/
|
||||
public static void clearVote() {
|
||||
voteTime = -1;
|
||||
voteSender = null;
|
||||
votePlayer.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空插歌
|
||||
*/
|
||||
public static void clearPush() {
|
||||
pushTime = -1;
|
||||
push = null;
|
||||
pushSender = null;
|
||||
pushPlayer.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否已经投票了
|
||||
*
|
||||
* @param player 用户名
|
||||
* @return 结果
|
||||
*/
|
||||
public static boolean containVote(String player) {
|
||||
player = player.toLowerCase();
|
||||
return votePlayer.contains(player);
|
||||
}
|
||||
|
||||
public static boolean containPush(String player) {
|
||||
player = player.toLowerCase();
|
||||
return pushPlayer.contains(player);
|
||||
public static VoteItem nextVote() {
|
||||
vote = voteList.poll();
|
||||
return vote;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -231,11 +241,8 @@ public class PlayMusic {
|
||||
}
|
||||
}
|
||||
nowPlayPlayer.clear();
|
||||
votePlayer.clear();
|
||||
pushPlayer.clear();
|
||||
playList.clear();
|
||||
clearVote();
|
||||
clearPush();
|
||||
voteList.clear();
|
||||
|
||||
AllMusic.log.data("歌曲处理线程关闭");
|
||||
}
|
||||
@@ -310,17 +317,6 @@ public class PlayMusic {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将歌曲移动到队列头
|
||||
*/
|
||||
public static void pushMusic() {
|
||||
SongInfoObj obj = push;
|
||||
synchronized (playList) {
|
||||
playList.remove(obj);
|
||||
playList.add(0, obj);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取播放列表长度
|
||||
*
|
||||
@@ -420,11 +416,11 @@ public class PlayMusic {
|
||||
* @return 是否在列表种
|
||||
*/
|
||||
public static boolean haveMusic(String id, String api) {
|
||||
if (nowPlayMusic != null && nowPlayMusic.getID().equalsIgnoreCase(id)
|
||||
if (nowPlayMusic != null && nowPlayMusic.getId().equalsIgnoreCase(id)
|
||||
&& Objects.equals(nowPlayMusic.getApi(), api))
|
||||
return true;
|
||||
for (SongInfoObj item : playList) {
|
||||
if (item.getID().equalsIgnoreCase(id) && Objects.equals(item.getApi(), api)) {
|
||||
if (item.getId().equalsIgnoreCase(id) && Objects.equals(item.getApi(), api)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -438,7 +434,7 @@ public class PlayMusic {
|
||||
* @return 是否超过上限
|
||||
*/
|
||||
public static boolean isPlayerMax(String name) {
|
||||
int list = AllMusic.getConfig().maxPlayerList;
|
||||
int list = AllMusic.getConfig().limit.maxPlayerList;
|
||||
if (list == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.coloryr.allmusic.server.core.objs.music.MusicObj;
|
||||
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
|
||||
import com.coloryr.allmusic.server.core.utils.HudUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -32,7 +31,7 @@ public class PlayRuntime {
|
||||
* 启动歌曲工作
|
||||
*/
|
||||
public static void start() {
|
||||
new Thread(PlayRuntime::musicPlayTask, "allMusic_play").start();
|
||||
new Thread(PlayRuntime::musicPlayTask, "allmusic_play").start();
|
||||
|
||||
service = Executors.newSingleThreadScheduledExecutor();
|
||||
service.scheduleAtFixedRate(PlayRuntime::time1, 0, 10, TimeUnit.MILLISECONDS);
|
||||
@@ -60,6 +59,15 @@ public class PlayRuntime {
|
||||
*/
|
||||
private static void clear() {
|
||||
isPlay = false;
|
||||
|
||||
VoteItem vote = PlayMusic.getVote();
|
||||
if (vote != null && vote.getType() == VoteItem.VoteType.NEXT
|
||||
&& vote.getApi().equalsIgnoreCase(PlayMusic.nowPlayMusic.getApi())
|
||||
&& vote.getId().equalsIgnoreCase(PlayMusic.nowPlayMusic.getId())) {
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().vote.cancel1);
|
||||
PlayMusic.removeVote();
|
||||
}
|
||||
|
||||
PlayMusic.musicNowTime = 0;
|
||||
PlayMusic.musicAllTime = 0;
|
||||
PlayMusic.musicLessTime = 0;
|
||||
@@ -108,32 +116,31 @@ public class PlayRuntime {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean checkPush() {
|
||||
SongInfoObj music = PlayMusic.getPush();
|
||||
if (music != null) {
|
||||
if (PlayMusic.nowPlayMusic.getID().equalsIgnoreCase(music.getID())) {
|
||||
return false;
|
||||
}
|
||||
List<SongInfoObj> list = PlayMusic.getList();
|
||||
if (list.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
SongInfoObj id1 = list.get(0);
|
||||
if (id1 != null && id1.getID().equalsIgnoreCase(music.getID())) {
|
||||
return false;
|
||||
}
|
||||
for (int a = 1; a < list.size(); a++) {
|
||||
id1 = list.get(a);
|
||||
if (id1.getID().equalsIgnoreCase(music.getID()))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
public static int getMiniVote() {
|
||||
return Math.min(AllMusic.getConfig().vote.minVote, AllMusic.side.getPlayers().size());
|
||||
}
|
||||
|
||||
public static int getMiniVote() {
|
||||
return Math.min(AllMusic.getConfig().minVote, AllMusic.side.getPlayers().size());
|
||||
public static boolean checkMusic(String id, String api) {
|
||||
if (PlayMusic.nowPlayMusic.getId().equalsIgnoreCase(id)
|
||||
&& PlayMusic.nowPlayMusic.getApi().equalsIgnoreCase(api)) {
|
||||
return true;
|
||||
}
|
||||
return PlayMusic.getMusic(id, api) != null;
|
||||
}
|
||||
|
||||
private static void sendVoteInfo(boolean timeout) {
|
||||
if (timeout) {
|
||||
VoteItem vote = PlayMusic.getVote();
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().vote.timeOut
|
||||
.replace(ARG.count, String.valueOf(vote.votePlayer.size()))
|
||||
.replace(ARG.countAll, String.valueOf(getMiniVote())));
|
||||
}
|
||||
|
||||
int count = PlayMusic.getVoteCount();
|
||||
if (count > 0) {
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().vote.list
|
||||
.replace(ARG.count, String.valueOf(count)));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,35 +152,46 @@ public class PlayRuntime {
|
||||
if (ping >= 10) {
|
||||
AllMusic.side.ping();
|
||||
}
|
||||
if (PlayMusic.getPushTime() > 0) {
|
||||
if (!checkPush()) {
|
||||
PlayMusic.clearPush();
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().push.cancel);
|
||||
|
||||
VoteItem vote = PlayMusic.getVote();
|
||||
if (vote != null) {
|
||||
PlayMusic.voteTick();
|
||||
if (PlayMusic.getVoteTime() <= 0) {
|
||||
sendVoteInfo(true);
|
||||
PlayMusic.removeVote();
|
||||
} else {
|
||||
PlayMusic.pushTick();
|
||||
if (PlayMusic.getPushTime() == 0) {
|
||||
PlayMusic.clearPush();
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().push.timeOut);
|
||||
} else {
|
||||
if (PlayMusic.getPushCount() >= getMiniVote()) {
|
||||
PlayMusic.pushMusic();
|
||||
PlayMusic.clearPush();
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().push.doPush);
|
||||
}
|
||||
if (PlayMusic.getVote().votePlayer.size() >= getMiniVote()) {
|
||||
sendVoteInfo(false);
|
||||
PlayMusic.doVote();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (PlayMusic.getVoteTime() > 0) {
|
||||
PlayMusic.voteTick();
|
||||
if (PlayMusic.getVoteTime() == 0) {
|
||||
PlayMusic.clearVote();
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().vote.timeOut);
|
||||
} else {
|
||||
if (PlayMusic.getVoteCount() >= getMiniVote()) {
|
||||
PlayMusic.musicLessTime = 0;
|
||||
PlayMusic.clearVote();
|
||||
AllMusic.side.broadcastInTask(AllMusic.getMessage().vote.voteDone);
|
||||
} else {
|
||||
vote = PlayMusic.nextVote();
|
||||
if (vote != null) {
|
||||
if (vote.getType() == VoteItem.VoteType.NEXT) {
|
||||
String data = AllMusic.getMessage().vote.bq;
|
||||
data = data.replace(ARG.player, vote.getVoteSender())
|
||||
.replace(ARG.time, String.valueOf(AllMusic.getConfig().vote.voteTime))
|
||||
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
|
||||
AllMusic.side.broadcast(data);
|
||||
AllMusic.side.broadcast(AllMusic.side.miniMessage(AllMusic.getMessage().vote.bq1)
|
||||
.append(AllMusic.side.miniMessageRun(AllMusic.getMessage().vote.bq2, "/music agree")));
|
||||
} else if (vote.getType() == VoteItem.VoteType.PUSH) {
|
||||
SongInfoObj music = PlayMusic.getMusic(vote.getId(), vote.getApi());
|
||||
if (music == null) {
|
||||
AllMusic.side.broadcast(AllMusic.getMessage().push.err4);
|
||||
PlayMusic.removeVote();
|
||||
return;
|
||||
}
|
||||
String data = AllMusic.getMessage().push.bq;
|
||||
data = data.replace(ARG.player, vote.getVoteSender())
|
||||
.replace(ARG.time, String.valueOf(AllMusic.getConfig().vote.voteTime))
|
||||
.replace(ARG.musicName, music.getName())
|
||||
.replace(ARG.musicAuthor, music.getAuthor())
|
||||
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
|
||||
AllMusic.side.broadcast(data);
|
||||
AllMusic.side.broadcast(AllMusic.side.miniMessage(AllMusic.getMessage().push.bq1)
|
||||
.append(AllMusic.side.miniMessageRun(AllMusic.getMessage().push.bq2, "/music agree")));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -187,8 +205,9 @@ public class PlayRuntime {
|
||||
while (AllMusic.isRun) {
|
||||
try {
|
||||
if (PlayMusic.getListSize() == 0) {
|
||||
Thread.sleep(1000);
|
||||
if (PlayMusic.error >= 10) {
|
||||
Thread.sleep(1000);
|
||||
Thread.sleep(10000);
|
||||
} else if (AllMusic.side.needPlay(true) && PlayMusic.getIdleListSize() > 0) {
|
||||
MusicObj music = PlayMusic.getIdleMusic();
|
||||
if (music != null) {
|
||||
@@ -198,7 +217,6 @@ public class PlayRuntime {
|
||||
}
|
||||
}
|
||||
}
|
||||
Thread.sleep(1000);
|
||||
} else {
|
||||
HudUtils.sendClearHud();
|
||||
HudUtils.sendHudNowData();
|
||||
@@ -214,17 +232,17 @@ public class PlayRuntime {
|
||||
IMusicApi api = AllMusic.MUSIC_APIS.get(PlayMusic.nowPlayMusic.getApi());
|
||||
|
||||
PlayMusic.url = PlayMusic.nowPlayMusic.getPlayerUrl() == null ?
|
||||
api.getPlayUrl(PlayMusic.nowPlayMusic.getID()) :
|
||||
api.getPlayUrl(PlayMusic.nowPlayMusic.getId()) :
|
||||
PlayMusic.nowPlayMusic.getPlayerUrl();
|
||||
if (PlayMusic.url == null) {
|
||||
String data = AllMusic.getMessage().musicPlay.emptyCanPlay;
|
||||
AllMusic.side.broadcastInTask(data.replace(ARG.musicId, PlayMusic.nowPlayMusic.getID()));
|
||||
AllMusic.side.broadcastInTask(data.replace(ARG.musicId, PlayMusic.nowPlayMusic.getId()));
|
||||
PlayMusic.nowPlayMusic = null;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (PlayMusic.nowPlayMusic.getPlayerUrl() == null)
|
||||
PlayMusic.lyric = api.getLyric(PlayMusic.nowPlayMusic.getID());
|
||||
PlayMusic.lyric = api.getLyric(PlayMusic.nowPlayMusic.getId());
|
||||
else
|
||||
PlayMusic.lyric = new LyricSave();
|
||||
|
||||
@@ -274,7 +292,7 @@ public class PlayRuntime {
|
||||
AllMusic.side.sendStop();
|
||||
} else {
|
||||
String data = AllMusic.getMessage().musicPlay.emptyCanPlay;
|
||||
AllMusic.side.broadcastInTask(data.replace(ARG.musicId, PlayMusic.nowPlayMusic.getID()));
|
||||
AllMusic.side.broadcastInTask(data.replace(ARG.musicId, PlayMusic.nowPlayMusic.getId()));
|
||||
}
|
||||
clear();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.coloryr.allmusic.server.core.music;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class VoteItem {
|
||||
public enum VoteType {
|
||||
NEXT, PUSH
|
||||
}
|
||||
|
||||
public final Set<String> votePlayer = new HashSet<>();
|
||||
|
||||
private final String api;
|
||||
private final String id;
|
||||
private final VoteType type;
|
||||
private final String voteSender;
|
||||
|
||||
public String getVoteSender() {
|
||||
return voteSender;
|
||||
}
|
||||
|
||||
public VoteType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getApi() {
|
||||
return api;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public VoteItem(String api, String id, String voteSender, VoteType type) {
|
||||
this.api = api;
|
||||
this.id = id;
|
||||
this.type = type;
|
||||
this.voteSender = voteSender;
|
||||
}
|
||||
}
|
||||
@@ -11,22 +11,6 @@ import java.util.Set;
|
||||
* 配置文件对象
|
||||
*/
|
||||
public class ConfigObj {
|
||||
/**
|
||||
* 最大歌曲数
|
||||
*/
|
||||
public int maxPlayList;
|
||||
/**
|
||||
* 一个玩家最大可点数量
|
||||
*/
|
||||
public int maxPlayerList;
|
||||
/**
|
||||
* 最小通过投票数
|
||||
*/
|
||||
public int minVote;
|
||||
/**
|
||||
* 投票时间
|
||||
*/
|
||||
public int voteTime;
|
||||
/**
|
||||
* 歌曲延迟
|
||||
*/
|
||||
@@ -103,6 +87,10 @@ public class ConfigObj {
|
||||
* 花费点歌
|
||||
*/
|
||||
public CostObj cost;
|
||||
/**
|
||||
* 投票配置
|
||||
*/
|
||||
public VoteObj vote;
|
||||
/**
|
||||
* 默认音乐API
|
||||
*/
|
||||
@@ -153,6 +141,10 @@ public class ConfigObj {
|
||||
saveConfig = true;
|
||||
cost = CostObj.make();
|
||||
}
|
||||
if (vote == null) {
|
||||
saveConfig = true;
|
||||
vote = VoteObj.make();
|
||||
}
|
||||
if (lyricReplace == null) {
|
||||
saveConfig = true;
|
||||
lyricReplace = new HashMap<>();
|
||||
@@ -162,11 +154,7 @@ public class ConfigObj {
|
||||
}
|
||||
|
||||
public void init() {
|
||||
maxPlayerList = 0;
|
||||
fixSongTime = 0;
|
||||
maxPlayList = 10;
|
||||
minVote = 3;
|
||||
voteTime = 30;
|
||||
adminList = new HashSet<>();
|
||||
adminList.add("color_yr");
|
||||
playListSwitch = true;
|
||||
@@ -184,6 +172,7 @@ public class ConfigObj {
|
||||
economy = EconomyObj.make();
|
||||
funConfig = FunConfigObj.make();
|
||||
cost = CostObj.make();
|
||||
vote = VoteObj.make();
|
||||
ktvMode = true;
|
||||
ktvLyricDelay = 0;
|
||||
lyricDelay = 0;
|
||||
|
||||
@@ -37,6 +37,14 @@ public class LimitObj {
|
||||
* 长度替换符号
|
||||
*/
|
||||
public String limitText;
|
||||
/**
|
||||
* 最大歌曲数
|
||||
*/
|
||||
public int maxPlayList;
|
||||
/**
|
||||
* 一个玩家最大可点数量
|
||||
*/
|
||||
public int maxPlayerList;
|
||||
|
||||
public static LimitObj make() {
|
||||
LimitObj obj = new LimitObj();
|
||||
@@ -48,6 +56,8 @@ public class LimitObj {
|
||||
obj.listLimitSize = 10;
|
||||
obj.messageLimit = false;
|
||||
obj.messageLimitSize = 20;
|
||||
obj.maxPlayList = 10;
|
||||
obj.maxPlayerList = 10;
|
||||
obj.limitText = "...";
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.coloryr.allmusic.server.core.objs.config;
|
||||
|
||||
public class VoteObj {
|
||||
/**
|
||||
* 最小通过投票数
|
||||
*/
|
||||
public int minVote;
|
||||
/**
|
||||
* 投票时间
|
||||
*/
|
||||
public int voteTime;
|
||||
/**
|
||||
* 投票队列最大大小
|
||||
*/
|
||||
public int voteListSize;
|
||||
|
||||
public static VoteObj make() {
|
||||
VoteObj obj = new VoteObj();
|
||||
obj.minVote = 3;
|
||||
obj.voteTime = 30;
|
||||
obj.voteListSize = 10;
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ public class HelpNormalObj {
|
||||
public String cancel;
|
||||
public String vote;
|
||||
public String vote1;
|
||||
public String agree;
|
||||
public String push;
|
||||
public String push1;
|
||||
public String mute;
|
||||
@@ -98,6 +99,8 @@ public class HelpNormalObj {
|
||||
return true;
|
||||
if (hud14 == null)
|
||||
return true;
|
||||
if (agree == null)
|
||||
return true;
|
||||
return hud5 == null;
|
||||
}
|
||||
|
||||
@@ -162,5 +165,7 @@ public class HelpNormalObj {
|
||||
hud5 = "<light_purple>[AllMusic]<yellow>/music hud pic speed [数值] 设置图片旋转速度";
|
||||
if (join == null)
|
||||
join = "<light_purple>[AllMusic]<yellow>/music join 重新播放当前歌曲";
|
||||
if (agree == null)
|
||||
join = "<light_purple>[AllMusic]<yellow>/music agree 同意当前的投票";
|
||||
}
|
||||
}
|
||||
@@ -6,19 +6,16 @@ public class PushObj {
|
||||
public String bq;
|
||||
public String bq1;
|
||||
public String bq2;
|
||||
public String agree;
|
||||
public String bqAgree;
|
||||
public String arAgree;
|
||||
public String timeOut;
|
||||
public String doPush;
|
||||
public String noId;
|
||||
public String noId1;
|
||||
public String idErr;
|
||||
public String pushErr;
|
||||
public String cancel;
|
||||
public String cancel1;
|
||||
public String err1;
|
||||
public String err2;
|
||||
public String err3;
|
||||
public String err4;
|
||||
public String err5;
|
||||
|
||||
public static PushObj make() {
|
||||
PushObj obj = new PushObj();
|
||||
@@ -38,30 +35,24 @@ public class PushObj {
|
||||
return true;
|
||||
if (bq2 == null)
|
||||
return true;
|
||||
if (agree == null)
|
||||
return true;
|
||||
if (bqAgree == null)
|
||||
return true;
|
||||
if (arAgree == null)
|
||||
return true;
|
||||
if (timeOut == null)
|
||||
return true;
|
||||
if (noId == null)
|
||||
return true;
|
||||
if (noId1 == null)
|
||||
return true;
|
||||
if (idErr == null)
|
||||
return true;
|
||||
if (pushErr == null)
|
||||
return true;
|
||||
if (cancel == null)
|
||||
return true;
|
||||
if (err1 == null)
|
||||
return true;
|
||||
if (err2 == null)
|
||||
return true;
|
||||
if (err3 == null)
|
||||
return true;
|
||||
if (err4 == null)
|
||||
return true;
|
||||
if (err5 == null)
|
||||
return true;
|
||||
if (cancel1 == null)
|
||||
return true;
|
||||
return doPush == null;
|
||||
}
|
||||
|
||||
@@ -76,31 +67,23 @@ public class PushObj {
|
||||
bq1 = "<light_purple>[AllMusic]<yellow>或者点击 ";
|
||||
if (bq2 == null)
|
||||
bq2 = "<green><underlined>同意插歌";
|
||||
if (agree == null)
|
||||
agree = "<light_purple>[AllMusic]<yellow>你同意插歌";
|
||||
if (bqAgree == null)
|
||||
bqAgree = "<light_purple>[AllMusic]<yellow>" + ARG.player + "同意插歌,共有" + ARG.count + "名玩家同意插歌,需要至少" + ARG.countAll + "名玩家同意才会插歌。";
|
||||
if (arAgree == null)
|
||||
arAgree = "<light_purple>[AllMusic]<yellow>你已申请插歌";
|
||||
if (timeOut == null)
|
||||
timeOut = "<light_purple>[AllMusic]<yellow>插歌时间结束";
|
||||
if (doPush == null)
|
||||
doPush = "<light_purple>[AllMusic]<yellow>播放顺序已调整";
|
||||
if (noId == null)
|
||||
noId = "<light_purple>[AllMusic]<red>没有找到你的点歌";
|
||||
if (noId1 == null)
|
||||
noId1 = "<light_purple>[AllMusic]<red>没有找到序号为" + ARG.index + "的点歌";
|
||||
if (idErr == null)
|
||||
idErr = "<light_purple>[AllMusic]<red>错误的歌曲序号";
|
||||
if (pushErr == null)
|
||||
pushErr = "<light_purple>[AllMusic]<red>这首歌已经是下一首播放了";
|
||||
if (err1 == null)
|
||||
err1 = "<light_purple>[AllMusic]<red>你没有发起插歌";
|
||||
if (err2 == null)
|
||||
err2 = "<light_purple>[AllMusic]<red>你发起的插歌已超时";
|
||||
if (err3 == null)
|
||||
err3 = "<light_purple>[AllMusic]<red>发起失败,已经有人发起了插歌投票";
|
||||
if (err4 == null)
|
||||
err4 = "<light_purple>[AllMusic]<red>切歌投票跳过不存在的音乐投票";
|
||||
if (err5 == null)
|
||||
err5 = "<light_purple>[AllMusic]<red>你已经申请过切歌了,不能再继续申请";
|
||||
if (cancel == null)
|
||||
cancel = "<light_purple>[AllMusic]<yellow>插歌投票已被发起者取消";
|
||||
if (cancel1 == null)
|
||||
cancel1 = "<light_purple>[AllMusic]<yellow>已删除你发起的投票";
|
||||
}
|
||||
}
|
||||
@@ -10,11 +10,14 @@ public class VoteObj {
|
||||
public String bqAgree;
|
||||
public String arAgree;
|
||||
public String timeOut;
|
||||
public String voteDone;
|
||||
public String next;
|
||||
public String err1;
|
||||
public String err2;
|
||||
public String err3;
|
||||
public String err4;
|
||||
public String err5;
|
||||
public String cancel;
|
||||
public String cancel1;
|
||||
public String list;
|
||||
|
||||
public static VoteObj make() {
|
||||
VoteObj obj = new VoteObj();
|
||||
@@ -44,13 +47,19 @@ public class VoteObj {
|
||||
return true;
|
||||
if (err1 == null)
|
||||
return true;
|
||||
if (err2 == null)
|
||||
return true;
|
||||
if (err3 == null)
|
||||
return true;
|
||||
if (err4 == null)
|
||||
return true;
|
||||
if (err5 == null)
|
||||
return true;
|
||||
if (cancel == null)
|
||||
return true;
|
||||
return voteDone == null;
|
||||
if (cancel1 == null)
|
||||
return true;
|
||||
if (list == null)
|
||||
return true;
|
||||
return next == null;
|
||||
}
|
||||
|
||||
public void init() {
|
||||
@@ -59,7 +68,7 @@ public class VoteObj {
|
||||
if (doVote == null)
|
||||
doVote = "<light_purple>[AllMusic]<yellow>已发起切歌投票";
|
||||
if (bq == null)
|
||||
bq = "<light_purple>[AllMusic]<yellow>" + ARG.player + "发起了切歌投票," + ARG.time + "秒后结束,输入/music vote 同意切歌,需要至少" + ARG.countAll + "名玩家同意才会切歌。";
|
||||
bq = "<light_purple>[AllMusic]<yellow>" + ARG.player + "发起了切歌投票," + ARG.time + "秒后结束,输入/music agree 同意切歌,需要至少" + ARG.countAll + "名玩家同意才会切歌。";
|
||||
if (bq1 == null)
|
||||
bq1 = "<light_purple>[AllMusic]<yellow>或者点击 ";
|
||||
if (bq2 == null)
|
||||
@@ -67,20 +76,26 @@ public class VoteObj {
|
||||
if (agree == null)
|
||||
agree = "<light_purple>[AllMusic]<yellow>你同意切歌";
|
||||
if (bqAgree == null)
|
||||
bqAgree = "<light_purple>[AllMusic]<yellow>" + ARG.player + "同意切歌,共有" + ARG.count + "名玩家同意切歌,需要至少" + ARG.countAll + "名玩家同意才会切歌。";
|
||||
bqAgree = "<light_purple>[AllMusic]<yellow>" + ARG.player + "同意投票,共有" + ARG.count + "名玩家同意投票,需要至少" + ARG.countAll + "名玩家同意才会通过。";
|
||||
if (arAgree == null)
|
||||
arAgree = "<light_purple>[AllMusic]<yellow>你已申请切歌";
|
||||
if (timeOut == null)
|
||||
timeOut = "<light_purple>[AllMusic]<yellow>切歌时间结束";
|
||||
timeOut = "<light_purple>[AllMusic]<yellow>投票时间结束,共有" + ARG.count + "同意,需要" + ARG.countAll + "才能通过";
|
||||
if (err1 == null)
|
||||
err1 = "<light_purple>[AllMusic]<red>你没有发起切歌";
|
||||
if (err2 == null)
|
||||
err2 = "<light_purple>[AllMusic]<red>你发起的切歌已超时";
|
||||
err1 = "<light_purple>[AllMusic]<red>你没有发起过切歌投票";
|
||||
if (err3 == null)
|
||||
err3 = "<light_purple>[AllMusic]<red>已经有人发起了切歌";
|
||||
if (voteDone == null)
|
||||
voteDone = "<light_purple>[AllMusic]<yellow>已切歌";
|
||||
err3 = "<light_purple>[AllMusic]<red>这首歌已经在投票中了";
|
||||
if (err4 == null)
|
||||
err4 = "<light_purple>[AllMusic]<red>当前没有进行中的投票";
|
||||
if (err5 == null)
|
||||
err5 = "<light_purple>[AllMusic]<red>你已经通过了当前投票";
|
||||
if (next == null)
|
||||
next = "<light_purple>[AllMusic]<yellow>已切换到播放下一首歌";
|
||||
if (cancel == null)
|
||||
cancel = "<light_purple>[AllMusic]<yellow>切歌投票已被发起者取消";
|
||||
if (cancel1 == null)
|
||||
cancel1 = "<light_purple>[AllMusic]<yellow>歌曲结束,切歌投票终止";
|
||||
if (list == null)
|
||||
list = "<light_purple>[AllMusic]<yellow>剩余" + ARG.count + "个投票";
|
||||
}
|
||||
}
|
||||
@@ -128,7 +128,7 @@ public class SongInfoObj {
|
||||
name = info;
|
||||
}
|
||||
|
||||
public String getID() {
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user