Commit Graph
100 Commits
Author SHA1 Message Date
Andrew Steinborn 9f6d8e1840 Merge branch 'dev/1.1.0' into decode-multiple 2020-05-29 19:03:03 -04:00
Andrew Steinborn b028d9ca8f Use standard Guava annotation 2020-05-28 10:44:42 -04:00
Andrew Steinborn cb99b184ed Allow plugins to mutate available commands sent to the client.
This is the first unstable API being introduced and is primarily to get feedback on the system.
2020-05-28 07:14:49 -04:00
Andrew Steinborn 305949487e Add @UnstableApi annotation. Resolves #313 2020-05-28 07:05:19 -04:00
Andrew Steinborn d66766a38b Merge branch 'dev/1.1.0' into decode-multiple 2020-05-26 05:25:11 -04:00
Andrew Steinborn eeb660ce00 Fix bad ordering 2020-05-26 05:25:03 -04:00
Andrew Steinborn 0d1acdb056 Merge branch 'dev/1.1.0' into decode-multiple 2020-05-25 16:09:19 -04:00
Andrew Steinborn d538516f4c Bump Netty version 2020-05-25 16:08:53 -04:00
Andrew Steinborn ebad3d1005 Use Integer.MIN_VALUE for the sentinel for readVarIntSafely() 2020-05-25 16:05:36 -04:00
Andrew Steinborn d7bbe7531a Additional protocol hardening. 2020-05-25 15:58:52 -04:00
Andrew Steinborn ae8852dc9d Native tests should only run on Linux 2020-05-25 13:29:02 -04:00
Andrew Steinborn 62d3f61a77 Merge branch 'dev/1.1.0' into decode-multiple
# Conflicts:
#	proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
2020-05-25 13:27:44 -04:00
Andrew Steinborn abd81a0216 Fix Checkstyle errors. 2020-05-25 13:24:41 -04:00
Andrew Steinborn 0cb4c02107 Run all commands on a separate thread pool. 2020-05-25 13:09:04 -04:00
Andrew Steinborn ec1fc3944d Make sure this runs on the event loop. 2020-05-25 12:08:24 -04:00
Andrew Steinborn 942e2f2e1a Better generic cleanup. 2020-05-25 11:56:56 -04:00
Andrew Steinborn 74ff56cbc9 Also reset when an exception is thrown. 2020-05-25 11:49:45 -04:00
Andrew Steinborn 64c16e61d2 Reset in-flight connection only if the server disconnects the client. 2020-05-25 11:44:02 -04:00
Andrew Steinborn b0f1398b45 Further confinement of preconnect checks to event loop. 2020-05-25 10:26:05 -04:00
Andrew Steinborn fa954ab717 Confine preconnect validation/setup logic to event loop. 2020-05-25 09:38:41 -04:00
Andrew Steinborn 75ddeb062f Confine preconnect validation/setup logic to event loop. 2020-05-25 09:38:22 -04:00
Andrew Steinborn a98a7dd67e Merge branch 'dev/1.1.0' into decode-multiple 2020-05-24 11:41:17 -04:00
Andrew Steinborn 793e938dd1 Drop macOS native support
This served a good purpose when I used macOS as a primary development system, but those days are gone (I use Linux now). The spirit of multiple variants is preserved by our special Java 11+ optimized compression.
2020-05-24 10:58:28 -04:00
Andrew Steinborn b3bd773fea Switch out Cloudflare zlib for libdeflate.
libdeflate is significantly faster than vanilla zlib, zlib-ng, and Cloudflare zlib. It is also MIT-licensed (so no licensing concerns). In addition, it simplifies a lot of the native code (something that's been tricky to get right).

While we're at it, I have also taken the time to fine-time compression in Velocity in general. Thanks to this work, native compression only requires one JNI call, an improvement from the more than 2 (sometimes up to 5) that were possible before. This optimization also extends to the existing Java compressors, though they require potentially two JNI calls.
2020-05-24 10:56:26 -04:00
Andrew Steinborn 742b8d98cb Fix noexecstack for natives. 2020-05-20 04:55:55 -04:00
Andrew Steinborn 91e9769c5a Cap /server list to 50 servers.
Any more, and the server list is arguably useless. Thanks to BXBW for finding this particular issue!
2020-05-17 00:24:00 -04:00
Andrew Steinborn feb7c2f893 Reject invalid tab complete command requests. 2020-05-08 18:22:21 -04:00
Andrew Steinborn b42045c050 Reject invalid tab complete command requests. 2020-05-08 18:17:02 -04:00
Andrew Steinborn 2418cc271a Merge pull request #307 from mikroskeem/feature/prevent-proxy-connections
Add prevent-proxy-connections option
2020-05-08 14:57:20 -04:00
Andrew Steinborn 4d62d61485 We're well into 2020, just saying. 2020-05-08 14:04:07 -04:00
Andrew Steinborn 3bc8323ed5 We're well into 2020, just saying. 2020-05-08 14:03:35 -04:00
Andrew Steinborn 5424c55f09 Merge pull request #301 from Leymooo/command-event
fix build
2020-04-30 01:13:30 -04:00
Andrew Steinborn 42ad7594ae Merge pull request #300 from Leymooo/command-event
fix command forwarding to server
2020-04-29 15:26:29 -04:00
Andrew Steinborn e759668f53 Merge pull request #299 from Leymooo/command-event
Add event for commands
2020-04-29 12:51:47 -04:00
Andrew Steinborn 37a1a49fda Allow disabling BungeeCord plugin message channel. 2020-04-28 14:10:54 -04:00
Andrew Steinborn 1441dec367 Implement brigadier:long argument type, fixes #295 2020-04-23 16:21:44 -04:00
Andrew Steinborn 957c0dd307 Implement brigadier:long argument type, fixes #295 2020-04-23 16:21:22 -04:00
Andrew Steinborn 81a0cbe3b9 Fix rare race condition with transitioning
If the player unexpectedly disconnects after ServerConnectEvent is
fired, but before the connection transitions to the new player, Velocity
would throw an exception thinking the connection was not present. This
is the correct behavior, but the behavior is very surprising. Instead we
will double-check to ensure the connection has not been lost before we
continue with transitioning to the new server.
2020-04-22 10:31:05 -04:00
Andrew Steinborn 20eb14143d Bump Netty to 4.1.49.Final
This is intended to fix netty/netty#10165 directly, and supersede our current workaround.
2020-04-22 10:28:41 -04:00
Andrew Steinborn e6ea191c92 Bump Netty to 4.1.49.Final
This is intended to fix netty/netty#10165 directly, and supersede our current workaround.
2020-04-22 10:28:17 -04:00
Andrew Steinborn 2b84d35798 Fix bug in ConnectOther message
Credits to @Jay113355 for spotting this
2020-04-21 06:23:04 -04:00
Andrew Steinborn 24c9fc0ef1 Relax GameProfileRequestEvent#setGameProfile to allow faking even in online-mode 2020-04-19 09:20:03 -04:00
Andrew Steinborn d0cbcf65e9 Fix some tab-complete regressions 2020-04-19 09:07:17 -04:00
Andrew Steinborn 413578f979 Fix rare race condition with transitioning
If the player unexpectedly disconnects after ServerConnectEvent is
fired, but before the connection transitions to the new player, Velocity
would throw an exception thinking the connection was not present. This
is the correct behavior, but the behavior is very surprising. Instead we
will double-check to ensure the connection has not been lost before we
continue with transitioning to the new server.
2020-04-19 03:39:15 -04:00
Andrew Steinborn 5c93fd3866 Merge pull request #294 from creeper123123321/backend-initializer
(Implementation) Allow injecting into backend connection
2020-04-14 01:43:24 -04:00
Andrew Steinborn aae151e3d9 No need to register multiple times 2020-04-12 17:21:00 -04:00
Andrew Steinborn 4ddc55a5b7 No need to register multiple times 2020-04-12 17:20:54 -04:00
Andrew Steinborn 49ab2764c4 Close one last "proxy crasher" loophole 2020-04-12 17:18:53 -04:00
Andrew Steinborn f49d36b719 Close one last "proxy crasher" loophole 2020-04-12 17:05:36 -04:00
Andrew Steinborn b04b43954f Merge branch 'dev/1.1.0' into decode-multiple 2020-04-11 22:05:43 -04:00
Andrew Steinborn 6ed61848e9 Upon connection exception, discard all incoming packets instead 2020-04-11 21:19:54 -04:00
Andrew Steinborn 98b03376e5 Merge pull request #281 from Gabik21/tablist-improvement
Don't send ping update twice (1.7)
2020-04-07 13:35:18 -04:00
Andrew Steinborn 4374f1e4d6 Merge pull request #288 from Gabik21/fix-1.7-weirdness
Fix tablist behaving wrong with colors (1.7) (Fixes #282)
2020-04-07 11:51:21 -04:00
Andrew Steinborn ae7f0143de Do not trim the args for string-based command APIs 2020-02-28 16:54:46 -05:00
Andrew Steinborn 29bedf0943 Do not trim the args for string-based command APIs 2020-02-28 16:54:25 -05:00
Andrew Steinborn 65acb13dca Checkstyle 2020-02-21 18:51:41 -05:00
Andrew Steinborn 3e053d63b4 Allow ping passthrough for descriptions too 2020-02-21 18:36:10 -05:00
Andrew Steinborn 9edbef981c Uncomment compile lines from script 2020-02-18 01:35:54 -05:00
Andrew Steinborn b3ac73a51e Use Cloudflare zlib for more aggressive optimizations 2020-02-18 01:34:39 -05:00
Andrew Steinborn 496027f7c1 Add AMD64-specific compile script 2020-02-18 01:15:33 -05:00
Andrew Steinborn 932f3bc2bf Merge branch 'dev/1.1.0' into decode-multiple 2020-02-17 20:52:19 -05:00
Andrew Steinborn c63bd4cd02 Fix checkstyle error 2020-02-17 20:35:28 -05:00
Andrew Steinborn 8ae7945b9f Upon connection exception, discard all incoming packets instead 2020-02-17 19:34:22 -05:00
Andrew Steinborn 599adc6d2c Merge remote-tracking branch 'origin/dev/1.1.0' into dev/1.1.0
# Conflicts:
#	proxy/src/test/java/com/velocitypowered/proxy/plugin/util/PluginDependencyUtilsTest.java
2020-02-17 16:33:34 -05:00
Andrew Steinborn 37994449d7 Fix regressions with plugin dependency loading from #272
This is a quick and dirty fix because it's late. I'll need to
commit a better fix later.
2020-02-16 03:19:13 -05:00
Andrew Steinborn 3b6f8e2421 Use more obvious/broken-down test cases for topological sort tests 2020-02-16 00:29:35 -05:00
Andrew Steinborn 9444cfa70f Use more obvious/broken-down test cases for topological sort tests 2020-02-13 19:21:40 -05:00
Andrew Steinborn a5350c6822 Deal with potentially nullable player sample entries 2020-02-13 13:32:47 -05:00
Andrew Steinborn e558b7ca1f Update to new bStats revision 2020-02-13 12:58:24 -05:00
Andrew Steinborn 77526d9bf4 Merge pull request #266 from alex11441/dev/1.1.0
Allow users to specify a reason in the shutdown command
2020-01-24 16:01:23 -05:00
Andrew Steinborn c7bac69290 Don't attempt to retain the buffer if it goes to a closed connection 2020-01-24 01:22:32 -05:00
Andrew Steinborn 53c951bc52 Revert "Another experiment for memory leaks: Create a brand-new buffer for passthrough uncompressed content"
This reverts commit 92571a65db.

It looks like c3fab89bd7 nabbed it at last.
2020-01-24 01:21:50 -05:00
Andrew Steinborn 6e41ce7f15 Minecraft 1.15.2 2020-01-21 13:28:27 -05:00
Andrew Steinborn be867a8ca9 Minecraft 1.15.2 2020-01-21 13:28:01 -05:00
Andrew Steinborn c3fab89bd7 Don't attempt to retain the buffer if it goes to a closed connection 2020-01-20 17:37:21 -05:00
Andrew Steinborn 92571a65db Another experiment for memory leaks: Create a brand-new buffer for passthrough uncompressed content 2020-01-14 22:18:05 -05:00
Andrew Steinborn c14ceb315d Return the magic-3 loop again... :( 2020-01-01 10:14:15 -05:00
Andrew Steinborn a15c8ecc2b Merge branch 'dev/1.1.0' into decode-multiple 2019-12-31 21:43:11 -05:00
Andrew Steinborn 08df080771 Try to diagnose memory leak 2019-12-31 21:43:02 -05:00
Andrew Steinborn fb0446f4fc Add DisconnectEvent#disconnectedDuringLogin() 2019-12-24 23:56:39 -05:00
Andrew Steinborn 2073d79771 Minecraft 1.15.1 2019-12-17 13:57:48 -05:00
Andrew Steinborn deede70070 Rename mystery field in JoinGame 2019-12-17 13:57:48 -05:00
Andrew Steinborn 4c09024952 Minecraft 1.15.1 2019-12-17 13:57:23 -05:00
Andrew Steinborn fa489f6014 Rename mystery field in JoinGame 2019-12-14 17:45:10 -05:00
Andrew Steinborn b92d0d2657 Merge branch 'dev/1.1.0' into decode-multiple 2019-12-10 11:47:22 -05:00
Andrew Steinborn 07c2024307 Minecraft 1.15 2019-12-10 11:47:10 -05:00
Andrew Steinborn 02ae891be9 Merge branch 'dev/1.1.0' into decode-multiple 2019-12-09 18:03:41 -05:00
Andrew Steinborn b5aeeab2a8 Minecraft 1.15-pre7 2019-12-09 18:00:08 -05:00
Andrew Steinborn 97da6753b5 Merge branch 'dev/1.1.0' into decode-multiple 2019-12-06 03:10:25 -05:00
Andrew Steinborn 8c3f7e2ecc Optimize DNS resolution logic for AsyncHttpClient 2019-12-01 15:17:17 -05:00
Andrew Steinborn 75359256b3 Introduce velocity.natives-tmpdir property for properly handling noexec /tmp 2019-11-29 14:27:27 -05:00
Andrew Steinborn 2f55912995 Graceful fallback when /tmp is amounted noexec on Linux
Fixes #260
2019-11-29 12:04:12 -05:00
Andrew Steinborn 667610c251 Fix command block tab complete on <=1.12.2 2019-11-28 15:28:02 -05:00
Andrew Steinborn d137d6ce46 Fix command block tab complete on <=1.12.2 2019-11-28 15:22:26 -05:00
Andrew Steinborn d1acd5b6d5 Merge branch 'dev/1.1.0' into decode-multiple 2019-11-28 13:23:46 -05:00
Andrew Steinborn 50b50f3cbb Fix 1.13+ tab complete for server commands 2019-11-28 13:12:53 -05:00
Andrew Steinborn ae82bb21af Merge branch 'dev/1.1.0' into decode-multiple 2019-11-27 01:09:21 -05:00
Andrew Steinborn 68e5372b2e QuietException should be a RuntimeException 2019-11-27 01:04:48 -05:00
Andrew Steinborn 467fe34da3 Provide useful information for "unexpectedly disconnected from server"
Fixes #233
2019-11-27 01:01:50 -05:00
Andrew Steinborn 94035366c2 Merge pull request #255 from VelocityPowered/bungeequack-integrate
Integrate BungeeQuack functionality into Velocity
2019-11-26 16:33:37 -05:00