Andrew Steinborn
a4e91793ca
Merge branch 'dev/1.1.0' into dev/2.0.0
...
# Conflicts:
# api/build.gradle
# api/src/main/java/com/velocitypowered/api/proxy/connection/Player.java
# build.gradle
# proxy/src/main/java/com/velocitypowered/proxy/command/builtin/VelocityCommand.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/MinecraftConnection.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/StatusSessionHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCompressEncoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCompressorAndLengthEncoder.java
# proxy/src/test/java/com/velocitypowered/proxy/command/CommandManagerTests.java
2021-05-09 03:51:54 -04: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
f00b9b73ea
Make ServerboundHandshakePacket immutable
2021-04-23 19:16:47 -04:00
Andrew Steinborn
3dc3c40c33
Convert some more packets to use PacketReader/PacketWriter
2021-04-23 19:01:40 -04:00
Andrew Steinborn
ce26ae76c2
Fix case-sensitivity for ping passthrough
2021-04-22 11:23:42 -04:00
Andrew Steinborn
e416b9fc45
Reapply f1cb3eb
and add the same fix to ping passthrough
2021-04-22 11:22:55 -04:00
Andrew Steinborn
a5565847d1
Merge branch 'dev/1.1.0' into dev/2.0.0
...
# Conflicts:
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
2021-04-22 11:21:33 -04:00
Mariell Hoversholm
8b38fba08e
feat: nb_NO and nn_NO localisation ( #467 )
2021-04-21 16:21:51 -04:00
Andrew Steinborn
688babb4da
Actually fix loading locales from paths with spaces in them
2021-04-19 08:48:42 -04:00
Andrew Steinborn
1bd691f91b
Checkstyle strikes again!
2021-04-19 08:03:55 -04:00
Andrew Steinborn
7c0b622742
Try #2 at explicit path
2021-04-19 08:01:58 -04:00
Andrew Steinborn
6a349d24ac
Specify an explicit path instead of using Paths.get() to construct it
2021-04-19 07:54:48 -04:00
Andrew Steinborn
efa9f6f303
Make sure we fallback to en_US. Fixes #474
2021-04-19 07:42:16 -04:00
Seppe Volkaerts
71db78e172
Fix the automatic registration of main plugin event listeners. ( #471 )
2021-04-18 19:18:01 -04:00
Seppe Volkaerts
6ac5643212
Fix ambiguous newFileSystem method when using Java 13.
2021-04-18 22:54:18 +02:00
Andrew Steinborn
d26d61f038
Fix pluralization of /glist player summary
2021-04-18 11:16:11 -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
c069a0730f
Fix "too many servers" message
2021-04-17 22:23:04 -04:00
Andrew Steinborn
f2ddd391a5
Fix localization loading from JAR
2021-04-17 09:15:34 -04:00
Andrew Steinborn
6c369c7d09
Fix SpotBugs stuff
2021-04-17 09:05:23 -04:00
Andrew Steinborn
3209103317
Licensing fun
2021-04-17 09:01:21 -04:00
Andrew Steinborn
69cba59630
Load localizations automatically.
...
Also included a sample "backwards" localization to demonstrate that it does in fact work.
2021-04-17 09:00:48 -04:00
Andrew Steinborn
c0b6f461cb
Add localization support. Fixes #230
...
This is less flexible, but it is an Adventure-native solution and doesn't require an onerous amount of work to maintain.
2021-04-17 08:30:31 -04:00
Andrew Steinborn
5d07c29cf6
Fix SpotBugs issue
2021-04-17 07:08:35 -04:00
Andrew Steinborn
50f4742240
Add some cases where the locale should fallback to the default
2021-04-17 07:06:23 -04:00
Andrew Steinborn
3d0ca2732e
Run all components in cases where the locale is known through the translation registry.
2021-04-17 07:02:39 -04:00
Andrew Steinborn
4318c179a4
Fix Javadocs for PairedPluginChannelId and KeyedPluginChannelId
2021-04-17 06:19:29 -04:00
Andrew Steinborn
9645fb59da
Further improvements.
...
The main component here is the total revamp of the plugin channel identifier system - instead of Legacy/Modern channel IDs, you can have a modern channel or a modern channel paired with a legacy channel, which is much less confusing to work with.
2021-04-17 06:04:12 -04:00
Andrew Steinborn
47c354e6ee
[Breaking] Many renamings in the API
...
The get prefix has been dropped from getters where it is unambiguous what is being referred to. Other getters have also received renames to clarify their purpose.
The main exception is the ProxyConfig API, but it's one of my personal sore spots in the API, so it'll be replaced instead.
2021-04-17 04:58:16 -04:00