Simple Minecraft proxy to filter and log packets.
It uses PrismarineJS/minecraft-data to parse packets in any version.
This is work in progress. Here is a small todo list:
- Parse mcdata
- basic stuff (primitives + array and container)
- parse switch
- parse option
- parse buffer
- parse particleData
- parse bitfield
- parse topBitSetTerminatedArray
- map protocol version to string
- Implement minecraft protocol
- basic data types (primitives + array and container)
- packet structure
- tags
- nbt
- command node
- entity metadata
- bitsetfield
- compression
- encryption
- fix ignored packets for sending
- proxy traffic
- basic logging proxy
- filter packets
- basic filtering
- scripting
- customize logging behavior per packet (to reduce spam)
- serialize chat components using adventure to ansi?
- gui
- other ideas
- parse packets async
- fix bugs
- multi_block_change seems wrong
Updates:
- 12.05.2024:
initial commit, basic logging proxy, gets stuck in config phase
SLP: https://pastes.dev/P9Za2ysBKQ
Join: https://pastes.dev/ZuW3GudtTF - 12.05.2024 v2: bunch of more data types (including nbt), gets stuck sending a few packets, so we have to skip, but parses many https://pastes.dev/o4m7RvxH7Q
- 19.05.2024: fixed sending, we now spawn properly, most packets can get parsed, joining in any modern version works https://pastes.dev/XkoMh81kB6 (1.16.5 join)