3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-12-26 00:00:55 +01:00
Commit graph

544 Commits

Autor SHA1 Nachricht Datum
Andrew Steinborn
121ab41d96 Introduce TCP_FASTOPEN support
For best results, use Linux 4.11+ and a server modified to set the
TCP_FASTOPEN flag.

This should in particular benefit users of legacy forwarding.
2019-07-29 17:32:56 -04:00
Andrew Steinborn
0acb1ed7d4 Send disconnect message on getting kicked from the server 2019-07-29 14:27:40 -04:00
Andrew Steinborn
03c9729e63 Don't disconnect the player if the connection unexpectedly closes 2019-07-29 14:19:21 -04:00
Andrew Steinborn
04efd16a83 Avoid a memory copy in creating modern-style forwarding data 2019-07-29 06:04:37 -04:00
Andrew Steinborn
1da51b8ffb Batch handshake and server login/ping packets 2019-07-29 05:25:29 -04:00
Andrew Steinborn
d65e371038 Fix up the Travis build... 2019-07-29 00:24:57 -04:00
Andrew Steinborn
ead8a21362 Most proper clean way of using a DnsAddressResolverGroup with AHC
Let us never speak of this again.
2019-07-29 00:19:15 -04:00
Andrew Steinborn
bf035bce73 Properly use non-blocking DNS in AsyncHttpClient 2019-07-28 23:40:23 -04:00
Andrew Steinborn
454b3c9bee Add flag to disable native transports 2019-07-26 01:34:21 -04:00
Andrew Steinborn
d1736bf94c Move from custom HTTP client to Async HTTP Client
The most significant advantage is that Velocity gets a well-tested
HTTP client implementation which also includes a connection pool,
allowing us to avoid the overhead of TCP and TLS handshakes upon each
login.

Unfortunately, Async HTTP Client does not work with the kqueue transport.
Since almost nobody runs a production Velocity server on macOS, we have
decided to remove kqueue support. The benefits that Async HTTP Client
provides outweigh the disadvantages of not having a macOS native transport.
macOS is adequately supported by the normal NIO transport.
2019-07-26 01:29:51 -04:00
Minecrell
fde5ec36e7 Update TerminalConsoleAppender to 1.2.0
Add log4j.skipJansi to prevent Log4j from initializing a Jansi
terminal. It is redundant because this is handled by TCA and it
will be only active for a few seconds until TCA is loaded.
2019-07-21 16:51:08 +02:00
Andrew Steinborn
6d5bacb262 Minor Netty cleanup 2019-07-20 00:30:44 -04:00
Andrew Steinborn
85e5fb4827 Allow existing players to be kicked from server if in online-mode
Fixes #226
2019-07-19 13:25:04 -04:00
Andrew Steinborn
40c8343494 Help smoke out some internal concurrency issues 2019-07-08 21:28:18 -04:00
Andrew Steinborn
2671590ad2 Clean up LoginPluginResponse and use DeferredByteBufHolder too 2019-07-05 12:53:17 -04:00
Andrew Steinborn
8bf9e0e829 Improve backwards-compatibility with 1.0.x due to RawCommand changes 2019-07-04 23:53:04 -04:00
Seppe Volkaerts
6d2e1bf379 Wait for player disconnect events on shutdown. (#229) 2019-07-04 23:49:40 -04:00
Andrew Steinborn
a053ab6c34 Remove resource leak detection level setting 2019-07-03 22:46:47 -04:00
Andrew Steinborn
fba3bfb0be Forge is confirmed working 2019-07-03 22:45:25 -04:00
Andrew Steinborn
11a86e9bb9 Convert Velocity to use ByteBuf-derived plugin message packets
Only tested with 1.12.2, not 1.13 or Forge
2019-07-03 09:20:32 -04:00
Andrew Steinborn
39c505f6fd Readd missing null check. Fixes #228 2019-07-02 13:25:17 -04:00
Andrew Steinborn
a63e905edf Use custom ThreadFactory that does FastThreadLocal wrapping for us
This primarily has the benefit of not giving threads strange names
2019-07-02 09:10:00 -04:00
Andrew Steinborn
190f2fee75 Remove kqueue bug workaround since the issue is now fixed upstream
See https://github.com/netty/netty/pull/9149
2019-07-02 02:36:46 -04:00
Andrew Steinborn
dab9c9a382 Use Netty thread factory to take advantage of FastThreadLocal
This should reduce CPU usage slightly.
2019-07-02 02:19:52 -04:00
Andrew Steinborn
c0becce276 Remove debug code 2019-07-02 00:33:25 -04:00
Andrew Steinborn
7834acd67f Reduce duplicated code used to support RawCommand. Fixes #227 2019-07-02 00:25:43 -04:00
Andrew Steinborn
f0ba7e1eea Add method to check if an entry already exists in the tab list. 2019-07-01 00:07:20 -04:00
Andrew Steinborn
275685f45f Merge branch 'master' into dev/1.1.0
# Conflicts:
#	build.gradle
2019-06-30 23:52:22 -04:00
Andrew Steinborn
226074a0df Add suggestion for reconnecting for "not online-mode" message 2019-06-29 14:35:28 -04:00
Andrew Steinborn
81840abc86 Enforce at least one parameter in CommandManager#register()
The old register method has been deprecated.
2019-06-22 21:13:20 -04:00
Andrew Steinborn
04a23e3622 Introduce raw String-based command API 2019-06-18 00:13:49 -04:00
Andrew Steinborn
1fd2bd9ee4 Avoid sending duplicate set latency/gamemode/display name packets 2019-06-15 17:08:05 -04:00
kashike
335c34a679 Explicity bind the main plugin class in the singleton scope 2019-06-14 01:06:08 -07:00
Andrew Steinborn
b19d36e939 Strictly enforce packet size limits for incoming compressed packets 2019-06-09 04:25:13 -04:00
Vjatšeslav Maspanov
f64b44ec21 Remove protocol linking (#212) 2019-06-02 19:44:23 -04:00
Andrew Steinborn
8d61e7ffd0 Removed redundant (non-)nullable annotations from boss bar. 2019-06-02 17:57:31 -04:00
kashike
0a53343547 Rename some bossbar-related fields and methods 2019-06-02 14:47:41 -07:00
MrIvanPlays
20b34447f8 Add BossBar API (#213) 2019-06-02 15:02:43 -04:00
Andrew Steinborn
dfe210707f Replace uses of deprecated LegacyComponentSerializer.INSTANCE 2019-05-31 15:50:46 -04:00
Andrew Steinborn
4e71788aba Work around kqueue transport bug with fallback connections. 2019-05-27 14:00:20 -04:00
Leymooo
85c6238d68 1.14.2 support 2019-05-27 17:20:42 +03: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
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