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.
- Add Minecraft vanilla settings from Settings screen
- These settings are sent to server when joining
- Allows to customize skin layers shown to other players
- Most other settings are ignored by servers
- Update language file from 1.9 to 1.10 version
- Minor aesthetic changes in INI file comments
Suggestion by TNT-UP in issue #161 and Splodger1 in MC Forum.
- 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
Fixes#165. Reduced debug info was added in 1.8, and isn't found in 1.7. Since it isn't there in 1.7, the client would crash when it attempts to read it on the join game packet.
The nether doesn't send skylight, so we need to ignore skylight in the nether for it to work. However, that means that dimensions need to be tracked, so the respawn packet is now also tracked (and the forge dimension override packet)
- 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
The first bug is that the list isn't cleared in some cases, meaning new packets get data from the previous packet if it isn't read fully. Most commonly, this happens with a plugin channel message. The second bug happens because lists don't throw IndexOutOfRangeExceptions, but instead throw ArgumentOutOfRangeExceptions. This caused the catch for ignoring message types to not occur, instead causing the client to crash. This only happens in 1.7.10, where the message type is not included.
Most likely, these changes will fix the bugs seen in #114 and #117, although they may be caused by other bugs.
Chatbots may find it useful to send messages over plugin channels. This allows REGISTERing, UNREGISTERing, and sending over plugin channels, with built-in checking if the server also registered the channel (which can be disabled by the bot if needed). Unused channels are UNREGISTERed when a bot is disabled.
- 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!!!
- Optimize readNextUShortsLittleEndian network reading method
- Various coordinate computation issues, negative chunk offsets
- Properly parse negative coordinates for block change events
- Properly reach ground if less than 1 block over the ground
- 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
- Retrieve player location from the server
- Send back player location from the server
- Requires that a specific setting is enabled
- Should allow items to be picked up by the player
- May also trigger some anti chead plugins
More percisely, use varshorts for the length of the 3F packet,
as forge makes it longer. Only really matters if a bazillion
mods are installed, which they are with FTB.
This includes making sure plugin channels have their packet.
Also, it fixes a mistake in #92, where brand info doesn't send
length in 1.7.10 (same channel issue). Finally, there's only 1
registry sent to the client in 1.7.10.