diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/AntiNocom.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/AntiNocom.java index 858a2af0..67230149 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/AntiNocom.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/AntiNocom.java @@ -26,6 +26,7 @@ import de.steamwar.linkage.Linked; import de.steamwar.sql.SWException; import de.steamwar.techhider.ProtocolUtils; import de.steamwar.techhider.TechHider; +import net.minecraft.core.BlockPos; import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket; import net.minecraft.network.protocol.game.ServerboundUseItemOnPacket; import net.minecraft.world.phys.BlockHitResult; @@ -45,7 +46,7 @@ public class AntiNocom implements Listener { private final Map flags = new ConcurrentHashMap<>(); public AntiNocom() { - TinyProtocol.instance.addFilter(blockDig, this::onDig); + TinyProtocol.instance.addTypedFilter(ServerboundPlayerActionPacket.class, this::onDig); registerUseItem(); } @@ -55,26 +56,15 @@ public class AntiNocom implements Listener { } private void registerUseItem() { - Class useItem = ServerboundUseItemOnPacket.class; - - Class movingObjectPositionBlock = BlockHitResult.class; - Reflection.Field useItemPosition = Reflection.getField(useItem, movingObjectPositionBlock, 0); - Reflection.Field movingBlockPosition = Reflection.getField(movingObjectPositionBlock, TechHider.blockPosition, 0); - - Function getPosition = (packet) -> movingBlockPosition.get(useItemPosition.get(packet)); - - TinyProtocol.instance.addFilter(useItem, (player, packet) -> { - Object pos = getPosition.apply(packet); - return isValid(player, "UseItem", TechHider.blockPositionX.get(pos), TechHider.blockPositionZ.get(pos)) ? packet : null; + TinyProtocol.instance.addTypedFilter(ServerboundUseItemOnPacket.class, (player, packet) -> { + BlockPos pos = packet.getHitResult().getBlockPos(); + return isValid(player, "UseItem", pos.getX(), pos.getZ()) ? packet : null; }); } - private static final Class blockDig = ServerboundPlayerActionPacket.class; - private static final Reflection.Field digPosition = Reflection.getField(blockDig, TechHider.blockPosition, 0); - - private Object onDig(Player player, Object packet) { - Object pos = digPosition.get(packet); - return isValid(player, "Dig", TechHider.blockPositionX.get(pos), TechHider.blockPositionZ.get(pos)) ? packet : null; + private ServerboundPlayerActionPacket onDig(Player player, ServerboundPlayerActionPacket packet) { + BlockPos pos = packet.getPos(); + return isValid(player, "Dig", pos.getX(), pos.getZ()) ? packet : null; } private boolean isValid(Player player, String type, int x, int z) { diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java index ffadb20b..b889c3c1 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java @@ -8,7 +8,6 @@ import java.util.Map; import java.util.Set; import java.util.function.BiFunction; import java.util.function.Function; -import java.util.function.ToDoubleFunction; import java.util.function.ToIntFunction; import it.unimi.dsi.fastutil.ints.IntArrayList; @@ -16,16 +15,13 @@ import it.unimi.dsi.fastutil.ints.IntList; import it.unimi.dsi.fastutil.shorts.ShortArraySet; import it.unimi.dsi.fastutil.shorts.ShortSets; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.repository.Pack; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.phys.Vec3; import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.Reflection; -import io.netty.channel.Channel; import net.minecraft.core.BlockPos; import net.minecraft.core.SectionPos; import net.minecraft.network.PacketListener; @@ -49,7 +45,6 @@ import net.minecraft.network.protocol.configuration.ClientboundUpdateEnabledFeat import net.minecraft.network.protocol.cookie.ClientboundCookieRequestPacket; import net.minecraft.network.protocol.game.ClientboundAddEntityPacket; import net.minecraft.network.protocol.game.ClientboundAnimatePacket; -import net.minecraft.network.protocol.game.ClientboundAwardStatsPacket; import net.minecraft.network.protocol.game.ClientboundBlockChangedAckPacket; import net.minecraft.network.protocol.game.ClientboundBlockDestructionPacket; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; @@ -61,7 +56,6 @@ import net.minecraft.network.protocol.game.ClientboundBundlePacket; import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket; import net.minecraft.network.protocol.game.ClientboundChunkBatchFinishedPacket; import net.minecraft.network.protocol.game.ClientboundChunkBatchStartPacket; -import net.minecraft.network.protocol.game.ClientboundChunksBiomesPacket; import net.minecraft.network.protocol.game.ClientboundClearTitlesPacket; import net.minecraft.network.protocol.game.ClientboundCommandSuggestionsPacket; import net.minecraft.network.protocol.game.ClientboundCommandsPacket; @@ -72,7 +66,6 @@ import net.minecraft.network.protocol.game.ClientboundContainerSetSlotPacket; import net.minecraft.network.protocol.game.ClientboundCooldownPacket; import net.minecraft.network.protocol.game.ClientboundCustomChatCompletionsPacket; import net.minecraft.network.protocol.game.ClientboundDamageEventPacket; -import net.minecraft.network.protocol.game.ClientboundDebugSamplePacket; import net.minecraft.network.protocol.game.ClientboundDeleteChatPacket; import net.minecraft.network.protocol.game.ClientboundDisguisedChatPacket; import net.minecraft.network.protocol.game.ClientboundEntityEventPacket; @@ -91,9 +84,6 @@ import net.minecraft.network.protocol.game.ClientboundLoginPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMerchantOffersPacket; import net.minecraft.network.protocol.game.ClientboundMoveEntityPacket; -import net.minecraft.network.protocol.game.ClientboundMoveEntityPacket.Pos; -import net.minecraft.network.protocol.game.ClientboundMoveEntityPacket.PosRot; -import net.minecraft.network.protocol.game.ClientboundMoveEntityPacket.Rot; import net.minecraft.network.protocol.game.ClientboundMoveMinecartPacket; import net.minecraft.network.protocol.game.ClientboundMoveVehiclePacket; import net.minecraft.network.protocol.game.ClientboundOpenBookPacket; @@ -455,7 +445,7 @@ public abstract class TechHider { return packet; } else if(packetProcessors.containsKey(packet.getClass())) { - return packetProcessors.get(packet.getClass()).apply(player, packet); + return packetProcessors.get(packet.getClass()).apply(player, (Packet) packet); } else { return null;