Geyser Sanitizer

GeyserSanitizer is a Spigot/Paper plugin designed to sanitize text components sent to Bedrock players, preventing client display issues could be caused.

88

Geyser Sanitizer

Description

GeyserSanitizer is a Spigot/Paper plugin designed to sanitize text components sent to Bedrock players, preventing client crashes or display issues that can arise from certain unsupported text features. It specifically targets and modifies chat messages, system messages, and team-related text (nametags, prefixes, suffixes) to ensure compatibility with Bedrock clients connected via GeyserMC/Floodgate.

Features

- Icon/Head Icon Removal: Intercepts and sanitizes outgoing chat messages. - Icon/Head Icon Removal: Intercepts and sanitizes outgoing system messages. - Icon/Head Icon Removal: Cleans nametags, prefixes, and suffixes sent as part of team updates. - Icon/Head Icon Removal: Utilizes Floodgate API to selectively apply sanitization only to Bedrock players. - Icon/Head Icon Removal: Removes JSON components containing 'atlas', 'sprite', 'hat', or 'player' keys, which are known to cause issues on Bedrock clients.

Dependencies

This plugin requires the following to function correctly:

- Floodgate: Used for intercepting and modifying network packets. - Floodgate: Used to identify Bedrock players.

How It Works

The plugin registers a `PacketInterceptor` listener with PacketEvents. When a server sends certain packets (`CHAT_MESSAGE`, `SYSTEM_CHAT_MESSAGE`, `TEAMS`), the interceptor checks if the recipient is a Bedrock player (using Floodgate). If so, it sanitizes the `net.kyori.adventure.text.Component` messages by removing JSON structures that contain problematic keys (like "atlas", "sprite", "hat", "player") before the packet is sent to the client. This prevents unsupported features from reaching the Bedrock client and causing issues.

ADS