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
Andrew Steinborn
c00ffea161
Merge branch 'dev/2.0.0' into dev/polymer
2021-05-19 16:15:27 -04:00
Andrew Steinborn
1f0a186766
Merge pull request #504 from Cybermaxke/event-task-improvements
...
Simplify EventTask. Add Continuation parameter support.
2021-05-19 16:14:49 -04:00
Andrew Steinborn
89f3dbc894
Skip a major version, move to 4.0.0-SNAPSHOT
2021-05-19 16:12:07 -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
Andrew Steinborn
045b974096
Merge pull request #505 from Cybermaxke/fix-bstats-error
...
Fix bStats error when starting in dev.
2021-05-17 17:38:16 -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
5e7373b062
Merge pull request #499 from hugmanrique/dev-2/command-api-changes
...
[2.0] Document some restrictions in the command API
2021-05-16 07:49:37 -04:00
Hugo Manrique
1753b8c15c
Document some restrictions in the command API
2021-05-16 13:46:38 +02:00
Andrew Steinborn
99b3b32525
There's no need to shadow the API JAR
2021-05-16 03:17:08 -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
78036438f2
Gradle Shadow enters the plugins block
2021-05-16 01:45:09 -04:00
Andrew Steinborn
49c25e24c7
Bump Gradle Shadow version
...
We'll need to upgrade to Gradle 7 soon, probably also with an upgrade to Kotlin DSL too...
2021-05-16 01:32:43 -04:00
Andrew Steinborn
65cf7072cd
Bump dependencies: Log4j, Guava, Netty, Configurate
2021-05-16 01:29:33 -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
fe2ca18955
that explains it
2021-05-15 08:53:34 -04:00
Andrew Steinborn
707de2dfba
A little debugging(?)
2021-05-15 08:29:50 -04:00
Andrew Steinborn
c753037b7b
Fix Checkstyle
2021-05-15 08:17:47 -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
348ea4cc23
Fix annotation processor choking on event subscribers
2021-05-15 08:15:25 -04:00
Andrew Steinborn
07f8980f82
Fix compile errors
2021-05-14 16:28:16 -04:00
Andrew Steinborn
ee2870aafb
Add annotation processor for @Subscribe
2021-05-14 16:14:42 -04:00