Commit Graph
100 Commits
Author SHA1 Message Date
Andrew Steinborn feb7c2f893 Reject invalid tab complete command requests. 2020-05-08 18:22:21 -04:00
Andrew SteinbornandGitHub 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 3bc8323ed5 We're well into 2020, just saying. 2020-05-08 14:03:35 -04:00
Andrew SteinbornandGitHub 5424c55f09 Merge pull request #301 from Leymooo/command-event
fix build
2020-04-30 01:13:30 -04:00
Andrew SteinbornandGitHub 42ad7594ae Merge pull request #300 from Leymooo/command-event
fix command forwarding to server
2020-04-29 15:26:29 -04:00
Andrew SteinbornandGitHub 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 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 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 SteinbornandGitHub 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 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 6ed61848e9 Upon connection exception, discard all incoming packets instead 2020-04-11 21:19:54 -04:00
Andrew SteinbornandGitHub 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 SteinbornandGitHub 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 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 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 SteinbornandGitHub 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 6e41ce7f15 Minecraft 1.15.2 2020-01-21 13:28:27 -05:00
Andrew Steinborn fb0446f4fc Add DisconnectEvent#disconnectedDuringLogin() 2019-12-24 23:56:39 -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 07c2024307 Minecraft 1.15 2019-12-10 11:47:10 -05:00
Andrew SteinbornandGitHub b5aeeab2a8 Minecraft 1.15-pre7 2019-12-09 18:00:08 -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 50b50f3cbb Fix 1.13+ tab complete for server commands 2019-11-28 13:12:53 -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 SteinbornandGitHub 94035366c2 Merge pull request #255 from VelocityPowered/bungeequack-integrate
Integrate BungeeQuack functionality into Velocity
2019-11-26 16:33:37 -05:00
Andrew Steinborn 0c14eabe6b Fix Checkstyle issues 2019-11-26 16:32:50 -05:00
Andrew Steinborn 87ad188f92 Finalize integrated BungeeQuack 2019-11-26 16:27:30 -05:00
Andrew Steinborn b08f27b5c4 Merge branch 'dev/1.1.0' into bungeequack-integrate 2019-11-26 15:52:53 -05:00
Andrew Steinborn 0b6fc06e67 Initial 1.15-pre2 support 2019-11-26 15:10:22 -05:00
Andrew Steinborn bfeca40b17 Make sure we only tab-complete commands for which we have access to 2019-11-26 14:08:16 -05:00
Andrew Steinborn e29e20b1e8 Fix 1.13+ tab-complete with command but no arguments
As a nice side-effect, this simplifies the tab complete code
a bit.
2019-11-26 13:44:21 -05:00
Andrew Steinborn ae14eb8ccb Fix potential UDP speculative reflection attack 2019-11-23 01:07:29 -05:00
Andrew Steinborn d2b8271eb4 Allow running Velocity without any servers.
This is a niche setup, however if your network is 100% dynamically configured, this is a handy feature to have available.

To support this functionality, a new PlayerChooseInitialServerEvent event was added to allow the initial server to connect to be changed as desired.
2019-11-16 23:17:09 -05:00
Andrew Steinborn e12f970684 Fix fresh 1.1.0 velocity.toml generation. 2019-11-16 22:34:30 -05:00
Andrew Steinborn 010a10f50f Do not try to prevent people from running Velocity behind Velocity.
This commit absolutely does not change our support policy on this: this
is a completely unsupported setup. In any event, there is an existing
forwarding check in Velocity that covers this case quite well.

