Commit graph

1169 commits

Author SHA1 Message Date
deathcap
283b75d694 Forge client example pings server to get forgeMods list
Avoids the need to hardcode the mod list in the client, in order to
successfully connect to arbitrary Forge servers (with various mods).
2016-01-23 20:01:07 -08:00
deathcap
0b45b439bc Use symbolic values for writeAck() phase 2016-01-23 19:29:27 -08:00
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
6e50863eaa Append \0\FML\0 to hostname in set_protocol packet if Forge enabled
http://wiki.vg/User:Pokechu22/Forge#Connection_to_a_forge_server
2016-01-23 13:04:50 -08:00
Romain Beaumont
609c4466f7 Merge pull request #325 from deathcap/debug-read
Add debug logging for received packet data
2016-01-23 22:04:01 +01:00
deathcap
162a8abb34 Add debug logging for received packet data 2016-01-23 12:10:26 -08:00
Romain Beaumont
fbbfd40bc6 Merge pull request #324 from rom1504/one_uuid
use uuid-1345 instead of 3 uuid packages, fix #297
2016-01-22 12:46:44 +01:00
Romain Beaumont
eefb113b4c use uuid-1345 instead of 3 uuid packages, fix #297 2016-01-22 12:42:04 +01:00
Romain Beaumont
5b8a507d5a Merge pull request #305 from rom1504/update_to_babel6
update to babel6
2016-01-22 11:21:01 +01:00
Romain Beaumont
447eff80dd Merge pull request #323 from deathcap/disconnect-reason
Show disconnect reason in examples
2016-01-22 11:12:32 +01:00
deathcap
4aac85c09a Show disconnect reason in examples 2016-01-22 00:32:36 -08:00
Romain Beaumont
3f161622f9 update to babel6 and remove some dependencies 2016-01-20 00:50:04 +01:00
Romain Beaumont
16a5c0fc0d Merge pull request #321 from deathcap/remove-es7
Remove experimental ES7 features, use only standard ES6
2016-01-20 00:14:17 +01:00
deathcap
76fca99ac4 Disable ES7 experimental stage 0 features in favor of ES6 standard 2016-01-18 18:17:53 -08:00
deathcap
91a404333e Remove non-ES6 class field declarations (ES7 stage 1 proposal)
ES6 does not have support for class field declarations, although it is
an experimental ES7 proposal:
https://github.com/jeffmo/es-class-fields-and-static-properties
For ES6, move the field/property declarations to the constructors.
2016-01-18 18:17:12 -08:00
deathcap
dd1d647d0e Remove stream option, since callers can simply use client.setSocket() 2016-01-18 13:39:22 -08:00
deathcap
9a781ca662 Refactor createClient to use createClientStream 2016-01-18 13:13:20 -08:00
deathcap
b33dd88ac2 Make stream option optional, caller can setSocket() later 2016-01-18 13:02:39 -08:00
deathcap
73d69e66d7 Add noPacketFramer option to createClientStream() 2016-01-18 01:42:35 -08:00
deathcap
6125fb7303 createClientStream() takes a stream 2016-01-18 01:42:29 -08:00
deathcap
2483e6fba0 Copy createClientStream.js from createClient.js 2016-01-18 00:29:24 -08:00
Romain Beaumont
3a246d1204 Merge pull request #318 from deathcap/patch-1
Remove unused chai dependency
2016-01-18 09:17:09 +01:00