9
0
mirror of https://github.com/HibiscusMC/HibiscusCommons.git synced 2025-12-19 15:09:26 +00:00

refactor: swap passenger packet logic off reflection aswell

This commit is contained in:
Boy
2025-05-01 12:00:03 +02:00
committed by Boy0000
parent ceca756184
commit 827577639d
6 changed files with 60 additions and 111 deletions

View File

@@ -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<ClientboundSetPassengersPacket> 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<Player> sendTo) {
FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer());
byteBuf.writeVarInt(mountId);
byteBuf.writeVarIntArray(passengerIds);
try {
ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf);
List<Entity> 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);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override

View File

@@ -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<ClientboundSetPassengersPacket> 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<Player> sendTo) {
FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer());
byteBuf.writeVarInt(mountId);
byteBuf.writeVarIntArray(passengerIds);
try {
ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf);
List<Entity> 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);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override

View File

@@ -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<ClientboundSetPassengersPacket> 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<Player> sendTo) {
FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer());
byteBuf.writeVarInt(mountId);
byteBuf.writeVarIntArray(passengerIds);
try {
ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf);
List<Entity> 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);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override

View File

@@ -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<ClientboundSetPassengersPacket> 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<Player> sendTo) {
FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer());
byteBuf.writeVarInt(mountId);
byteBuf.writeVarIntArray(passengerIds);
try {
ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf);
List<Entity> 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);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override

View File

@@ -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<ClientboundSetPassengersPacket> 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<Player> sendTo) {
FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer());
byteBuf.writeVarInt(mountId);
byteBuf.writeVarIntArray(passengerIds);
try {
ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf);
List<Entity> 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);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override

View File

@@ -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<ClientboundSetPassengersPacket> 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<Player> sendTo) {
FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer());
byteBuf.writeVarInt(mountId);
byteBuf.writeVarIntArray(passengerIds);
try {
ClientboundSetPassengersPacket packet = passengerConstructor.newInstance(byteBuf);
List<Entity> 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);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override