Commit Graph
100 Commits
Author SHA1 Message Date
Andrew SteinbornandGitHub e8ed8ebeb7 Merge pull request #235 from NynjaCypher/master
1.14.4 protocol support
2019-07-19 13:07:04 -04:00
Andrew Steinborn 58b52cce0c Add flag to disable native transports 2019-07-12 14:32:37 -04:00
Andrew Steinborn 5b518eaf20 Remove kqueue bug workaround since the issue is now fixed upstream
See https://github.com/netty/netty/pull/9149
2019-07-02 02:37:15 -04:00
Andrew Steinborn e31b2b87dc Update Netty to 4.1.37.Final 2019-07-02 02:37:15 -04:00
Andrew Steinborn 226074a0df Add suggestion for reconnecting for "not online-mode" message 2019-06-29 14:35:28 -04:00
Andrew Steinborn a8684ddec5 Bump to 1.0.2-SNAPSHOT for continued development 2019-06-24 21:38:06 -04:00
Andrew Steinborn 904e39b73a Velocity 1.0.1 2019-06-24 21:37:45 -04:00
Andrew SteinbornandGitHub ed4a431297 Merge pull request #222 from Leymooo/1.14.3
1.14.3
2019-06-24 13:32:26 -04:00
Andrew Steinborn 5a209a098c Fix memory leak in NativeVelocityCipher 2019-06-22 16:03:55 -04:00
Andrew SteinbornandGitHub a3ce20914f Merge pull request #221 from Leymooo/1.14.3
1.14.3-pre4
2019-06-22 13:00:53 -04:00
Andrew Steinborn 1fd2bd9ee4 Avoid sending duplicate set latency/gamemode/display name packets 2019-06-15 17:08:05 -04:00
Andrew Steinborn 57c8c07c9d Bump to 1.0.1-SNAPSHOT for continued development 2019-06-12 18:14:44 -04:00
Andrew Steinborn d7e4e20c76 This is Velocity 1.0.0 2019-06-12 18:10:33 -04:00
Andrew Steinborn b0736548a9 Strengthen check in JavaVelocityCompressor 2019-06-09 04:43:24 -04:00
Andrew Steinborn b19d36e939 Strictly enforce packet size limits for incoming compressed packets 2019-06-09 04:25:13 -04:00
Andrew Steinborn 8d61e7ffd0 Removed redundant (non-)nullable annotations from boss bar. 2019-06-02 17:57:31 -04:00
Andrew Steinborn dfe210707f Replace uses of deprecated LegacyComponentSerializer.INSTANCE 2019-05-31 15:50:46 -04:00
Andrew Steinborn a77fee9ad1 Bump Velocity to text 3.0.1 2019-05-31 15:45:24 -04:00
Andrew SteinbornandGitHub 70242d54a0 Because someone asked, update the README 2019-05-31 15:02:14 -04:00
Andrew Steinborn 4e71788aba Work around kqueue transport bug with fallback connections. 2019-05-27 14:00:20 -04:00
Andrew SteinbornandGitHub 5baf3c8236 Merge pull request #210 from Leymooo/1.14.2-protocol
1.14.2 support
2019-05-27 13:46:01 -04:00
Andrew Steinborn b5f099824d Remove debug. 2019-05-26 18:37:33 -04:00
Andrew Steinborn 4d6e836890 Fix Checkstyle 2019-05-26 18:14:54 -04:00
Andrew Steinborn deeb068825 Merge branch 'metrics' 2019-05-26 18:10:56 -04:00
Andrew Steinborn 9d14af5a8b Add Metrics to Velocity
Velocity will send metrics to bStats.org. These statistics are
publicly viewable at https://bstats.org/plugin/server-implementation/Velocity

