Andrew Steinborn
ef7aeae4ed
Merge remote-tracking branch 'origin/dev/3.0.0' into dev/3.0.0
2021-06-06 03:52:03 -04:00
Andrew Steinborn
9d54a03a4b
Force SpotBugs to shut up here
...
This method is indeed called...
2021-06-06 03:51:42 -04:00
Andrew Steinborn
b1b3882fab
Merge branch 'Xernium-future/1.17' into dev/3.0.0
...
# Conflicts:
# api/src/main/java/com/velocitypowered/api/proxy/ProxyServer.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
2021-06-06 03:48:49 -04:00
FivePB
59b29a075e
Improve new Resource-pack API
2021-06-05 16:07:24 +02:00
Andrew Steinborn
7fbfdb2f23
Merge pull request #513 from CoreyShupe/feature/Allow-Raw-Registered-Server-Creation
...
Initial implementation of raw registered server creation.
2021-06-01 13:12:41 +00:00
CoreyShupe
61c0c0d083
Initial change to allow for server info equality.
2021-06-01 02:17:35 -04:00
CoreyShupe
150808b4b0
Initial implementation of raw registered server creation.
2021-06-01 02:07:06 -04:00
Andrew Steinborn
64d30fba81
AsyncEventExecutor -> AwaitingEventExecutor
2021-05-23 17:51:07 -04:00
Seppe Volkaerts
821ca02ee7
Backport Velocity Polymer's async event API, with changes.
...
This commit backports the event manager from Velocity Polymer, with some changes for Velocity 1.1.x API compatibility:
- All event handlers run asynchronously. (While EventTask.async() exists, it is not useful in 3.0.0, but is provided as a migration aid for Polymer.)
- Event ordering is currently limited to the 5 levels available in Velocity 1.x.x.
2021-05-23 15:39:06 -04:00
Andrew Steinborn
3f50964f36
Fix CommandManager method naming so that it is in sync with the 1.1.0 API
2021-05-23 14:20:59 -04:00
Andrew Steinborn
977300cc66
Remove text 3.x API and associated deprecated APIs
2021-05-23 14:13:51 -04:00
Andrew Steinborn
569bb4a16b
Just import the entire command manager from Polymer, without changing any names
2021-05-23 13:58:27 -04:00
Andrew Steinborn
d6dcb115f1
Remove remaining deprecated APIs
2021-05-23 13:49:06 -04:00
Andrew Steinborn
6816c15385
Remove bad test
2021-05-23 13:47:20 -04:00
Andrew Steinborn
2f0ee15051
Remove deprecated Velocity 1.0.0 Command API.
2021-05-23 13:46:47 -04:00
FivePB
18466bb595
Snapshot 21w19a
2021-05-13 23:50:00 +02:00
FivePB
8def411b2b
Snapshot 21w15a
2021-05-13 23:49:55 +02:00
Five (Xer)
581303a54c
Snaphot 21w10a
2021-05-12 21:42:27 +02:00
Five (Xer)
6207647aae
Remove leftovers
2021-05-12 21:42:27 +02:00
Five (Xer)
22bc759044
Snapshot 21w08a
2021-05-12 21:42:27 +02:00
Five (Xer)
b19cf16345
Snapshot 21w07a
2021-05-12 21:42:27 +02:00
FivePB
f0d9a445ed
Snapshot 21w03a
2021-05-12 21:42:27 +02:00
Five (Xer)
040cc29c34
Snapshot 20w49a
2021-05-12 21:42:27 +02:00
Five (Xer)
d8a39fc438
Snapshot 20w46a
2021-05-12 21:42:27 +02:00
Five (Xer)
7f0964155c
Snapshot 20w45a
2021-05-12 21:42:27 +02:00
Andrew Steinborn
11ed4b46e4
whoops
2021-05-09 02:57:52 -04:00
Andrew Steinborn
5170da8fd7
Improve writeVarInt inlining by peeling the two most common cases
2021-05-09 02:57:01 -04:00
Andrew Steinborn
150fd9a9cf
Add highly-optimized VarInt writing method
2021-05-08 23:26:43 -04:00
Andrew Steinborn
6369a95ec9
Readd safe and slow compression handling and hide it behind a system property
2021-05-08 18:40:23 -04:00
Leymooo
a8e0516d18
Also do not copy memory in case when packet needs to compress
2021-05-07 19:36:30 +03:00
Andrew Steinborn
37a4199d43
Combine VarInt prefix encoding with compression
...
This saves us a memory copy in the common "there is no need to compress this packet" case.
2021-05-06 19:56:45 -04:00
Andrew Steinborn
fb3f21abc6
More bitshifting magic
2021-05-06 00:48:19 -04:00
Andrew Steinborn
1cef82d54d
Unroll the VarInt writing loop
...
This is about as optimized as it can get. Thanks to @Leymooo for the idea, I simply expanded on it. We optimize for the common 1-3 byte cases, and punt more "complicated" cases to the original VarInt writing function we had before.
2021-05-05 22:13:54 -04:00
Andrew Steinborn
d42cc4f984
Force a flush after a certain threshold of packets have been queued for sending
...
Fixes #486 .
2021-05-04 18:51:01 -04:00
Nicolas RAYNAUD
e0153267db
Fixed copyright year ( #490 )
2021-05-04 18:22:50 -04:00
Andrew Steinborn
7c76ae9a27
Make sure to check not only the entire array but also how much was written
2021-05-04 16:32:37 -04:00
Andrew Steinborn
3dc8e25ec7
Fix varint writing (for real!)
...
Thanks to @Leymooo for reporting and providing test cases. (I also added one of my own tests which proved the most useful to debugging the issue.)
2021-05-04 16:30:32 -04:00
Riley Park
2713831f77
Revert "Avoid calling writeVarInt in the (very) common uncompressed packet case"
...
This reverts commit c041bea1b6
.
2021-05-03 19:38:39 -07:00
Andrew Steinborn
c041bea1b6
Avoid calling writeVarInt in the (very) common uncompressed packet case
2021-05-03 20:17:51 -04:00
Andrew Steinborn
0debb81392
I was nagged to make it more consistent
2021-05-03 20:08:16 -04:00
Andrew Steinborn
0811ebb312
Gotta add the license header to the test file
2021-05-03 19:18:06 -04:00
Andrew Steinborn
4ca97a6df9
Reapply "Optimize varint writing"
...
Inspired by the approach described at the bottom of https://richardstartin.github.io/posts/dont-use-protobuf-for-telemetry
Given that we do a lot of varint writing as well, this should provide a small performance boost for larger/complex packets whilst not regressing hard on smaller packets.
This includes a test to ensure that the behavior is as expected and fixes the initialization loop so that the correct results will be given. Much thanks to @octylFractal for acting as my duck while trying to figure this out.
2021-05-03 19:14:48 -04:00
Andrew Steinborn
e531cdb373
Revert "Optimize varint writing"
...
This reverts commit 3db2fe8d63
.
2021-05-03 18:07:25 -04:00
Andrew Steinborn
3db2fe8d63
Optimize varint writing
...
Inspired by the approach described at the bottom of https://richardstartin.github.io/posts/dont-use-protobuf-for-telemetry
Given that we do a lot of varint writing as well, this should provide a small performance boost for larger/complex packets whilst not regressing hard on smaller packets.
2021-05-03 17:31:32 -04:00
Andrew Steinborn
347853b945
Disable hinting test for now
2021-04-25 10:18:58 -04:00
Andrew Steinborn
81311e7516
Don't attempt to decode empty buffers ( fixes #482 )
...
Stuff like this makes me want to drop support for <=1.13 versions of Minecraft.
2021-04-25 10:14:13 -04:00
Andrew Steinborn
ce26ae76c2
Fix case-sensitivity for ping passthrough
2021-04-22 11:23:42 -04:00
Andrew Steinborn
ca52f8989e
Load forced hosts as lowercase too, see #464
2021-04-18 08:22:36 -04:00
Andrew Steinborn
ff54622663
Forced hosts should be case-insensitive. Fixes #464
2021-04-18 08:20:04 -04:00
Andrew Steinborn
f1cb3eb1a2
Move timeout handler to after frame decoder
...
Mitigates attacks like the one described in SpigotMC/BungeeCord#3066 . This cannot be considered a full protection, only a mitigation that expects full packets. The attack described is essentially the infamous Slowloris attack.
2021-04-15 22:56:37 -04:00