forked from SteamWar/SteamWar
Update bypass list with full set of configuration and login packets
This commit is contained in:
+36
-39
@@ -23,8 +23,19 @@ import net.minecraft.network.FriendlyByteBuf;
|
|||||||
import net.minecraft.network.PacketListener;
|
import net.minecraft.network.PacketListener;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket;
|
import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket;
|
||||||
|
import net.minecraft.network.protocol.common.ClientboundCustomReportDetailsPacket;
|
||||||
|
import net.minecraft.network.protocol.common.ClientboundDisconnectPacket;
|
||||||
import net.minecraft.network.protocol.common.ClientboundKeepAlivePacket;
|
import net.minecraft.network.protocol.common.ClientboundKeepAlivePacket;
|
||||||
import net.minecraft.network.protocol.common.ClientboundPingPacket;
|
import net.minecraft.network.protocol.common.ClientboundPingPacket;
|
||||||
|
import net.minecraft.network.protocol.common.ClientboundResourcePackPopPacket;
|
||||||
|
import net.minecraft.network.protocol.common.ClientboundResourcePackPushPacket;
|
||||||
|
import net.minecraft.network.protocol.common.ClientboundServerLinksPacket;
|
||||||
|
import net.minecraft.network.protocol.common.ClientboundStoreCookiePacket;
|
||||||
|
import net.minecraft.network.protocol.common.ClientboundTransferPacket;
|
||||||
|
import net.minecraft.network.protocol.configuration.ClientboundFinishConfigurationPacket;
|
||||||
|
import net.minecraft.network.protocol.configuration.ClientboundRegistryDataPacket;
|
||||||
|
import net.minecraft.network.protocol.configuration.ClientboundUpdateEnabledFeaturesPacket;
|
||||||
|
import net.minecraft.network.protocol.cookie.ClientboundCookieRequestPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket;
|
import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundBlockEventPacket;
|
import net.minecraft.network.protocol.game.ClientboundBlockEventPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket;
|
import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket;
|
||||||
@@ -34,7 +45,6 @@ import net.minecraft.network.protocol.game.ClientboundCommandSuggestionsPacket;
|
|||||||
import net.minecraft.network.protocol.game.ClientboundCommandsPacket;
|
import net.minecraft.network.protocol.game.ClientboundCommandsPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundDisguisedChatPacket;
|
import net.minecraft.network.protocol.game.ClientboundDisguisedChatPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
|
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData;
|
|
||||||
import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket;
|
import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundPlayerAbilitiesPacket;
|
import net.minecraft.network.protocol.game.ClientboundPlayerAbilitiesPacket;
|
||||||
import net.minecraft.network.protocol.game.ClientboundPlayerChatPacket;
|
import net.minecraft.network.protocol.game.ClientboundPlayerChatPacket;
|
||||||
@@ -53,6 +63,7 @@ import net.minecraft.network.protocol.game.ClientboundUpdateAttributesPacket;
|
|||||||
import net.minecraft.network.protocol.login.ClientboundCustomQueryPacket;
|
import net.minecraft.network.protocol.login.ClientboundCustomQueryPacket;
|
||||||
import net.minecraft.network.protocol.login.ClientboundHelloPacket;
|
import net.minecraft.network.protocol.login.ClientboundHelloPacket;
|
||||||
import net.minecraft.network.protocol.login.ClientboundLoginCompressionPacket;
|
import net.minecraft.network.protocol.login.ClientboundLoginCompressionPacket;
|
||||||
|
import net.minecraft.network.protocol.login.ClientboundLoginDisconnectPacket;
|
||||||
import net.minecraft.network.protocol.login.ClientboundLoginFinishedPacket;
|
import net.minecraft.network.protocol.login.ClientboundLoginFinishedPacket;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
@@ -62,7 +73,7 @@ import net.minecraft.world.level.block.state.BlockState;
|
|||||||
* any packet must be explicitly whitelisted or processed in a
|
* any packet must be explicitly whitelisted or processed in a
|
||||||
* way that is also compliant with the principle of default-deny.
|
* way that is also compliant with the principle of default-deny.
|
||||||
*/
|
*/
|
||||||
public class TechHiderUpdated {
|
public class TechHider {
|
||||||
private final Set<Class<? extends Packet<? extends PacketListener>>> bypassingPackets;
|
private final Set<Class<? extends Packet<? extends PacketListener>>> bypassingPackets;
|
||||||
private final Map<Class<? extends Packet<? extends PacketListener>>, BiFunction<Player, Packet<? extends PacketListener>, Packet<? extends PacketListener>>> packetProcessors;
|
private final Map<Class<? extends Packet<? extends PacketListener>>, BiFunction<Player, Packet<? extends PacketListener>, Packet<? extends PacketListener>>> packetProcessors;
|
||||||
private final TinyProtocol interceptor;
|
private final TinyProtocol interceptor;
|
||||||
@@ -70,48 +81,34 @@ public class TechHiderUpdated {
|
|||||||
private final Set<String> blockEntitiesToHide;
|
private final Set<String> blockEntitiesToHide;
|
||||||
private final BlockState blockToObfuscateTo;
|
private final BlockState blockToObfuscateTo;
|
||||||
|
|
||||||
public TechHiderUpdated(Plugin plugin, Set<Integer> blockIdsToObfuscate, BlockState blockToObfuscateTo, Set<String> blockEntitiesToHide) {
|
public TechHider(Plugin plugin, Set<Integer> blockIdsToObfuscate, BlockState blockToObfuscateTo, Set<String> blockEntitiesToHide) {
|
||||||
this.blockIdsToObfuscate = blockIdsToObfuscate;
|
this.blockIdsToObfuscate = blockIdsToObfuscate;
|
||||||
this.blockToObfuscateTo = blockToObfuscateTo;
|
this.blockToObfuscateTo = blockToObfuscateTo;
|
||||||
this.blockEntitiesToHide = blockEntitiesToHide;
|
this.blockEntitiesToHide = blockEntitiesToHide;
|
||||||
this.bypassingPackets = Set.of(
|
this.bypassingPackets = Set.of(
|
||||||
// --- Handshake & Login Protocol ---
|
// --- 5.1.x Login Protocol ---
|
||||||
// These must be whitelisted to allow the player to actually reach the 'Play'
|
ClientboundLoginDisconnectPacket.class, // 5.1.1 Disconnect
|
||||||
// state
|
ClientboundHelloPacket.class, // 5.1.2 Encryption Request
|
||||||
ClientboundHelloPacket.class, // Encryption request
|
ClientboundLoginFinishedPacket.class, // 5.1.3 Login Success
|
||||||
ClientboundLoginFinishedPacket.class, // Login Success
|
ClientboundLoginCompressionPacket.class, // 5.1.4 Set Compression
|
||||||
ClientboundLoginCompressionPacket.class, // Set Compression
|
ClientboundCustomQueryPacket.class, // 5.1.5 Login Plugin Request
|
||||||
ClientboundCustomQueryPacket.class, // Velocity/Bungee/Mod identity checks
|
ClientboundCookieRequestPacket.class, // 5.1.6 Cookie Request
|
||||||
|
|
||||||
// --- Protocol & Connection ---
|
// --- 6.1.x Configuration Protocol ---
|
||||||
ClientboundKeepAlivePacket.class,
|
ClientboundCustomPayloadPacket.class, // 6.1.2 Clientbound Plugin Message
|
||||||
ClientboundPingPacket.class,
|
ClientboundFinishConfigurationPacket.class, // 6.1.4 Finish Configuration
|
||||||
ClientboundCustomPayloadPacket.class,
|
ClientboundKeepAlivePacket.class, // 6.1.5 Clientbound Keep Alive
|
||||||
ClientboundServerDataPacket.class,
|
ClientboundPingPacket.class, // 6.1.6 Ping
|
||||||
|
ClientboundRegistryDataPacket.class, // 6.1.8 Registry Data
|
||||||
// --- UI & Communication ---
|
ClientboundResourcePackPopPacket.class, // 6.1.9 Remove Resource Pack
|
||||||
ClientboundSystemChatPacket.class,
|
ClientboundResourcePackPushPacket.class, // 6.1.10 Add Resource Pack
|
||||||
ClientboundDisguisedChatPacket.class,
|
ClientboundStoreCookiePacket.class, // 6.1.11 Store Cookie
|
||||||
ClientboundBossEventPacket.class,
|
ClientboundTransferPacket.class, // 6.1.12 Transfer
|
||||||
ClientboundTabListPacket.class,
|
ClientboundUpdateEnabledFeaturesPacket.class, // 6.1.13 Feature Flags
|
||||||
ClientboundSetTitleTextPacket.class,
|
ClientboundCustomReportDetailsPacket.class, // 6.1.16 Custom Report Details
|
||||||
ClientboundSetSubtitleTextPacket.class,
|
ClientboundServerLinksPacket.class, // 6.1.17 Server Links
|
||||||
ClientboundSetTitlesAnimationPacket.class,
|
ClientboundSystemChatPacket.class, // 6.1.18/19 Dialogs are often handled via System Chat or Custom Payloads
|
||||||
ClientboundClearTitlesPacket.class,
|
ClientboundServerDataPacket.class // 6.1.20 Code of Conduct is usually in Server Data
|
||||||
ClientboundPlayerChatPacket.class,
|
|
||||||
|
|
||||||
// --- Player Stats & Logic ---
|
|
||||||
ClientboundSetExperiencePacket.class,
|
|
||||||
ClientboundSetHealthPacket.class,
|
|
||||||
ClientboundPlayerAbilitiesPacket.class,
|
|
||||||
ClientboundUpdateAttributesPacket.class,
|
|
||||||
ClientboundCommandSuggestionsPacket.class,
|
|
||||||
|
|
||||||
// --- World Metadata (Non-Structural) ---
|
|
||||||
ClientboundSetTimePacket.class,
|
|
||||||
ClientboundSetDefaultSpawnPositionPacket.class,
|
|
||||||
ClientboundGameEventPacket.class, // Weather, Gamemode changes, etc.
|
|
||||||
ClientboundCommandsPacket.class // Command tree for tab-complete
|
|
||||||
);
|
);
|
||||||
|
|
||||||
BiFunction<Player, Packet<? extends PacketListener>, Packet<? extends PacketListener>> tossPacket = (p, packet) -> null;
|
BiFunction<Player, Packet<? extends PacketListener>, Packet<? extends PacketListener>> tossPacket = (p, packet) -> null;
|
||||||
Reference in New Issue
Block a user