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

refactor: use static entity object for fake nms entity

This commit is contained in:
Boy
2025-05-01 11:54:02 +02:00
committed by Boy0000
parent b2c1dd2d4e
commit ceca756184
6 changed files with 53 additions and 69 deletions

View File

@@ -57,6 +57,8 @@ import java.util.*;
public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons.nms.NMSPackets {
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 {
@@ -79,12 +81,10 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons.
@Override
public void sendRotateHeadPacket(int entityId, Location location, List<Player> sendTo) {
ServerLevel level = MinecraftServer.getServer().overworld();
Entity entity = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, level);
entity.setId(entityId);
fakeNmsEntity.setId(entityId);
byte headRot = (byte) (location.getYaw() * 256.0F / 360.0F);
ClientboundRotateHeadPacket packet = new ClientboundRotateHeadPacket(entity, headRot);
ClientboundRotateHeadPacket packet = new ClientboundRotateHeadPacket(fakeNmsEntity, headRot);
for (Player p : sendTo) sendPacket(p, packet);
}
@@ -235,11 +235,9 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons.
@Override
public void sendCameraPacket(int entityId, List<Player> sendTo) {
// Fake entity just to avoid reflection
Entity entity = new ArmorStand(net.minecraft.world.entity.EntityType.ARMOR_STAND, MinecraftServer.getServer().overworld());
entity.setId(entityId);
fakeNmsEntity.setId(entityId);
ClientboundSetCameraPacket packet = new ClientboundSetCameraPacket(entity);
ClientboundSetCameraPacket packet = new ClientboundSetCameraPacket(fakeNmsEntity);
for (Player p : sendTo) sendPacket(p, packet);
}