Commit Graph
100 Commits
Author SHA1 Message Date
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
Andrew Steinborn dc540ae776 Remove System.out.println() stuff 2018-07-25 20:33:33 -04:00
Andrew Steinborn 034039a27d Use package com.velocitypowered.proxy 2018-07-25 19:47:59 -04:00
Andrew Steinborn 4a2120f4d8 Refactor of connection handling so we can share more logic. 2018-07-25 19:43:26 -04:00
Andrew Steinborn bd926eb174 Add Chat packet 2018-07-25 14:43:10 -04:00
Andrew Steinborn 2e250d24b6 Fix compression 2018-07-25 12:22:59 -04:00
Andrew Steinborn ee1cddc6a0 New compression stuff (this is broken) 2018-07-25 12:22:59 -04:00
Andrew Steinborn 3c8a52aeb0 Add compression support for proxy->server connections. 2018-07-25 12:22:59 -04:00
Andrew Steinborn ca63bfd558 Update README.md 2018-07-25 01:16:25 -04:00
Andrew Steinborn 6e55403a88 Preliminary compression support. 2018-07-25 01:08:23 -04:00
Andrew Steinborn e01290d381 Handle disconnects more gracefully. 2018-07-25 00:12:39 -04:00
Andrew Steinborn 32772d1e9b Fix a bunch of small issues, so that the proxy can establish a connection
This is still broken and has performance/bandwidth problems, which I will
fix very soon. For a first try, it's good enough.
2018-07-24 23:40:20 -04:00
Andrew Steinborn dd8557d367 Remove unneeded dependencies since this is included with modern Gradle 2018-07-24 22:04:10 -04:00
Andrew Steinborn 66c23e1bf7 dummy commit 2018-07-24 21:39:59 -04:00
Andrew Steinborn eefe03de69 Simple README 2018-07-24 20:17:56 -04:00
Andrew Steinborn 7867c496ec Initial client connection pipeline, this isn't done yet. 2018-07-24 20:11:37 -04:00