forked from SteamWar/SteamWar
removed reflections form anti nocom guard
This commit is contained in:
@@ -26,6 +26,7 @@ import de.steamwar.linkage.Linked;
|
|||||||
import de.steamwar.sql.SWException;
|
import de.steamwar.sql.SWException;
|
||||||
import de.steamwar.techhider.ProtocolUtils;
|
import de.steamwar.techhider.ProtocolUtils;
|
||||||
import de.steamwar.techhider.TechHider;
|
import de.steamwar.techhider.TechHider;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket;
|
import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket;
|
||||||
import net.minecraft.network.protocol.game.ServerboundUseItemOnPacket;
|
import net.minecraft.network.protocol.game.ServerboundUseItemOnPacket;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
@@ -45,7 +46,7 @@ public class AntiNocom implements Listener {
|
|||||||
private final Map<Player, Integer> flags = new ConcurrentHashMap<>();
|
private final Map<Player, Integer> flags = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public AntiNocom() {
|
public AntiNocom() {
|
||||||
TinyProtocol.instance.addFilter(blockDig, this::onDig);
|
TinyProtocol.instance.addTypedFilter(ServerboundPlayerActionPacket.class, this::onDig);
|
||||||
registerUseItem();
|
registerUseItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,26 +56,15 @@ public class AntiNocom implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerUseItem() {
|
private void registerUseItem() {
|
||||||
Class<?> useItem = ServerboundUseItemOnPacket.class;
|
TinyProtocol.instance.addTypedFilter(ServerboundUseItemOnPacket.class, (player, packet) -> {
|
||||||
|
BlockPos pos = packet.getHitResult().getBlockPos();
|
||||||
Class<?> movingObjectPositionBlock = BlockHitResult.class;
|
return isValid(player, "UseItem", pos.getX(), pos.getZ()) ? packet : null;
|
||||||
Reflection.Field<?> useItemPosition = Reflection.getField(useItem, movingObjectPositionBlock, 0);
|
|
||||||
Reflection.Field<?> movingBlockPosition = Reflection.getField(movingObjectPositionBlock, TechHider.blockPosition, 0);
|
|
||||||
|
|
||||||
Function<Object, Object> 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;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Class<?> blockDig = ServerboundPlayerActionPacket.class;
|
private ServerboundPlayerActionPacket onDig(Player player, ServerboundPlayerActionPacket packet) {
|
||||||
private static final Reflection.Field<?> digPosition = Reflection.getField(blockDig, TechHider.blockPosition, 0);
|
BlockPos pos = packet.getPos();
|
||||||
|
return isValid(player, "Dig", pos.getX(), pos.getZ()) ? packet : null;
|
||||||
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 boolean isValid(Player player, String type, int x, int z) {
|
private boolean isValid(Player player, String type, int x, int z) {
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.ToDoubleFunction;
|
|
||||||
import java.util.function.ToIntFunction;
|
import java.util.function.ToIntFunction;
|
||||||
|
|
||||||
import it.unimi.dsi.fastutil.ints.IntArrayList;
|
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.ShortArraySet;
|
||||||
import it.unimi.dsi.fastutil.shorts.ShortSets;
|
import it.unimi.dsi.fastutil.shorts.ShortSets;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.server.packs.repository.Pack;
|
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
import com.comphenix.tinyprotocol.TinyProtocol;
|
import com.comphenix.tinyprotocol.TinyProtocol;
|
||||||
|
|
||||||
import de.steamwar.Reflection;
|
import de.steamwar.Reflection;
|
||||||
import io.netty.channel.Channel;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.SectionPos;
|
import net.minecraft.core.SectionPos;
|
||||||
import net.minecraft.network.PacketListener;
|
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.cookie.ClientboundCookieRequestPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundAddEntityPacket;
|
import net.minecraft.network.protocol.game.ClientboundAddEntityPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundAnimatePacket;
|
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.ClientboundBlockChangedAckPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundBlockDestructionPacket;
|
import net.minecraft.network.protocol.game.ClientboundBlockDestructionPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket;
|
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.ClientboundChangeDifficultyPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundChunkBatchFinishedPacket;
|
import net.minecraft.network.protocol.game.ClientboundChunkBatchFinishedPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundChunkBatchStartPacket;
|
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.ClientboundClearTitlesPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundCommandSuggestionsPacket;
|
import net.minecraft.network.protocol.game.ClientboundCommandSuggestionsPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundCommandsPacket;
|
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.ClientboundCooldownPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundCustomChatCompletionsPacket;
|
import net.minecraft.network.protocol.game.ClientboundCustomChatCompletionsPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundDamageEventPacket;
|
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.ClientboundDeleteChatPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundDisguisedChatPacket;
|
import net.minecraft.network.protocol.game.ClientboundDisguisedChatPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundEntityEventPacket;
|
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.ClientboundMapItemDataPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundMerchantOffersPacket;
|
import net.minecraft.network.protocol.game.ClientboundMerchantOffersPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundMoveEntityPacket;
|
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.ClientboundMoveMinecartPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundMoveVehiclePacket;
|
import net.minecraft.network.protocol.game.ClientboundMoveVehiclePacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundOpenBookPacket;
|
import net.minecraft.network.protocol.game.ClientboundOpenBookPacket;
|
||||||
@@ -455,7 +445,7 @@ public abstract class TechHider {
|
|||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
else if(packetProcessors.containsKey(packet.getClass())) {
|
else if(packetProcessors.containsKey(packet.getClass())) {
|
||||||
return packetProcessors.get(packet.getClass()).apply(player, packet);
|
return packetProcessors.get(packet.getClass()).apply(player, (Packet<? extends PacketListener>) packet);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user