forked from SteamWar/SteamWar
Add more handlers
This commit is contained in:
@@ -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.<ClientboundAddEntityPacket>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.<ClientboundAnimatePacket>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.<ClientboundHurtAnimationPacket>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.<ClientboundSetEntityMotionPacket>buildEntityProcessor(ClientboundSetEntityMotionPacket::getId));
|
||||
// 7.1.101 Set Equipment: entity equipment can reveal wargear.
|
||||
processors.put(ClientboundSetEquipmentPacket.class, this.<ClientboundSetEquipmentPacket>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.<ClientboundUpdateAttributesPacket>buildEntityProcessor(ClientboundUpdateAttributesPacket::getEntityId));
|
||||
// 7.1.131 Entity Effect: entity id and effect state.
|
||||
processors.put(ClientboundUpdateMobEffectPacket.class, this.<ClientboundUpdateMobEffectPacket>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.<ClientboundRemoveMobEffectPacket>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.<ClientboundSetEntityDataPacket>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 <TTargetPacket extends Packet<?>> BiFunction<Player, Packet<? extends PacketListener>, Packet<? extends PacketListener>> buildEntityWithPositionProcessor(ToIntFunction<TTargetPacket> entityIdExtractor, ToDoubleFunction<TTargetPacket> xExtractor, ToDoubleFunction<TTargetPacket> yExtractor, ToDoubleFunction<TTargetPacket> zExtractor) {
|
||||
@@ -467,7 +463,7 @@ public abstract class TechHider {
|
||||
if(isPlayerPrivilegedToAccessEntity(player, entityId)) {
|
||||
return packet;
|
||||
} else {
|
||||
return new ClientboundRemoveEntitiesPacket(entityId);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
private <TTargetPacket extends Packet<?>> BiFunction<Player, Packet<? extends PacketListener>, Packet<? extends PacketListener>> buildEntityProcessor(ToIntFunction<TTargetPacket> entityIdExtractor) {
|
||||
|
||||
Reference in New Issue
Block a user