You can always opt-out by disabling metrics in your velocity.toml.
There is no obligation to allow us to collect metrics, but you can
show your support by leaving metrics on.
2019-05-26 18:10:44 -04:00
Andrew Steinborn df9883cc6c Reduce unnecessary memory copies in StatusSessionHandler
Take advantage of the fact that Java has mutable strings when writing
out server ping responses, which Netty can work with when writing out
UTF-8 character sequences. This reduces the memory allocation impact of
server list ping responses by ~31%.
2019-05-24 06:55:19 -04:00
Andrew Steinborn 3cee15a9cb Move proxy shutdown to take place in a new thread. 2019-05-23 15:09:11 -04:00
Andrew Steinborn df7eb4ade0 Ensure the proxy doesn't shut down too early if stdin is EOF. 2019-05-23 14:50:58 -04:00
Andrew Steinborn b881e9cf04 Do a small sanity check, however 2019-05-21 00:58:52 -04:00
Andrew Steinborn 821a7a45bc Small optimization for NativeVelocityCipher
Instead of going through the general process function, which does extra
checks to ensure that its arguments are sane, move "closer" to the action
by stripping down to the actual implementation.
2019-05-21 00:56:14 -04:00
Andrew Steinborn b09331b79b Small optimization for writing packets to the client from the server
The layers of indirection to get to the MinecraftConnection causes a
small, but not insignificant hit to performance.
2019-05-21 00:33:35 -04:00
Andrew Steinborn a684aaa325 Make sure to complete the result too 2019-05-19 21:56:09 -04:00
Andrew Steinborn 321b42d225 Add some exception logging to the transition session handler. 2019-05-19 21:55:38 -04:00
Andrew Steinborn 5524f3b720 Ensure empty (un)register packets are never sent.
Bukkit 1.13+, in particular, doesn't seem to like it very much. This was
also a bug in ViaVersion.
2019-05-17 18:16:28 -04:00
Andrew Steinborn 40b2c9993b Clean up some connection checks 2019-05-17 06:27:19 -04:00
Andrew SteinbornandGitHub 586be46bba Merge pull request #207 from lucko/fix/event-unregister
EventManager fixes
2019-05-17 06:06:03 -04:00
Andrew Steinborn 3ec67a7d4d Optimize VelocityEventManager#fireAndForget()
There isn't a need to create a CompletableFuture when firing an event
and we do not want to know when it is completed.
2019-05-16 17:29:55 -04:00
Andrew Steinborn 9e6e1856e6 Add /glist command.
A much-needed base command, this is now available in Velocity directly.
It is partially inspired by the RedisBungee /glist command, which I also
created.

