Files
AllMusic/core/command/CommandPush.java
T

114 lines
4.8 KiB
Java
Raw Normal View History

2024-04-19 09:46:54 +08:00
package com.coloryr.allmusic.server.core.command;
2024-04-17 22:15:12 +08:00
2024-04-19 09:46:54 +08:00
import com.coloryr.allmusic.server.core.AllMusic;
import com.coloryr.allmusic.server.core.music.play.PlayMusic;
2024-06-21 11:06:14 +08:00
import com.coloryr.allmusic.server.core.objs.message.PAL;
2024-04-19 09:46:54 +08:00
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
2025-03-24 18:20:45 +08:00
import com.coloryr.allmusic.server.core.sql.DataSql;
2024-04-17 22:15:12 +08:00
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CommandPush extends ACommand {
@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 &&
2024-05-17 09:04:46 +08:00
!AllMusic.side.checkPermission(name, "allmusic.push")) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.noPermission);
return;
}
if (PlayMusic.getListSize() == 0 && PlayMusic.getIdleListSize() == 0) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.emptyPlay);
}
2024-08-16 18:49:30 +08:00
SongInfoObj music = null;
2024-04-17 22:15:12 +08:00
if (args.length == 1) {
2024-08-16 18:49:30 +08:00
music = PlayMusic.findPlayerMusic(name);
if (music == null) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.noId);
return;
}
SongInfoObj id1 = PlayMusic.findMusicIndex(1);
2024-08-16 18:49:30 +08:00
if (id1 != null && id1.getID().equalsIgnoreCase(music.getID())) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.pushErr);
return;
}
} else if (args.length == 2) {
if (args[1].equalsIgnoreCase("cancel")) {
2024-08-16 18:49:30 +08:00
if (!name.equalsIgnoreCase(PlayMusic.getPushSender())) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err1);
return;
}
2024-08-16 18:49:30 +08:00
if (PlayMusic.getPushTime() <= 0) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err2);
return;
}
2024-08-16 18:49:30 +08:00
PlayMusic.clearPush();
2025-01-19 22:51:01 +08:00
AllMusic.side.broadcast(AllMusic.getMessage().push.cancel);
2024-04-17 22:15:12 +08:00
return;
} else {
try {
int index = Integer.parseInt(args[1]);
2024-08-16 18:49:30 +08:00
music = PlayMusic.findMusicIndex(index);
2024-04-17 22:15:12 +08:00
} catch (Exception e) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.noId);
return;
}
2024-08-16 18:49:30 +08:00
if (music == null) {
2024-06-21 11:06:14 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.noId1.replace(PAL.index, args[1]));
2024-04-17 22:15:12 +08:00
return;
}
}
} else if (args.length > 2) {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error);
return;
}
2024-08-16 18:49:30 +08:00
if (PlayMusic.getPushTime() <= 0) {
if (music == null) {
2024-04-17 22:15:12 +08:00
return;
}
2024-08-16 18:49:30 +08:00
PlayMusic.startPush(name, music);
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.doVote);
String data = AllMusic.getMessage().push.bq;
2025-01-19 22:51:01 +08:00
AllMusic.side.broadcast(data
2024-06-21 11:06:14 +08:00
.replace(PAL.player, name)
.replace(PAL.time, String.valueOf(AllMusic.getConfig().voteTime))
2024-08-16 18:49:30 +08:00
.replace(PAL.musicName, music.getName())
.replace(PAL.musicAuthor, music.getAuthor()));
2025-01-19 22:51:01 +08:00
AllMusic.side.broadcastWithRun(AllMusic.getMessage().push.bq1, AllMusic.getMessage().push.bq2, "/music push");
2024-04-17 22:15:12 +08:00
} else {
2024-08-16 18:49:30 +08:00
if (music != null) {
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.err3);
return;
}
2024-08-16 18:49:30 +08:00
if (!PlayMusic.containPush(name)) {
PlayMusic.addPush(name);
2024-04-17 22:15:12 +08:00
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.agree);
String data = AllMusic.getMessage().push.bqAgree;
2024-06-21 11:06:14 +08:00
data = data.replace(PAL.player, name)
2024-08-16 18:49:30 +08:00
.replace(PAL.count, String.valueOf(PlayMusic.getVoteCount()));
2025-01-19 22:51:01 +08:00
AllMusic.side.broadcast(data);
2024-04-17 22:15:12 +08:00
} else {
AllMusic.side.sendMessage(sender, AllMusic.getMessage().push.arAgree);
}
}
2025-03-24 18:20:45 +08:00
DataSql.removeMutePlayer(name);
2024-04-17 22:15:12 +08:00
}
@Override
2025-03-09 21:24:18 +08:00
public List<String> tab(Object player, String name, String[] args, int index) {
2024-04-17 22:15:12 +08:00
if (args.length == 1 || (args.length == 2 && args[1].isEmpty())) {
List<String> list = new ArrayList<>();
List<SongInfoObj> list1 = PlayMusic.getList();
for (int a = 1; a < list1.size(); a++) {
SongInfoObj item = list1.get(a);
if (item.getCall().equalsIgnoreCase(name)) {
list.add(String.valueOf(a));
}
}
return list;
}
return Collections.emptyList();
}
}