Vanilla client will consider that connection has been lost
when no server keepalive was received during the last 30 seconds.
This commit implements a similar mechanism in MCC. See #802
Minecraft 1.14 is now fully supported.
- Implement NBT parsing to skip NBT field in chunk data
- Update lighting data format in Chunk Data parsing
- Move Chunk Data parsing into Protocol18Terrain.cs
- Improve PaletteGenerator to greatly reduce palette files sizes
- Re-Generate Palette113.cs to reduce its size (378 Kib -> 50 Kib)
- Generate Palette114.cs (57 Kib instead of 516 Kib with prev format)
- Update Material.cs and MaterialExtensions.cs for new block types
- Protocol18: Handles Vanilla packets
- Protocol18Forge: Handles Forge packets
- DataTypes: Handles packet field encoding/decoding
- SocketWrapper: Handles encryption and basic R/W operations
This commit should not change anything for end users, only devs.
See also #704 for discussions about this.
Special thanks to @TheSnoozer and @vkorn for their help!
- Implement global block Palette mechanism
- Add class generation tool from blocks.json
- Regenerate Material.cs and redefine solid blocks
- Migrate previous Material.cs into Palette112
- Generate Palette113 from MC 1.13.2 blocks.json
- Improve Block class to handle up to 65535 block states
- Adjust terrain parsing, small fixes in packets
- Remove unused snapshot-related protocol cases
Solves #599
This adds support for Minecraft 1.12's protocol, and also abstracts out outgoing packet IDs. I include packet IDs for some 1.12 snapshots, even though snapshot versions aren't supported, because I already had written the code (though in a far more messy variant) for my MC-106551 test script; while they won't be used right now, they may be useful if snapshots are ever formally supported in the future.
- Tab display names should hold display name but...
- Server sends <UUID, name, null> x Player count
- TabListPlus sends <SlotID, ???tab#01, SlotText> x Slot Count
- So we don't have player display names, only worthless slots
- So the whole feature was useless, reverting to name only.