forked from SteamWar/SteamWar
Remove TinyProtocol.addTypedFilter
This commit is contained in:
+1
-1
@@ -80,7 +80,7 @@ public class SimulatorCursor implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public SimulatorCursor() {
|
public SimulatorCursor() {
|
||||||
BiFunction<Player, Object, Object> function = (player, object) -> {
|
BiFunction<Player, ServerboundMovePlayerPacket, Object> function = (player, object) -> {
|
||||||
calcCursor(player);
|
calcCursor(player);
|
||||||
return object;
|
return object;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class NoClipCommand extends SWCommand implements Listener {
|
|||||||
public NoClipCommand() {
|
public NoClipCommand() {
|
||||||
super("noclip", "nc");
|
super("noclip", "nc");
|
||||||
|
|
||||||
BiFunction<Player, Object, Object> first = (player, o) -> {
|
BiFunction<Player, ServerboundMovePlayerPacket, Object> first = (player, o) -> {
|
||||||
NoClipData noClipData = SWPlayer.of(player).getComponent(NoClipData.class).orElse(null);
|
NoClipData noClipData = SWPlayer.of(player).getComponent(NoClipData.class).orElse(null);
|
||||||
if (noClipData == null) return o;
|
if (noClipData == null) return o;
|
||||||
if (noClipData.lastTick == TPSUtils.currentTick.get()) return o;
|
if (noClipData.lastTick == TPSUtils.currentTick.get()) return o;
|
||||||
@@ -100,7 +100,7 @@ public class NoClipCommand extends SWCommand implements Listener {
|
|||||||
}
|
}
|
||||||
return o;
|
return o;
|
||||||
};
|
};
|
||||||
TinyProtocol.instance.addTypedFilter(ServerboundSetCreativeModeSlotPacket.class, third);
|
TinyProtocol.instance.addFilter(ServerboundSetCreativeModeSlotPacket.class, third);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Reflection.Field<GameType> playerGameMode = Reflection.getField(ServerPlayerGameMode.class, GameType.class, 0);
|
private static final Reflection.Field<GameType> playerGameMode = Reflection.getField(ServerPlayerGameMode.class, GameType.class, 0);
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@ import java.util.Optional;
|
|||||||
public class NoCreativeKnockback {
|
public class NoCreativeKnockback {
|
||||||
|
|
||||||
public NoCreativeKnockback() {
|
public NoCreativeKnockback() {
|
||||||
TinyProtocol.instance.addTypedFilter(ClientboundExplodePacket.class, (player, o) -> {
|
TinyProtocol.instance.addFilter(ClientboundExplodePacket.class, (player, o) -> {
|
||||||
if (player.getGameMode() != GameMode.CREATIVE) return o;
|
if (player.getGameMode() != GameMode.CREATIVE) return o;
|
||||||
return new ClientboundExplodePacket(
|
return new ClientboundExplodePacket(
|
||||||
o.center(),
|
o.center(),
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ public class SignEdit implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
TinyProtocol.instance.addTypedFilter(ServerboundSignUpdatePacket.class, (player, o) -> {
|
TinyProtocol.instance.addFilter(ServerboundSignUpdatePacket.class, (player, o) -> {
|
||||||
Bukkit.getScheduler().runTask(BauSystem.getInstance(), () -> {
|
Bukkit.getScheduler().runTask(BauSystem.getInstance(), () -> {
|
||||||
ServerLevel serverLevel = ((CraftWorld) player.getWorld()).getHandle();
|
ServerLevel serverLevel = ((CraftWorld) player.getWorld()).getHandle();
|
||||||
Block signLoc = CraftBlock.at(serverLevel, o.getPos());
|
Block signLoc = CraftBlock.at(serverLevel, o.getPos());
|
||||||
|
|||||||
@@ -115,8 +115,8 @@ public class XrayCommand extends SWCommand implements Listener, ScoreboardElemen
|
|||||||
return packet;
|
return packet;
|
||||||
};
|
};
|
||||||
|
|
||||||
TinyProtocol.instance.addTypedFilter(ServerboundMovePlayerPacket.Pos.class, positionSetter);
|
TinyProtocol.instance.addFilter(ServerboundMovePlayerPacket.Pos.class, positionSetter);
|
||||||
TinyProtocol.instance.addTypedFilter(ServerboundMovePlayerPacket.PosRot.class, positionSetter);
|
TinyProtocol.instance.addFilter(ServerboundMovePlayerPacket.PosRot.class, positionSetter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class TickManager implements Listener {
|
|||||||
TinyProtocol.instance.addFilter(ClientboundTickingStatePacket.class, this::blockPacket);
|
TinyProtocol.instance.addFilter(ClientboundTickingStatePacket.class, this::blockPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Object blockPacket(Player player, Object packet) {
|
private Object blockPacket(Player player, ClientboundTickingStatePacket packet) {
|
||||||
if (blockTpsPacket) {
|
if (blockTpsPacket) {
|
||||||
return new ClientboundTickingStatePacket(20, manager.isFrozen());
|
return new ClientboundTickingStatePacket(20, manager.isFrozen());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ public class Recording implements Listener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enable() {
|
public void enable() {
|
||||||
TinyProtocol.instance.addTypedFilter(ServerboundUseItemPacket.class, place);
|
TinyProtocol.instance.addFilter(ServerboundUseItemPacket.class, place);
|
||||||
TinyProtocol.instance.addFilter(blockDigPacket, dig);
|
TinyProtocol.instance.addFilter(blockDigPacket, dig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -245,15 +245,10 @@ public class TinyProtocol {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> void addTypedFilter(Class<T> packetType, BiFunction<Player, ? super T, Object> filter) {
|
public <T> void addFilter(Class<T> packetType, BiFunction<Player, ? super T, Object> filter) {
|
||||||
packetFilters.computeIfAbsent(packetType, c -> new CopyOnWriteArrayList<>()).add((BiFunction) filter);
|
packetFilters.computeIfAbsent(packetType, c -> new CopyOnWriteArrayList<>()).add((BiFunction) filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public void addFilter(Class<?> packetType, BiFunction<Player, Object, Object> filter) {
|
|
||||||
packetFilters.computeIfAbsent(packetType, c -> new CopyOnWriteArrayList<>()).add(filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void removeFilter(Class<?> packetType, BiFunction<Player, ?, Object> filter) {
|
public void removeFilter(Class<?> packetType, BiFunction<Player, ?, Object> filter) {
|
||||||
packetFilters.getOrDefault(packetType, Collections.emptyList()).remove(filter);
|
packetFilters.getOrDefault(packetType, Collections.emptyList()).remove(filter);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,9 +43,8 @@ public class WorldIdentifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public WorldIdentifier() {
|
public WorldIdentifier() {
|
||||||
TinyProtocol.instance.addFilter(ClientboundLoginPacket.class, (player, o) -> {
|
TinyProtocol.instance.addFilter(ClientboundLoginPacket.class, (player, packet) -> {
|
||||||
if (resourceKey == null) return o;
|
if (resourceKey == null) return packet;
|
||||||
ClientboundLoginPacket packet = (ClientboundLoginPacket) o;
|
|
||||||
|
|
||||||
return new ClientboundLoginPacket(packet.playerId(),
|
return new ClientboundLoginPacket(packet.playerId(),
|
||||||
packet.hardcore(),
|
packet.hardcore(),
|
||||||
|
|||||||
@@ -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.addFilter(ServerboundPlayerActionPacket.class, this::onDig);
|
||||||
registerUseItem();
|
registerUseItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,25 +56,20 @@ public class AntiNocom implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerUseItem() {
|
private void registerUseItem() {
|
||||||
Class<?> useItem = ServerboundUseItemOnPacket.class;
|
|
||||||
|
|
||||||
Class<?> movingObjectPositionBlock = BlockHitResult.class;
|
Class<?> movingObjectPositionBlock = BlockHitResult.class;
|
||||||
Reflection.Field<?> useItemPosition = Reflection.getField(useItem, movingObjectPositionBlock, 0);
|
Reflection.Field<?> useItemPosition = Reflection.getField(ServerboundUseItemOnPacket.class, movingObjectPositionBlock, 0);
|
||||||
Reflection.Field<?> movingBlockPosition = Reflection.getField(movingObjectPositionBlock, TechHider.blockPosition, 0);
|
Reflection.Field<?> movingBlockPosition = Reflection.getField(movingObjectPositionBlock, TechHider.blockPosition, 0);
|
||||||
|
|
||||||
Function<Object, Object> getPosition = (packet) -> movingBlockPosition.get(useItemPosition.get(packet));
|
Function<Object, Object> getPosition = (packet) -> movingBlockPosition.get(useItemPosition.get(packet));
|
||||||
|
|
||||||
TinyProtocol.instance.addFilter(useItem, (player, packet) -> {
|
TinyProtocol.instance.addFilter(ServerboundUseItemOnPacket.class, (player, packet) -> {
|
||||||
Object pos = getPosition.apply(packet);
|
Object pos = getPosition.apply(packet);
|
||||||
return isValid(player, "UseItem", TechHider.blockPositionX.get(pos), TechHider.blockPositionZ.get(pos)) ? packet : null;
|
return isValid(player, "UseItem", TechHider.blockPositionX.get(pos), TechHider.blockPositionZ.get(pos)) ? packet : null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Class<?> blockDig = ServerboundPlayerActionPacket.class;
|
private Object onDig(Player player, ServerboundPlayerActionPacket packet) {
|
||||||
private static final Reflection.Field<?> digPosition = Reflection.getField(blockDig, TechHider.blockPosition, 0);
|
BlockPos pos = packet.getPos();
|
||||||
|
|
||||||
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;
|
return isValid(player, "Dig", TechHider.blockPositionX.get(pos), TechHider.blockPositionZ.get(pos)) ? packet : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public class REntityServer implements Listener {
|
|||||||
this.callback = callback;
|
this.callback = callback;
|
||||||
|
|
||||||
if (uninitialized) {
|
if (uninitialized) {
|
||||||
TinyProtocol.instance.addTypedFilter(ServerboundInteractPacket.class, filter);
|
TinyProtocol.instance.addFilter(ServerboundInteractPacket.class, filter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user