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