diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index c567d17e..39f502ce 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -199,10 +199,10 @@ jobs: contents: read steps: - uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 # v3.1.0 @@ -215,6 +215,28 @@ jobs: with: name: "allmusic_server_fabric_1_20_2" path: build/libs/ + build_fabric_1_20_6: + runs-on: windows-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 # v3.1.0 + - name: build + shell: cmd + run: | + link.cmd && cd fabric_1_20_6 && gradlew build + - name: update + uses: actions/upload-artifact@v4 + with: + name: "allmusic_server_fabric_1_20_6" + path: build/libs/ build_forge_1_12_2: runs-on: windows-latest permissions: diff --git a/.gitignore b/.gitignore index 680627e6..3c8c36ec 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,5 @@ run forge*changelog.txt lib -**/allmusic/server/core/ \ No newline at end of file +**/allmusic/server/core/ +**/allmusic/server/codec/ \ No newline at end of file diff --git a/codec/PacketCodec.java b/codec/PacketCodec.java new file mode 100644 index 00000000..4779c29e --- /dev/null +++ b/codec/PacketCodec.java @@ -0,0 +1,51 @@ +package com.coloryr.allmusic.server.codec; + +import com.coloryr.allmusic.server.core.objs.enums.ComType; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + +import java.nio.charset.StandardCharsets; + +public class PacketCodec { + public static ByteBuf pack(ComType type, String data, int data1) { + ByteBuf buf = Unpooled.buffer(0); + buf.writeByte(type.ordinal()); + switch (type) { + case HUD: + case LYRIC: + case LIST: + case INFO: + case IMG: + case PLAY: + writeString(buf, data); + break; + case POS: + buf.writeInt(data1); + break; + } + return buf; + } + + public static void pack(ByteBuf buf, ComType type, String data, int data1) { + buf.writeByte(type.ordinal()); + switch (type) { + case HUD: + case LYRIC: + case LIST: + case INFO: + case IMG: + case PLAY: + writeString(buf, data); + break; + case POS: + buf.writeInt(data1); + break; + } + } + + private static void writeString(ByteBuf buf, String text) { + byte[] temp = text.getBytes(StandardCharsets.UTF_8); + buf.writeInt(temp.length); + buf.writeBytes(temp); + } +} diff --git a/core/command/CommandEX.java b/core/command/CommandEX.java index 724b3d5b..da549ed2 100644 --- a/core/command/CommandEX.java +++ b/core/command/CommandEX.java @@ -17,6 +17,37 @@ public class CommandEX { public static final Map commandList = new HashMap<>(); public static final Map commandAdminList = new HashMap<>(); + private static final List normal = new ArrayList() {{ + this.add("stop"); + this.add("cancel"); + this.add("list"); + this.add("vote"); + this.add("mute"); + this.add("search"); + this.add("hud"); + this.add("push"); + }}; + /** + * 管理员的指令 + */ + private static final List admin = new ArrayList() {{ + this.add("reload"); + this.add("next"); + this.add("ban"); + this.add("delete"); + this.add("addlist"); + this.add("clearlist"); + this.add("login"); + this.add("code"); + }}; + /** + * 搜歌的指令 + */ + private static final List search = new ArrayList() {{ + this.add("select"); + this.add("nextpage"); + this.add("lastpage"); + }}; static { commandList.put("stop", new CommandStop()); @@ -245,40 +276,6 @@ public class CommandEX { } } - private static final List normal = new ArrayList() {{ - this.add("stop"); - this.add("cancel"); - this.add("list"); - this.add("vote"); - this.add("mute"); - this.add("search"); - this.add("hud"); - this.add("push"); - }}; - - /** - * 管理员的指令 - */ - private static final List admin = new ArrayList() {{ - this.add("reload"); - this.add("next"); - this.add("ban"); - this.add("delete"); - this.add("addlist"); - this.add("clearlist"); - this.add("login"); - this.add("code"); - }}; - - /** - * 搜歌的指令 - */ - private static final List search = new ArrayList() {{ - this.add("select"); - this.add("nextpage"); - this.add("lastpage"); - }}; - /** * 获取Tab指令列表 * diff --git a/core/command/CommandHud.java b/core/command/CommandHud.java index a7918bd4..2118ac1a 100644 --- a/core/command/CommandHud.java +++ b/core/command/CommandHud.java @@ -7,6 +7,17 @@ import com.coloryr.allmusic.server.core.utils.HudUtils; import java.util.*; public class CommandHud extends ACommand { + /** + * Hud的指令 + */ + private static final List hudlist = new ArrayList() {{ + this.add("enable"); + this.add("reset"); + this.add("info"); + this.add("list"); + this.add("lyric"); + this.add("pic"); + }}; private final Map commandList = new HashMap<>(); public CommandHud() { @@ -18,7 +29,39 @@ public class CommandHud extends ACommand { commandList.put("pic", new CommandHudSet(HudType.PIC)); } + @Override + public void ex(Object sender, String name, String[] args) { + if (args.length == 1) { + AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error); + } else { + ICommand command = commandList.get(args[1]); + if (command != null) { + command.ex(sender, name, args); + } else { + AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error); + } + } + } + + @Override + public List tab(String name, String[] args, int index) { + if (args.length == index + 1) { + return hudlist; + } else { + ICommand command = commandList.get(args[index]); + if (command != null) { + return command.tab(name, args, index + 1); + } + } + return Collections.emptyList(); + } + public static class HudEnable extends ACommand { + private static final List tf = new ArrayList() {{ + this.add("true"); + this.add("false"); + }}; + @Override public void ex(Object sender, String name, String[] args) { if (args.length == 2 || args.length == 3) { @@ -38,11 +81,6 @@ public class CommandHud extends ACommand { } return Collections.emptyList(); } - - private static final List tf = new ArrayList() {{ - this.add("true"); - this.add("false"); - }}; } public static class HudReset extends ACommand { @@ -53,43 +91,4 @@ public class CommandHud extends ACommand { .replace("%Hud%", AllMusic.getMessage().hudList.getHud(null))); } } - - @Override - public void ex(Object sender, String name, String[] args) { - if (args.length == 1) { - AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error); - } else { - ICommand command = commandList.get(args[1]); - if (command != null) { - command.ex(sender, name, args); - } else { - AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error); - } - } - } - - /** - * Hud的指令 - */ - private static final List hudlist = new ArrayList() {{ - this.add("enable"); - this.add("reset"); - this.add("info"); - this.add("list"); - this.add("lyric"); - this.add("pic"); - }}; - - @Override - public List tab(String name, String[] args, int index) { - if (args.length == index + 1) { - return hudlist; - } else { - ICommand command = commandList.get(args[index]); - if (command != null) { - return command.tab(name, args, index + 1); - } - } - return Collections.emptyList(); - } } diff --git a/core/command/CommandHudSet.java b/core/command/CommandHudSet.java index 133052f3..3ce2afef 100644 --- a/core/command/CommandHudSet.java +++ b/core/command/CommandHudSet.java @@ -9,6 +9,28 @@ import com.coloryr.allmusic.server.core.utils.HudUtils; import java.util.*; public class CommandHudSet extends AHudCommand { + /** + * Hud的指令 + */ + private static final List hud = new ArrayList() {{ + this.add("enable"); + this.add("pos"); + this.add("dir"); + this.add("reset"); + }}; + private static final List pic = new ArrayList() {{ + this.add("size"); + this.add("rotate"); + this.add("speed"); + }}; + private static final List info = new ArrayList() {{ + this.add("color"); + this.add("shadow"); + }}; + private static final List tf = new ArrayList() {{ + this.add("true"); + this.add("false"); + }}; private final Map commandList = new HashMap<>(); public CommandHudSet(HudType type) { @@ -27,6 +49,40 @@ public class CommandHudSet extends AHudCommand { } } + @Override + public void ex(Object sender, String name, String[] args) { + if (args.length == 1) { + AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error); + } else { + ICommand command = commandList.get(args[2]); + if (command != null) { + command.ex(sender, name, args); + } else { + AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error); + } + } + } + + @Override + public List tab(String name, String[] args, int index) { + if (args.length == index + 1) { + List list = new ArrayList<>(hud); + if (type == HudType.PIC) { + list.addAll(pic); + } else { + list.addAll(info); + } + + return list; + } else { + ICommand command = commandList.get(args[index]); + if (command != null) { + return command.tab(name, args, index + 1); + } + } + return Collections.emptyList(); + } + private static class HudEnable extends AHudCommand { public HudEnable(HudType type) { super(type); @@ -97,6 +153,12 @@ public class CommandHudSet extends AHudCommand { } private static class HudDir extends AHudCommand { + private static final List dir = new ArrayList() {{ + for (HudDirType type : HudDirType.values()) { + this.add(type.name()); + } + }}; + public HudDir(HudType type) { super(type); } @@ -117,12 +179,6 @@ public class CommandHudSet extends AHudCommand { .replace("%Dir%", AllMusic.getMessage().hudList.getDir(type1))); } - private static final List dir = new ArrayList() {{ - for (HudDirType type : HudDirType.values()) { - this.add(type.name()); - } - }}; - @Override public List tab(String name, String[] args, int index) { if (args.length == index + 1) { @@ -225,64 +281,4 @@ public class CommandHudSet extends AHudCommand { AllMusic.getMessage().hud.picSpeed.replace("%Size%", args[3])); } } - - @Override - public void ex(Object sender, String name, String[] args) { - if (args.length == 1) { - AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error); - } else { - ICommand command = commandList.get(args[2]); - if (command != null) { - command.ex(sender, name, args); - } else { - AllMusic.side.sendMessage(sender, AllMusic.getMessage().command.error); - } - } - } - - /** - * Hud的指令 - */ - private static final List hud = new ArrayList() {{ - this.add("enable"); - this.add("pos"); - this.add("dir"); - this.add("reset"); - }}; - - private static final List pic = new ArrayList() {{ - this.add("size"); - this.add("rotate"); - this.add("speed"); - }}; - - private static final List info = new ArrayList() {{ - this.add("color"); - this.add("shadow"); - }}; - - private static final List tf = new ArrayList() {{ - this.add("true"); - this.add("false"); - }}; - - @Override - public List tab(String name, String[] args, int index) { - if (args.length == index + 1) { - List list = new ArrayList<>(hud); - if (type == HudType.PIC) { - list.addAll(pic); - } else { - list.addAll(info); - } - - return list; - } else { - ICommand command = commandList.get(args[index]); - if (command != null) { - return command.tab(name, args, index + 1); - } - } - return Collections.emptyList(); - } } diff --git a/core/music/api/HttpClientUtil.java b/core/music/api/HttpClientUtil.java index 6a0276d7..00ebea0e 100644 --- a/core/music/api/HttpClientUtil.java +++ b/core/music/api/HttpClientUtil.java @@ -39,7 +39,7 @@ public class HttpClientUtil { public static HttpResObj get(String path, String data) { try { - data = URLEncoder.encode(data, "UTF-8"); + data = URLEncoder.encode(data, StandardCharsets.UTF_8.name()); Request request = new Request.Builder().url(path + data) .addHeader("referer", "https://music.163.com") .addHeader("content-type", "application/json;charset=UTF-8") diff --git a/core/music/play/PlayMusic.java b/core/music/play/PlayMusic.java index f1ff9f31..92b6bf48 100644 --- a/core/music/play/PlayMusic.java +++ b/core/music/play/PlayMusic.java @@ -56,11 +56,10 @@ public class PlayMusic { * 错误次数 */ public static int error; + public static SongInfoObj push; private static boolean isRun; private static int idleNow; - public static SongInfoObj push; - /** * 停止歌曲逻辑 */ diff --git a/core/objs/config/ConfigObj.java b/core/objs/config/ConfigObj.java index a606c618..3fa433b6 100644 --- a/core/objs/config/ConfigObj.java +++ b/core/objs/config/ConfigObj.java @@ -142,6 +142,13 @@ public class ConfigObj { */ public int sendDelay; + public static ConfigObj make() { + ConfigObj config = new ConfigObj(); + config.init(); + + return config; + } + public void addBanMusic(String id) { banMusic.add(id); AllMusic.saveConfig(); @@ -237,11 +244,4 @@ public class ConfigObj { sendDelay = 1000; version = AllMusic.configVersion; } - - public static ConfigObj make() { - ConfigObj config = new ConfigObj(); - config.init(); - - return config; - } } \ No newline at end of file diff --git a/core/objs/config/EconomyObj.java b/core/objs/config/EconomyObj.java index 8e5d079a..c6d9a524 100644 --- a/core/objs/config/EconomyObj.java +++ b/core/objs/config/EconomyObj.java @@ -5,6 +5,13 @@ public class EconomyObj { public String backend; public boolean vault; + public static EconomyObj make() { + EconomyObj obj = new EconomyObj(); + obj.init(); + + return obj; + } + public boolean check() { boolean res = mysqlUrl == null; @@ -16,11 +23,4 @@ public class EconomyObj { mysqlUrl = "jdbc:mysql://localhost:3306/minecraft?autoReconnect=true&autoReconnectForPools=true"; vault = true; } - - public static EconomyObj make() { - EconomyObj obj = new EconomyObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/config/FunConfigObj.java b/core/objs/config/FunConfigObj.java index 2d84ca4d..e17ec91b 100644 --- a/core/objs/config/FunConfigObj.java +++ b/core/objs/config/FunConfigObj.java @@ -4,15 +4,15 @@ public class FunConfigObj { public boolean rain; public int rainRate; - public void init() { - rain = true; - rainRate = 10; - } - public static FunConfigObj make() { FunConfigObj obj = new FunConfigObj(); obj.init(); return obj; } + + public void init() { + rain = true; + rainRate = 10; + } } diff --git a/core/objs/config/SaveObj.java b/core/objs/config/SaveObj.java index c52f28d1..58473aab 100644 --- a/core/objs/config/SaveObj.java +++ b/core/objs/config/SaveObj.java @@ -10,6 +10,13 @@ public class SaveObj { public PosObj pic; public int picRotateSpeed; + public static SaveObj make() { + SaveObj obj = new SaveObj(); + obj.init(); + + return obj; + } + public SaveObj copy() { SaveObj obj1 = new SaveObj(); obj1.info = this.info.copy(); @@ -48,11 +55,4 @@ public class SaveObj { info = new PosObj(74, 2, HudDirType.TOP_LEFT, 0xffffff, false, true); pic = new PosObj(2, 2, HudDirType.TOP_LEFT, 70, true, true); } - - public static SaveObj make() { - SaveObj obj = new SaveObj(); - obj.init(); - - return obj; - } } \ No newline at end of file diff --git a/core/objs/message/AddMusicObj.java b/core/objs/message/AddMusicObj.java index 21dbaba6..2608be33 100644 --- a/core/objs/message/AddMusicObj.java +++ b/core/objs/message/AddMusicObj.java @@ -12,6 +12,13 @@ public class AddMusicObj { public String cancel; public String timeOut; + public static AddMusicObj make() { + AddMusicObj obj = new AddMusicObj(); + obj.init(); + + return obj; + } + public boolean check() { if (listFull == null) return true; @@ -46,11 +53,4 @@ public class AddMusicObj { cancel = "§d[AllMusic3]§e点歌被取消"; timeOut = "§d[AllMusic3]§e点歌被取消,音乐长度过长"; } - - public static AddMusicObj make() { - AddMusicObj obj = new AddMusicObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/CancelObj.java b/core/objs/message/CancelObj.java index 7d218755..772c2b69 100644 --- a/core/objs/message/CancelObj.java +++ b/core/objs/message/CancelObj.java @@ -7,6 +7,13 @@ public class CancelObj { public String err3; public String err4; + public static CancelObj make() { + CancelObj obj = new CancelObj(); + obj.init(); + + return obj; + } + public boolean check() { if (err1 == null) return true; @@ -26,11 +33,4 @@ public class CancelObj { err4 = "§d[AllMusic3]§c输入的序号错误"; done = "§d[AllMusic3]§e已取消你的点歌"; } - - public static CancelObj make() { - CancelObj obj = new CancelObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/ClickObj.java b/core/objs/message/ClickObj.java index 13d6d208..48f9c4a6 100644 --- a/core/objs/message/ClickObj.java +++ b/core/objs/message/ClickObj.java @@ -4,6 +4,13 @@ public class ClickObj { public String clickRun; public String clickCheck; + public static ClickObj make() { + ClickObj obj = new ClickObj(); + obj.init(); + + return obj; + } + public boolean check() { if (clickRun == null) return true; @@ -14,11 +21,4 @@ public class ClickObj { clickRun = "§b[§n点我选择§r§b]"; clickCheck = "§b[§n点我查看§r§b]"; } - - public static ClickObj make() { - ClickObj obj = new ClickObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/CommandObj.java b/core/objs/message/CommandObj.java index 7615a7e9..67eed871 100644 --- a/core/objs/message/CommandObj.java +++ b/core/objs/message/CommandObj.java @@ -4,6 +4,13 @@ public class CommandObj { public String error; public String noPer; + public static CommandObj make() { + CommandObj obj = new CommandObj(); + obj.init(); + + return obj; + } + public boolean check() { if (error == null) return true; @@ -14,11 +21,4 @@ public class CommandObj { error = "§d[AllMusic3]§c参数错误,请输入/music help获取帮助"; noPer = "§d[AllMusic3]§c你没有权限执行这个操作"; } - - public static CommandObj make() { - CommandObj obj = new CommandObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/CostObj.java b/core/objs/message/CostObj.java index aa7f69e1..c61f2a38 100644 --- a/core/objs/message/CostObj.java +++ b/core/objs/message/CostObj.java @@ -6,6 +6,13 @@ public class CostObj { public String noMoney; public String costFail; + public static CostObj make() { + CostObj obj = new CostObj(); + obj.init(); + + return obj; + } + public boolean check() { if (search == null) return true; @@ -22,11 +29,4 @@ public class CostObj { noMoney = "§d[AllMusic3]§c你没有足够的钱"; costFail = "§d[AllMusic3]§c扣钱过程中错误"; } - - public static CostObj make() { - CostObj obj = new CostObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/CustomObj.java b/core/objs/message/CustomObj.java index 448006d8..56e9077c 100644 --- a/core/objs/message/CustomObj.java +++ b/core/objs/message/CustomObj.java @@ -3,6 +3,13 @@ package com.coloryr.allmusic.server.core.objs.message; public class CustomObj { public String info; + public static CustomObj make() { + CustomObj obj = new CustomObj(); + obj.init(); + + return obj; + } + public boolean check() { return info == null; } @@ -10,11 +17,4 @@ public class CustomObj { public void init() { info = "自定义音乐"; } - - public static CustomObj make() { - CustomObj obj = new CustomObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/FunObj.java b/core/objs/message/FunObj.java index cdc304d1..8ab76ca4 100644 --- a/core/objs/message/FunObj.java +++ b/core/objs/message/FunObj.java @@ -3,23 +3,20 @@ package com.coloryr.allmusic.server.core.objs.message; public class FunObj { public String rain; - public boolean check() { - boolean res = false; - if (rain == null) { - res = true; - } - - return res; - } - - public void init() { - rain = "§d[AllMusic3]§e天空开始变得湿润"; - } - public static FunObj make() { FunObj obj = new FunObj(); obj.init(); return obj; } + + public boolean check() { + boolean res = rain == null; + + return res; + } + + public void init() { + rain = "§d[AllMusic3]§e天空开始变得湿润"; + } } diff --git a/core/objs/message/HelpAdminObj.java b/core/objs/message/HelpAdminObj.java index c526a0bf..48ffbb20 100644 --- a/core/objs/message/HelpAdminObj.java +++ b/core/objs/message/HelpAdminObj.java @@ -12,6 +12,13 @@ public class HelpAdminObj { public String login; public String code; + public static HelpAdminObj make() { + HelpAdminObj obj = new HelpAdminObj(); + obj.init(); + + return obj; + } + public boolean check() { if (reload == null) return true; @@ -46,11 +53,4 @@ public class HelpAdminObj { login = "§d[AllMusic3]§e使用/music login [验证码] 登录账户"; code = "§d[AllMusic3]§e使用/music code [手机号] 获取短信验证码"; } - - public static HelpAdminObj make() { - HelpAdminObj obj = new HelpAdminObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/HelpNormalObj.java b/core/objs/message/HelpNormalObj.java index 55b93d46..743c84e5 100644 --- a/core/objs/message/HelpNormalObj.java +++ b/core/objs/message/HelpNormalObj.java @@ -24,6 +24,13 @@ public class HelpNormalObj { public String hud9; public String hud10; + public static HelpNormalObj make() { + HelpNormalObj obj = new HelpNormalObj(); + obj.init(); + + return obj; + } + public boolean check() { if (head == null) return true; @@ -94,11 +101,4 @@ public class HelpNormalObj { hud4 = "§d[AllMusic3]§e使用/music hud pic rotate [开关] 设置图片旋转模式"; hud5 = "§d[AllMusic3]§e使用/music hud pic speed [数值] 设置图片旋转速度"; } - - public static HelpNormalObj make() { - HelpNormalObj obj = new HelpNormalObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/HelpObj.java b/core/objs/message/HelpObj.java index 9ec8902c..09786b2e 100644 --- a/core/objs/message/HelpObj.java +++ b/core/objs/message/HelpObj.java @@ -4,6 +4,13 @@ public class HelpObj { public HelpNormalObj normal; public HelpAdminObj admin; + public static HelpObj make() { + HelpObj obj = new HelpObj(); + obj.init(); + + return obj; + } + public boolean check() { boolean save = false; if (normal == null || normal.check()) { @@ -21,11 +28,4 @@ public class HelpObj { normal = HelpNormalObj.make(); admin = HelpAdminObj.make(); } - - public static HelpObj make() { - HelpObj obj = new HelpObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/HudNameObj.java b/core/objs/message/HudNameObj.java index 75899c0b..64f608b9 100644 --- a/core/objs/message/HudNameObj.java +++ b/core/objs/message/HudNameObj.java @@ -23,6 +23,13 @@ public class HudNameObj { public String pos8; public String pos9; + public static HudNameObj make() { + HudNameObj obj = new HudNameObj(); + obj.init(); + + return obj; + } + public boolean check() { if (list == null) return true; @@ -123,11 +130,4 @@ public class HudNameObj { pos8 = "下"; pos9 = "右下"; } - - public static HudNameObj make() { - HudNameObj obj = new HudNameObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/HudObj.java b/core/objs/message/HudObj.java index 631938c0..2aefb3f5 100644 --- a/core/objs/message/HudObj.java +++ b/core/objs/message/HudObj.java @@ -18,6 +18,13 @@ public class HudObj { public String list; public String ktv; + public static HudObj make() { + HudObj obj = new HudObj(); + obj.init(); + + return obj; + } + public boolean check() { if (state == null) return true; @@ -70,11 +77,4 @@ public class HudObj { ktv = "§e%KLyric%§f%Lyric%§r\n%Tlyric%"; list = "播放列表里面有%Size%首歌\n%List%"; } - - public static HudObj make() { - HudObj obj = new HudObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/ListMusicObj.java b/core/objs/message/ListMusicObj.java index e99c11f4..60ac89d5 100644 --- a/core/objs/message/ListMusicObj.java +++ b/core/objs/message/ListMusicObj.java @@ -5,6 +5,13 @@ public class ListMusicObj { public String item; public String get; + public static ListMusicObj make() { + ListMusicObj obj = new ListMusicObj(); + obj.init(); + + return obj; + } + public boolean check() { boolean res = head == null; if (item == null) @@ -20,11 +27,4 @@ public class ListMusicObj { item = "§e%Index%->%MusicName% | %MusicAuthor% | %MusicAl% | %MusicAlia%"; get = "§d[AllMusic3]§e歌曲列表%ListName%获取成功"; } - - public static ListMusicObj make() { - ListMusicObj obj = new ListMusicObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/LyricObj.java b/core/objs/message/LyricObj.java index d8f8f501..e0e3e12f 100644 --- a/core/objs/message/LyricObj.java +++ b/core/objs/message/LyricObj.java @@ -7,6 +7,13 @@ public class LyricObj { public String empty2; public String empty3; + public static LyricObj make() { + LyricObj obj = new LyricObj(); + obj.init(); + + return obj; + } + public boolean check() { if (data == null) return true; @@ -26,11 +33,4 @@ public class LyricObj { empty2 = "没有翻译歌词"; empty3 = "没有KTV歌词"; } - - public static LyricObj make() { - LyricObj obj = new LyricObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/MessageObj.java b/core/objs/message/MessageObj.java index c94e8e6e..fe04bb46 100644 --- a/core/objs/message/MessageObj.java +++ b/core/objs/message/MessageObj.java @@ -22,6 +22,13 @@ public class MessageObj { public CancelObj cancel; public String version; + public static MessageObj make() { + MessageObj obj = new MessageObj(); + obj.init(); + + return obj; + } + public boolean check() { boolean saveConfig = false; if (musicPlay == null || musicPlay.check()) { @@ -115,11 +122,4 @@ public class MessageObj { cancel = CancelObj.make(); version = AllMusic.messageVersion; } - - public static MessageObj make() { - MessageObj obj = new MessageObj(); - obj.init(); - - return obj; - } } \ No newline at end of file diff --git a/core/objs/message/MusicPlayObj.java b/core/objs/message/MusicPlayObj.java index a16f12e6..f69700db 100644 --- a/core/objs/message/MusicPlayObj.java +++ b/core/objs/message/MusicPlayObj.java @@ -15,6 +15,13 @@ public class MusicPlayObj { public String trail; public String cancel; + public static MusicPlayObj make() { + MusicPlayObj obj = new MusicPlayObj(); + obj.init(); + + return obj; + } + public boolean check() { boolean res = stopPlaying == null; if (emptyPlayingMusic == null) @@ -60,11 +67,4 @@ public class MusicPlayObj { trail = "§d[AllMusic3]§e该音乐为试听音乐"; cancel = "§d[AllMusic3]§e播放被取消"; } - - public static MusicPlayObj make() { - MusicPlayObj obj = new MusicPlayObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/PAPIObj.java b/core/objs/message/PAPIObj.java index 21ac0887..3c100ad6 100644 --- a/core/objs/message/PAPIObj.java +++ b/core/objs/message/PAPIObj.java @@ -3,6 +3,13 @@ package com.coloryr.allmusic.server.core.objs.message; public class PAPIObj { public String emptyMusic; + public static PAPIObj make() { + PAPIObj obj = new PAPIObj(); + obj.init(); + + return obj; + } + public boolean check() { return emptyMusic == null; } @@ -10,11 +17,4 @@ public class PAPIObj { public void init() { emptyMusic = "没有播放的音乐"; } - - public static PAPIObj make() { - PAPIObj obj = new PAPIObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/PageObj.java b/core/objs/message/PageObj.java index 81aa225f..5d931cd2 100644 --- a/core/objs/message/PageObj.java +++ b/core/objs/message/PageObj.java @@ -5,6 +5,13 @@ public class PageObj { public String next; public String last; + public static PageObj make() { + PageObj obj = new PageObj(); + obj.init(); + + return obj; + } + public boolean check() { boolean res = choice == null; if (next == null) @@ -20,11 +27,4 @@ public class PageObj { next = "§e[§n点我下一页§r§e]"; last = "§e[§n点我上一页§r§e]"; } - - public static PageObj make() { - PageObj obj = new PageObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/PushObj.java b/core/objs/message/PushObj.java index 56b4c4bc..7d93eea4 100644 --- a/core/objs/message/PushObj.java +++ b/core/objs/message/PushObj.java @@ -20,6 +20,13 @@ public class PushObj { public String err2; public String err3; + public static PushObj make() { + PushObj obj = new PushObj(); + obj.init(); + + return obj; + } + public boolean check() { if (noPermission == null) return true; @@ -78,11 +85,4 @@ public class PushObj { err3 = "§d[AllMusic3]§c发起失败,已经有人发起了插歌投票"; cancel = "§d[AllMusic3]§e插歌投票已被发起者取消"; } - - public static PushObj make() { - PushObj obj = new PushObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/SearchObj.java b/core/objs/message/SearchObj.java index fbc6da49..eb4c9cd9 100644 --- a/core/objs/message/SearchObj.java +++ b/core/objs/message/SearchObj.java @@ -11,6 +11,13 @@ public class SearchObj { public String cantLast; public String startSearch; + public static SearchObj make() { + SearchObj obj = new SearchObj(); + obj.init(); + + return obj; + } + public boolean check() { if (noPer == null) return true; @@ -42,11 +49,4 @@ public class SearchObj { cantNext = "§d[AllMusic3]§c无法下一页"; cantLast = "§d[AllMusic3]§c无法上一页"; } - - public static SearchObj make() { - SearchObj obj = new SearchObj(); - obj.init(); - - return obj; - } } diff --git a/core/objs/message/VoteObj.java b/core/objs/message/VoteObj.java index 1840f638..0c091803 100644 --- a/core/objs/message/VoteObj.java +++ b/core/objs/message/VoteObj.java @@ -16,6 +16,13 @@ public class VoteObj { public String err3; public String cancel; + public static VoteObj make() { + VoteObj obj = new VoteObj(); + obj.init(); + + return obj; + } + public boolean check() { if (noPermission == null) return true; @@ -62,11 +69,4 @@ public class VoteObj { voteDone = "§d[AllMusic3]§e已切歌"; cancel = "§d[AllMusic3]§e切歌投票已被发起者取消"; } - - public static VoteObj make() { - VoteObj obj = new VoteObj(); - obj.init(); - - return obj; - } } diff --git a/fabric_1_16_5/build.gradle b/fabric_1_16_5/build.gradle index 2db5a841..973656b8 100644 --- a/fabric_1_16_5/build.gradle +++ b/fabric_1_16_5/build.gradle @@ -1,7 +1,7 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' - id "org.jetbrains.kotlin.jvm" version "1.8.10" + id "org.jetbrains.kotlin.jvm" version "1.9.23" } version = project.mod_version @@ -11,7 +11,6 @@ base { archivesName = project.archives_base_name } - repositories { // Add repositories to retrieve artifacts from in here. // You should only use this when depending on other mods because @@ -49,7 +48,13 @@ processResources { } tasks.withType(JavaCompile).configureEach { - it.options.release = 16 + it.options.release = 8 +} + +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = 1.8 + } } java { @@ -58,8 +63,8 @@ java { // If you remove this line, sources will not be generated. withSourcesJar() - sourceCompatibility = JavaVersion.VERSION_16 - targetCompatibility = JavaVersion.VERSION_16 + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 } jar { @@ -71,7 +76,8 @@ jar { // configure the maven publication publishing { publications { - mavenJava(MavenPublication) { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name from components.java } } diff --git a/fabric_1_16_5/gradle.properties b/fabric_1_16_5/gradle.properties index 7b7f326d..b6b300bb 100644 --- a/fabric_1_16_5/gradle.properties +++ b/fabric_1_16_5/gradle.properties @@ -6,8 +6,8 @@ org.gradle.parallel=true # check these on https://fabricmc.net/develop minecraft_version=1.16.5 yarn_mappings=1.16.5+build.10 -loader_version=0.15.6 -fabric_kotlin_version=1.9.1+kotlin.1.8.10 +loader_version=0.15.11 +fabric_kotlin_version=1.10.19+kotlin.1.9.23 # Mod Properties mod_version = 3.0.0 diff --git a/fabric_1_16_5/gradle/wrapper/gradle-wrapper.properties b/fabric_1_16_5/gradle/wrapper/gradle-wrapper.properties index c30b486a..b82aa23a 100644 --- a/fabric_1_16_5/gradle/wrapper/gradle-wrapper.properties +++ b/fabric_1_16_5/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/fabric_1_16_5/settings.gradle b/fabric_1_16_5/settings.gradle index 56266b41..6935efd5 100644 --- a/fabric_1_16_5/settings.gradle +++ b/fabric_1_16_5/settings.gradle @@ -7,4 +7,6 @@ pluginManagement { mavenCentral() gradlePluginPortal() } -} \ No newline at end of file +} + +rootProject.name = 'AllMusic_Server' \ No newline at end of file diff --git a/fabric_1_16_5/src/main/java/com/coloryr/allmusic/server/AllMusicFabric.java b/fabric_1_16_5/src/main/java/com/coloryr/allmusic/server/AllMusicFabric.java index 1f292ecd..59da2ec9 100644 --- a/fabric_1_16_5/src/main/java/com/coloryr/allmusic/server/AllMusicFabric.java +++ b/fabric_1_16_5/src/main/java/com/coloryr/allmusic/server/AllMusicFabric.java @@ -16,10 +16,9 @@ import org.apache.logging.log4j.Logger; import java.io.File; public class AllMusicFabric implements ModInitializer { - public static MinecraftServer server; public static final Logger LOGGER = LogManager.getLogger("AllMusic_Server"); - public static final Identifier ID = new Identifier("allmusic", "channel"); + public static MinecraftServer server; @Override public void onInitialize() { diff --git a/fabric_1_16_5/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java b/fabric_1_16_5/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java index bce6cad8..c10b58fb 100644 --- a/fabric_1_16_5/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java +++ b/fabric_1_16_5/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.fabric; import com.coloryr.allmusic.server.AllMusicFabric; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -14,7 +15,6 @@ import com.coloryr.allmusic.server.core.utils.HudUtils; import com.coloryr.allmusic.server.side.fabric.event.MusicAddEvent; import com.coloryr.allmusic.server.side.fabric.event.MusicPlayEvent; import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.network.PacketByteBuf; import net.minecraft.server.command.CommandOutput; @@ -23,7 +23,7 @@ import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import java.io.File; -import java.nio.charset.StandardCharsets; +import java.util.Arrays; import java.util.List; import java.util.UUID; @@ -55,7 +55,7 @@ public class SideFabric extends ISide { @Override public boolean checkPermission(String player, String permission) { - var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); + ServerPlayerEntity player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return false; @@ -65,7 +65,7 @@ public class SideFabric extends ISide { @Override public boolean needPlay() { int online = getAllPlayer(); - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.getConfig().mutePlayer.contains(player.getName().getString())) { online--; } @@ -76,11 +76,8 @@ public class SideFabric extends ISide { @Override protected void topSendStop() { try { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - - send(player, buf); + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -91,12 +88,10 @@ public class SideFabric extends ISide { @Override protected void topSendStop(String name) { try { - var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); + ServerPlayerEntity player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -104,18 +99,12 @@ public class SideFabric extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player, buf); - + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -125,18 +114,14 @@ public class SideFabric extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { - var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); + ServerPlayerEntity player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -144,21 +129,16 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) continue; String name = player.getName().getString(); SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -167,18 +147,14 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { - var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); + ServerPlayerEntity player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -188,16 +164,12 @@ public class SideFabric extends ISide { @Override public void sendPos(String player, int pos) { try { - var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); + ServerPlayerEntity player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -207,19 +179,14 @@ public class SideFabric extends ISide { @Override public void sendHudLyric(String data) { try { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) continue; String name = player.getName().getString(); SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -230,19 +197,14 @@ public class SideFabric extends ISide { @Override public void sendHudInfo(String data) { try { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) continue; String name = player.getName().getString(); SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -253,16 +215,12 @@ public class SideFabric extends ISide { @Override public void sendHudPos(String name) { try { - var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); + ServerPlayerEntity player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -275,28 +233,24 @@ public class SideFabric extends ISide { if (pos == HudType.PIC) { return; } - var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); + ServerPlayerEntity player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -306,19 +260,14 @@ public class SideFabric extends ISide { @Override public void sendHudList(String data) { try { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) continue; String name = player.getName().getString(); SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -328,15 +277,12 @@ public class SideFabric extends ISide { @Override public void sendHudUtilsAll() { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { String Name = player.getName().getString(); try { SaveObj obj = HudUtils.get(Name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -346,7 +292,7 @@ public class SideFabric extends ISide { @Override public void sendBar(String data) { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { try { if (AllMusic.isOK(player.getName().getString(), null, true)) continue; @@ -361,14 +307,10 @@ public class SideFabric extends ISide { @Override public void clearHud(String name) { try { - var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); + ServerPlayerEntity player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -378,10 +320,8 @@ public class SideFabric extends ISide { @Override public void clearHud() { try { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); @@ -395,7 +335,7 @@ public class SideFabric extends ISide { && data.length() > AllMusic.getConfig().messageLimitSize) { data = data.substring(0, AllMusic.getConfig().messageLimitSize - 1) + "..."; } - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (!AllMusic.getConfig().mutePlayer.contains(player.getName().getString())) { player.sendMessage(Text.of(data), false); } @@ -413,9 +353,9 @@ public class SideFabric extends ISide { && data.length() > AllMusic.getConfig().messageLimitSize) { data = data.substring(0, AllMusic.getConfig().messageLimitSize - 1) + "..."; } - var finalData = Text.of(data); + Text finalData = Text.of(data); runTask(() -> { - for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + for (ServerPlayerEntity player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (!AllMusic.getConfig().mutePlayer.contains(player.getName().getString())) { player.sendMessage(finalData, false); } @@ -471,7 +411,7 @@ public class SideFabric extends ISide { @Override public List getPlayerList() { - return List.of(); + return Arrays.asList(AllMusicFabric.server.getPlayerNames()); } private void send(ServerPlayerEntity players, ByteBuf data) { @@ -484,10 +424,4 @@ public class SideFabric extends ISide { e.printStackTrace(); } } - - private void writeString(ByteBuf buf, String data) { - byte[] temp = data.getBytes(StandardCharsets.UTF_8); - buf.writeInt(temp.length) - .writeBytes(temp); - } } diff --git a/fabric_1_16_5/src/main/resources/fabric.mod.json b/fabric_1_16_5/src/main/resources/fabric.mod.json index 649fac1d..2b1e2ba0 100644 --- a/fabric_1_16_5/src/main/resources/fabric.mod.json +++ b/fabric_1_16_5/src/main/resources/fabric.mod.json @@ -26,10 +26,10 @@ "allmusic_server.mixins.json" ], "depends": { - "fabricloader": ">=0.8.8", + "fabricloader": ">=0.15.11", "fabric": "*", "minecraft": ">=1.16", - "fabric-language-kotlin": ">=1.8.10" + "fabric-language-kotlin": ">=1.10.19" }, "suggests": { diff --git a/fabric_1_18_2/build.gradle b/fabric_1_18_2/build.gradle index 723a1331..9aaee45e 100644 --- a/fabric_1_18_2/build.gradle +++ b/fabric_1_18_2/build.gradle @@ -1,7 +1,7 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' - id "org.jetbrains.kotlin.jvm" version "1.8.10" + id "org.jetbrains.kotlin.jvm" version "1.9.23" } version = project.mod_version @@ -51,6 +51,12 @@ tasks.withType(JavaCompile).configureEach { it.options.release = 17 } +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = 17 + } +} + java { // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // if it is present. @@ -70,7 +76,8 @@ jar { // configure the maven publication publishing { publications { - mavenJava(MavenPublication) { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name from components.java } } diff --git a/fabric_1_18_2/gradle.properties b/fabric_1_18_2/gradle.properties index 33f3a592..a3aadec3 100644 --- a/fabric_1_18_2/gradle.properties +++ b/fabric_1_18_2/gradle.properties @@ -6,8 +6,8 @@ org.gradle.parallel=true # check these on https://fabricmc.net/develop minecraft_version=1.18.2 yarn_mappings=1.18.2+build.4 -loader_version=0.15.3 -fabric_kotlin_version=1.9.1+kotlin.1.8.10 +loader_version=0.15.11 +fabric_kotlin_version=1.10.19+kotlin.1.9.23 # Mod Properties mod_version=3.0.0 diff --git a/fabric_1_18_2/gradle/wrapper/gradle-wrapper.properties b/fabric_1_18_2/gradle/wrapper/gradle-wrapper.properties index c30b486a..b82aa23a 100644 --- a/fabric_1_18_2/gradle/wrapper/gradle-wrapper.properties +++ b/fabric_1_18_2/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/fabric_1_18_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java b/fabric_1_18_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java index bce6cad8..50c3e2e2 100644 --- a/fabric_1_18_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java +++ b/fabric_1_18_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.fabric; import com.coloryr.allmusic.server.AllMusicFabric; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -14,7 +15,6 @@ import com.coloryr.allmusic.server.core.utils.HudUtils; import com.coloryr.allmusic.server.side.fabric.event.MusicAddEvent; import com.coloryr.allmusic.server.side.fabric.event.MusicPlayEvent; import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.network.PacketByteBuf; import net.minecraft.server.command.CommandOutput; @@ -77,10 +77,7 @@ public class SideFabric extends ISide { protected void topSendStop() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -94,9 +91,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -104,18 +99,12 @@ public class SideFabric extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player, buf); - + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -125,18 +114,14 @@ public class SideFabric extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -144,7 +129,7 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -153,12 +138,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -167,18 +147,14 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -193,11 +169,7 @@ public class SideFabric extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -214,12 +186,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -237,12 +204,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -258,11 +220,7 @@ public class SideFabric extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -282,21 +240,17 @@ public class SideFabric extends ISide { if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -313,12 +267,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -333,10 +282,7 @@ public class SideFabric extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -364,11 +310,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -379,9 +321,7 @@ public class SideFabric extends ISide { public void clearHud() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/fabric_1_18_2/src/main/resources/fabric.mod.json b/fabric_1_18_2/src/main/resources/fabric.mod.json index 9b01c1c0..6fa1b28c 100644 --- a/fabric_1_18_2/src/main/resources/fabric.mod.json +++ b/fabric_1_18_2/src/main/resources/fabric.mod.json @@ -25,11 +25,11 @@ "allmusic_server.mixins.json" ], "depends": { - "fabricloader": ">=0.14.14", + "fabricloader": ">=0.15.11", "minecraft": "~1.18.2", "java": ">=17", "fabric-api": "*", - "fabric-language-kotlin": ">=1.8.10" + "fabric-language-kotlin": ">=1.10.19" }, "suggests": { diff --git a/fabric_1_19_2/build.gradle b/fabric_1_19_2/build.gradle index 723a1331..02d5fe0f 100644 --- a/fabric_1_19_2/build.gradle +++ b/fabric_1_19_2/build.gradle @@ -1,7 +1,7 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' - id "org.jetbrains.kotlin.jvm" version "1.8.10" + id "org.jetbrains.kotlin.jvm" version "1.9.23" } version = project.mod_version @@ -51,6 +51,12 @@ tasks.withType(JavaCompile).configureEach { it.options.release = 17 } +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = 17 + } +} + java { // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // if it is present. @@ -70,7 +76,8 @@ jar { // configure the maven publication publishing { publications { - mavenJava(MavenPublication) { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name from components.java } } diff --git a/fabric_1_19_2/gradle.properties b/fabric_1_19_2/gradle.properties index 1a455b7e..d6877c44 100644 --- a/fabric_1_19_2/gradle.properties +++ b/fabric_1_19_2/gradle.properties @@ -6,8 +6,8 @@ org.gradle.parallel=true # check these on https://fabricmc.net/develop minecraft_version=1.19.2 yarn_mappings=1.19.2+build.28 -loader_version=0.15.3 -fabric_kotlin_version=1.9.1+kotlin.1.8.10 +loader_version=0.15.11 +fabric_kotlin_version=1.10.19+kotlin.1.9.23 # Mod Properties mod_version = 3.0.0 @@ -15,4 +15,4 @@ maven_group = com.coloryr.allmusic.server archives_base_name =[fabric-1.19.2]AllMusic_Server # Dependencies -fabric_version=0.75.1+1.19.2 \ No newline at end of file +fabric_version=0.77.0+1.19.2 \ No newline at end of file diff --git a/fabric_1_19_2/gradle/wrapper/gradle-wrapper.properties b/fabric_1_19_2/gradle/wrapper/gradle-wrapper.properties index c30b486a..b82aa23a 100644 --- a/fabric_1_19_2/gradle/wrapper/gradle-wrapper.properties +++ b/fabric_1_19_2/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/fabric_1_19_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java b/fabric_1_19_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java index bf91f5b9..936da51d 100644 --- a/fabric_1_19_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java +++ b/fabric_1_19_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.fabric; import com.coloryr.allmusic.server.AllMusicFabric; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -76,10 +77,7 @@ public class SideFabric extends ISide { protected void topSendStop() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -93,9 +91,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -103,18 +99,12 @@ public class SideFabric extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player, buf); - + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -124,18 +114,14 @@ public class SideFabric extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -143,7 +129,7 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -152,12 +138,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -166,18 +147,14 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -192,11 +169,7 @@ public class SideFabric extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -213,12 +186,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -236,12 +204,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -257,11 +220,7 @@ public class SideFabric extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -281,21 +240,17 @@ public class SideFabric extends ISide { if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -312,12 +267,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -332,10 +282,7 @@ public class SideFabric extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -363,11 +310,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -378,9 +321,7 @@ public class SideFabric extends ISide { public void clearHud() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/fabric_1_19_2/src/main/resources/fabric.mod.json b/fabric_1_19_2/src/main/resources/fabric.mod.json index dfd38c9e..4d222fa3 100644 --- a/fabric_1_19_2/src/main/resources/fabric.mod.json +++ b/fabric_1_19_2/src/main/resources/fabric.mod.json @@ -25,11 +25,11 @@ "allmusic_server.mixins.json" ], "depends": { - "fabricloader": ">=0.14.14", + "fabricloader": ">=0.15.11", "minecraft": "~1.19.2", "java": ">=17", "fabric-api": "*", - "fabric-language-kotlin": ">=1.8.10" + "fabric-language-kotlin": ">=1.10.19" }, "suggests": { diff --git a/fabric_1_19_3/build.gradle b/fabric_1_19_3/build.gradle index 5eb83e55..02d5fe0f 100644 --- a/fabric_1_19_3/build.gradle +++ b/fabric_1_19_3/build.gradle @@ -1,6 +1,7 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' + id "org.jetbrains.kotlin.jvm" version "1.9.23" } version = project.mod_version @@ -26,7 +27,7 @@ dependencies { // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - modImplementation("net.fabricmc:fabric-language-kotlin:1.9.1+kotlin.1.8.10") + modImplementation "net.fabricmc:fabric-language-kotlin:${project.fabric_kotlin_version}" include modImplementation('com.squareup.okio:okio-jvm:3.0.0') include modImplementation('com.squareup.okhttp3:okhttp:4.10.0') @@ -50,6 +51,12 @@ tasks.withType(JavaCompile).configureEach { it.options.release = 17 } +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = 17 + } +} + java { // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // if it is present. @@ -69,7 +76,8 @@ jar { // configure the maven publication publishing { publications { - mavenJava(MavenPublication) { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name from components.java } } diff --git a/fabric_1_19_3/gradle.properties b/fabric_1_19_3/gradle.properties index 85ee2ffc..bf86647b 100644 --- a/fabric_1_19_3/gradle.properties +++ b/fabric_1_19_3/gradle.properties @@ -6,7 +6,8 @@ org.gradle.parallel=true # check these on https://fabricmc.net/develop minecraft_version=1.19.3 yarn_mappings=1.19.3+build.5 -loader_version=0.15.3 +loader_version=0.15.11 +fabric_kotlin_version=1.10.19+kotlin.1.9.23 # Mod Properties mod_version = 3.0.0 diff --git a/fabric_1_19_3/gradle/wrapper/gradle-wrapper.properties b/fabric_1_19_3/gradle/wrapper/gradle-wrapper.properties index c30b486a..b82aa23a 100644 --- a/fabric_1_19_3/gradle/wrapper/gradle-wrapper.properties +++ b/fabric_1_19_3/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/fabric_1_19_3/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java b/fabric_1_19_3/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java index bf91f5b9..936da51d 100644 --- a/fabric_1_19_3/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java +++ b/fabric_1_19_3/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.fabric; import com.coloryr.allmusic.server.AllMusicFabric; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -76,10 +77,7 @@ public class SideFabric extends ISide { protected void topSendStop() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -93,9 +91,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -103,18 +99,12 @@ public class SideFabric extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player, buf); - + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -124,18 +114,14 @@ public class SideFabric extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -143,7 +129,7 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -152,12 +138,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -166,18 +147,14 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -192,11 +169,7 @@ public class SideFabric extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -213,12 +186,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -236,12 +204,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -257,11 +220,7 @@ public class SideFabric extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -281,21 +240,17 @@ public class SideFabric extends ISide { if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -312,12 +267,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -332,10 +282,7 @@ public class SideFabric extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -363,11 +310,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -378,9 +321,7 @@ public class SideFabric extends ISide { public void clearHud() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/fabric_1_19_3/src/main/resources/fabric.mod.json b/fabric_1_19_3/src/main/resources/fabric.mod.json index d1e75d3c..e4b944aa 100644 --- a/fabric_1_19_3/src/main/resources/fabric.mod.json +++ b/fabric_1_19_3/src/main/resources/fabric.mod.json @@ -27,11 +27,11 @@ ], "depends": { - "fabricloader": ">=0.14.14", + "fabricloader": ">=0.15.11", "fabric-api": "*", "minecraft": "~1.19.3", "java": ">=17", - "fabric-language-kotlin": ">=1.9.1+kotlin.1.8.10" + "fabric-language-kotlin": ">=1.10.19" }, "suggests": { diff --git a/fabric_1_20/build.gradle b/fabric_1_20/build.gradle index 5eb83e55..10f5aaa2 100644 --- a/fabric_1_20/build.gradle +++ b/fabric_1_20/build.gradle @@ -1,6 +1,7 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' + id "org.jetbrains.kotlin.jvm" version "1.9.23" } version = project.mod_version @@ -26,7 +27,7 @@ dependencies { // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - modImplementation("net.fabricmc:fabric-language-kotlin:1.9.1+kotlin.1.8.10") + modImplementation "net.fabricmc:fabric-language-kotlin:${project.fabric_kotlin_version}" include modImplementation('com.squareup.okio:okio-jvm:3.0.0') include modImplementation('com.squareup.okhttp3:okhttp:4.10.0') @@ -47,7 +48,13 @@ processResources { } tasks.withType(JavaCompile).configureEach { - it.options.release = 17 + it.options.release = 21 +} + +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = 21 + } } java { @@ -56,8 +63,8 @@ java { // If you remove this line, sources will not be generated. withSourcesJar() - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } jar { @@ -69,7 +76,8 @@ jar { // configure the maven publication publishing { publications { - mavenJava(MavenPublication) { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name from components.java } } diff --git a/fabric_1_20/gradle.properties b/fabric_1_20/gradle.properties index 3cd89371..899bd87a 100644 --- a/fabric_1_20/gradle.properties +++ b/fabric_1_20/gradle.properties @@ -6,7 +6,8 @@ org.gradle.parallel=true # check these on https://fabricmc.net/develop minecraft_version=1.20 yarn_mappings=1.20+build.1 -loader_version=0.15.3 +loader_version=0.15.11 +fabric_kotlin_version=1.10.19+kotlin.1.9.23 # Mod Properties mod_version = 3.0.0 diff --git a/fabric_1_20/gradle/wrapper/gradle-wrapper.properties b/fabric_1_20/gradle/wrapper/gradle-wrapper.properties index c30b486a..b82aa23a 100644 --- a/fabric_1_20/gradle/wrapper/gradle-wrapper.properties +++ b/fabric_1_20/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/fabric_1_20/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java b/fabric_1_20/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java index bf91f5b9..ae675bf3 100644 --- a/fabric_1_20/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java +++ b/fabric_1_20/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.fabric; import com.coloryr.allmusic.server.AllMusicFabric; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -13,8 +14,6 @@ import com.coloryr.allmusic.server.core.side.ISide; import com.coloryr.allmusic.server.core.utils.HudUtils; import com.coloryr.allmusic.server.side.fabric.event.MusicAddEvent; import com.coloryr.allmusic.server.side.fabric.event.MusicPlayEvent; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.network.PacketByteBuf; import net.minecraft.server.command.CommandOutput; @@ -76,10 +75,7 @@ public class SideFabric extends ISide { protected void topSendStop() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -93,9 +89,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -103,18 +97,12 @@ public class SideFabric extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player, buf); - + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -124,18 +112,14 @@ public class SideFabric extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -143,7 +127,7 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -152,12 +136,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -166,18 +145,14 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -192,11 +167,7 @@ public class SideFabric extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -213,12 +184,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -236,12 +202,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -257,11 +218,7 @@ public class SideFabric extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -281,21 +238,17 @@ public class SideFabric extends ISide { if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -312,12 +265,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -332,10 +280,7 @@ public class SideFabric extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -363,11 +308,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -378,9 +319,7 @@ public class SideFabric extends ISide { public void clearHud() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/fabric_1_20/src/main/resources/fabric.mod.json b/fabric_1_20/src/main/resources/fabric.mod.json index 18f34c38..5c474170 100644 --- a/fabric_1_20/src/main/resources/fabric.mod.json +++ b/fabric_1_20/src/main/resources/fabric.mod.json @@ -27,11 +27,11 @@ ], "depends": { - "fabricloader": ">=0.14.21", + "fabricloader": ">=0.15.11", "fabric-api": "*", "minecraft": "~1.20", "java": ">=17", - "fabric-language-kotlin": ">=1.9.1+kotlin.1.8.10" + "fabric-language-kotlin": ">=1.10.19" }, "suggests": { diff --git a/fabric_1_20_2/build.gradle b/fabric_1_20_2/build.gradle index d116c3bf..02d5fe0f 100644 --- a/fabric_1_20_2/build.gradle +++ b/fabric_1_20_2/build.gradle @@ -1,15 +1,16 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' + id "org.jetbrains.kotlin.jvm" version "1.9.23" } -sourceCompatibility = JavaVersion.VERSION_17 -targetCompatibility = JavaVersion.VERSION_17 - -archivesBaseName = project.archives_base_name version = project.mod_version group = project.maven_group +base { + archivesName = project.archives_base_name +} + repositories { // Add repositories to retrieve artifacts from in here. // You should only use this when depending on other mods because @@ -26,7 +27,7 @@ dependencies { // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - modImplementation("net.fabricmc:fabric-language-kotlin:1.9.1+kotlin.1.8.10") + modImplementation "net.fabricmc:fabric-language-kotlin:${project.fabric_kotlin_version}" include modImplementation('com.squareup.okio:okio-jvm:3.0.0') include modImplementation('com.squareup.okhttp3:okhttp:4.10.0') @@ -47,27 +48,36 @@ processResources { } tasks.withType(JavaCompile).configureEach { - // Minecraft 1.18 (1.18-pre2) upwards uses Java 17. it.options.release = 17 } +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = 17 + } +} + java { // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // if it is present. // If you remove this line, sources will not be generated. withSourcesJar() + + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } jar { from("LICENSE") { - rename { "${it}_${project.archivesBaseName}"} + rename { "${it}_${project.base.archivesName.get()}"} } } // configure the maven publication publishing { publications { - mavenJava(MavenPublication) { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name from components.java } } @@ -79,4 +89,4 @@ publishing { // The repositories here will be used for publishing your artifact, not for // retrieving dependencies. } -} +} \ No newline at end of file diff --git a/fabric_1_20_2/gradle.properties b/fabric_1_20_2/gradle.properties index 2a30f3b6..d7703747 100644 --- a/fabric_1_20_2/gradle.properties +++ b/fabric_1_20_2/gradle.properties @@ -6,7 +6,8 @@ org.gradle.parallel=true # check these on https://fabricmc.net/develop minecraft_version=1.20.2 yarn_mappings=1.20.2+build.4 -loader_version=0.15.0 +loader_version=0.15.11 +fabric_kotlin_version=1.10.19+kotlin.1.9.23 # Mod Properties mod_version = 3.0.0 @@ -14,4 +15,4 @@ maven_group = com.coloryr.allmusic.server archives_base_name =[fabric-1.20.2]AllMusic_Server # Dependencies -fabric_version=0.91.1+1.20.2 +fabric_version=0.91.6+1.20.2 diff --git a/fabric_1_20_2/gradle/wrapper/gradle-wrapper.properties b/fabric_1_20_2/gradle/wrapper/gradle-wrapper.properties index c30b486a..b82aa23a 100644 --- a/fabric_1_20_2/gradle/wrapper/gradle-wrapper.properties +++ b/fabric_1_20_2/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/fabric_1_20_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java b/fabric_1_20_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java index 99009125..936da51d 100644 --- a/fabric_1_20_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java +++ b/fabric_1_20_2/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.fabric; import com.coloryr.allmusic.server.AllMusicFabric; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -76,9 +77,7 @@ public class SideFabric extends ISide { protected void topSendStop() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -92,9 +91,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -102,15 +99,12 @@ public class SideFabric extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -120,17 +114,14 @@ public class SideFabric extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -138,7 +129,7 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -147,10 +138,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -159,17 +147,14 @@ public class SideFabric extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -184,10 +169,7 @@ public class SideFabric extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -204,10 +186,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -225,10 +204,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -244,10 +220,7 @@ public class SideFabric extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -263,22 +236,21 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; + if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); + switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -295,10 +267,7 @@ public class SideFabric extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -313,10 +282,7 @@ public class SideFabric extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -344,9 +310,7 @@ public class SideFabric extends ISide { var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -357,9 +321,7 @@ public class SideFabric extends ISide { public void clearHud() { try { for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/fabric_1_20_2/src/main/resources/fabric.mod.json b/fabric_1_20_2/src/main/resources/fabric.mod.json index eedc0d92..b5e1e6cf 100644 --- a/fabric_1_20_2/src/main/resources/fabric.mod.json +++ b/fabric_1_20_2/src/main/resources/fabric.mod.json @@ -27,11 +27,11 @@ ], "depends": { - "fabricloader": ">=0.15", + "fabricloader": ">=0.15.11", "fabric-api": "*", "minecraft": "~1.20", "java": ">=17", - "fabric-language-kotlin": ">=1.9.1+kotlin.1.8.10" + "fabric-language-kotlin": ">=1.10.19" }, "suggests": { diff --git a/fabric_1_20_6/.gitignore b/fabric_1_20_6/.gitignore new file mode 100644 index 00000000..c476faf2 --- /dev/null +++ b/fabric_1_20_6/.gitignore @@ -0,0 +1,40 @@ +# gradle + +.gradle/ +build/ +out/ +classes/ + +# eclipse + +*.launch + +# idea + +.idea/ +*.iml +*.ipr +*.iws + +# vscode + +.settings/ +.vscode/ +bin/ +.classpath +.project + +# macos + +*.DS_Store + +# fabric + +run/ + +# java + +hs_err_*.log +replay_*.log +*.hprof +*.jfr diff --git a/fabric_1_20_6/build.gradle b/fabric_1_20_6/build.gradle new file mode 100644 index 00000000..02d5fe0f --- /dev/null +++ b/fabric_1_20_6/build.gradle @@ -0,0 +1,92 @@ +plugins { + id 'fabric-loom' version '1.6-SNAPSHOT' + id 'maven-publish' + id "org.jetbrains.kotlin.jvm" version "1.9.23" +} + +version = project.mod_version +group = project.maven_group + +base { + archivesName = project.archives_base_name +} + +repositories { + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. +} + +dependencies { + // To change the versions see the gradle.properties file + minecraft "com.mojang:minecraft:${project.minecraft_version}" + mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" + modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + modImplementation "net.fabricmc:fabric-language-kotlin:${project.fabric_kotlin_version}" + + include modImplementation('com.squareup.okio:okio-jvm:3.0.0') + include modImplementation('com.squareup.okhttp3:okhttp:4.10.0') + include modImplementation('org.xerial:sqlite-jdbc:3.39.3.0') + + // Uncomment the following line to enable the deprecated Fabric API modules. + // These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time. + + // modImplementation "net.fabricmc.fabric-api:fabric-api-deprecated:${project.fabric_version}" +} + +processResources { + inputs.property "version", project.version + + filesMatching("fabric.mod.json") { + expand "version": project.version + } +} + +tasks.withType(JavaCompile).configureEach { + it.options.release = 17 +} + +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = 17 + } +} + +java { + // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task + // if it is present. + // If you remove this line, sources will not be generated. + withSourcesJar() + + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +jar { + from("LICENSE") { + rename { "${it}_${project.base.archivesName.get()}"} + } +} + +// configure the maven publication +publishing { + publications { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + // Notice: This block does NOT have the same function as the block in the top level. + // The repositories here will be used for publishing your artifact, not for + // retrieving dependencies. + } +} \ No newline at end of file diff --git a/fabric_1_20_6/gradle.properties b/fabric_1_20_6/gradle.properties new file mode 100644 index 00000000..e267c622 --- /dev/null +++ b/fabric_1_20_6/gradle.properties @@ -0,0 +1,18 @@ +# Done to increase the memory available to gradle. +org.gradle.jvmargs=-Xmx1G +org.gradle.parallel=true + +# Fabric Properties +# check these on https://fabricmc.net/develop +minecraft_version=1.20.6 +yarn_mappings=1.20.6+build.1 +loader_version=0.15.11 +fabric_kotlin_version=1.10.19+kotlin.1.9.23 + +# Mod Properties +mod_version = 3.0.0 +maven_group = com.coloryr.allmusic.server +archives_base_name =[fabric-1.20.6]AllMusic_Server + +# Dependencies +fabric_version=0.98.0+1.20.6 diff --git a/fabric_1_20_6/gradle/wrapper/gradle-wrapper.jar b/fabric_1_20_6/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..ccebba77 Binary files /dev/null and b/fabric_1_20_6/gradle/wrapper/gradle-wrapper.jar differ diff --git a/fabric_1_20_6/gradle/wrapper/gradle-wrapper.properties b/fabric_1_20_6/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..b82aa23a --- /dev/null +++ b/fabric_1_20_6/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/fabric_1_20_6/gradlew b/fabric_1_20_6/gradlew new file mode 100644 index 00000000..79a61d42 --- /dev/null +++ b/fabric_1_20_6/gradlew @@ -0,0 +1,244 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/fabric_1_20_6/gradlew.bat b/fabric_1_20_6/gradlew.bat new file mode 100644 index 00000000..93e3f59f --- /dev/null +++ b/fabric_1_20_6/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/fabric_1_20_6/settings.gradle b/fabric_1_20_6/settings.gradle new file mode 100644 index 00000000..6935efd5 --- /dev/null +++ b/fabric_1_20_6/settings.gradle @@ -0,0 +1,12 @@ +pluginManagement { + repositories { + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } + mavenCentral() + gradlePluginPortal() + } +} + +rootProject.name = 'AllMusic_Server' \ No newline at end of file diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/AllMusicFabric.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/AllMusicFabric.java new file mode 100644 index 00000000..340f2cef --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/AllMusicFabric.java @@ -0,0 +1,55 @@ +package com.coloryr.allmusic.server; + +import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.objs.enums.ComType; +import com.coloryr.allmusic.server.side.fabric.CommandFabric; +import com.coloryr.allmusic.server.side.fabric.LogFabric; +import com.coloryr.allmusic.server.side.fabric.SideFabric; +import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.packet.CustomPayload; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.Identifier; +import okio.Buffer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; + +public class AllMusicFabric implements ModInitializer { + public static MinecraftServer server; + public static final Logger LOGGER = LoggerFactory.getLogger("AllMusic_Server"); + + public static final Identifier ID = new Identifier("allmusic", "channel"); + + @Override + public void onInitialize() { + String path = "allmusic3/"; + + AllMusic.log = new LogFabric(); + AllMusic.side = new SideFabric(); + + new AllMusic().init(new File(path)); + + CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) + -> CommandFabric.instance.register(dispatcher)); + + PayloadTypeRegistry.playS2C().register(PackPayload.ID, PackPayload.CODEC); + ServerLifecycleEvents.SERVER_STARTED.register((a) -> { + server = a; + + AllMusic.start(); + + Tasks.init(); + }); + + ServerLifecycleEvents.SERVER_STOPPING.register((a) -> { + AllMusic.stop(); + }); + } +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/PackPayload.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/PackPayload.java new file mode 100644 index 00000000..0034f73e --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/PackPayload.java @@ -0,0 +1,16 @@ +package com.coloryr.allmusic.server; + +import com.coloryr.allmusic.server.core.objs.enums.ComType; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.packet.CustomPayload; + +public record PackPayload(ComType type, String data, int data1) implements CustomPayload { + public static final Id ID = new CustomPayload.Id<>(AllMusicFabric.ID); + public static final PacketCodec CODEC = PacketCodec.of((value, buf) -> com.coloryr.allmusic.server.codec.PacketCodec.pack(buf, value.type, value.data, value.data1), buffer -> new PackPayload(ComType.CLEAR, null, 0)); + + @Override + public Id getId() { + return ID; + } +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/TaskItem.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/TaskItem.java new file mode 100644 index 00000000..40f9a5b9 --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/TaskItem.java @@ -0,0 +1,6 @@ +package com.coloryr.allmusic.server; + +public class TaskItem { + public int tick; + public Runnable run; +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/Tasks.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/Tasks.java new file mode 100644 index 00000000..c70e7f5e --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/Tasks.java @@ -0,0 +1,27 @@ +package com.coloryr.allmusic.server; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class Tasks { + private static final List taskItems = new CopyOnWriteArrayList<>(); + + public static void init() { + AllMusicFabric.server.addServerGuiTickable(Tasks::tick); + } + + public static void tick() { + for (var item : new ArrayList<>(taskItems)) { + item.tick--; + if (item.tick <= 0) { + taskItems.remove(item); + item.run.run(); + } + } + } + + public static void add(TaskItem item) { + taskItems.add(item); + } +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/mixin/IGetCommandOutput.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/mixin/IGetCommandOutput.java new file mode 100644 index 00000000..2bf5740b --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/mixin/IGetCommandOutput.java @@ -0,0 +1,13 @@ +package com.coloryr.allmusic.server.mixin; + +import net.minecraft.server.command.CommandOutput; +import net.minecraft.server.command.ServerCommandSource; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ServerCommandSource.class) +public interface IGetCommandOutput { + @Accessor(value = "output") + CommandOutput getOutput(); +} + diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/mixin/ServerPlayerMixin.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/mixin/ServerPlayerMixin.java new file mode 100644 index 00000000..252906a5 --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/mixin/ServerPlayerMixin.java @@ -0,0 +1,24 @@ +package com.coloryr.allmusic.server.mixin; + +import com.coloryr.allmusic.server.core.AllMusic; +import net.minecraft.network.ClientConnection; +import net.minecraft.server.PlayerManager; +import net.minecraft.server.network.ConnectedClientData; +import net.minecraft.server.network.ServerPlayerEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(PlayerManager.class) +public class ServerPlayerMixin { + @Inject(at = @At("HEAD"), method = "remove") + private void remove(ServerPlayerEntity entity, CallbackInfo info) { + AllMusic.removeNowPlayPlayer(entity.getName().getString()); + } + + @Inject(at = @At("TAIL"), method = "onPlayerConnect") + private void add(ClientConnection connection, ServerPlayerEntity player, ConnectedClientData clientData, CallbackInfo ci) { + AllMusic.joinPlay(player.getName().getString()); + } +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/CommandFabric.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/CommandFabric.java new file mode 100644 index 00000000..d113f897 --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/CommandFabric.java @@ -0,0 +1,66 @@ +package com.coloryr.allmusic.server.side.fabric; + +import com.coloryr.allmusic.server.core.command.CommandEX; +import com.coloryr.allmusic.server.mixin.IGetCommandOutput; +import com.mojang.brigadier.Command; +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import com.mojang.brigadier.suggestion.SuggestionsBuilder; +import net.minecraft.server.command.CommandManager; +import net.minecraft.server.command.ServerCommandSource; + +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.function.Predicate; + +public class CommandFabric implements Command, Predicate, SuggestionProvider { + public static CommandFabric instance = new CommandFabric(); + + public void register(CommandDispatcher dispatcher) { + dispatcher.register(((CommandManager.literal("music").requires(this)).executes(this)) + .then(CommandManager.argument("args", StringArgumentType.greedyString()) + .suggests(this).executes(this))); + } + + @Override + public int run(CommandContext context) { + var item = context.getSource(); + var source = ((IGetCommandOutput) item).getOutput(); + + var input = context.getInput(); + var temp = input.split(" "); + var arg = new String[temp.length - 1]; + System.arraycopy(temp, 1, arg, 0, arg.length); + + CommandEX.ex(source, context.getSource().getName(), arg); + + return 0; + } + + @Override + public boolean test(ServerCommandSource stack) { + return true; + } + + @Override + public CompletableFuture getSuggestions(CommandContext context, SuggestionsBuilder builder) { + var input = context.getInput(); + var temp = input.split(" "); + var arg = new String[input.endsWith(" ") ? temp.length : temp.length - 1]; + System.arraycopy(temp, 1, arg, 0, temp.length - 1); + + if (input.endsWith(" ")) + builder = builder.createOffset(builder.getInput().lastIndexOf(32) + 1); + + List results = CommandEX.getTabList(context.getSource().getName(), arg); + + for (String s : results) { + builder.suggest(s); + } + + return builder.buildFuture(); + } +} \ No newline at end of file diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/FabricApi.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/FabricApi.java new file mode 100644 index 00000000..8cd973eb --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/FabricApi.java @@ -0,0 +1,48 @@ +package com.coloryr.allmusic.server.side.fabric; + +import com.coloryr.allmusic.server.AllMusicFabric; +import com.coloryr.allmusic.server.core.AllMusic; +import net.minecraft.network.packet.s2c.play.OverlayMessageS2CPacket; +import net.minecraft.server.command.CommandOutput; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.text.ClickEvent; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; + +public class FabricApi { + + public static void sendMessageRun(Object obj, String message, String end, String command) { + CommandOutput sender = (CommandOutput) obj; + MutableText send = Text.literal(message); + var endText = Text.literal(end); + endText.setStyle(endText.getStyle().withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, command))); + send.append(endText); + sender.sendMessage(send); + } + + public static void sendMessageSuggest(Object obj, String message, String end, String command) { + CommandOutput sender = (CommandOutput) obj; + MutableText send = Text.literal(message); + var endText = Text.literal(end); + endText.setStyle(endText.getStyle().withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, command))); + send.append(endText); + sender.sendMessage(send); + } + + public static void sendBar(ServerPlayerEntity player, String message) { + var pack = new OverlayMessageS2CPacket(Text.literal(message)); + player.networkHandler.sendPacket(pack); + } + + public static void sendMessageBqRun(String message, String end, String command) { + MutableText send = Text.literal(message); + MutableText endText = Text.literal(end); + endText.setStyle(endText.getStyle().withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, command))); + send.append(endText); + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (!AllMusic.getConfig().mutePlayer.contains(player.getName().getString())) { + player.sendMessage(send, false); + } + } + } +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/LogFabric.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/LogFabric.java new file mode 100644 index 00000000..76eb6745 --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/LogFabric.java @@ -0,0 +1,16 @@ +package com.coloryr.allmusic.server.side.fabric; + +import com.coloryr.allmusic.server.AllMusicFabric; +import com.coloryr.allmusic.server.core.side.IMyLogger; + +public class LogFabric implements IMyLogger { + @Override + public void warning(String data) { + AllMusicFabric.LOGGER.warn(data); + } + + @Override + public void info(String data) { + AllMusicFabric.LOGGER.info(data); + } +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java new file mode 100644 index 00000000..06ea6d90 --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/SideFabric.java @@ -0,0 +1,434 @@ +package com.coloryr.allmusic.server.side.fabric; + +import com.coloryr.allmusic.server.AllMusicFabric; +import com.coloryr.allmusic.server.PackPayload; +import com.coloryr.allmusic.server.TaskItem; +import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; +import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.objs.config.SaveObj; +import com.coloryr.allmusic.server.core.objs.enums.ComType; +import com.coloryr.allmusic.server.core.objs.enums.HudType; +import com.coloryr.allmusic.server.core.objs.music.MusicObj; +import com.coloryr.allmusic.server.core.objs.music.SongInfoObj; +import com.coloryr.allmusic.server.core.side.ISide; +import com.coloryr.allmusic.server.core.utils.HudUtils; +import com.coloryr.allmusic.server.side.fabric.event.MusicAddEvent; +import com.coloryr.allmusic.server.side.fabric.event.MusicPlayEvent; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.server.command.CommandOutput; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.text.Text; +import net.minecraft.util.ActionResult; + +import java.io.File; +import java.nio.charset.StandardCharsets; +import java.util.List; + +public class SideFabric extends ISide { + + @Override + public void reload() { + String path = "allmusic/"; + new AllMusic().init(new File(path)); + } + + @Override + public int getAllPlayer() { + return AllMusicFabric.server.getCurrentPlayerCount(); + } + + @Override + public void runTask(Runnable run) { + AllMusicFabric.server.execute(run); + } + + @Override + public void runTask(Runnable run1, int delay) { + Tasks.add(new TaskItem() {{ + tick = delay; + run = run1; + }}); + } + + @Override + public boolean checkPermission(String player, String permission) { + var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); + if (player1 == null) + return false; + + return player1.hasPermissionLevel(2); + } + + @Override + public boolean needPlay() { + int online = getAllPlayer(); + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (AllMusic.getConfig().mutePlayer.contains(player.getName().getString())) { + online--; + } + } + return online > 0; + } + + @Override + protected void topSendStop() { + try { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + send(player, new PackPayload(ComType.STOP, null, 0)); + } + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); + e.printStackTrace(); + } + } + + @Override + protected void topSendStop(String name) { + try { + var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); + if (player == null) + return; + send(player, new PackPayload(ComType.STOP, null, 0)); + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendMusic(String data) { + try { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (AllMusic.isOK(player.getName().getString(), null, false)) + continue; + send(player, new PackPayload(ComType.PLAY, data, 0)); + AllMusic.addNowPlayPlayer(player.getName().getString()); + } + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); + e.printStackTrace(); + } + } + + @Override + protected void topSendMusic(String player, String data) { + try { + var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); + if (player1 == null) + return; + if (AllMusic.isOK(player, null, false)) + return; + send(player1, new PackPayload(ComType.PLAY, data, 0)); + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendPic(String data) { + try { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (AllMusic.isOK(player.getName().getString(), null, true)) + continue; + String name = player.getName().getString(); + SaveObj obj = HudUtils.get(name); + if (!obj.pic.enable) + continue; + send(player, new PackPayload(ComType.IMG, data, 0)); + } + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendPic(String player, String data) { + try { + var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); + if (player1 == null) + return; + if (AllMusic.isOK(player1.getName().getString(), null, true)) + return; + send(player1, new PackPayload(ComType.IMG, data, 0)); + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendPos(String player, int pos) { + try { + var player1 = AllMusicFabric.server.getPlayerManager().getPlayer(player); + if (player1 == null) + return; + if (AllMusic.isOK(player1.getName().getString(), null, true)) + return; + send(player1, new PackPayload(ComType.POS, null, pos)); + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); + e.printStackTrace(); + } + } + + @Override + public void sendHudLyric(String data) { + try { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (AllMusic.isOK(player.getName().getString(), null, true)) + continue; + String name = player.getName().getString(); + SaveObj obj = HudUtils.get(name); + if (!obj.lyric.enable) + continue; + send(player, new PackPayload(ComType.LYRIC, data, 0)); + } + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendHudInfo(String data) { + try { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (AllMusic.isOK(player.getName().getString(), null, true)) + continue; + String name = player.getName().getString(); + SaveObj obj = HudUtils.get(name); + if (!obj.info.enable) + continue; + send(player, new PackPayload(ComType.INFO, data, 0)); + } + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendHudPos(String name) { + try { + var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); + if (player == null) + return; + SaveObj obj = HudUtils.get(name); + String data = AllMusic.gson.toJson(obj); + send(player, new PackPayload(ComType.HUD, data, 0)); + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendHud(String name, HudType pos, String data) { + try { + if (pos == HudType.PIC) { + return; + } + var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); + if (player == null) + return; + + if (AllMusic.isOK(name, null, true)) + return; + + switch (pos) { + case INFO: + send(player, new PackPayload(ComType.INFO, data, 0)); + break; + case LIST: + send(player, new PackPayload(ComType.LIST, data, 0)); + break; + case LYRIC: + send(player, new PackPayload(ComType.LYRIC, data, 0)); + break; + } + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendHudList(String data) { + try { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (AllMusic.isOK(player.getName().getString(), null, true)) + continue; + String name = player.getName().getString(); + SaveObj obj = HudUtils.get(name); + if (!obj.list.enable) + continue; + send(player, new PackPayload(ComType.LIST, data, 0)); + } + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); + e.printStackTrace(); + } + } + + @Override + public void sendHudUtilsAll() { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + String Name = player.getName().getString(); + try { + SaveObj obj = HudUtils.get(Name); + String data = AllMusic.gson.toJson(obj); + send(player, new PackPayload(ComType.HUD, data, 0)); + } catch (Exception e1) { + AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); + e1.printStackTrace(); + } + } + } + + @Override + public void sendBar(String data) { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + try { + if (AllMusic.isOK(player.getName().getString(), null, true)) + continue; + FabricApi.sendBar(player, data); + } catch (Exception e1) { + AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); + e1.printStackTrace(); + } + } + } + + @Override + public void clearHud(String name) { + try { + var player = AllMusicFabric.server.getPlayerManager().getPlayer(name); + if (player == null) + return; + send(player, new PackPayload(ComType.CLEAR, null, 0)); + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); + e.printStackTrace(); + } + } + + @Override + public void clearHud() { + try { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + send(player, new PackPayload(ComType.CLEAR, null, 0)); + } + } catch (Exception e) { + AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); + e.printStackTrace(); + } + } + + @Override + public void bq(String data) { + if (AllMusic.getConfig().messageLimit + && data.length() > AllMusic.getConfig().messageLimitSize) { + data = data.substring(0, AllMusic.getConfig().messageLimitSize - 1) + "..."; + } + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (!AllMusic.getConfig().mutePlayer.contains(player.getName().getString())) { + player.sendMessage(Text.of(data), false); + } + } + } + + @Override + public void bqRun(String message, String end, String command) { + FabricApi.sendMessageBqRun(message, end, command); + } + + @Override + public void bqt(String data) { + if (AllMusic.getConfig().messageLimit + && data.length() > AllMusic.getConfig().messageLimitSize) { + data = data.substring(0, AllMusic.getConfig().messageLimitSize - 1) + "..."; + } + var finalData = Text.of(data); + runTask(() -> { + for (var player : AllMusicFabric.server.getPlayerManager().getPlayerList()) { + if (!AllMusic.getConfig().mutePlayer.contains(player.getName().getString())) { + player.sendMessage(finalData, false); + } + } + }); + } + + @Override + public void sendMessaget(Object obj, String message) { + runTask(() -> ((CommandOutput) obj).sendMessage(Text.of(message))); + } + + @Override + public void sendMessage(Object obj, String message) { + CommandOutput sender = (CommandOutput) obj; + sender.sendMessage(Text.of(message)); + } + + @Override + public void sendMessageRun(Object obj, String message, String end, String command) { + FabricApi.sendMessageRun(obj, message, end, command); + } + + @Override + public void sendMessageSuggest(Object obj, String message, String end, String command) { + FabricApi.sendMessageSuggest(obj, message, end, command); + } + + @Override + public boolean onMusicPlay(SongInfoObj obj) { + return MusicPlayEvent.EVENT.invoker().interact(obj) != ActionResult.PASS; + } + + @Override + public boolean onMusicAdd(Object obj, MusicObj music) { + return MusicAddEvent.EVENT.invoker().interact((ServerPlayerEntity) obj, music) != ActionResult.PASS; + } + + @Override + public void updateInfo() { + + } + + @Override + public void updateLyric() { + + } + + @Override + public void ping() { + + } + + @Override + public List getPlayerList() { + return List.of(); + } + + private void send(ServerPlayerEntity players, PackPayload data) { + if (players == null) + return; + try { + runTask(() -> ServerPlayNetworking.send(players, data)); + } catch (Exception e) { + AllMusic.log.warning("§c数据发送发生错误"); + e.printStackTrace(); + } + } + + private void writeString(ByteBuf buf, String data) { + byte[] temp = data.getBytes(StandardCharsets.UTF_8); + buf.writeInt(temp.length) + .writeBytes(temp); + } +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/event/MusicAddEvent.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/event/MusicAddEvent.java new file mode 100644 index 00000000..708a509e --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/event/MusicAddEvent.java @@ -0,0 +1,24 @@ +package com.coloryr.allmusic.server.side.fabric.event; + +import com.coloryr.allmusic.server.core.objs.music.MusicObj; +import net.fabricmc.fabric.api.event.Event; +import net.fabricmc.fabric.api.event.EventFactory; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.ActionResult; + +public interface MusicAddEvent { + Event EVENT = EventFactory.createArrayBacked(MusicAddEvent.class, + (listeners) -> (player, music) -> { + for (MusicAddEvent listener : listeners) { + ActionResult result = listener.interact(player, music); + + if (result != ActionResult.PASS) { + return result; + } + } + + return ActionResult.PASS; + }); + + ActionResult interact(ServerPlayerEntity player, MusicObj music); +} diff --git a/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/event/MusicPlayEvent.java b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/event/MusicPlayEvent.java new file mode 100644 index 00000000..45c91861 --- /dev/null +++ b/fabric_1_20_6/src/main/java/com/coloryr/allmusic/server/side/fabric/event/MusicPlayEvent.java @@ -0,0 +1,23 @@ +package com.coloryr.allmusic.server.side.fabric.event; + +import com.coloryr.allmusic.server.core.objs.music.SongInfoObj; +import net.fabricmc.fabric.api.event.Event; +import net.fabricmc.fabric.api.event.EventFactory; +import net.minecraft.util.ActionResult; + +public interface MusicPlayEvent { + Event EVENT = EventFactory.createArrayBacked(MusicPlayEvent.class, + (listeners) -> (music) -> { + for (MusicPlayEvent listener : listeners) { + ActionResult result = listener.interact(music); + + if (result != ActionResult.PASS) { + return result; + } + } + + return ActionResult.PASS; + }); + + ActionResult interact(SongInfoObj music); +} diff --git a/fabric_1_20_6/src/main/resources/allmusic_server.mixins.json b/fabric_1_20_6/src/main/resources/allmusic_server.mixins.json new file mode 100644 index 00000000..6aef62a7 --- /dev/null +++ b/fabric_1_20_6/src/main/resources/allmusic_server.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "com.coloryr.allmusic.server.mixin", + "compatibilityLevel": "JAVA_17", + "server": [ + + ], + "mixins": [ + "IGetCommandOutput", + "ServerPlayerMixin" + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/fabric_1_20_6/src/main/resources/assets/allmusic_server/icon.png b/fabric_1_20_6/src/main/resources/assets/allmusic_server/icon.png new file mode 100644 index 00000000..b2b5fa79 Binary files /dev/null and b/fabric_1_20_6/src/main/resources/assets/allmusic_server/icon.png differ diff --git a/fabric_1_20_6/src/main/resources/fabric.mod.json b/fabric_1_20_6/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..335f4323 --- /dev/null +++ b/fabric_1_20_6/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "allmusic_server", + "version": "${version}", + + "name": "AllMusic Server", + "description": "AllMusic Server Mod", + "authors": [ + "Color_yr" + ], + "contact": { + "homepage": "https://github.com/Coloryr/AllMusic_Server", + "sources": "https://github.com/Coloryr/AllMusic_Server" + }, + + "license": "GPL-3.0", + "icon": "assets/allmusic_server/icon.png", + + "environment": "*", + "entrypoints": { + "main": [ + "com.coloryr.allmusic.server.AllMusicFabric" + ] + }, + "mixins": [ + "allmusic_server.mixins.json" + ], + + "depends": { + "fabricloader": ">=0.15.11", + "minecraft": "~1.20.6", + "java": ">=21", + "fabric-api": "*", + "fabric-language-kotlin": ">=1.9.23" + }, + "suggests": { + + } +} diff --git a/folia/src/main/java/com/coloryr/allmusic/server/side/folia/SideFolia.java b/folia/src/main/java/com/coloryr/allmusic/server/side/folia/SideFolia.java index c41563ff..6ba03fd4 100644 --- a/folia/src/main/java/com/coloryr/allmusic/server/side/folia/SideFolia.java +++ b/folia/src/main/java/com/coloryr/allmusic/server/side/folia/SideFolia.java @@ -1,6 +1,7 @@ package com.coloryr.allmusic.server.side.folia; import com.coloryr.allmusic.server.AllMusicFolia; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -39,12 +40,7 @@ public class SideFolia extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -62,12 +58,7 @@ public class SideFolia extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -83,14 +74,9 @@ public class SideFolia extends ISide { return; if (AllMusic.isOK(name, null, false)) return; - SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -110,21 +96,17 @@ public class SideFolia extends ISide { if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -141,12 +123,7 @@ public class SideFolia extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -161,11 +138,7 @@ public class SideFolia extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -192,17 +165,12 @@ public class SideFolia extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (Player player : Bukkit.getOnlinePlayers()) { if (AllMusic.isOK(player.getName(), null, false)) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName()); } } catch (Exception e) { @@ -212,18 +180,14 @@ public class SideFolia extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { Player player1 = Bukkit.getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -231,7 +195,7 @@ public class SideFolia extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (Player player : Bukkit.getOnlinePlayers()) { if (AllMusic.isOK(player.getName(), null, true)) @@ -240,12 +204,7 @@ public class SideFolia extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -254,18 +213,14 @@ public class SideFolia extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { Player player1 = Bukkit.getPlayer(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -280,11 +235,7 @@ public class SideFolia extends ISide { return; if (AllMusic.isOK(player1.getName(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -295,10 +246,7 @@ public class SideFolia extends ISide { protected void topSendStop() { try { for (Player player : Bukkit.getOnlinePlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -312,10 +260,7 @@ public class SideFolia extends ISide { Player player = Bukkit.getPlayer(name); if (player == null) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -328,11 +273,7 @@ public class SideFolia extends ISide { Player player = Bukkit.getPlayer(name); if (player == null) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -343,10 +284,7 @@ public class SideFolia extends ISide { public void clearHud() { try { for (Player player : Bukkit.getOnlinePlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); @@ -529,10 +467,4 @@ public class SideFolia extends ISide { e.printStackTrace(); } } - - private void writeString(ByteBuf buf, String data) { - byte[] temp = data.getBytes(StandardCharsets.UTF_8); - buf.writeInt(temp.length) - .writeBytes(temp); - } } diff --git a/forge_1_12_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java b/forge_1_12_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java index 7573b7e0..61586f00 100644 --- a/forge_1_12_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java +++ b/forge_1_12_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -19,8 +20,6 @@ import io.netty.buffer.Unpooled; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.PacketBuffer; -import net.minecraft.network.play.client.CPacketCustomPayload; -import net.minecraft.network.play.server.SPacketCustomPayload; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; @@ -82,9 +81,7 @@ public class SideForge extends ISide { protected void topSendStop() { try { for (EntityPlayerMP player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -98,9 +95,7 @@ public class SideForge extends ISide { EntityPlayerMP player = AllMusicForge.server.getPlayerList().getPlayerByUsername(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -108,15 +103,12 @@ public class SideForge extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (EntityPlayerMP player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName(), null, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName()); } } catch (Exception e) { @@ -126,17 +118,14 @@ public class SideForge extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { EntityPlayerMP player1 = AllMusicForge.server.getPlayerList().getPlayerByUsername(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -144,7 +133,7 @@ public class SideForge extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (EntityPlayerMP player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName(), null, true)) @@ -153,10 +142,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -165,17 +151,14 @@ public class SideForge extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { EntityPlayerMP player1 = AllMusicForge.server.getPlayerList().getPlayerByUsername(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -190,10 +173,7 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(player1.getName(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -210,10 +190,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -231,10 +208,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -250,10 +224,7 @@ public class SideForge extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -271,20 +242,17 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -301,10 +269,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -319,10 +284,7 @@ public class SideForge extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = new Gson().toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -350,9 +312,7 @@ public class SideForge extends ISide { EntityPlayerMP player = AllMusicForge.server.getPlayerList().getPlayerByUsername(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -363,9 +323,7 @@ public class SideForge extends ISide { public void clearHud() { try { for (EntityPlayerMP player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/forge_1_16_5/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java b/forge_1_16_5/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java index 5b33ebf7..325d5987 100644 --- a/forge_1_16_5/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java +++ b/forge_1_16_5/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -82,9 +83,7 @@ public class SideForge extends ISide { protected void topSendStop() { try { for (ServerPlayerEntity player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -98,9 +97,7 @@ public class SideForge extends ISide { ServerPlayerEntity player = AllMusicForge.server.getPlayerList().getPlayerByName(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -108,15 +105,12 @@ public class SideForge extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (ServerPlayerEntity player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -126,17 +120,14 @@ public class SideForge extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { ServerPlayerEntity player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -144,7 +135,7 @@ public class SideForge extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (ServerPlayerEntity player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -153,10 +144,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -165,17 +153,14 @@ public class SideForge extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { ServerPlayerEntity player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -190,10 +175,7 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -210,10 +192,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -231,10 +210,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -250,10 +226,7 @@ public class SideForge extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -271,20 +244,17 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -301,10 +271,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -319,10 +286,7 @@ public class SideForge extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = new Gson().toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -350,9 +314,7 @@ public class SideForge extends ISide { ServerPlayerEntity player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -363,9 +325,7 @@ public class SideForge extends ISide { public void clearHud() { try { for (ServerPlayerEntity player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); @@ -439,7 +399,7 @@ public class SideForge extends ISide { MusicAddEvent event = new MusicAddEvent(music, (CommandSource) obj); return MinecraftForge.EVENT_BUS.post(event); } - +// @Override public void updateInfo() { diff --git a/forge_1_18_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java b/forge_1_18_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java index c6d88ba3..2c4767f7 100644 --- a/forge_1_18_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java +++ b/forge_1_18_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -81,9 +82,7 @@ public class SideForge extends ISide { protected void topSendStop() { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -97,9 +96,7 @@ public class SideForge extends ISide { ServerPlayer player = AllMusicForge.server.getPlayerList().getPlayerByName(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -107,15 +104,12 @@ public class SideForge extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -125,17 +119,14 @@ public class SideForge extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -143,7 +134,7 @@ public class SideForge extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -152,10 +143,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -164,17 +152,14 @@ public class SideForge extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -189,10 +174,7 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -209,10 +191,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -230,10 +209,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -249,10 +225,7 @@ public class SideForge extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -270,20 +243,17 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -300,10 +270,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -318,10 +285,7 @@ public class SideForge extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = new Gson().toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -349,9 +313,7 @@ public class SideForge extends ISide { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -362,9 +324,7 @@ public class SideForge extends ISide { public void clearHud() { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/forge_1_19_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java b/forge_1_19_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java index 7ca0eb5b..c4773993 100644 --- a/forge_1_19_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java +++ b/forge_1_19_2/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -80,9 +81,7 @@ public class SideForge extends ISide { protected void topSendStop() { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -96,9 +95,7 @@ public class SideForge extends ISide { ServerPlayer player = AllMusicForge.server.getPlayerList().getPlayerByName(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -106,15 +103,12 @@ public class SideForge extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -124,17 +118,14 @@ public class SideForge extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -142,7 +133,7 @@ public class SideForge extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -151,10 +142,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -163,17 +151,14 @@ public class SideForge extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -188,10 +173,7 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -208,10 +190,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -229,10 +208,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -248,10 +224,7 @@ public class SideForge extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -269,20 +242,17 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -299,10 +269,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -317,10 +284,7 @@ public class SideForge extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = new Gson().toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -348,9 +312,7 @@ public class SideForge extends ISide { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -361,9 +323,7 @@ public class SideForge extends ISide { public void clearHud() { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/forge_1_19_3/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java b/forge_1_19_3/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java index 7ca0eb5b..c4773993 100644 --- a/forge_1_19_3/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java +++ b/forge_1_19_3/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -80,9 +81,7 @@ public class SideForge extends ISide { protected void topSendStop() { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -96,9 +95,7 @@ public class SideForge extends ISide { ServerPlayer player = AllMusicForge.server.getPlayerList().getPlayerByName(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -106,15 +103,12 @@ public class SideForge extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -124,17 +118,14 @@ public class SideForge extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -142,7 +133,7 @@ public class SideForge extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -151,10 +142,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -163,17 +151,14 @@ public class SideForge extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -188,10 +173,7 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -208,10 +190,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -229,10 +208,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -248,10 +224,7 @@ public class SideForge extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -269,20 +242,17 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -299,10 +269,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -317,10 +284,7 @@ public class SideForge extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = new Gson().toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -348,9 +312,7 @@ public class SideForge extends ISide { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -361,9 +323,7 @@ public class SideForge extends ISide { public void clearHud() { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/forge_1_20/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java b/forge_1_20/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java index 38762dbe..3d12f638 100644 --- a/forge_1_20/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java +++ b/forge_1_20/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -78,9 +79,7 @@ public class SideForge extends ISide { protected void topSendStop() { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -94,9 +93,7 @@ public class SideForge extends ISide { ServerPlayer player = AllMusicForge.server.getPlayerList().getPlayerByName(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -104,15 +101,12 @@ public class SideForge extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -122,17 +116,14 @@ public class SideForge extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -140,7 +131,7 @@ public class SideForge extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -149,10 +140,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -161,17 +149,14 @@ public class SideForge extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -186,10 +171,7 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -206,10 +188,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -227,10 +206,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -246,10 +222,7 @@ public class SideForge extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); @@ -267,20 +240,17 @@ public class SideForge extends ISide { return; if (AllMusic.isOK(name, null, true)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - send(player, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -297,10 +267,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -315,10 +282,7 @@ public class SideForge extends ISide { try { SaveObj obj = HudUtils.get(Name); String data = new Gson().toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -346,9 +310,7 @@ public class SideForge extends ISide { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -359,9 +321,7 @@ public class SideForge extends ISide { public void clearHud() { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); diff --git a/link.cmd b/link.cmd index b3c347f7..9ad1e6ca 100644 --- a/link.cmd +++ b/link.cmd @@ -8,10 +8,19 @@ setlocal enabledelayedexpansion set array=folia server_top server forge_1_20 forge_1_19_3 ^ forge_1_19_2 forge_1_18_2 forge_1_16_5 forge_1_12_2 ^ fabric_1_20_2 fabric_1_20 fabric_1_19_3 fabric_1_19_2 fabric_1_18_2 ^ -fabric_1_16_5 neoforge_1_20_4 neoforge_1_20_5 +fabric_1_16_5 fabric_1_20_6 neoforge_1_20_4 neoforge_1_20_5 for %%i in (%array%) do ( if not exist "%%i\src\main\java\com\coloryr\allmusic\server\core" mklink /j "%%i\src\main\java\com\coloryr\allmusic\server\core" "core" if not exist "%%i\build" mklink /j "%%i\build" "build" if not exist "%%i\.gradle" mklink /j "%%i\.gradle" ".gradle" -) \ No newline at end of file +) + +set array1=folia server_top forge_1_20 forge_1_19_3 ^ +forge_1_19_2 forge_1_18_2 forge_1_16_5 forge_1_12_2 ^ +fabric_1_20_2 fabric_1_20 fabric_1_19_3 fabric_1_19_2 fabric_1_18_2 ^ +fabric_1_16_5 fabric_1_20_6 neoforge_1_20_4 neoforge_1_20_5 + +for %%i in (%array%) do ( + if not exist "%%i\src\main\java\com\coloryr\allmusic\server\codec" mklink /j "%%i\src\main\java\com\coloryr\allmusic\server\codec" "codec" +) diff --git a/neoforge_1_20_4/src/main/java/com/coloryr/allmusic/server/side/forge/PackData.java b/neoforge_1_20_4/src/main/java/com/coloryr/allmusic/server/side/forge/PackData.java index c5132faa..f4153fa4 100644 --- a/neoforge_1_20_4/src/main/java/com/coloryr/allmusic/server/side/forge/PackData.java +++ b/neoforge_1_20_4/src/main/java/com/coloryr/allmusic/server/side/forge/PackData.java @@ -1,39 +1,17 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.objs.enums.ComType; -import io.netty.buffer.ByteBuf; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.NotNull; -import java.nio.charset.StandardCharsets; - public record PackData(ComType cmd, String data, int data1) implements CustomPacketPayload { @Override public void write(@NotNull FriendlyByteBuf pack) { - pack.writeByte(cmd.ordinal()); - switch (cmd) - { - case IMG: - case PLAY: - case INFO: - case LIST: - case LYRIC: - case HUD: - writeString(pack, data); - break; - case POS: - pack.writeInt(data1); - break; - } - } - - private void writeString(ByteBuf buf, String data) { - byte[] temp = data.getBytes(StandardCharsets.UTF_8); - buf.writeInt(temp.length) - .writeBytes(temp); + PacketCodec.pack(pack, cmd, data, data1); } @Override diff --git a/neoforge_1_20_4/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java b/neoforge_1_20_4/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java index 590f8c1c..173febf8 100644 --- a/neoforge_1_20_4/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java +++ b/neoforge_1_20_4/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java @@ -3,6 +3,7 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; import com.coloryr.allmusic.server.TaskItem; import com.coloryr.allmusic.server.Tasks; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; import com.coloryr.allmusic.server.core.objs.enums.ComType; @@ -102,12 +103,12 @@ public class SideForge extends ISide { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, false)) continue; - send(player, new PackData(ComType.PLAY, url, 0)); + send(player, new PackData(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName().getString()); } } catch (Exception e) { @@ -117,14 +118,14 @@ public class SideForge extends ISide { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player, null, false)) return; - send(player1, new PackData(ComType.PLAY, url, 0)); + send(player1, new PackData(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -132,7 +133,7 @@ public class SideForge extends ISide { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (ServerPlayer player : AllMusicForge.server.getPlayerList().getPlayers()) { if (AllMusic.isOK(player.getName().getString(), null, true)) @@ -141,7 +142,7 @@ public class SideForge extends ISide { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - send(player, new PackData(ComType.IMG, url, 0)); + send(player, new PackData(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -150,14 +151,14 @@ public class SideForge extends ISide { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { ServerPlayer player1 = AllMusicForge.server.getPlayerList().getPlayerByName(player); if (player1 == null) return; if (AllMusic.isOK(player1.getName().getString(), null, true)) return; - send(player1, new PackData(ComType.IMG, url, 0)); + send(player1, new PackData(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -223,7 +224,7 @@ public class SideForge extends ISide { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - send(player, new PackData(ComType.INFO, data, 0)); + send(player, new PackData(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c界面位置发送出错"); e.printStackTrace(); diff --git a/neoforge_1_20_5/src/main/java/com/coloryr/allmusic/server/side/forge/PackData.java b/neoforge_1_20_5/src/main/java/com/coloryr/allmusic/server/side/forge/PackData.java index b67c1b8d..2e742cd7 100644 --- a/neoforge_1_20_5/src/main/java/com/coloryr/allmusic/server/side/forge/PackData.java +++ b/neoforge_1_20_5/src/main/java/com/coloryr/allmusic/server/side/forge/PackData.java @@ -1,6 +1,7 @@ package com.coloryr.allmusic.server.side.forge; import com.coloryr.allmusic.server.AllMusicForge; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.objs.enums.ComType; import io.netty.buffer.ByteBuf; import net.minecraft.network.RegistryFriendlyByteBuf; @@ -23,21 +24,7 @@ public record PackData(ComType cmd, String data, int data1) implements CustomPac @Override public void encode(RegistryFriendlyByteBuf pack, PackData buffer) { - pack.writeByte(buffer.cmd.ordinal()); - switch (buffer.cmd) - { - case IMG: - case PLAY: - case INFO: - case LIST: - case LYRIC: - case HUD: - writeString(pack, buffer.data); - break; - case POS: - pack.writeInt(buffer.data1); - break; - } + PacketCodec.pack(pack, buffer.cmd, buffer.data, buffer.data1); } private void writeString(ByteBuf buf, String data) { diff --git a/neoforge_1_20_5/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java b/neoforge_1_20_5/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java index c617f570..6edb484b 100644 --- a/neoforge_1_20_5/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java +++ b/neoforge_1_20_5/src/main/java/com/coloryr/allmusic/server/side/forge/SideForge.java @@ -14,8 +14,6 @@ import com.coloryr.allmusic.server.core.utils.HudUtils; import com.coloryr.allmusic.server.side.forge.event.MusicAddEvent; import com.coloryr.allmusic.server.side.forge.event.MusicPlayEvent; import com.google.gson.Gson; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import net.minecraft.commands.CommandSource; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; diff --git a/remove.cmd b/remove.cmd index 3de5a982..429c7b6f 100644 --- a/remove.cmd +++ b/remove.cmd @@ -8,7 +8,7 @@ setlocal enabledelayedexpansion set array=folia server_top server forge_1_20 forge_1_19_3 ^ forge_1_19_2 forge_1_18_2 forge_1_16_5 forge_1_12_2 ^ fabric_1_20_2 fabric_1_20 fabric_1_19_3 fabric_1_19_2 fabric_1_18_2 ^ -fabric_1_16_5 neoforge_1_20_4 neoforge_1_20_5 +fabric_1_16_5 fabric_1_20_6 neoforge_1_20_4 neoforge_1_20_5 for %%i in (%array%) do ( if exist "%%i\src\main\java\com\coloryr\allmusic\server\core" rmdir "%%i\src\main\java\com\coloryr\allmusic\server\core" "core" @@ -16,4 +16,13 @@ for %%i in (%array%) do ( if exist "%%i\.gradle" rmdir /s /q "%%i\.gradle" ".gradle" ) +set array1=folia server_top forge_1_20 forge_1_19_3 ^ +forge_1_19_2 forge_1_18_2 forge_1_16_5 forge_1_12_2 ^ +fabric_1_20_2 fabric_1_20 fabric_1_19_3 fabric_1_19_2 fabric_1_18_2 ^ +fabric_1_16_5 fabric_1_20_6 neoforge_1_20_4 neoforge_1_20_5 + +for %%i in (%array%) do ( + if exist "%%i\src\main\java\com\coloryr\allmusic\server\codec" rmdir "%%i\src\main\java\com\coloryr\allmusic\server\codec" "codec" +) + endlocal \ No newline at end of file diff --git a/server_top/src/main/java/com/coloryr/allmusic/server/side/bc/SideBC.java b/server_top/src/main/java/com/coloryr/allmusic/server/side/bc/SideBC.java index e8580d06..bfa98cfb 100644 --- a/server_top/src/main/java/com/coloryr/allmusic/server/side/bc/SideBC.java +++ b/server_top/src/main/java/com/coloryr/allmusic/server/side/bc/SideBC.java @@ -1,22 +1,22 @@ package com.coloryr.allmusic.server.side.bc; import com.coloryr.allmusic.server.AllMusicBC; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; -import com.coloryr.allmusic.server.core.objs.enums.HudType; -import com.coloryr.allmusic.server.core.utils.HudUtils; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; +import com.coloryr.allmusic.server.core.objs.enums.ComType; +import com.coloryr.allmusic.server.core.objs.enums.HudType; import com.coloryr.allmusic.server.core.objs.music.MusicObj; import com.coloryr.allmusic.server.core.objs.music.SongInfoObj; -import com.coloryr.allmusic.server.core.objs.enums.ComType; import com.coloryr.allmusic.server.core.side.ISide; import com.coloryr.allmusic.server.core.sql.IEconomy; +import com.coloryr.allmusic.server.core.utils.HudUtils; import com.coloryr.allmusic.server.side.bc.event.MusicAddEvent; import com.coloryr.allmusic.server.side.bc.event.MusicPlayEvent; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; @@ -26,7 +26,6 @@ import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.connection.Server; -import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; @@ -147,10 +146,7 @@ public class SideBC extends ISide implements IEconomy { SaveObj obj = HudUtils.get(player.getName()); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -167,10 +163,7 @@ public class SideBC extends ISide implements IEconomy { SaveObj obj = HudUtils.get(player.getName()); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -188,10 +181,7 @@ public class SideBC extends ISide implements IEconomy { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -205,10 +195,7 @@ public class SideBC extends ISide implements IEconomy { try { SaveObj obj = HudUtils.get(player.getName()); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -230,16 +217,13 @@ public class SideBC extends ISide implements IEconomy { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) { String server = player.getServer() == null ? null : player.getServer().getInfo().getName(); if (AllMusic.isOK(player.getName(), server, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getName()); } } catch (Exception e) { @@ -249,7 +233,7 @@ public class SideBC extends ISide implements IEconomy { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { ProxiedPlayer player1 = ProxyServer.getInstance().getPlayer(player); if (player1 == null) @@ -257,11 +241,7 @@ public class SideBC extends ISide implements IEconomy { String server = player1.getServer() == null ? null : player1.getServer().getInfo().getName(); if (AllMusic.isOK(player1.getName(), server, false)) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -280,10 +260,7 @@ public class SideBC extends ISide implements IEconomy { SaveObj obj = HudUtils.get(player); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -302,21 +279,17 @@ public class SideBC extends ISide implements IEconomy { if (ok(player1)) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player1, PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player1, PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player1, PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - - send(player1, buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); e.printStackTrace(); @@ -324,7 +297,7 @@ public class SideBC extends ISide implements IEconomy { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) { if (ok(player)) @@ -333,10 +306,7 @@ public class SideBC extends ISide implements IEconomy { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -345,17 +315,14 @@ public class SideBC extends ISide implements IEconomy { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { ProxiedPlayer player1 = ProxyServer.getInstance().getPlayer(player); if (player1 == null) return; if (ok(player1)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); e.printStackTrace(); @@ -370,10 +337,7 @@ public class SideBC extends ISide implements IEconomy { return; if (ok(player1)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲位置指令发送出错"); e.printStackTrace(); @@ -384,9 +348,7 @@ public class SideBC extends ISide implements IEconomy { protected void topSendStop() { try { for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -400,9 +362,7 @@ public class SideBC extends ISide implements IEconomy { ProxiedPlayer player = ProxyServer.getInstance().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -415,9 +375,7 @@ public class SideBC extends ISide implements IEconomy { ProxiedPlayer player = ProxyServer.getInstance().getPlayer(name); if (player == null) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -429,9 +387,7 @@ public class SideBC extends ISide implements IEconomy { try { Collection values = ProxyServer.getInstance().getPlayers(); for (ProxiedPlayer player : values) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); @@ -689,10 +645,4 @@ public class SideBC extends ISide implements IEconomy { return false; } - - private static void writeString(ByteBuf buf, String text) { - byte[] temp = text.getBytes(StandardCharsets.UTF_8); - buf.writeInt(temp.length); - buf.writeBytes(temp); - } } diff --git a/server_top/src/main/java/com/coloryr/allmusic/server/side/velocity/SideVelocity.java b/server_top/src/main/java/com/coloryr/allmusic/server/side/velocity/SideVelocity.java index 3cd1a5e0..7505b75c 100644 --- a/server_top/src/main/java/com/coloryr/allmusic/server/side/velocity/SideVelocity.java +++ b/server_top/src/main/java/com/coloryr/allmusic/server/side/velocity/SideVelocity.java @@ -1,16 +1,17 @@ package com.coloryr.allmusic.server.side.velocity; import com.coloryr.allmusic.server.AllMusicVelocity; +import com.coloryr.allmusic.server.codec.PacketCodec; import com.coloryr.allmusic.server.core.AllMusic; -import com.coloryr.allmusic.server.core.objs.enums.HudType; -import com.coloryr.allmusic.server.core.utils.HudUtils; import com.coloryr.allmusic.server.core.music.play.PlayMusic; import com.coloryr.allmusic.server.core.objs.config.SaveObj; +import com.coloryr.allmusic.server.core.objs.enums.ComType; +import com.coloryr.allmusic.server.core.objs.enums.HudType; import com.coloryr.allmusic.server.core.objs.music.MusicObj; import com.coloryr.allmusic.server.core.objs.music.SongInfoObj; -import com.coloryr.allmusic.server.core.objs.enums.ComType; import com.coloryr.allmusic.server.core.side.ISide; import com.coloryr.allmusic.server.core.sql.IEconomy; +import com.coloryr.allmusic.server.core.utils.HudUtils; import com.coloryr.allmusic.server.side.velocity.event.MusicAddEvent; import com.coloryr.allmusic.server.side.velocity.event.MusicPlayEvent; import com.google.common.io.ByteArrayDataOutput; @@ -20,7 +21,6 @@ import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ServerConnection; import com.velocitypowered.api.proxy.server.RegisteredServer; import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.event.ClickEvent; @@ -131,6 +131,12 @@ public class SideVelocity extends ISide implements IEconomy { server.sendPluginMessage(AllMusicVelocity.channelBC, out.toByteArray()); } + private static void writeString(ByteBuf buf, String text) { + byte[] temp = text.getBytes(StandardCharsets.UTF_8); + buf.writeInt(temp.length); + buf.writeBytes(temp); + } + @Override public int getAllPlayer() { return AllMusicVelocity.plugin.server.getPlayerCount(); @@ -195,9 +201,7 @@ public class SideVelocity extends ISide implements IEconomy { protected void topSendStop() { try { for (Player player : AllMusicVelocity.plugin.server.getAllPlayers()) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.STOP, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); @@ -211,9 +215,7 @@ public class SideVelocity extends ISide implements IEconomy { Optional player = AllMusicVelocity.plugin.server.getPlayer(name); if (!player.isPresent()) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.STOP.ordinal()); - send(player.get(), buf); + send(player.get(), PacketCodec.pack(ComType.STOP, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -221,17 +223,14 @@ public class SideVelocity extends ISide implements IEconomy { } @Override - public void sendMusic(String url) { + public void sendMusic(String data) { try { for (Player player : AllMusicVelocity.plugin.server.getAllPlayers()) { String server = player.getCurrentServer().isPresent() ? player.getCurrentServer().get().getServerInfo().getName() : null; if (AllMusic.isOK(player.getUsername(), server, false)) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.PLAY, data, 0)); AllMusic.addNowPlayPlayer(player.getUsername()); } } catch (Exception e) { @@ -241,7 +240,7 @@ public class SideVelocity extends ISide implements IEconomy { } @Override - protected void topSendMusic(String player, String url) { + protected void topSendMusic(String player, String data) { try { if (AllMusicVelocity.plugin.server.getPlayer(player).isPresent()) { Player player1 = AllMusicVelocity.plugin.server.getPlayer(player).get(); @@ -249,10 +248,7 @@ public class SideVelocity extends ISide implements IEconomy { player1.getCurrentServer().get().getServerInfo().getName() : null; if (AllMusic.isOK(player1.getUsername(), server, false)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.PLAY.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.PLAY, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲指令发送出错"); @@ -261,7 +257,7 @@ public class SideVelocity extends ISide implements IEconomy { } @Override - public void sendPic(String url) { + public void sendPic(String data) { try { for (Player player : AllMusicVelocity.plugin.server.getAllPlayers()) { if (ok(player)) @@ -270,10 +266,7 @@ public class SideVelocity extends ISide implements IEconomy { SaveObj obj = HudUtils.get(name); if (!obj.pic.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player, buf); + send(player, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -282,16 +275,13 @@ public class SideVelocity extends ISide implements IEconomy { } @Override - public void sendPic(String player, String url) { + public void sendPic(String player, String data) { try { if (AllMusicVelocity.plugin.server.getPlayer(player).isPresent()) { Player player1 = AllMusicVelocity.plugin.server.getPlayer(player).get(); if (ok(player1)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.IMG.ordinal()); - writeString(buf, url); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.IMG, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c图片指令发送出错"); @@ -306,10 +296,7 @@ public class SideVelocity extends ISide implements IEconomy { Player player1 = AllMusicVelocity.plugin.server.getPlayer(player).get(); if (ok(player1)) return; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.POS.ordinal()); - buf.writeInt(pos); - send(player1, buf); + send(player1, PacketCodec.pack(ComType.POS, null, pos)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲位置指令发送出错"); @@ -326,10 +313,7 @@ public class SideVelocity extends ISide implements IEconomy { SaveObj obj = HudUtils.get(player.getUsername()); if (!obj.lyric.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LYRIC.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LYRIC, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发送出错"); @@ -346,10 +330,7 @@ public class SideVelocity extends ISide implements IEconomy { SaveObj obj = HudUtils.get(player.getUsername()); if (!obj.info.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.INFO.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.INFO, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词信息发送出错"); @@ -365,10 +346,7 @@ public class SideVelocity extends ISide implements IEconomy { return; SaveObj obj = HudUtils.get(name); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player.get(), buf); + send(player.get(), PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -388,21 +366,17 @@ public class SideVelocity extends ISide implements IEconomy { if (ok(player.get())) return; - ByteBuf buf = Unpooled.buffer(); switch (pos) { case INFO: - buf.writeByte(ComType.INFO.ordinal()); + send(player.get(), PacketCodec.pack(ComType.INFO, data, 0)); break; case LIST: - buf.writeByte(ComType.LIST.ordinal()); + send(player.get(), PacketCodec.pack(ComType.LIST, data, 0)); break; case LYRIC: - buf.writeByte(ComType.LYRIC.ordinal()); + send(player.get(), PacketCodec.pack(ComType.LYRIC, data, 0)); break; } - writeString(buf, data); - - send(player.get(), buf); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c停止指令发送出错"); e.printStackTrace(); @@ -419,10 +393,7 @@ public class SideVelocity extends ISide implements IEconomy { SaveObj obj = HudUtils.get(name); if (!obj.list.enable) continue; - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.LIST.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.LIST, data, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌曲列表发送出错"); @@ -436,10 +407,7 @@ public class SideVelocity extends ISide implements IEconomy { try { SaveObj obj = HudUtils.get(player.getUsername()); String data = AllMusic.gson.toJson(obj); - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.HUD.ordinal()); - writeString(buf, data); - send(player, buf); + send(player, PacketCodec.pack(ComType.HUD, data, 0)); } catch (Exception e1) { AllMusic.log.warning("§d[AllMusic]§c数据发送发生错误"); e1.printStackTrace(); @@ -468,10 +436,7 @@ public class SideVelocity extends ISide implements IEconomy { Optional player = AllMusicVelocity.plugin.server.getPlayer(name); if (!player.isPresent()) return; - - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player.get(), buf); + send(player.get(), PacketCodec.pack(ComType.CLEAR, null, 0)); } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c清空Hud发生出错"); e.printStackTrace(); @@ -483,9 +448,7 @@ public class SideVelocity extends ISide implements IEconomy { try { Collection values = AllMusicVelocity.plugin.server.getAllPlayers(); for (Player player : values) { - ByteBuf buf = Unpooled.buffer(); - buf.writeByte(ComType.CLEAR.ordinal()); - send(player, buf); + send(player, PacketCodec.pack(ComType.CLEAR, null, 0)); } } catch (Exception e) { AllMusic.log.warning("§d[AllMusic]§c歌词发生出错"); @@ -696,10 +659,4 @@ public class SideVelocity extends ISide implements IEconomy { return false; } - - private static void writeString(ByteBuf buf, String text) { - byte[] temp = text.getBytes(StandardCharsets.UTF_8); - buf.writeInt(temp.length); - buf.writeBytes(temp); - } }