By default, /glist only provides the player count of the proxy. You can
view the player list for an individual server with /glist <server>, or
you can view the information for all players with /glist all.
2019-05-16 01:46:54 -04:00
Andrew Steinborn b0b445c044 Fix Javadoc link for text API 2019-05-15 19:20:51 -04:00
Andrew Steinborn 4ab02cb636 Clean this up a bit 2019-05-15 19:02:31 -04:00
Andrew Steinborn a21eaa085a Do a better job of passing channel (un)registration to the client.
Also fixes a regression related to WDLCompanion.
2019-05-15 18:59:28 -04:00
Andrew Steinborn 552f02ed60 Fix Checkstyle 2019-05-15 17:10:07 -04:00
Andrew Steinborn 6d42a3c37c Explicitly rewrite legacy plugin message channels for 1.13+ clients. 2019-05-15 17:04:45 -04:00
Andrew Steinborn d805f79d9b Try to unbreak ViaVersion a little bit. 2019-05-15 15:52:07 -04:00
Andrew SteinbornandGitHub 742865bf0a Merge pull request #204 from VelocityPowered/plugin-message-cleanups
Plugin message handling cleanup and fixes
2019-05-15 06:31:18 -04:00
Andrew Steinborn 6eabf82513 Fix inaccurate comment. 2019-05-14 04:26:16 -04:00
Andrew Steinborn d7136150fd Get rid of the Guava Subscribe annotation check
I think we can trust that if you're working with Velocity, you can find
the right Velocity subscribe annotation.
2019-05-14 04:18:18 -04:00
Andrew Steinborn 5bd9f0a96f CappedSet.newCappedSet() -> CappedSet.create() 2019-05-14 04:11:49 -04:00
Andrew Steinborn fc9e2d576d Update for Minecraft 1.14.1 2019-05-13 12:12:08 -04:00
Andrew Steinborn 57085feb42 Better document what plugin channels we need to forward onto clients. 2019-05-12 11:09:50 -04:00
Andrew Steinborn 3c9cc2c4a8 Remove unrelated change 2019-05-12 10:48:47 -04:00
Andrew Steinborn 16d557a109 Fix checkstyle 2019-05-12 10:46:11 -04:00
Andrew Steinborn b5fcf685be Kill debug 2019-05-12 10:06:01 -04:00
Andrew Steinborn adfb33ad21 Fix server-sent plugin message channels, fixing WDLCompanion and similar
Closes #203
2019-05-12 10:05:22 -04:00
Andrew Steinborn 5f0470fb0b Checkstyle, CappedCollection -> CappedSet 2019-05-10 07:42:47 -04:00
Andrew Steinborn 74afcee9ba Suspect this is the fix to #203, but I'm unsure 2019-05-10 04:53:57 -04:00
Andrew Steinborn c26dc75c44 More robust check 2019-05-10 04:44:01 -04:00
Andrew Steinborn 01be943c3f Initial work on cleaning up plugin message handling in Velocity 2019-05-10 04:32:29 -04:00
Andrew Steinborn 37999ed32e Support 1.14-pre2 2019-05-10 02:51:00 -04:00
Andrew SteinbornandGitHub 2bba87e8da Merge pull request #201 from VelocityPowered/text3
Bump text to 3.0.0
2019-05-06 23:20:29 -04:00
Andrew Steinborn 472f45df08 Don't resolve IP addresses in the config except for the bind one. 2019-04-29 01:59:55 -04:00
Andrew Steinborn de51ea18cc Forward other client-known plugin messages during the transition as well
Fixes #197
2019-04-29 00:52:06 -04:00
Andrew Steinborn 8517d58673 Reduce erroneous DNS lookups for Velocity in Kubernetes. 2019-04-27 20:37:31 -04:00
Andrew Steinborn dc6613a328 Update Gradle Shadow to fix build 2019-04-25 23:05:16 -04:00
Andrew Steinborn e9950da0c5 Enable multi-release flag to improve Java 9+ compatibility 2019-04-25 19:12:22 -04:00
Andrew Steinborn 5d10b16145 Velocity is 1.0.0-SNAPSHOT 2019-04-25 00:47:02 -04:00
Andrew Steinborn cbd922764e Fix Checkstyle (again) 2019-04-24 21:39:15 -04:00
Andrew Steinborn 632d0b6ba8 Handle plugin channel registrations during initial connect as well.
Fixes #193
2019-04-24 21:28:43 -04:00
Andrew SteinbornandGitHub 1661cece2d An Easter basket bearing gifts! (#191)
* Delay switch to new server until after JoinGame is sent.

Unfortunately, in some cases (especially vanilla Minecraft) some login
disconnects are sent after ServerLoginSuccess but before JoinGame.
We've been using ServerLoginSuccess but it has caused too many problems.
Now Velocity will switch to a stripped-down version of the play session
handler until JoinGame is received. This handler does very little by
itself: it simply forwards plugin messages (for Forge) and waits for the
JoinGame packet from the server.

This is an initial version: only vanilla Minecraft 1.12.2 was tested.
However this is the way Waterfall without entity rewriting does server
switches (which, in turn, is inherited from BungeeCord).

* Move to Gradle 5 and Error Prone.
2019-04-24 14:36:49 -04:00
Andrew Steinborn c8e33eef60 Properly compare against MIN/MAX_VALUE 2019-04-23 13:52:03 -04:00
Andrew Steinborn 545966a4e7 Minecraft 1.14 2019-04-23 13:46:49 -04:00
Andrew Steinborn 7472392ce2 Update Netty to 4.1.35.Final 2019-04-21 03:37:29 -04:00
Andrew Steinborn edcd13b532 Fix Checkstyle issues 2019-04-21 02:56:29 -04:00
Andrew Steinborn dea7c215d7 Allow empty channel names (but not namespaces). 2019-04-21 02:52:52 -04:00
Andrew SteinbornandGitHub 7a5d8d424a Update README.md 2019-04-13 22:34:06 -04:00
Andrew Steinborn 564cb99861 Add Player#getGameProfile() to make tab list plugins easier to make. 2019-03-29 15:01:52 -04:00
Andrew Steinborn 118574e535 Updated log4j and Checker Framework
Updating Checker Framework flagged numerous warnings, which have been
corrected. These probably involve type declarations lacking a nullness
annotation that appeared elsewhere.
2019-03-28 22:27:51 -04:00
Andrew Steinborn 9491f948f8 Upgraded Gradle Shadow plugin to 4.0.4 (last Gradle 4.x version) 2019-03-28 22:01:33 -04:00
Andrew Steinborn 611a31b7bb Attempt to allow Eclipse to import the Gradle project. 2019-03-28 21:46:45 -04:00
Andrew Steinborn 2c5a6d0f67 Merge branch 'creeper123123321-master' 2019-03-24 14:00:12 -04:00
Andrew Steinborn b369256400 Merge branch 'master' of https://github.com/creeper123123321/Velocity into creeper123123321-master 2019-03-24 13:57:26 -04:00
Andrew Steinborn 07b775d892 Notify on read-timeout instead of emitting exception 2019-03-17 19:44:22 -04:00
Andrew Steinborn 45574ce952 Remove connection pool for HTTP connections for now.
The upstream feature this relies on will be gone in Netty 5.x and there
is probably more benefit in using the connection's event loop to connect
to Mojang's authentication servers.
2019-03-10 23:40:18 -04:00
Andrew Steinborn 432d570474 Allow fallback to other server connections in the event of an exception.
Also removes some debugging code.
2019-03-10 14:11:24 -04:00
Andrew Steinborn f16e67cfad Update Netty to 4.1.34.Final 2019-03-10 04:48:22 -04:00
Andrew Steinborn c7a379ebb8 Include server that we attempted to connect to in the result. 2019-03-08 23:51:47 -05:00
Andrew Steinborn fa9d5f6499 Fire ProxyShutdownEvent _after_ the event manager thread pool shuts down
Fixes #177
2019-03-06 22:51:39 -05:00
Andrew Steinborn 5ccf22c5c4 Relax (i.e. remove all checks) on the hostname.
While validating this is a good idea, it causes too many issues in
practice. We will still clean the server address but no validation is
performed on the address.
2019-03-06 17:45:38 -05:00
Andrew Steinborn c8e3e7ff94 Initializing the handshake registry explicitly is redundant. 2019-02-20 21:19:04 -05:00
Andrew Steinborn 3c8055019e Actually use the correct time units for read timeouts. Fixes #174 2019-02-20 21:05:32 -05:00
Andrew Steinborn c6dcba36c3 Fix another case where an in-flight connection would be retained. 2019-02-20 13:55:27 -05:00
Andrew Steinborn 1ec070069f Fix misplaced connection in flight reset. Fixes #173 2019-02-19 15:09:58 -05:00
Andrew Steinborn 6a8345e045 Forgot to include equals/hashCode on the object key 2019-02-16 16:20:50 -05:00
Andrew Steinborn b3c87ef756 Remove an errant semicolon 2019-02-16 16:17:33 -05:00
Andrew Steinborn f4a10e64e0 More proper host/SSL setup. See #172 2019-02-16 16:16:28 -05:00
Andrew Steinborn 332f931534 More accurate length setting 2019-02-15 17:48:36 -05:00
Andrew Steinborn f042d214d3 Update copyright year in /velocity version 2019-02-15 16:09:37 -05:00
Andrew Steinborn a0e1359557 Fix build 2019-02-15 16:07:19 -05:00
Andrew Steinborn 02a725035c Another round of improvements to tab complete. Fix fallback servers. 2019-02-15 16:03:15 -05:00
Andrew Steinborn 12f5bdfc48 Properly implement fallback support. 2019-02-15 15:07:38 -05:00