From 4a43e09a8be6119ef62e28eca5d6df69a92437b7 Mon Sep 17 00:00:00 2001 From: D4rkr34lm Date: Sat, 16 May 2026 14:45:36 +0200 Subject: [PATCH] Add more handlers --- .../src/de/steamwar/techhider/TechHider.java | 54 +++++++++---------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java index 65a6c97f..e0370955 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java @@ -306,41 +306,37 @@ public abstract class TechHider { // --- Entity packets - // 7.1.2 Spawn Entity: entity type and position can reveal hidden contraptions. - processors.put(ClientboundAddEntityPacket.class, this.buildEntityWithPositionProcessor(ClientboundAddEntityPacket::getId, ClientboundAddEntityPacket::getX, ClientboundAddEntityPacket::getY, ClientboundAddEntityPacket::getZ)); + processors.put(ClientboundAddEntityPacket.class, this.buildEntityWithPositionProcessor(ClientboundAddEntityPacket::getId, ClientboundAddEntityPacket::getX, ClientboundAddEntityPacket::getY, ClientboundAddEntityPacket::getZ)); // 7.1.3 Entity Animation: entity id based signal, keep blocked until entity visibility is modeled. - processors.put(ClientboundAnimatePacket.class, this.buildEntityProcessor(ClientboundAnimatePacket::getId)); - // 7.1.26 Damage Event: entity ids and damage source location can leak hidden - // activity. - processors.put(ClientboundDamageEventPacket.class, tossPacket); + processors.put(ClientboundAnimatePacket.class, this.buildEntityProcessor(ClientboundAnimatePacket::getId)); // 7.1.35 Entity Event: entity id based signal. - processors.put(ClientboundEntityEventPacket.class, tossPacket); + processors.put(ClientboundEntityEventPacket.class, this.buildEntityProcessor(ClientboundEntityEventPacket::getEventId)); // 7.1.36 Teleport Entity: entity id and absolute position. - processors.put(ClientboundTeleportEntityPacket.class, tossPacket); + processors.put(ClientboundTeleportEntityPacket.class, this.buildEntityProcessor(ClientboundTeleportEntityPacket::id)); // 7.1.42 Hurt Animation: entity id based signal. - processors.put(ClientboundHurtAnimationPacket.class, this.buildEntityProcessor(ClientboundHurtAnimationPacket::id)); + processors.put(ClientboundHurtAnimationPacket.class, this.buildEntityProcessor(ClientboundHurtAnimationPacket::id)); + // 7.1.100 Set Entity Velocity: entity id and movement. + processors.put(ClientboundSetEntityMotionPacket.class, this.buildEntityProcessor(ClientboundSetEntityMotionPacket::getId)); + // 7.1.101 Set Equipment: entity equipment can reveal wargear. + processors.put(ClientboundSetEquipmentPacket.class, this.buildEntityProcessor(ClientboundSetEquipmentPacket::getEntity)); + // 7.1.106 Set Passengers: entity relationship signal. + processors.put(ClientboundSetPassengersPacket.class, this.buildEntityProcessor(ClientboundSetPassengersPacket::getVehicle)); + // 7.1.130 Update Attributes: entity id and attribute state. + processors.put(ClientboundUpdateAttributesPacket.class, this.buildEntityProcessor(ClientboundUpdateAttributesPacket::getEntityId)); + // 7.1.131 Entity Effect: entity id and effect state. + processors.put(ClientboundUpdateMobEffectPacket.class, this.buildEntityProcessor(ClientboundUpdateMobEffectPacket::getEntityId)); + // 7.1.77 Remove Entity Effect: entity id and effect state. + processors.put(ClientboundRemoveMobEffectPacket.class, this.buildEntityProcessor(ClientboundRemoveMobEffectPacket::entityId)); + // 7.1.98 Set Entity Metadata: entity state can reveal blocks/items/displays. + processors.put(ClientboundSetEntityDataPacket.class, this.buildEntityProcessor(ClientboundSetEntityDataPacket::id)); + // 7.1.26 Damage Event: entity ids and damage source location can leak hidde activity. + processors.put(ClientboundDamageEventPacket.class, tossPacket); // 7.1.52/53/55 Update Entity Position/Rotation: entity id and movement signal. processors.put(ClientboundMoveEntityPacket.class, tossPacket); - processors.put(Pos.class, tossPacket); - processors.put(PosRot.class, tossPacket); - processors.put(Rot.class, tossPacket); - // 7.1.100 Set Entity Velocity: entity id and movement. - processors.put(ClientboundSetEntityMotionPacket.class, this.buildEntityProcessor(ClientboundSetEntityMotionPacket::getId)); - // 7.1.101 Set Equipment: entity equipment can reveal wargear. - processors.put(ClientboundSetEquipmentPacket.class, this.buildEntityProcessor(ClientboundSetEquipmentPacket::getEntity)); - // 7.1.106 Set Passengers: entity relationship signal. - processors.put(ClientboundSetPassengersPacket.class, tossPacket); - // 7.1.130 Update Attributes: entity id and attribute state. - processors.put(ClientboundUpdateAttributesPacket.class, this.buildEntityProcessor(ClientboundUpdateAttributesPacket::getEntityId)); - // 7.1.131 Entity Effect: entity id and effect state. - processors.put(ClientboundUpdateMobEffectPacket.class, this.buildEntityProcessor(ClientboundUpdateMobEffectPacket::getEntityId)); - // 7.1.76 Remove Entities: entity id visibility side channel. - processors.put(ClientboundRemoveEntitiesPacket.class, tossPacket); - // 7.1.77 Remove Entity Effect: entity id and effect state. - processors.put(ClientboundRemoveMobEffectPacket.class, this.buildEntityProcessor(ClientboundRemoveMobEffectPacket::entityId)); // 7.1.82 Set Head Rotation: entity id and rotation. processors.put(ClientboundRotateHeadPacket.class, tossPacket); - // 7.1.98 Set Entity Metadata: entity state can reveal blocks/items/displays. - processors.put(ClientboundSetEntityDataPacket.class, this.buildEntityProcessor(ClientboundSetEntityDataPacket::id)); + // 7.1.76 Remove Entities: entity id visibility side channel. + processors.put(ClientboundRemoveEntitiesPacket.class, tossPacket); // 7.1.99 Link Entities: entity relationship signal. processors.put(ClientboundSetEntityLinkPacket.class, tossPacket); @@ -453,7 +449,7 @@ public abstract class TechHider { if(isPlayerPrivilegedToAccessEntity(player, entityId) && isPlayerPrivilegedToAccessPosition(player, (int) entityX, (int) entityY, (int) entityZ)) { return packet; } else { - return new ClientboundRemoveEntitiesPacket(entityId); + return null; } } private > BiFunction, Packet> buildEntityWithPositionProcessor(ToIntFunction entityIdExtractor, ToDoubleFunction xExtractor, ToDoubleFunction yExtractor, ToDoubleFunction zExtractor) { @@ -467,7 +463,7 @@ public abstract class TechHider { if(isPlayerPrivilegedToAccessEntity(player, entityId)) { return packet; } else { - return new ClientboundRemoveEntitiesPacket(entityId); + return null; } } private > BiFunction, Packet> buildEntityProcessor(ToIntFunction entityIdExtractor) {