3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-11-17 05:20:14 +01:00
Commit graph

1196 Commits

Autor SHA1 Nachricht Datum
Andrew Steinborn
1761755d4d Add perfect hashing for dense packet registries.
Since we know the set of packet mappings is always fixed, we can avoid dealing with hash collisions by coming up with a perfect hash function for each registry.

The algorithm used is very simple: we add an offset to the original object's hash code, mix the bits around (using fastutil HashCommon.mix()) and make sure the result is always positive before taking the remainder. The algorithm to generate the offset to the hash code (which we call a "key") is usually quick and is sped up by always rounding up to the next power of 2.

With this, we speed up writing out packet data by completely eliminating any need to check for hash collisions.
2021-08-20 03:59:34 -04:00
Andrew Steinborn
3bf9a47fbf DensePacketRegistryMap's internal hash map should size based on a power of 2 2021-08-20 02:30:06 -04:00
Andrew Steinborn
493fe3e3c2 Forward-port 61c0c0d083 2021-07-12 09:28:05 -04:00
CoreyShupe
d74afb013f Initial implementation of raw registered server creation. 2021-07-12 09:26:45 -04:00
Andrew Steinborn
aab8f86aa8 Fix cherry-picking issues 2021-07-12 09:13:12 -04:00
Hugo Manrique
009abe4cd3 Apply suggested future-related changes
Co-authored-by: A248 <theanandbeh@gmail.com>
2021-07-12 09:04:40 -04:00
Hugo Manrique
27dfa13b5f Fix checkstyle violations 2021-07-12 09:04:28 -04:00
Hugo Manrique
62be3a5da5 Fix Brigadier command alias redirects 2021-07-12 09:03:43 -04:00
Hugo Manrique
8b4c574316 Add more tests and clean up 2021-07-12 09:03:29 -04:00
Hugo Manrique
6455b606c8 Add more suggestion tests 2021-07-12 09:01:36 -04:00
Hugo Manrique
194f000e84 Test suggestion exception handling 2021-07-12 08:59:09 -04:00
Hugo Manrique
79824c0a86 Fix alias typo in suggestion merge test 2021-07-12 08:58:29 -04:00
Hugo Manrique
3d535fb9ba Test suggestions 2021-07-12 08:58:25 -04:00
Hugo Manrique
6dcfc09fbe Test CommandManager 2021-07-12 08:57:17 -04:00
Hugo Manrique
268f7dbebd Test execution and injection 2021-07-12 08:55:42 -04:00
Hugo Manrique
4bef4a5a5b Add license headers 2021-07-12 08:55:35 -04:00
Hugo Manrique
f795c90e58 Command implementation refactor 2021-07-12 08:55:19 -04:00
Hugo Manrique
187a171b90 Suggestions provider 2021-07-12 08:52:27 -04:00
Andrew Steinborn
7b3de6f9ea Do not emit errors for kicks from servers 2021-07-12 08:51:14 -04:00
Andrew Steinborn
2184e72e98 Remove unnecessary slicing of uncompressed packets 2021-07-12 08:49:52 -04:00
Andrew Steinborn
90b72279dc Forward-port changes from 0e0a1449 2021-07-12 08:48:25 -04:00
Andrew Steinborn
d43c8683cd Fix event ordering. 2021-07-12 08:44:49 -04:00
Andrew Steinborn
e093c91a26 Precisely unrolled VarInt reading 2021-05-30 16:20:28 -04:00
Andrew Steinborn
063a208f5f Convert ClientboundLoginPluginMessagePacket encoding to PacketWriter 2021-05-27 16:26:09 -04:00
Seppe Volkaerts
c30575ec44 Simplify EventTask. Add custom handler support.
Additionally support for continuation adapters (will be used by the kotlin language plugin).
2021-05-19 19:16:46 +02:00
Andrew Steinborn
0ddadc90e2 Demonize legacy formatting completely.
Velocity has always supported components from day 1. It's time to officially frown upon legacy formatting for good.
2021-05-18 12:09:35 -04:00
Seppe Volkaerts
404936a53f Fix bStats error when starting in dev. 2021-05-17 23:29:40 +02:00
Andrew Steinborn
9643159826 Don't exclude fastutil Int2Object maps 2021-05-17 11:38:50 -04:00
Andrew Steinborn
9efda3d42d Merge branch 'l10n_dev/2.0.0' into dev/2.0.0
# Conflicts:
#	proxy/src/main/resources/com/velocitypowered/proxy/l10n/messages_fi_FI.properties
#	proxy/src/main/resources/com/velocitypowered/proxy/l10n/messages_nl_NL.properties
#	proxy/src/main/resources/com/velocitypowered/proxy/l10n/messages_ru_RU.properties
2021-05-16 03:14:03 -04:00
Andrew Steinborn
90ecb7182a Resync and merge all translation commits into one 2021-05-16 03:13:13 -04:00
Andrew Steinborn
a6d4ad6950 Some classloader/dependency versioning fix ups 2021-05-16 00:33:03 -04:00
Andrew Steinborn
a155f91dfd Support multiple plugins loaded from the same JAR 2021-05-15 23:42:54 -04:00
Andrew Steinborn
3579fa644b Fix typo 2021-05-15 08:59:13 -04:00
Andrew Steinborn
2a39ddb03e Add support for resolving dependencies that require a version range 2021-05-15 08:16:17 -04:00
Andrew Steinborn
07f8980f82 Fix compile errors 2021-05-14 16:28:16 -04:00
Andrew Steinborn
e6e35d3754 Add a base interface for events 2021-05-14 12:24:43 -04:00
Andrew Steinborn
e65c4102a6 Add missing nullability annotation 2021-05-14 09:28:57 -04:00
Andrew Steinborn
0af9d9d77b Reimplement packet length checks 2021-05-14 09:24:39 -04:00
Andrew Steinborn
14be98c88c Banish all use of Optionals from Velocity entirely 2021-05-13 04:35:50 -04:00
Andrew Steinborn
6cd3b00428 Fix suppress warnings on the packets 2021-05-13 04:25:06 -04:00
Andrew Steinborn
3c41211163 Switch over to Error Prone (now with NullAway!)
There is one major change: we now have a separate artifact for the annotation processor.

