Commit graph

96 commits

Author SHA1 Message Date
TheSnoozer
b57630a5e4 https://github.com/ORelio/Minecraft-Console-Client/issues/493: UUID not properly storing due to GUID conversion (need to convert a Java big-endian Guid to a C# little-endian Guid) 2019-04-22 14:22:14 +02:00
ORelio
d0088e0dca Update player look when using pathfinding
Document Look command in Readme
Improve UpdateLocation API
Small coding style fixes
2019-04-12 17:11:41 +02:00
Stanley Powers
ba0f51dc8c Update func info and use concatBytes 2019-04-12 16:25:15 +02:00
Stanley Powers
8bfdb2ab59 Look command 2019-04-12 16:25:15 +02:00
TheSnoozer
aad3d8b2ef https://github.com/ORelio/Minecraft-Console-Client/issues/525: general 1.13 support (v393 protocol). Note that terrainandmovements might cause some issues 2018-10-07 08:27:31 +02:00
Pokechu22
ab13a63ba1 Fix ID of resource pack status in 1.12+
0x17 is the recipe book packet.  0x18 is resource pack status.

Fixes #338
2017-10-20 07:55:05 +02:00
Pokechu22
c85352f819 Fix packet compression 2017-09-09 17:07:26 +02:00
Pokechu22
7ba0c3c8fc Don't hardcode the ID of TeleportConfirm
Also, always send the teleport confirm packet, even when terrain and movements is not enabled.
2017-09-09 17:07:26 +02:00
Pokechu22
fd2e3d5797 Implement 1.12.1 protocol 2017-08-03 23:08:25 +02:00
Pokechu22
550beda7c4 Update to 1.12
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.
2017-06-10 09:09:48 -07:00
ORelio
dc09896959 Allow access to raw JSON messages from ChatBot
See #275
2017-05-31 20:54:16 +02:00
ORelio
9f1ef83680 Move Json class into main package
See #138
2017-05-06 21:08:56 +02:00
ORelio
a220ee272c Server Ping: improve BungeeCord version detection
See #227
2017-03-14 23:33:33 +01:00
ORelio
a344ac4101 Implement more realisic fall to ground
Should help moving around in servers using anti-cheat plugins.

See #195
2017-03-10 23:40:02 +01:00
ORelio
4b2fd4ccb1 TryFix crash for 1.7 chunk data
See #217
2016-11-19 16:23:35 +01:00
ORelio
609b939159 Minecraft 1.11: Raise chat message max length to 256 2016-11-19 16:06:08 +01:00
ORelio
1180c06b1f Show links embedded in chat
Allows clicking if supported by terminal,
or at least copy and paste to web browser.

Suggestion by brkmrr9 in #207
2016-10-07 19:52:28 +02:00
ORelio
2a07fbbae6 Remove tab display name experiment (not working)
- 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.
2016-08-27 15:46:34 +02:00
ORelio
61ce935c63 Add support for Minecraft Settings
- 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.
2016-08-26 12:21:38 +02:00
ORelio
b1d4f85b23 Implement tab list display name update
Packet 0x2D with action 0x03
2016-08-23 00:13:46 +02:00
ORelio
461385d057 Ignore tab list items not containing a valid name
For cleaner /list output without "???tab"
placeholders eg from TabListPlus.
2016-08-22 23:15:19 +02:00
ORelio
9a98a9d46f Store extended player info, list display names
- 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
2016-08-22 19:40:58 +02:00
ORelio
881e080fd6 Add Terrain and Movements for MC 1.7
Add full support for terrain and movements on MC 1.7
Also fix #179 which was due to terrain and movements
beign enabled although unsupported on MC 1.7
2016-08-21 15:44:15 +02:00
ORelio
e8f51ca22b Fix The End terrain load crash for 1.9+
Bug report by TNTUP, See #173
2016-07-22 23:48:14 +02:00
Pokechu22
5456a6e969 Stop attempting to read the reduced debug info value in 1.7
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.
2016-06-20 15:18:27 -07:00
Pokechu22
546b307cf3 Fix 1.9 terrain and movement in the nether
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)
2016-06-10 16:59:53 -07:00
Pokechu22
e56997a582 Add terrainandmovements support to 1.9
This is still a bit unstable, and chunk parsing is _really_ slow, but it's a start.
2016-06-09 17:06:23 -07:00
ORelio
d3a54e8caf Add support for MC 1.10.0
See #159
2016-06-09 21:10:57 +02:00
ORelio
66d57b0ce6 Cycle through tab-complete results
Allow cycling through tab-complete options sent back by the server by
pressing TAB multiple times in a row. Fix #148
2016-05-14 11:51:02 +02:00
ORelio
e8097206d0 Disable terrain and movements when not handled
Related to #131
2016-03-12 11:01:31 +01:00
ORelio
d45f75f9f4 Reduce output verbosity, default session cache
- 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
2016-03-10 13:29:05 +01:00
ORelio
d44a76e82c Fix Tab list item parsing for 1.8 & 1.9
Went unnoticed until, well, now.
2016-03-08 18:03:08 +01:00
ORelio
a82c6823af Add support for Minecraft 1.9
Currently no terrain handling but anything else should work.

