Commit graph

89 commits

Author SHA1 Message Date
deathcap
6c33ec2856 Refactor FML|HS to use state machine
Instead of responding based on the packet type received, maintain a
local state and ensure the correct packets are received. Should help
avoid unexpected states/behavior. See:
https://github.com/ORelio/Minecraft-Console-Client/pull/100/files#diff-65b97c02a9736311374109e22d30ca9cR297
2016-01-23 19:26:50 -08:00
deathcap
8fd30f6af9 Move to fmlHandshakeStep() 2016-01-23 19:03:54 -08:00
deathcap
0b2550e206 Add forgeMods option, set to array of Forge modifications installed on client 2016-01-23 18:17:18 -08:00
deathcap
1349fdfc73 Update examples to log when connection is lost
Normally, the client will send a kick packet if the client is
disconnected from the server, but if the connection is lost due to
network or lower-level protocol issues, the 'end' event will be emitted.
Log this event in the examples so it is clear why the scripts exit.
2016-01-23 18:08:18 -08:00
deathcap
46a134c5e9 Fix sending Handshake|Ack phase 2016-01-23 17:44:20 -08:00
deathcap
c680c0d12a Fix RegistryData hasMore field definition and usage 2016-01-23 17:05:33 -08:00
deathcap
265fcd9d4c ModList field uses 'modid' to match ServerPingList packet JSON 2016-01-23 17:04:02 -08:00
deathcap
6a6bdff5c8 fmlProtocolVersion client/server no longer collide 2016-01-23 17:03:13 -08:00
deathcap
b9bc0e1cb8 Switch on packet type through an anonymous container 2016-01-23 17:02:07 -08:00
deathcap
74c5b74950 Use a mapper for symbolic subpacket names vs discriminator byte values 2016-01-23 16:29:15 -08:00
deathcap
80cc68e480 Add a mapper for FML|HS discrminator bytes 2016-01-23 16:16:31 -08:00
deathcap
30b347cb99 FML|HS client sends HandshakeAck COMPLETE in response to server 2016-01-23 15:42:03 -08:00
deathcap
e80471753b Complete the HandshakeAck exchange 2016-01-23 15:41:07 -08:00
deathcap
06f8a5fe28 Send client HandshakeAck with WAITINGSERVERDATA 2016-01-23 15:31:33 -08:00
deathcap
790ba538d9 Show FML|HS ModList from server 2016-01-23 15:19:28 -08:00
deathcap
735b7f6d65 Hardcode a mod list for now 2016-01-23 15:14:02 -08:00
deathcap
1f68b30d87 Add missing string type in FML|HS serializer
Fixes Error: SizeOf error for mods.2.0.name : missing data type: string
2016-01-23 15:12:40 -08:00
deathcap
459da049c1 FML|HS ModList packet array 2016-01-23 14:45:52 -08:00
deathcap
cb9e6db991 FML|HS: ModList: send empty client modlist 2016-01-23 14:31:03 -08:00
deathcap
2787adbad3 Register client plugin channels on FML|HS ServerHello
This may not be strictly necessary, in either case Forge server with
-Dfml.debugNetworkHandshake=true logs:
[14:26:03] [Netty Server IO #3/INFO] [FML]: Client protocol version 2
2016-01-23 14:26:11 -08:00
deathcap
e9159a432b Send ClientHello response to ServerHello 2016-01-23 14:23:32 -08:00
deathcap
8af797a04c FML|HS: encode ClientHello 2016-01-23 14:16:07 -08:00
deathcap
9bb788bb7a FML|HS: ServerHello: overrideDimension only sent if fmlProtocolVersion>=2 2016-01-23 14:12:50 -08:00
deathcap
8f1704bc7a FML|HS: ServerHello: decode overrideDimension 2016-01-23 14:08:20 -08:00
deathcap
09b4dc8358 Decode fmlProtocolVersion in ServerHello 2016-01-23 14:00:59 -08:00
deathcap
8018de5c29 Parse FML|HS discriminator byte using protodef 2016-01-23 13:49:48 -08:00
deathcap
1d8332e2e8 Log registered plugin channels 2016-01-23 13:40:59 -08:00
deathcap
bf04af23f9 client_forge example: enable forge 2016-01-23 13:04:50 -08:00
deathcap
a6604511c7 Create client_forge example copied from client_echo 2016-01-23 13:04:50 -08:00
deathcap
4aac85c09a Show disconnect reason in examples 2016-01-22 00:32:36 -08:00
Romain Beaumont
43d56de2f6 fix cli options doc proxy example, fix #313 2016-01-07 01:55:28 +01:00
Romain Beaumont
b2b53c9343 a few small changes to make the code better 2015-11-30 22:19:56 +01:00
Romain Beaumont
57d9c05941 use require-self to be able to use require('minecraft-protocol') in examples 2015-11-30 13:23:38 +01:00
Romain Beaumont
787f8d3423 fix gamemode3 in proxy : fix #146
* correctly generate the same uuidv3 than the vanilla server does in offline mode : fix #282
* remove "one player online mode" in the proxy : it doesn't make sense to identify all players as the user/passwd given in the cli. Now both servers in offline mode.
2015-11-08 23:34:15 +01:00
Romain Beaumont
23b077b76f fix compression in proxy, fix #292 2015-11-08 23:34:15 +01:00
Romain Beaumont
f45c6dff49 use protodef:
* move general datatypes to protodef along with their tests
* move states to states.js file
* use one protodef serializer by state and direction instead of one big serializer for everything (same thing for the deserializer)
* define a packet as a protodef type using a switch and a container, and adding each minecraft packet as a type (packet_ + name)
* use mapper type from protodef to convert id to name in packet definition
* use general string type : pstring
* divide by 10 the number of iteration in the benchmark to get back to a reasonable test execution time
2015-11-08 23:29:51 +01:00
Romain Beaumont
0da2b14607 change dependency from buffertools to buffer-equal in proxy 2015-10-13 17:15:49 +02:00
Romain Beaumont
30fd138ae9 use bufferEqual instead of buffertools
native modules are annoying
2015-10-13 17:11:51 +02:00
Romain Beaumont
3f50a6f19a add an optional argument to the proxy example to specify the version 2015-09-30 00:17:44 +02:00
Romain Beaumont
7871ac446a fix proxy relatively to the unexposing of createPacketBuffer
also fix a small bug in serializer.js
2015-09-30 00:03:42 +02:00
Robin Lambertz
a337e5ae3e Merge pull request #249 from rom1504/fix_client_chat
clean up and fix client_chat
2015-09-23 20:25:03 +02:00
Robin Lambertz
84b32fd4d3 Merge pull request #250 from rom1504/fix_server
fix server example
2015-09-23 19:43:30 +02:00
Robin Lambertz
c2749505e8 Merge pull request #251 from rom1504/fix_client_echo
fix client_echo example
2015-09-23 19:43:19 +02:00
roblabla
cf1503f9de Fix proxy.js 2015-09-23 15:22:02 +02:00
Romain Beaumont
272a28701c fix client_echo example 2015-09-20 22:19:39 +02:00
Romain Beaumont
0d5b122423 fix server example 2015-09-20 22:10:20 +02:00
Romain Beaumont
a3cd6c49ad clean up and fix client_chat 2015-09-20 22:00:43 +02:00
Romain Beaumont
0ce00f2cc7 put keepAlive: false in proxy.js : fix connecting to a proxy with some lag (ie not with both proxy and vanilla client in localhost) 2015-08-08 17:29:54 +02:00
Romain Beaumont
145c6b4840 add a little info in the proxy example 2015-08-06 00:04:53 +02:00
Romain Beaumont
5743cd8b64 Revert "Add some debug information (useful to update to an updated protocol)"
This reverts commit d2435c8dcd.
2015-08-05 23:30:04 +02:00