From 827577639de12c2e3eba44d4aabc3a075035de84 Mon Sep 17 00:00:00 2001 From: Boy Date: Thu, 1 May 2025 12:00:03 +0200 Subject: [PATCH] refactor: swap passenger packet logic off reflection aswell --- .../nms/v1_20_R3/NMSPackets.java | 28 +++++++----------- .../nms/v1_20_R4/NMSPackets.java | 28 +++++++----------- .../nms/v1_21_R1/NMSPackets.java | 29 +++++++------------ .../nms/v1_21_R2/NMSPackets.java | 28 +++++++----------- .../nms/v1_21_R3/NMSPackets.java | 29 +++++++------------ .../nms/v1_21_R4/NMSPackets.java | 29 +++++++------------ 6 files changed, 60 insertions(+), 111 deletions(-) diff --git a/v1_20_R3/src/main/java/me/lojosho/hibiscuscommons/nms/v1_20_R3/NMSPackets.java b/v1_20_R3/src/main/java/me/lojosho/hibiscuscommons/nms/v1_20_R3/NMSPackets.java index 4fed040..b150ead 100644 --- a/v1_20_R3/src/main/java/me/lojosho/hibiscuscommons/nms/v1_20_R3/NMSPackets.java +++ b/v1_20_R3/src/main/java/me/lojosho/hibiscuscommons/nms/v1_20_R3/NMSPackets.java @@ -1,5 +1,6 @@ package me.lojosho.hibiscuscommons.nms.v1_20_R3; +import com.google.common.collect.ImmutableList; import com.mojang.datafixers.util.Pair; import io.netty.buffer.Unpooled; import it.unimi.dsi.fastutil.ints.IntList; @@ -42,15 +43,6 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. private static ServerLevel level = MinecraftServer.getServer().overworld(); private static Entity fakeNmsEntity = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); - static Constructor passengerConstructor; - static { - try { - passengerConstructor = ClientboundSetPassengersPacket.class.getDeclaredConstructor(FriendlyByteBuf.class); - passengerConstructor.setAccessible(true); - } catch (Exception e) { - e.printStackTrace(); - } - } @Override public void sendGamemodeChange(Player player, GameMode gameMode) { @@ -172,15 +164,15 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. @Override public void sendMountPacket(int mountId, int[] passengerIds, List sendTo) { - FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer()); - byteBuf.writeVarInt(mountId); - byteBuf.writeVarIntArray(passengerIds); - try { - ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf); - for (Player p : sendTo) sendPacket(p, packet); - } catch (Exception e) { - e.printStackTrace(); - } + List passengers = Arrays.stream(passengerIds).mapToObj(id -> { + Entity passenger = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); + passenger.setId(id); + return passenger; + }).toList(); + fakeNmsEntity.passengers = ImmutableList.copyOf(passengers); + ClientboundSetPassengersPacket packet = new ClientboundSetPassengersPacket(fakeNmsEntity); + fakeNmsEntity.passengers = ImmutableList.of(); + for (Player p : sendTo) sendPacket(p, packet); } @Override diff --git a/v1_20_R4/src/main/java/me/lojosho/hibiscuscommons/nms/v1_20_R4/NMSPackets.java b/v1_20_R4/src/main/java/me/lojosho/hibiscuscommons/nms/v1_20_R4/NMSPackets.java index 7c5cc04..1ea61a9 100644 --- a/v1_20_R4/src/main/java/me/lojosho/hibiscuscommons/nms/v1_20_R4/NMSPackets.java +++ b/v1_20_R4/src/main/java/me/lojosho/hibiscuscommons/nms/v1_20_R4/NMSPackets.java @@ -1,5 +1,6 @@ package me.lojosho.hibiscuscommons.nms.v1_20_R4; +import com.google.common.collect.ImmutableList; import com.google.gson.JsonObject; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.JsonOps; @@ -52,15 +53,6 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. private static ServerLevel level = MinecraftServer.getServer().overworld(); private static Entity fakeNmsEntity = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); - static Constructor passengerConstructor; - static { - try { - passengerConstructor = ClientboundSetPassengersPacket.class.getDeclaredConstructor(FriendlyByteBuf.class); - passengerConstructor.setAccessible(true); - } catch (Exception e) { - e.printStackTrace(); - } - } @Override public void sendGamemodeChange(Player player, GameMode gameMode) { @@ -181,15 +173,15 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. @Override public void sendMountPacket(int mountId, int[] passengerIds, List sendTo) { - FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer()); - byteBuf.writeVarInt(mountId); - byteBuf.writeVarIntArray(passengerIds); - try { - ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf); - for (Player p : sendTo) sendPacket(p, packet); - } catch (Exception e) { - e.printStackTrace(); - } + List passengers = Arrays.stream(passengerIds).mapToObj(id -> { + Entity passenger = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); + passenger.setId(id); + return passenger; + }).toList(); + fakeNmsEntity.passengers = ImmutableList.copyOf(passengers); + ClientboundSetPassengersPacket packet = new ClientboundSetPassengersPacket(fakeNmsEntity); + fakeNmsEntity.passengers = ImmutableList.of(); + for (Player p : sendTo) sendPacket(p, packet); } @Override diff --git a/v1_21_R1/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R1/NMSPackets.java b/v1_21_R1/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R1/NMSPackets.java index 616ebb3..04bf957 100644 --- a/v1_21_R1/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R1/NMSPackets.java +++ b/v1_21_R1/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R1/NMSPackets.java @@ -1,5 +1,6 @@ package me.lojosho.hibiscuscommons.nms.v1_21_R1; +import com.google.common.collect.ImmutableList; import com.google.gson.JsonObject; import com.mojang.datafixers.kinds.Const; import com.mojang.datafixers.util.Pair; @@ -52,16 +53,6 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. private static ServerLevel level = MinecraftServer.getServer().overworld(); private static Entity fakeNmsEntity = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); - static Constructor passengerConstructor; - - static { - try { - passengerConstructor = ClientboundSetPassengersPacket.class.getDeclaredConstructor(FriendlyByteBuf.class); - passengerConstructor.setAccessible(true); - } catch (Exception e) { - e.printStackTrace(); - } - } @Override public void sendGamemodeChange(Player player, GameMode gameMode) { @@ -182,15 +173,15 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. @Override public void sendMountPacket(int mountId, int[] passengerIds, List sendTo) { - FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer()); - byteBuf.writeVarInt(mountId); - byteBuf.writeVarIntArray(passengerIds); - try { - ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf); - for (Player p : sendTo) sendPacket(p, packet); - } catch (Exception e) { - e.printStackTrace(); - } + List passengers = Arrays.stream(passengerIds).mapToObj(id -> { + Entity passenger = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); + passenger.setId(id); + return passenger; + }).toList(); + fakeNmsEntity.passengers = ImmutableList.copyOf(passengers); + ClientboundSetPassengersPacket packet = new ClientboundSetPassengersPacket(fakeNmsEntity); + fakeNmsEntity.passengers = ImmutableList.of(); + for (Player p : sendTo) sendPacket(p, packet); } @Override diff --git a/v1_21_R2/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R2/NMSPackets.java b/v1_21_R2/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R2/NMSPackets.java index 8b92555..b33a26b 100644 --- a/v1_21_R2/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R2/NMSPackets.java +++ b/v1_21_R2/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R2/NMSPackets.java @@ -1,5 +1,6 @@ package me.lojosho.hibiscuscommons.nms.v1_21_R2; +import com.google.common.collect.ImmutableList; import com.google.gson.JsonObject; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.JsonOps; @@ -55,15 +56,6 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. private static ServerLevel level = MinecraftServer.getServer().overworld(); private static Entity fakeNmsEntity = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); - static Constructor passengerConstructor; - static { - try { - passengerConstructor = ClientboundSetPassengersPacket.class.getDeclaredConstructor(FriendlyByteBuf.class); - passengerConstructor.setAccessible(true); - } catch (Exception e) { - e.printStackTrace(); - } - } @Override public void sendGamemodeChange(Player player, GameMode gameMode) { @@ -185,15 +177,15 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. @Override public void sendMountPacket(int mountId, int[] passengerIds, List sendTo) { - FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer()); - byteBuf.writeVarInt(mountId); - byteBuf.writeVarIntArray(passengerIds); - try { - ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf); - for (Player p : sendTo) sendPacket(p, packet); - } catch (Exception e) { - e.printStackTrace(); - } + List passengers = Arrays.stream(passengerIds).mapToObj(id -> { + Entity passenger = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); + passenger.setId(id); + return passenger; + }).toList(); + fakeNmsEntity.passengers = ImmutableList.copyOf(passengers); + ClientboundSetPassengersPacket packet = new ClientboundSetPassengersPacket(fakeNmsEntity); + fakeNmsEntity.passengers = ImmutableList.of(); + for (Player p : sendTo) sendPacket(p, packet); } @Override diff --git a/v1_21_R3/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R3/NMSPackets.java b/v1_21_R3/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R3/NMSPackets.java index 5824c46..42d8fc7 100644 --- a/v1_21_R3/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R3/NMSPackets.java +++ b/v1_21_R3/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R3/NMSPackets.java @@ -1,5 +1,6 @@ package me.lojosho.hibiscuscommons.nms.v1_21_R3; +import com.google.common.collect.ImmutableList; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.mojang.datafixers.util.Pair; @@ -58,16 +59,6 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. private static ServerLevel level = MinecraftServer.getServer().overworld(); private static Entity fakeNmsEntity = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); - static Constructor passengerConstructor; - - static { - try { - passengerConstructor = ClientboundSetPassengersPacket.class.getDeclaredConstructor(FriendlyByteBuf.class); - passengerConstructor.setAccessible(true); - } catch (Exception e) { - e.printStackTrace(); - } - } @Override public void sendGamemodeChange(Player player, GameMode gameMode) { @@ -189,15 +180,15 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. @Override public void sendMountPacket(int mountId, int[] passengerIds, List sendTo) { - FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer()); - byteBuf.writeVarInt(mountId); - byteBuf.writeVarIntArray(passengerIds); - try { - ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf); - for (Player p : sendTo) sendPacket(p, packet); - } catch (Exception e) { - e.printStackTrace(); - } + List passengers = Arrays.stream(passengerIds).mapToObj(id -> { + Entity passenger = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); + passenger.setId(id); + return passenger; + }).toList(); + fakeNmsEntity.passengers = ImmutableList.copyOf(passengers); + ClientboundSetPassengersPacket packet = new ClientboundSetPassengersPacket(fakeNmsEntity); + fakeNmsEntity.passengers = ImmutableList.of(); + for (Player p : sendTo) sendPacket(p, packet); } @Override diff --git a/v1_21_R4/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R4/NMSPackets.java b/v1_21_R4/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R4/NMSPackets.java index aa84c2b..892b509 100644 --- a/v1_21_R4/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R4/NMSPackets.java +++ b/v1_21_R4/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R4/NMSPackets.java @@ -1,5 +1,6 @@ package me.lojosho.hibiscuscommons.nms.v1_21_R4; +import com.google.common.collect.ImmutableList; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.mojang.datafixers.util.Pair; @@ -59,16 +60,6 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. private static ServerLevel level = MinecraftServer.getServer().overworld(); private static Entity fakeNmsEntity = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); - static Constructor passengerConstructor; - - static { - try { - passengerConstructor = ClientboundSetPassengersPacket.class.getDeclaredConstructor(FriendlyByteBuf.class); - passengerConstructor.setAccessible(true); - } catch (Exception e) { - e.printStackTrace(); - } - } @Override public void sendGamemodeChange(Player player, GameMode gameMode) { @@ -190,15 +181,15 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. @Override public void sendMountPacket(int mountId, int[] passengerIds, List sendTo) { - FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer()); - byteBuf.writeVarInt(mountId); - byteBuf.writeVarIntArray(passengerIds); - try { - ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf); - for (Player p : sendTo) sendPacket(p, packet); - } catch (Exception e) { - e.printStackTrace(); - } + List passengers = Arrays.stream(passengerIds).mapToObj(id -> { + Entity passenger = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level); + passenger.setId(id); + return passenger; + }).toList(); + fakeNmsEntity.passengers = ImmutableList.copyOf(passengers); + ClientboundSetPassengersPacket packet = new ClientboundSetPassengersPacket(fakeNmsEntity); + fakeNmsEntity.passengers = ImmutableList.of(); + for (Player p : sendTo) sendPacket(p, packet); } @Override