Related: #125
2016-03-05 19:13:45 +01:00
ORelio
b10e3e8521 Ignore Forge messages once Forge login is complete
In an attempt at fixing #117
2016-02-27 18:01:58 +01:00
Pokechu22
0617629570 Fix two bugs with 1.7.10 protocol
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.
2016-02-26 18:00:27 -08:00
Pokechu22
1ea8f119d9 Give ChatBots access to plugin channels.
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.
2016-02-07 14:55:10 -08:00
ORelio
bdbd8ab0b8 Remove debug printing line in ChatParser
See #107
2016-01-31 19:09:08 +01:00
Pokechu22
8ce685892c Update to 1.8's language files.
I ocasionally see untranslated messages; this should resolve all of them.

The changes to Settings.cs, the core changes, just update the index file used and the normal hash.  The changes in ChatParser.cs primarilly fix the name: 1.7.4 used 'lang/en-GB.lang' but 1.7.10 and 1.8 use 'minecraft/lang/en-GB.lang' and 'realms/lang/en-GB.lang' (and realms comes first), meaning that the wrong language file is selected.  The name is updated to make sure the right file is used.  I also corrected the indentation in that block.
2016-01-30 22:14:53 -08:00
ORelio
b0c8f82697 Add simple movements with /move command
- 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!!!
2015-12-12 16:48:38 +01:00
ORelio
5d8d42e3d1 Terrain: Fix coordinate parsing (negative coords)
- 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
2015-12-08 00:34:40 +01:00
ORelio
cb00c28b6e Add world handling (and fall to 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
2015-11-30 15:30:49 +01:00
ORelio
2e4544fc5a Fix location sendback (Item pickup!)
Location is now properly sent back to the server
Item are now properly being picked up
(Need to enable movements in INI file)
2015-11-29 20:19:43 +01:00
ORelio
72bd485e67 Add basic location handling
- 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
2015-11-27 17:16:37 +01:00
Pokechu22
3a19de82ae Finish forge hand shaking before enabling the chat prompt. 2015-10-25 12:20:38 -07:00
Pokechu22
fb87de1ff5 Fix compatability with Feed The Beast servers
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.
2015-10-25 11:51:53 -07:00
Pokechu22
b746b5612b Only add \0FML\0 to the IP if forgeinfo is not null (+ whitespace fixes) 2015-10-24 22:56:35 -07:00
Pokechu22
77277bcf84 Add SendPluginChannelPacket to the IMinecraftCom interface. 2015-10-24 22:35:17 -07:00
Pokechu22
7c8e856392 Fix connection to forge 1.7.10 servers.
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.
2015-10-24 21:17:28 -07:00
Pokechu22
ad38154f8f Full forge (1.8) connection support! 2015-10-24 19:54:38 -07:00
Pokechu22
c1c1c10d26 Relocate forge handshake code into the main packet handler.
Also, handle handshake reset.
2015-10-24 15:06:22 -07:00