diff --git a/API/src/main/java/dev/brighten/ac/api/check/CheckType.java b/API/src/main/java/dev/brighten/ac/api/check/CheckType.java index 39ba13f..abe7f9b 100644 --- a/API/src/main/java/dev/brighten/ac/api/check/CheckType.java +++ b/API/src/main/java/dev/brighten/ac/api/check/CheckType.java @@ -9,5 +9,6 @@ public enum CheckType { CRASH, EXPLOIT, INTERACT, - ORDER + ORDER, + BADPACKETS } diff --git a/src/main/java/dev/brighten/ac/check/impl/packet/badpackets/Pitch.java b/src/main/java/dev/brighten/ac/check/impl/packet/badpackets/Pitch.java new file mode 100644 index 0000000..6455e7f --- /dev/null +++ b/src/main/java/dev/brighten/ac/check/impl/packet/badpackets/Pitch.java @@ -0,0 +1,4 @@ +package dev.brighten.ac.check.impl.packet.badpackets; + +public class Pitch { +} diff --git a/src/main/java/dev/brighten/ac/check/impl/order/Place.java b/src/main/java/dev/brighten/ac/check/impl/packet/order/Place.java similarity index 96% rename from src/main/java/dev/brighten/ac/check/impl/order/Place.java rename to src/main/java/dev/brighten/ac/check/impl/packet/order/Place.java index 1f920b3..1fb651b 100644 --- a/src/main/java/dev/brighten/ac/check/impl/order/Place.java +++ b/src/main/java/dev/brighten/ac/check/impl/packet/order/Place.java @@ -1,4 +1,4 @@ -package dev.brighten.ac.check.impl.order; +package dev.brighten.ac.check.impl.packet.order; import dev.brighten.ac.api.check.CheckType; import dev.brighten.ac.check.Check; diff --git a/src/main/java/dev/brighten/ac/check/impl/order/Timer.java b/src/main/java/dev/brighten/ac/check/impl/packet/order/Timer.java similarity index 98% rename from src/main/java/dev/brighten/ac/check/impl/order/Timer.java rename to src/main/java/dev/brighten/ac/check/impl/packet/order/Timer.java index d7b204d..91cb595 100644 --- a/src/main/java/dev/brighten/ac/check/impl/order/Timer.java +++ b/src/main/java/dev/brighten/ac/check/impl/packet/order/Timer.java @@ -1,4 +1,4 @@ -package dev.brighten.ac.check.impl.order; +package dev.brighten.ac.check.impl.packet.order; import dev.brighten.ac.Anticheat; import dev.brighten.ac.api.check.CheckType; diff --git a/src/main/java/dev/brighten/ac/check/impl/order/UseEntity.java b/src/main/java/dev/brighten/ac/check/impl/packet/order/UseEntity.java similarity index 95% rename from src/main/java/dev/brighten/ac/check/impl/order/UseEntity.java rename to src/main/java/dev/brighten/ac/check/impl/packet/order/UseEntity.java index 596bcce..8e7a1a8 100644 --- a/src/main/java/dev/brighten/ac/check/impl/order/UseEntity.java +++ b/src/main/java/dev/brighten/ac/check/impl/packet/order/UseEntity.java @@ -1,4 +1,4 @@ -package dev.brighten.ac.check.impl.order; +package dev.brighten.ac.check.impl.packet.order; import dev.brighten.ac.check.Check; import dev.brighten.ac.check.CheckData; diff --git a/src/main/java/dev/brighten/ac/command/AnticheatCommand.java b/src/main/java/dev/brighten/ac/command/AnticheatCommand.java index 3ee15fc..47ae565 100644 --- a/src/main/java/dev/brighten/ac/command/AnticheatCommand.java +++ b/src/main/java/dev/brighten/ac/command/AnticheatCommand.java @@ -185,7 +185,7 @@ public class AnticheatCommand extends BaseCommand { return crc.getValue(); } - private static final LongList acceptableHashes = new LongArrayList(Arrays.asList(3912178420L, 2719903731L)); + private static final LongList acceptableHashes = new LongArrayList(Arrays.asList(3912178420L, 2719903731L, 2571101476L)); @Subcommand("alerts") @CommandPermission("anticheat.command.alerts") diff --git a/src/main/java/dev/brighten/ac/data/PlayerRegistry.java b/src/main/java/dev/brighten/ac/data/PlayerRegistry.java index d472275..b095421 100644 --- a/src/main/java/dev/brighten/ac/data/PlayerRegistry.java +++ b/src/main/java/dev/brighten/ac/data/PlayerRegistry.java @@ -104,7 +104,7 @@ public class PlayerRegistry { return crc.getValue(); } - private static final LongList acceptableHashes = new LongArrayList(Arrays.asList(3912178420L, 2719903731L)); + private static final LongList acceptableHashes = new LongArrayList(Arrays.asList(3912178420L, 2719903731L, 2571101476L)); public Optional getPlayer(UUID uuid) { return Optional.ofNullable(aplayerMap.get(uuid.hashCode())); diff --git a/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutEntityMetadata.java b/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutEntityMetadata.java new file mode 100644 index 0000000..236f375 --- /dev/null +++ b/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutEntityMetadata.java @@ -0,0 +1,28 @@ +package dev.brighten.ac.packet.wrapper.out; + +import dev.brighten.ac.Anticheat; +import dev.brighten.ac.packet.wrapper.PacketType; +import dev.brighten.ac.packet.wrapper.WPacket; +import dev.brighten.ac.packet.wrapper.objects.WrappedWatchableObject; +import lombok.Builder; +import lombok.Getter; + +import java.util.List; + +@Builder +@Getter +public class WPacketPlayOutEntityMetadata extends WPacket { + + private int entityId; + private List watchedObjects; + + @Override + public PacketType getPacketType() { + return PacketType.ENTITY_METADATA; + } + + @Override + public Object getPacket() { + return Anticheat.INSTANCE.getPacketProcessor().getPacketConverter().processEntityMetadata(this); + } +} diff --git a/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutNamedEntitySpawn.java b/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutNamedEntitySpawn.java new file mode 100644 index 0000000..c11be4f --- /dev/null +++ b/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutNamedEntitySpawn.java @@ -0,0 +1,33 @@ +package dev.brighten.ac.packet.wrapper.out; + +import dev.brighten.ac.Anticheat; +import dev.brighten.ac.packet.wrapper.PacketType; +import dev.brighten.ac.packet.wrapper.WPacket; +import lombok.Builder; +import lombok.Getter; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import java.util.UUID; + +@Getter +@Builder +public class WPacketPlayOutNamedEntitySpawn extends WPacket { + + private int entityId; + private UUID uuid; + private double x, y, z; + private float yaw, pitch; + private Material itemInHand; + + + @Override + public PacketType getPacketType() { + return PacketType.NAMED_ENTITY_SPAWN; + } + + @Override + public Object getPacket() { + return Anticheat.INSTANCE.getPacketProcessor().getPacketConverter().processNamedEntitySpawn(this); + } +} diff --git a/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutRemoveEntityEffect.java b/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutRemoveEntityEffect.java new file mode 100644 index 0000000..3f7ca0b --- /dev/null +++ b/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutRemoveEntityEffect.java @@ -0,0 +1,26 @@ +package dev.brighten.ac.packet.wrapper.out; + +import dev.brighten.ac.Anticheat; +import dev.brighten.ac.packet.wrapper.PacketType; +import dev.brighten.ac.packet.wrapper.WPacket; +import lombok.Builder; +import lombok.Getter; +import org.bukkit.potion.PotionEffectType; + +@Builder +@Getter +public class WPacketPlayOutRemoveEntityEffect extends WPacket { + + private int entityId; + private PotionEffectType effect; + + @Override + public PacketType getPacketType() { + return PacketType.REMOVE_EFFECT; + } + + @Override + public Object getPacket() { + return Anticheat.INSTANCE.getPacketProcessor().getPacketConverter().processRemoveEffect(this); + } +} diff --git a/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutSpawnEntityLiving.java b/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutSpawnEntityLiving.java new file mode 100644 index 0000000..2a05d98 --- /dev/null +++ b/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutSpawnEntityLiving.java @@ -0,0 +1,29 @@ +package dev.brighten.ac.packet.wrapper.out; + +import dev.brighten.ac.Anticheat; +import dev.brighten.ac.packet.wrapper.PacketType; +import dev.brighten.ac.packet.wrapper.WPacket; +import lombok.Builder; +import lombok.Getter; +import org.bukkit.entity.EntityType; + +@Getter +@Builder +public class WPacketPlayOutSpawnEntityLiving extends WPacket { + + private int entityId; + private EntityType type; + private double x, y, z; + private float yaw, pitch, headYaw; + private double motionX, motionY, motionZ; + + @Override + public PacketType getPacketType() { + return PacketType.SPAWN_ENTITY_LIVING; + } + + @Override + public Object getPacket() { + return Anticheat.INSTANCE.getPacketProcessor().getPacketConverter().processSpawnLiving(this); + } +} diff --git a/src/main/java/dev/brighten/ac/utils/IntegrityCheck.java b/src/main/java/dev/brighten/ac/utils/IntegrityCheck.java index 0af69cf..b0c1a7b 100644 --- a/src/main/java/dev/brighten/ac/utils/IntegrityCheck.java +++ b/src/main/java/dev/brighten/ac/utils/IntegrityCheck.java @@ -92,7 +92,7 @@ public class IntegrityCheck { return crc.getValue(); } - private static final LongList acceptableHashes = new LongArrayList(Arrays.asList(3912178420L, 2719903731L)); + private static final LongList acceptableHashes = new LongArrayList(Arrays.asList(3912178420L, 2719903731L, 2571101476L)); }