Andrew Steinborn
48822fe55c
Better case-insensitivity.
2018-08-05 17:14:39 -04:00
Andrew Steinborn
a778825152
Add server registration API.
2018-08-05 17:10:18 -04:00
Andrew Steinborn
23a6488a39
Add default config again. Closes #12
2018-08-05 16:12:16 -04:00
Andrew Steinborn
4e64b04464
Avoid duplicate logins.
2018-08-05 01:30:40 -04:00
Andrew Steinborn
22d1398f73
Extend the API with a ProxyServer type.
2018-08-05 01:26:07 -04:00
Andrew Steinborn
06a6493605
Cleaned up connection code.
2018-08-04 03:18:57 -04:00
Andrew Steinborn
0ba85fe83f
Introduce a fluent connection request API.
2018-08-04 03:13:17 -04:00
Andrew Steinborn
fbdaae5ac7
Actually, this would be a better name...
2018-08-04 01:45:18 -04:00
Andrew Steinborn
9bcdc413d7
ProxiedPlayer interface
2018-08-04 01:40:37 -04:00
Andrew Steinborn
9438d087e2
Refactor cipher logic.
2018-08-04 00:09:25 -04:00
Andrew Steinborn
6f3397f76f
Adjustments.
2018-08-03 17:49:35 -04:00
Andrew Steinborn
68ded7ca7f
Allow tweaking compression.
2018-08-03 16:56:19 -04:00
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
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
cfc67c97f8
Update for recent protocol support.
2018-07-31 02:51:27 -04: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
Andrew Steinborn
8a73e3f12b
More proper plugin messaging support.
2018-07-30 14:20:15 -04:00
Andrew Steinborn
b345d3aba3
Finishing up plugin message stuff for tonight.
2018-07-30 02:21:44 -04:00
Andrew Steinborn
a216d25a1a
Fix ID for 1.11
2018-07-30 01:36:14 -04:00
Andrew Steinborn
153f09ae70
Add support for Plugin Message packet, full implementation later.
2018-07-30 01:35:47 -04:00
Andrew Steinborn
48fafc73be
Correctly handle boss bars on server transfers
2018-07-30 01:03:42 -04:00
Andrew Steinborn
1616d097eb
Respect try list in velocity.toml
2018-07-29 22:47:54 -04:00
Andrew Steinborn
201c484247
Actually handle that
2018-07-29 22:31:41 -04:00
Andrew Steinborn
64ff0683c9
Handle proxy<->server exceptions
2018-07-29 22:28:56 -04:00
Andrew Steinborn
5be8452d1f
Fix a couple of protocol issues
2018-07-29 20:53:51 -04:00
Andrew Steinborn
029d3a2044
Update README
2018-07-29 20:37:27 -04:00
Andrew Steinborn
7546270624
Support Minecraft 1.11/1.11.1+
2018-07-29 18:39:25 -04:00
Andrew Steinborn
dcc40dd06b
Fix the tests for now. More extensive ones later.
2018-07-29 17:51:18 -04:00
Andrew Steinborn
e672f8d7cd
Preserve client settings packets
2018-07-29 17:44:16 -04:00
Andrew Steinborn
b79e7df039
Initial 1.12/1.12.1 support. Bug fixes!
2018-07-29 17:09:27 -04:00
Andrew Steinborn
a9279072c1
Autocreate velocity.toml
2018-07-27 21:15:57 -04:00
Andrew Steinborn
1d2110f2aa
A bit more
2018-07-27 20:24:57 -04:00
Andrew Steinborn
a9715be771
Remove velocity.toml file in root
2018-07-27 15:12:10 -04:00
Andrew Steinborn
2512621a25
Validate MOTD too
...
Also remove accidentally added velocity.toml.
2018-07-27 15:11:33 -04:00
Andrew Steinborn
247dafd9de
Upgrade text to 1.12-1.6.0-SNAPSHOT for plain text serializer
2018-07-27 15:01:00 -04:00
Andrew Steinborn
44f9687cfa
use remote address
2018-07-27 14:44:51 -04:00
Andrew Steinborn
5ef27cfa5f
Connection logging support.
2018-07-27 14:44:00 -04:00
Andrew Steinborn
f34e9b19c9
Add configuration stuff (this is not done yet)
2018-07-27 13:32:15 -04:00
Andrew Steinborn
66dcb13b5a
Rename some stuff for clarity.
2018-07-27 12:03:32 -04:00
Andrew Steinborn
01f158f193
Yes there's some unneeded qualification in here
2018-07-27 10:08:04 -04:00
Andrew Steinborn
c9af231c7e
Switch to log4j2 logging
2018-07-27 01:54:40 -04:00
Andrew Steinborn
bf2835da02
Schedule the response handler to run in the channel event loop
2018-07-27 01:26:15 -04:00
Andrew Steinborn
22c7769eae
Fix compression support
2018-07-27 01:09:49 -04:00
Andrew Steinborn
fc5b0d3577
Online-mode and encryption support
2018-07-27 00:10:09 -04:00
Andrew Steinborn
359d1ea17c
Fix transitions from dimensions when changing servers
2018-07-26 18:45:56 -04:00
Andrew Steinborn
0f7489beb7
Update README [ci skip]
2018-07-26 18:09:25 -04:00
Andrew Steinborn
ba5d6ad6e2
Rename the two PlaySessionHandler classes to more clear names.
2018-07-26 17:46:13 -04:00
Andrew Steinborn
41af775cc6
Fix some assorted stuff.
2018-07-26 17:31:53 -04:00
Andrew Steinborn
6ae9798a1b
Very basic multi-server switching functionality
2018-07-26 17:18:59 -04:00
Andrew Steinborn
60ac285b17
Fix task cancellation
2018-07-26 16:08:51 -04:00
Andrew Steinborn
80477f6a0e
Properly handle pings.
2018-07-26 14:50:42 -04:00
Andrew Steinborn
a8df4c493e
Housekeeping.
2018-07-26 14:02:23 -04:00
Andrew Steinborn
87dcd4415d
Update the README with new goals.
2018-07-26 14:02:13 -04:00
Andrew Steinborn
76e7ac5afc
Implement bungee-style IP forwarding.
2018-07-26 13:38:25 -04:00
Andrew Steinborn
302df0299e
Another test for sanity.
2018-07-26 13:17:10 -04:00
Andrew Steinborn
73abc8f9ad
Improve support for multiple protocol versions. Add tests.
2018-07-26 13:03:52 -04:00
Andrew Steinborn
31cc5288f5
Cleanup, renames, check protocol version of client on handshake.
2018-07-26 02:42:27 -04:00
Andrew Steinborn
b26a17e587
Add some needed utilities for encryption
2018-07-26 00:35:54 -04:00
Andrew Steinborn
ab965108d6
Another file to exclude.
2018-07-26 00:00:59 -04:00
Andrew Steinborn
446f9acc45
Removed .idea folder
2018-07-25 23:58:18 -04:00
Andrew Steinborn
1711e8b9ce
Detect and block connections to online-mode servers
2018-07-25 21:53:20 -04:00
Andrew Steinborn
8139ac35d9
Introduce some UUID utilities for eventual auth support.
2018-07-25 21:18:04 -04:00
Andrew Steinborn
d89a4c4807
Pipeline util name clarity. Remove unneeded handlers.
2018-07-25 20:50:23 -04:00