ChillerDragon
a3f28aaf37
Make flag bits string mutable (unfreeze)
2022-11-05 18:01:04 +01:00
ChillerDragon
39389ae379
Add rubocop to CI ( closed #2 )
2022-11-05 17:57:12 +01:00
ChillerDragon
742b665f26
rubocop -A
2022-11-05 17:48:47 +01:00
ChillerDragon
28477ab90d
Manually fix netbase
2022-11-05 17:47:47 +01:00
ChillerDragon
70a03dc88f
rubocop -A lib/packet.rb
2022-11-05 17:27:13 +01:00
ChillerDragon
e7f1d82e2d
rubocop -A lib/packer.rb
2022-11-05 17:26:08 +01:00
ChillerDragon
940cc4269f
Fix ugly rubocop if and silent disconnect
2022-11-05 17:23:35 +01:00
ChillerDragon
ddef46991b
rubocop -a
2022-11-05 17:19:05 +01:00
ChillerDragon
0be954538c
Add tests ( closed #3 )
2022-11-05 17:13:23 +01:00
ChillerDragon
db106ba70e
Add on_client_drop()
2022-11-05 11:59:36 +01:00
ChillerDragon
8fe595b0a6
Client info is actually used to display join msgs
...
Looked at the c++ client code and it actually does that.
The entergame message is only used in demos. Yeet on those.
2022-11-05 11:34:34 +01:00
ChillerDragon
771bdfe859
Holy sh*t this lib is actually usable
2022-11-05 11:07:16 +01:00
ChillerDragon
7689d2725a
Strong control over lib using Context objects
2022-11-05 10:35:40 +01:00
ChillerDragon
1d3076e34b
Break api hook_chat -> on_chat
2022-11-05 09:39:16 +01:00
ChillerDragon
57dfc76588
Stabilize api yikes
2022-11-04 16:57:50 +01:00
ChillerDragon
0f9c9a0804
Proper chat message support
2022-11-04 16:26:24 +01:00
ChillerDragon
316a24852e
Enough unpacker to be dangerous
2022-11-04 15:35:54 +01:00
ChillerDragon
b36df089ff
Bunch of failing tests
2022-11-04 15:21:48 +01:00
ChillerDragon
831a9b6452
Start working on unpacker
2022-11-04 13:58:19 +01:00
ChillerDragon
875132a03a
Document more samples
2022-11-04 13:22:29 +01:00
ChillerDragon
794915942c
Close connection on ctrl+c
2022-11-04 13:07:34 +01:00
ChillerDragon
effa00b001
Disconnect before connecting
2022-11-04 13:04:51 +01:00
ChillerDragon
0e42839e74
Fix reconnecting
2022-11-04 12:55:01 +01:00
ChillerDragon
57a8f0bcc7
Unhardcode the last packet (startinfo)
...
Also support bigger integers than 63 :)
2022-11-04 12:31:42 +01:00
ChillerDragon
2c8e6aeb8f
Unhardcode startinfo
...
Thanks a lot to @Learath2 for explaining the int packer to me <3
2022-11-04 11:39:41 +01:00
ChillerDragon
2919feb529
Unhardcode more chunk headers
2022-11-04 10:12:23 +01:00
ChillerDragon
68e8cb6dd0
Alert on empty payload instead of crashing
2022-11-04 09:27:36 +01:00
ChillerDragon
24fa105f66
Do not spawn a thread by default
...
This allows users to implement better multi threading than me.
Or if someone just wants to fire and forget a client that should just
use the provided hooks then not detaching takes away the effort
of keeping the program running.
Imo it is an easier and more fun problem to have:
"My client connects fine but my other ruby code does not run"
than
"My program just quits when I run it"
2022-11-01 15:32:47 +01:00
ChillerDragon
f7486c353f
Spawn thread for connection
2022-11-01 15:27:39 +01:00
ChillerDragon
9fc83cb327
Allow hooking in custom chat code
2022-11-01 14:25:56 +01:00
ChillerDragon
01915a5629
Remove hacks and break everything in the process
2022-11-01 10:52:48 +01:00
ChillerDragon
cd0d5da9fa
Working send_chat() poggers
2022-11-01 10:37:24 +01:00
ChillerDragon
e3bda9a3e6
Still timeouts but looks good in wireshark
2022-10-30 19:58:51 +01:00
ChillerDragon
b7a2cfb5c3
Start working on proper packet header
2022-10-30 19:00:13 +01:00
ChillerDragon
f75eaebcee
Print info packet when sending it
2022-10-30 11:18:15 +01:00
ChillerDragon
1ef6abf377
A bit of cleanup
2022-10-30 10:13:18 +01:00
ChillerDragon
8352033d0b
TODO: ack in packet header
2022-10-29 17:04:35 +02:00
ChillerDragon
4544bb3e1a
Reach old connection state with less hacks
2022-10-29 16:18:07 +02:00
ChillerDragon
d68be4eb68
More todos than progress
2022-10-29 13:17:42 +02:00
ChillerDragon
f48968a349
Refactor to check flags and use packet class
...
Break everything in the process
2022-10-29 12:09:10 +02:00