I am making this change to make the login process less "chatty" for
higher-latency links and 1.13+ servers.
2019-11-15 01:35:44 -05:00
Andrew Steinborn d333eb30b8 Always create the length buffer using the best possible native buffer 2019-11-09 22:07:54 -05:00
Andrew Steinborn af0903050d Make sure in-place AES respects reader index 2019-11-09 21:30:46 -05:00
Andrew Steinborn d73496e8df Introduce zero memory-copy compression for regular Java native
The compression itself is zero-copy in most cases. However, the overhead
needed to copy a direct buffer into a heap buffer (and back) is still
present. If possible, use Linux for best performance.
2019-11-09 17:39:47 -05:00
Andrew Steinborn 8c98f5a4a6 Simplify and harden Netty handlers 2019-11-05 20:07:47 -05:00
Andrew SteinbornandGitHub 09d33de03e Merge pull request #256 from Gabik21/previous-server-in-event
Add previous server to ServerConnectedEvent
2019-10-31 19:51:32 -04:00
Andrew Steinborn 3f321a5219 Indicate plugin loads 2019-10-26 21:10:38 -04:00
Andrew Steinborn adcf7729db Update Netty to 4.1.43.Final 2019-10-26 01:24:44 -04:00
Andrew Steinborn 9d5930d96b Integrate BungeeQuack functionality into Velocity 2019-10-20 00:58:55 -04:00
Andrew Steinborn 19e1e05bbc Bring back kqueue transport from the dead
My PR to AsyncHttpClient was accepted and 2.10.4 was released with it
included.
2019-10-20 00:27:31 -04:00
Andrew SteinbornandGitHub 523cea529e Merge pull request #254 from Ichbinjoe/aes-nocopy
Make AES crypto operations no-copy
2019-10-20 00:13:32 -04:00
Andrew Steinborn 6ff5cac4d3 Fix issues with decoding and Java fallback native 2019-10-19 23:56:44 -04:00
Andrew SteinbornandGitHub 8d4f8f0bfa Merge pull request #253 from OKTW-Network/custom-redirect-message
Allow set redirect message
2019-10-16 21:56:27 -04:00
Andrew Steinborn 20559e059d Properly rethrow DataFormatException in Java 11+ compressor 2019-10-05 14:44:05 -04:00
Andrew Steinborn b18f65fe0a Allow building on Java 11 (and set Travis to build on OpenJDK 11) 2019-10-04 17:09:41 -04:00
Andrew Steinborn 7747679ee1 Implement optimized compression for Java 11+
Using the fact that the Java Deflater/Inflater API now supports
ByteBuffers as of Java 11, we can provide performance benefits equivalent
to the Velocity 1.0.x native compression on servers running Java 11+ on
non-macOS and non-Linux platforms (such as Windows).
2019-10-04 17:08:14 -04:00
Andrew SteinbornandGitHub 078db5ca65 Merge pull request #252 from Gabik21/dev/1.1.0
Fix typo in gitignore
2019-09-29 16:10:21 -04:00
Andrew Steinborn 39e48c9467 Implement #149 to send just one respawn packet 2019-09-28 00:29:51 -04:00
Andrew Steinborn 62cd2c661a Clean up HandshakeSessionHandler 2019-09-27 22:39:16 -04:00
Andrew Steinborn 546307b0d6 Suppress invalid protocol spam 2019-09-27 22:24:21 -04:00
Andrew Steinborn 9141ea112f Bump to Netty 4.1.42.Final 2019-09-26 22:30:24 -04:00
Andrew Steinborn 47ada83700 Add modified FastUUID 2019-09-26 22:27:08 -04:00
Andrew Steinborn 9b570ff599 Revert this entirely for now. 2019-09-17 09:38:12 -04:00
Andrew Steinborn 8dea7567d8 Correctly handle 0-length packet 2019-09-17 09:33:43 -04:00
Andrew Steinborn 009c9afe09 Decode multiple VarInt-prefixed packets
If the remote server does flush consolidation, Velocity will be able to
frame the packets all at once instead of having to constantly decode
packets. This should provide a modest performance boost for them whilst
not impacting un-optimized servers.
2019-09-16 20:01:38 -04:00
Andrew Steinborn 138a887d73 Fix "all" not appearing in the tab-complete for /server 2019-09-15 19:55:04 -04:00
Andrew Steinborn 9c9fa1c5ae Remove flush consolidation for now
This is still highly experimental
2019-09-09 00:47:42 -04:00
Andrew Steinborn e21c33d435 Switch to zlib-ng
zlib-ng boasts higher throughput than regular zlib, by combining patches
from Cloudflare, zlib, and ARM's improvements to zlib along with a more
modern codebase.

Profiling consistently shows that compression is the largest CPU expense
by far, so even a minor speed-up here is significant.
2019-09-08 23:30:28 -04:00
Andrew Steinborn 63dcc56735 Also sort servers for /glist all 2019-09-07 17:09:36 -04:00
Andrew Steinborn 08173c50ef Refactor and improve ServerCommand
The code has been cleaned up and reorganized. As a small quality of life
change, the server names are now sorted in alphabetical order.
2019-09-07 17:06:10 -04:00
Andrew Steinborn 260f7f575a ServerInfo is now comparable 2019-09-07 17:06:06 -04:00
Andrew Steinborn 983f3012a6 Merge branch 'dev/1.1.0' into feature/flush-consolidation-v2 2019-09-07 00:34:08 -04:00
Andrew Steinborn ecfb14411d Merge remote-tracking branch 'origin/dev/1.1.0' into dev/1.1.0 2019-09-07 00:15:34 -04:00
Andrew Steinborn 3a77068088 Slightly more accurate natives check 2019-09-07 00:15:10 -04:00
Andrew Steinborn 35856fec04 Merge branch 'dev/1.1.0' into natives-java-improvements
# Conflicts:
#	native/src/main/java/com/velocitypowered/natives/encryption/JavaVelocityCipher.java
2019-09-07 00:06:13 -04:00
Andrew SteinbornandGitHub 71281111bf Merge pull request #244 from Gabik21MC/dev/1.1.0
Completely clear legacy tablist on server switch
2019-09-05 08:02:38 -04:00
Andrew SteinbornandGitHub 09dc74ac9a Merge pull request #243 from Leymooo/api-improvement
Add method to allow determine if player is in OnlineMode
2019-09-03 23:29:51 -04:00
Andrew SteinbornandGitHub e8d4db517d Merge pull request #219 from Gabik21MC/master
1.7 Protocol Support
2019-09-01 17:36:34 -04:00
Andrew Steinborn dbfbd1e2a9 Rename ConnectedPlayer#minecraftConnection -> ConnectedPlayer#connection
This is consistent with VelocityServerConnection
2019-08-17 20:17:12 -04:00
Andrew Steinborn d68cbbd906 Remove inaccurate "Status" section
I'm just one person, I can't keep this stuff updated everywhere.
2019-08-17 20:12:09 -04:00
Andrew Steinborn 7f3e7a82c4 Update text 3.0.2
cc @lucko
2019-08-11 20:36:00 -04:00
Andrew Steinborn b3ca066a17 Lower write water mark to 1MB 2019-08-10 14:08:45 -04:00
Andrew Steinborn 661ec3103a Bump to Guice 4.2.2 for Java 11 plugin support 2019-08-09 15:39:46 -04:00
Andrew Steinborn 7cb86067bc Lower the explicit flush count
Initial testing suggests this makes flush consolidation stable, although
the CPU usage will be increased as we are more aggressive in flushing
messages to the channels.
2019-08-08 18:39:22 -04:00
Andrew Steinborn ca3426033f Revert "Revert "Merge branch 'feature/flush-consolidation' into dev/1.1.0""
This reverts commit e476ee815a.
2019-08-08 18:00:52 -04:00