Commit Graph

184 Commits

Author SHA1 Message Date
Andrew Steinborn
0191b74840 Remove another memory copy with compression.
I considered using composite byte buffers but they would have added GC
overhead and would've been incompatible with any native code we added
unless special care was taken.
2018-08-03 05:21:35 -04:00
Andrew Steinborn
44932cfddb Nuke some debug output. 2018-08-03 02:27:18 -04:00
Andrew Steinborn
7eea1a3ac6 Introduce a connection pool for Mojang's session servers.
This has the potential to cut the time that players spend at the
"logging in..." (or "encrypting..." for 1.13+) screen by a fair
amount (gains of 200+ ms were noted for my own home connection).

While this sounds minor, I really do like to aim for all the details
and this is one of them.
2018-08-03 02:25:57 -04:00
Andrew Steinborn
0c481d828d Remove PluginMessage slicing for now.
This was causing leak issues and needs to be reimplemented. If anyone's
willing to undertake the work, I will gladly accept the PR!
2018-08-03 02:23:58 -04:00
Andrew Steinborn
d38c7467d9 Various Netty changes.
- Potentially fixed a reference count leak with plugin messages.
- Cleaned up plugin message handling.
- Optimized the pipeline for better throughput by eliminating copying
  in the varint encoder and reduced object churn elsewhere.
2018-08-03 00:48:19 -04:00
Andrew Steinborn
68d315d1d3 Improvements for natives. 2018-08-02 23:52:21 -04:00
Andrew Steinborn
12ad629d4d If the channel becomes inactive, the connection's closed, too. 2018-08-02 22:10:55 -04:00
Andrew Steinborn
b720b691de Revert experimental change 2018-08-02 14:22:42 -04:00
Andrew Steinborn
4bc4a1ec6a Use singular plurals, clean up some stuff. 2018-08-02 14:07:32 -04:00
Andrew Steinborn
2e59138428 Cleaned up native code. 2018-08-02 00:43:38 -04:00
Andrew Steinborn
850b2f7958 Add disposal checks. 2018-08-01 23:14:22 -04:00
Andrew Steinborn
9815837472 Fix directory structure 2018-08-01 22:27:40 -04:00
Andrew Steinborn
fb4e6fd8f1 JNI native zlib compression 🔥 2018-08-01 22:22:09 -04:00
Andrew Steinborn
22dd4bbb99 Split natives. Add proper disposal for natives. 2018-08-01 00:20:51 -04:00
Andrew Steinborn
284a2a67a2 Remove unused entity remapper. 2018-08-01 00:20:51 -04:00
Andrew Steinborn
de716578a2 Start archiving the API, too 2018-07-31 21:07:18 -04:00
Andrew Steinborn
c3e5784b64 This time, it needs to cache. 2018-07-31 16:23:22 -04:00
Andrew Steinborn
8b1e1f20cf A little more documentation. 2018-07-31 16:22:21 -04:00
Andrew Steinborn
bbf861d3bc Convert into a multi-module project.
For now, the API module only contains a few assorted utilities. More
will be added later.
2018-07-31 16:12:41 -04:00
Andrew Steinborn
f9fd58eea5 Update README. 2018-07-31 15:48:52 -04:00
Andrew Steinborn
25d13b2cc4 Bump to Gradle 4.9, fix deprecation warnings. 2018-07-31 15:25:34 -04:00
Andrew Steinborn
908aeb062d Add fancy badge 2018-07-31 15:03:13 -04:00
Andrew Steinborn
4b3675b571 Clean this up a bit 2018-07-31 13:44:10 -04:00
Andrew Steinborn
d4ee9235e6
Merge pull request #8 from MatrixTunnel/master
Also update version string
2018-07-31 13:07:21 -04:00
MatrixTunnel
50c0426313 Also update version string 2018-07-31 06:13:31 -07:00
Andrew Steinborn
cfc67c97f8 Update for recent protocol support. 2018-07-31 02:51:27 -04:00
Andrew Steinborn
35f7488822 This should cache for real now 2018-07-31 02:06:43 -04:00
Andrew Steinborn
92a91b858f try to fix gradle caching 2018-07-31 01:59:30 -04:00
Andrew Steinborn
d62f2622ea
Merge pull request #6 from kashike/magic
*kashike waves his wand*
2018-07-31 01:53:23 -04:00
kashike
0a907cbdb4 *kashike waves his wand* 2018-07-30 22:51:36 -07:00
Andrew Steinborn
a09cf9363a
Merge pull request #5 from kashike/ftm
Use a translation instead
2018-07-31 01:16:32 -04:00
kashike
90f7a18e24 Use a translation instead 2018-07-30 22:15:34 -07:00
Andrew Steinborn
91e977a7bd UUID before username 2018-07-31 00:48:56 -04:00
Andrew Steinborn
2f5ca386a6 Actually fix the login plugin messaging 2018-07-31 00:47:05 -04:00
Andrew Steinborn
2f5f93a427 Write UUID in MSB/LSB format instead 2018-07-30 23:56:00 -04:00
Andrew Steinborn
d9f68140d6 Implement Velocity native IP forwarding for 1.13+
No other server implements this (as of yet). We plan to get support for
this into at least Paper and Sponge.
2018-07-30 23:40:25 -04:00
Andrew Steinborn
a45adbc8ec Fix scoreboard issue 2018-07-30 22:28:07 -04:00
Andrew Steinborn
ed8a279cd1 Initial 1.13 support
Still kind of wonky but mostly works
2018-07-30 22:19:27 -04:00
Andrew Steinborn
8c4d710725 Gracefully fall back for STATUS/HANDSHAKE/LOGIN states 2018-07-30 21:35:11 -04:00
Andrew Steinborn
cc1d8f8184 Initial Minecraft 1.9.x support 2018-07-30 21:27:34 -04:00
Andrew Steinborn
515248fa99 Expand the remapping stuff. 2018-07-30 20:49:43 -04:00
Andrew Steinborn
6b5cd703f0 Initial remapping support, fix protocol crap. 2018-07-30 20:35:05 -04:00
Andrew Steinborn
47bea89146 Support Minecraft 1.10 2018-07-30 19:35:16 -04:00
Andrew Steinborn
8ddddba1cd Update Netty to 4.1.28.Final 2018-07-30 19:02:08 -04:00
Andrew Steinborn
4a0847f06c Support 1.11.x and 1.12/1.12.1 2018-07-30 18:51:53 -04:00
Andrew Steinborn
9b59587e58 Make this permissive enough for FeatherBoard 2018-07-30 18:38:18 -04:00
Andrew Steinborn
2d4d9e42b5 Properly handle scoreboard removal while switching between servers 2018-07-30 18:21:25 -04:00
Andrew Steinborn
972ef73d35 Scoreboard packets (1.12.2 only) 2018-07-30 17:38:02 -04:00
Andrew Steinborn
bc1dc457e7 Initial scoreboard objects
We need to make these nicer, but for internal use they're fine.
2018-07-30 16:36:15 -04:00
Andrew Steinborn
dde6560a5a More efficient message handling 2018-07-30 15:05:24 -04:00