As for NullAway, we are currently exempting the clientbound join game/respawn packets. They are ugly and need to be refactored.
2021-05-13 04:13:15 -04:00
Andrew Steinborn
00cc636d6a Remove essentially all use of Java Optionals from the API
Also fix extended handshake event handling
2021-05-12 12:33:55 -04:00
Andrew Steinborn
6fcef41146 Reimplement #434 but aligned to the Velocity 2.0.0 API 2021-05-12 10:03:48 -04:00
Andrew Steinborn
11928f3737 Fix warning when using a Unix domain socket to connect to a server 2021-05-12 09:15:37 -04:00
Andrew Steinborn
47a1332514 Add equals/hashCode to all results and remove another result I don't like
Fixes #483
2021-05-11 06:52:46 -04:00
Andrew Steinborn
f4fc07768b Simplify event result structure and add some convenience methods 2021-05-11 06:40:22 -04:00
Andrew Steinborn
b239a91388 Finish overhaul of packet state/registry system 2021-05-11 03:21:08 -04:00
Andrew Steinborn
af38e19a26 Merge branch 'dev/2.0.0' into 2/new-registry 2021-05-11 01:53:22 -04:00
Andrew Steinborn
591463532e Rename Dutch and Russian localization files so Crowdin can pick them up 2021-05-10 00:51:52 -04:00
Andrew Steinborn
e52d2d7570
Merge pull request #468 from EasyClifton/patch-1
Russian translations
2021-05-10 00:47:16 -04:00