mirror of
https://github.com/Coloryr/AllMusic.git
synced 2026-11-08 18:54:44 +00:00
Merge pull request #133 from hutuyee/main
support bungeeocrd & fix forge 1.12.2 some bug
This commit is contained in:
14 files changed
+628
-3
No files matched your search
@@ -1,3 +1,5 @@
|
||||
import com.gtnewhorizons.retrofuturagradle.mcp.ReobfuscatedJar
|
||||
|
||||
plugins {
|
||||
id("com.gtnewhorizons.retrofuturagradle") version "2.0.2"
|
||||
}
|
||||
@@ -22,12 +24,16 @@ tasks {
|
||||
|
||||
shadowJar {
|
||||
archiveFileName.set("[forge-1.12.2]AllMusic_Client-${project.version}.jar")
|
||||
}
|
||||
|
||||
val reobfShadowJar = named<ReobfuscatedJar>("reobfShadowJar") {
|
||||
archiveFileName.set("[forge-1.12.2]AllMusic_Client-${project.version}.jar")
|
||||
destinationDirectory.set(file("${parent!!.projectDir}/../build"))
|
||||
}
|
||||
|
||||
configurations.shadow.get().setExtendsFrom(listOf(configurations.named("shadowImplementation").get()))
|
||||
|
||||
build {
|
||||
dependsOn(shadowJar)
|
||||
dependsOn(reobfShadowJar)
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||
import net.minecraftforge.client.event.sound.PlaySoundEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.event.FMLLoadCompleteEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
@@ -71,6 +72,11 @@ public class AllMusicClient implements AllMusicBridge {
|
||||
}
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
public void loadComplete(final FMLLoadCompleteEvent event) {
|
||||
AllMusicCore.renderInit();
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onSound(final PlaySoundEvent e) {
|
||||
if (!AllMusicCore.isPlay()) return;
|
||||
|
||||
@@ -32,7 +32,7 @@ public class PicRender extends PictureFrameBuffer {
|
||||
image.getRGB(0, 0, image.getWidth(), image.getHeight(), sourceTexture.getTextureData(), 0, image.getWidth());
|
||||
sourceTexture.updateDynamicTexture();
|
||||
|
||||
stream = new ByteArrayInputStream(source);
|
||||
stream = new ByteArrayInputStream(rotate);
|
||||
image = ImageIO.read(stream);
|
||||
image.getRGB(0, 0, image.getWidth(), image.getHeight(), rotateTexture.getTextureData(), 0, image.getWidth());
|
||||
rotateTexture.updateDynamicTexture();
|
||||
|
||||
@@ -138,7 +138,7 @@ public class TexRender extends TextureRender {
|
||||
float y1 = h1;
|
||||
float z = 0;
|
||||
float u0 = 0;
|
||||
float u1 = width;
|
||||
float u1 = 1;
|
||||
float v0 = 0;
|
||||
float v1 = 1;
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
repositories {
|
||||
maven("https://libraries.minecraft.net/")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("net.md-5:bungeecord-api:1.21-R0.4")
|
||||
|
||||
shadowImplementation("net.kyori:adventure-platform-bungeecord:4.4.1") {
|
||||
exclude(group = "net.md-5", module = "bungeecord-api")
|
||||
}
|
||||
shadowImplementation("net.kyori:adventure-text-minimessage:${Versions.minimessage}")
|
||||
shadowImplementation("net.kyori:adventure-api:${Versions.minimessage}")
|
||||
shadowImplementation("net.kyori:adventure-text-serializer-gson:${Versions.minimessage}")
|
||||
shadowImplementation("net.kyori:adventure-text-serializer-legacy:${Versions.minimessage}")
|
||||
shadowImplementation("net.kyori:adventure-text-serializer-plain:${Versions.minimessage}")
|
||||
shadowImplementation("net.kyori:adventure-key:${Versions.minimessage}")
|
||||
}
|
||||
|
||||
tasks {
|
||||
processResources {
|
||||
filesMatching("bungee.yml") {
|
||||
expand(
|
||||
"version" to project.version
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
shadowJar {
|
||||
archiveFileName.set("[bungeecord]AllMusic_Server-${project.version}.jar")
|
||||
destinationDirectory.set(file("${parent!!.projectDir}/../build"))
|
||||
|
||||
relocate("net.kyori", "com.coloryr.allmusic.libs.net.kyori")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.coloryr.allmusic.server;
|
||||
|
||||
import com.coloryr.allmusic.server.core.AllMusic;
|
||||
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
|
||||
import net.md_5.bungee.api.ProxyServer;
|
||||
import net.md_5.bungee.api.plugin.Plugin;
|
||||
|
||||
public class AllMusicBungee extends Plugin {
|
||||
public static AllMusicBungee plugin;
|
||||
public static BungeeAudiences adventure;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
plugin = this;
|
||||
adventure = BungeeAudiences.create(this);
|
||||
AllMusic.log = new LogBungee();
|
||||
SideBungee side = new SideBungee();
|
||||
AllMusic.side = side;
|
||||
AllMusic.economy = side;
|
||||
|
||||
AllMusic.init(getDataFolder());
|
||||
if (!AllMusic.isRun) {
|
||||
return;
|
||||
}
|
||||
|
||||
ProxyServer proxy = ProxyServer.getInstance();
|
||||
proxy.registerChannel(AllMusic.channelBC);
|
||||
proxy.getPluginManager().registerCommand(this, new CommandBungee());
|
||||
proxy.getPluginManager().registerListener(this, new ListenerBungee());
|
||||
|
||||
AllMusic.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
AllMusic.stop();
|
||||
if (adventure != null) {
|
||||
adventure.close();
|
||||
adventure = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.coloryr.allmusic.server;
|
||||
|
||||
import com.coloryr.allmusic.server.core.command.CommandEX;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
import net.md_5.bungee.api.plugin.TabExecutor;
|
||||
|
||||
public class CommandBungee extends Command implements TabExecutor {
|
||||
public CommandBungee() {
|
||||
super("music");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
CommandEX.execute(sender, sender.getName(), args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<String> onTabComplete(CommandSender sender, String[] args) {
|
||||
return CommandEX.getTabList(sender, sender.getName(), args);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.coloryr.allmusic.server;
|
||||
|
||||
import com.coloryr.allmusic.server.core.AllMusic;
|
||||
import com.coloryr.allmusic.server.core.music.PlayMusic;
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
import com.google.common.io.ByteStreams;
|
||||
import net.md_5.bungee.api.connection.Server;
|
||||
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
|
||||
import net.md_5.bungee.api.event.PluginMessageEvent;
|
||||
import net.md_5.bungee.api.event.ServerConnectedEvent;
|
||||
import net.md_5.bungee.api.plugin.Listener;
|
||||
import net.md_5.bungee.event.EventHandler;
|
||||
|
||||
public class ListenerBungee implements Listener {
|
||||
@EventHandler
|
||||
public void onPlayerDisconnectEvent(PlayerDisconnectEvent event) {
|
||||
PlayMusic.removeNowPlayPlayer(event.getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onServerConnectedEvent(ServerConnectedEvent event) {
|
||||
AllMusic.joinPlay(event.getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPluginMessageEvent(PluginMessageEvent event) {
|
||||
if (!event.getTag().equals(AllMusic.channelBC)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
ByteArrayDataInput data = ByteStreams.newDataInput(event.getData());
|
||||
int type = data.readInt();
|
||||
if (type == 255 && event.getSender() instanceof Server) {
|
||||
Server server = (Server) event.getSender();
|
||||
SideBungee.TopServers.add(server);
|
||||
SideBungee.sendAllToServer(server);
|
||||
SideBungee.sendLyricToServer(server);
|
||||
} else if (type == 12 || type == 13) {
|
||||
String uuid = data.readUTF();
|
||||
int res = data.readInt();
|
||||
SideBungee.SendToBackend.put(uuid, res);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.coloryr.allmusic.server;
|
||||
|
||||
import com.coloryr.allmusic.server.core.side.IAllMusicLogger;
|
||||
import net.kyori.adventure.text.Component;
|
||||
|
||||
public class LogBungee implements IAllMusicLogger {
|
||||
@Override
|
||||
public void data(Component data) {
|
||||
AllMusicBungee.adventure.console().sendMessage(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,376 @@
|
||||
package com.coloryr.allmusic.server;
|
||||
|
||||
import com.coloryr.allmusic.codec.MusicPack;
|
||||
import com.coloryr.allmusic.codec.MusicPacketCodec;
|
||||
import com.coloryr.allmusic.server.core.AllMusic;
|
||||
import com.coloryr.allmusic.server.core.IEconomy;
|
||||
import com.coloryr.allmusic.server.core.music.PlayMusic;
|
||||
import com.coloryr.allmusic.server.core.objs.music.PlayerAddMusicObj;
|
||||
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
|
||||
import com.coloryr.allmusic.server.core.side.BaseSide;
|
||||
import com.coloryr.allmusic.server.event.MusicAddEvent;
|
||||
import com.coloryr.allmusic.server.event.MusicPlayEvent;
|
||||
import com.google.common.io.ByteArrayDataOutput;
|
||||
import com.google.common.io.ByteStreams;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.event.ClickEvent;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.ProxyServer;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import net.md_5.bungee.api.connection.Server;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArraySet;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class SideBungee extends BaseSide implements IEconomy {
|
||||
public static final Set<Server> TopServers = new CopyOnWriteArraySet<>();
|
||||
|
||||
public static final Map<String, Integer> SendToBackend = new ConcurrentHashMap<>();
|
||||
|
||||
public static void sendAllToServer(Server server) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeInt(0);
|
||||
if (PlayMusic.nowPlayMusic == null) {
|
||||
out.writeUTF(AllMusic.getMessage().papi.emptyMusic);
|
||||
} else {
|
||||
out.writeUTF(PlayMusic.nowPlayMusic.getName());
|
||||
}
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
out = ByteStreams.newDataOutput();
|
||||
out.writeInt(1);
|
||||
if (PlayMusic.nowPlayMusic == null) {
|
||||
out.writeUTF("");
|
||||
} else {
|
||||
out.writeUTF(PlayMusic.nowPlayMusic.getAl());
|
||||
}
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
out = ByteStreams.newDataOutput();
|
||||
out.writeInt(2);
|
||||
if (PlayMusic.nowPlayMusic == null) {
|
||||
out.writeUTF("");
|
||||
} else {
|
||||
out.writeUTF(PlayMusic.nowPlayMusic.getAlia());
|
||||
}
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
out = ByteStreams.newDataOutput();
|
||||
out.writeInt(3);
|
||||
if (PlayMusic.nowPlayMusic == null) {
|
||||
out.writeUTF("");
|
||||
} else {
|
||||
out.writeUTF(PlayMusic.nowPlayMusic.getAuthor());
|
||||
}
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
out = ByteStreams.newDataOutput();
|
||||
out.writeInt(4);
|
||||
if (PlayMusic.nowPlayMusic == null) {
|
||||
out.writeUTF("");
|
||||
} else {
|
||||
out.writeUTF(PlayMusic.nowPlayMusic.getCall());
|
||||
}
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
out = ByteStreams.newDataOutput();
|
||||
out.writeInt(5);
|
||||
out.writeInt(PlayMusic.getListSize());
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
out = ByteStreams.newDataOutput();
|
||||
out.writeInt(6);
|
||||
out.writeUTF(PlayMusic.getAllList());
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
}
|
||||
|
||||
public static void sendLyricToServer(Server server) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeInt(7);
|
||||
if (PlayMusic.lyric == null) {
|
||||
out.writeUTF("");
|
||||
} else {
|
||||
out.writeUTF(PlayMusic.lyric.getLyric());
|
||||
}
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
out = ByteStreams.newDataOutput();
|
||||
out.writeInt(8);
|
||||
if (PlayMusic.lyric == null || PlayMusic.lyric.getTlyric() == null) {
|
||||
out.writeUTF("");
|
||||
} else {
|
||||
out.writeUTF(PlayMusic.lyric.getTlyric());
|
||||
}
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
out = ByteStreams.newDataOutput();
|
||||
out.writeInt(9);
|
||||
out.writeBoolean(PlayMusic.lyric != null && PlayMusic.lyric.getTlyric() != null);
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void broadcast(Component data) {
|
||||
for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) {
|
||||
if (skip(player)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
AllMusicBungee.adventure.player(player).sendMessage(data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needPlay(boolean islist) {
|
||||
for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) {
|
||||
String server = player.getServer() == null ? null : player.getServer().getInfo().getName();
|
||||
if (!AllMusic.isSkip(player.getName(), server, false, islist)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<?> getPlayers() {
|
||||
return ProxyServer.getInstance().getPlayers();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPlayerName(Object player) {
|
||||
if (player instanceof ProxiedPlayer) {
|
||||
return ((ProxiedPlayer) player).getName();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPlayerServer(Object player) {
|
||||
if (player instanceof ProxiedPlayer) {
|
||||
Server server = ((ProxiedPlayer) player).getServer();
|
||||
if (server != null) {
|
||||
return server.getInfo().getName();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void send(Object player, MusicPack pack) {
|
||||
if (player instanceof ProxiedPlayer) {
|
||||
send((ProxiedPlayer) player, MusicPacketCodec.pack(pack));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPlayer(String player) {
|
||||
return ProxyServer.getInstance().getPlayer(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendBar(Object player, Component data) {
|
||||
if (player instanceof ProxiedPlayer) {
|
||||
AllMusicBungee.adventure.player((ProxiedPlayer) player).sendActionBar(data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getFolder() {
|
||||
return AllMusicBungee.plugin.getDataFolder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(Object obj, Component message) {
|
||||
if (obj instanceof CommandSender) {
|
||||
AllMusicBungee.adventure.sender((CommandSender) obj).sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void runTask(Runnable run) {
|
||||
ProxyServer.getInstance().getScheduler().runAsync(AllMusicBungee.plugin, run);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPermission(Object player, String permission) {
|
||||
if (checkPermission(player)) {
|
||||
return true;
|
||||
}
|
||||
if (player instanceof CommandSender) {
|
||||
return ((CommandSender) player).hasPermission(permission);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPermission(Object player) {
|
||||
return player == ProxyServer.getInstance().getConsole();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayer(Object source) {
|
||||
return source instanceof ProxiedPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void runTask(Runnable run, int delay) {
|
||||
ProxyServer.getInstance().getScheduler()
|
||||
.schedule(AllMusicBungee.plugin, run, delay, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ping() {
|
||||
for (Server server : new HashSet<>(TopServers)) {
|
||||
if (server.isConnected()) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeInt(200);
|
||||
server.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
} else {
|
||||
TopServers.remove(server);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMusicPlay(SongInfoObj obj) {
|
||||
MusicPlayEvent event = new MusicPlayEvent(obj);
|
||||
ProxyServer.getInstance().getPluginManager().callEvent(event);
|
||||
return event.isCancel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMusicAdd(Object obj, PlayerAddMusicObj music) {
|
||||
MusicAddEvent event = new MusicAddEvent(music, (CommandSender) obj);
|
||||
ProxyServer.getInstance().getPluginManager().callEvent(event);
|
||||
return event.isCancel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateInfo() {
|
||||
for (Server server : TopServers) {
|
||||
if (server.isConnected()) {
|
||||
sendAllToServer(server);
|
||||
} else {
|
||||
TopServers.remove(server);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLyric() {
|
||||
for (Server server : TopServers) {
|
||||
if (server.isConnected()) {
|
||||
sendLyricToServer(server);
|
||||
} else {
|
||||
TopServers.remove(server);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void send(ProxiedPlayer player, ByteBuf data) {
|
||||
if (player == null) {
|
||||
return;
|
||||
}
|
||||
runTask(() -> player.sendData(AllMusic.channel, data.array()));
|
||||
}
|
||||
|
||||
private boolean skip(ProxiedPlayer player) {
|
||||
String server = player.getServer() == null ? null : player.getServer().getInfo().getName();
|
||||
return AllMusic.isSkip(player.getName(), server, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(String name, int cost) {
|
||||
return topEconomy(name, cost, 12);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean cost(String name, int cost) {
|
||||
return topEconomy(name, cost, 13);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component miniMessage(String input) {
|
||||
return MiniMessage.miniMessage().deserialize(input);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component miniMessageRun(String input, String command) {
|
||||
return miniMessage(input).clickEvent(ClickEvent.runCommand(command));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component miniMessageSuggest(String input, String command) {
|
||||
return miniMessage(input).clickEvent(ClickEvent.suggestCommand(command));
|
||||
}
|
||||
|
||||
private boolean topEconomy(String name, int cost, int type) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeInt(type);
|
||||
String uuid;
|
||||
do {
|
||||
uuid = UUID.randomUUID().toString();
|
||||
} while (SendToBackend.containsKey(uuid));
|
||||
|
||||
SendToBackend.put(uuid, -1);
|
||||
String server = AllMusic.getConfig().economy.backend;
|
||||
Server toServer = null;
|
||||
for (Server connection : TopServers) {
|
||||
if (connection.isConnected() && connection.getInfo().getName().equalsIgnoreCase(server)) {
|
||||
toServer = connection;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (toServer == null) {
|
||||
AllMusic.log.data("<light_purple>[AllMusic]<red>没有找到目标服务器");
|
||||
return false;
|
||||
}
|
||||
|
||||
out.writeUTF(uuid);
|
||||
out.writeInt(cost);
|
||||
out.writeUTF(name);
|
||||
|
||||
toServer.sendData(AllMusic.channelBC, out.toByteArray());
|
||||
|
||||
Integer res;
|
||||
int count = 0;
|
||||
do {
|
||||
try {
|
||||
res = SendToBackend.get(uuid);
|
||||
if (res == null) {
|
||||
return false;
|
||||
} else if (res == -1) {
|
||||
Thread.sleep(1);
|
||||
count++;
|
||||
} else if (res == 0) {
|
||||
AllMusic.log.data("<light_purple>[AllMusic]<red>后端经济插件错误");
|
||||
SendToBackend.remove(uuid);
|
||||
return false;
|
||||
} else if (res == 1) {
|
||||
SendToBackend.remove(uuid);
|
||||
return false;
|
||||
} else if (res == 2) {
|
||||
SendToBackend.remove(uuid);
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
AllMusic.log.data("<light_purple>[AllMusic]<red>经济数据发送错误");
|
||||
e.printStackTrace();
|
||||
}
|
||||
} while (count < 100);
|
||||
|
||||
AllMusic.log.data("<light_purple>[AllMusic]<red>经济数据请求超时");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.coloryr.allmusic.server.event;
|
||||
|
||||
import com.coloryr.allmusic.server.core.objs.music.PlayerAddMusicObj;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
||||
/**
|
||||
* 音乐添加事件
|
||||
*/
|
||||
public class MusicAddEvent extends Event {
|
||||
/**
|
||||
* 添加的音乐
|
||||
*/
|
||||
private final PlayerAddMusicObj music;
|
||||
/**
|
||||
* 添加者
|
||||
*/
|
||||
private final CommandSender player;
|
||||
/**
|
||||
* 是否取消添加
|
||||
*/
|
||||
private boolean cancel = false;
|
||||
|
||||
public MusicAddEvent(PlayerAddMusicObj id, CommandSender player) {
|
||||
this.music = id;
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
public boolean isCancel() {
|
||||
return cancel;
|
||||
}
|
||||
|
||||
public void setCancel(boolean cancel) {
|
||||
this.cancel = cancel;
|
||||
}
|
||||
|
||||
public CommandSender getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public PlayerAddMusicObj getMusic() {
|
||||
return music;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.coloryr.allmusic.server.event;
|
||||
|
||||
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
||||
/**
|
||||
* 音乐播发事件
|
||||
*/
|
||||
public class MusicPlayEvent extends Event {
|
||||
/**
|
||||
* 音乐内容
|
||||
*/
|
||||
private final SongInfoObj music;
|
||||
/**
|
||||
* 是否取消
|
||||
*/
|
||||
private boolean cancel = false;
|
||||
|
||||
public MusicPlayEvent(SongInfoObj music) {
|
||||
this.music = music;
|
||||
}
|
||||
|
||||
public SongInfoObj getMusic() {
|
||||
return music;
|
||||
}
|
||||
|
||||
public boolean isCancel() {
|
||||
return cancel;
|
||||
}
|
||||
|
||||
public void setCancel(boolean cancel) {
|
||||
this.cancel = cancel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
name: AllMusic
|
||||
main: com.coloryr.allmusic.server.AllMusicBungee
|
||||
author: Color_yr
|
||||
version: ${version}
|
||||
@@ -55,6 +55,7 @@ include(":server:spigot")
|
||||
include(":server:paper")
|
||||
include(":server:folia")
|
||||
include(":server:paper")
|
||||
include(":server:bungeecord")
|
||||
include(":server:velocity")
|
||||
|
||||
include(":onejar")
|
||||
|
||||
Reference in new issue
Block a user