Implement palette generation and investigate palette changes between
versions. Turns out 1.13- has legacy IDs, 1.14 switches to entity
palette and 1.15 refreshes the whole palette just to insert Bee.
Also refactor entity handling code here and there.
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
- Add DnDns library for performing DNS queries
- Add query method for SRV record
- Resolve Minecraft services
This allows resolving actual server addresses for
servers using SRV records on their domain names
SRV records are basically DNS redirection eg:
myserver.net -> srv1.myserver.net:12345
Should solve #186 reported by sammyvsparks and many others.
- 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.
- Add 1.10.1 and 1.10.2 in supported version list
- Store both player name and player display names
- List command will sort players by player name
- List command will now display by display name
- Ability to use /list raw to display by real name
Suggestion by Johngreen123
- Memory session cache will be used by default
- Verbose messages are now hidden by default
- Improve ping procedure's Forge handling
- Fix 1.8.9 and 1.9.0 in mcversion setting
- SessionCache.cs: fix LF into CRLF
- Use 1.9 translations instead of 1.8
- Determine if we can move to the specified direction
- Add moving ability to the specified direction
- Add /move command for triggering moves
- Add move decomp. into steps (more natural)
- Add pathfinding routines (still WIP)
- SO YES YOU CAN NOW WALK USING MCC!!!
Taken from Bukkit's Material class, with credits.
Allows to know types and properties of blocks.
+ Use database for "is solid" checks
+ Add "can harm players" method
+ Faster movements, falling seems natural now
+ Shorter error message when ping failed
- World is now properly parsed and stored from chunk data
- Block changes are also handled and world updated accordingly
- Added ground checking, the player will move down to reach the ground
- Performance tweaking in Protocol18, using lists instead of arrays
- Fix player look not properly skipped causing invalid location after
teleport