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
9643159826
Don't exclude fastutil Int2Object maps
2021-05-17 11:38:50 -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
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
6fcef41146
Reimplement #434 but aligned to the Velocity 2.0.0 API
2021-05-12 10:03:48 -04:00
Andrew Steinborn
e49603ec0c
Merge branch 'dev/1.1.0' into dev/2.0.0
...
# Conflicts:
# api/src/main/java/com/velocitypowered/api/command/ConsoleCommandSource.java
# api/src/main/java/com/velocitypowered/api/event/connection/ProxyPingEvent.java
# api/src/main/java/com/velocitypowered/api/event/connection/ProxyQueryEvent.java
# api/src/main/java/com/velocitypowered/api/event/lifecycle/ListenerBoundEvent.java
# api/src/main/java/com/velocitypowered/api/event/lifecycle/ListenerCloseEvent.java
# api/src/main/java/com/velocitypowered/api/event/lifecycle/ProxyInitializeEvent.java
# api/src/main/java/com/velocitypowered/api/event/lifecycle/ProxyReloadEvent.java
# api/src/main/java/com/velocitypowered/api/event/lifecycle/ProxyShutdownEvent.java
# api/src/main/java/com/velocitypowered/api/event/player/DisconnectEvent.java
# api/src/main/java/com/velocitypowered/api/event/player/LoginEvent.java
# api/src/main/java/com/velocitypowered/api/event/player/PostLoginEvent.java
# api/src/main/java/com/velocitypowered/api/event/player/PreLoginEvent.java
# api/src/main/java/com/velocitypowered/api/event/query/package-info.java
# api/src/main/java/com/velocitypowered/api/proxy/connection/InboundConnection.java
# api/src/main/java/com/velocitypowered/api/proxy/connection/Player.java
# api/src/main/java/com/velocitypowered/api/proxy/connection/ServerConnection.java
# api/src/main/java/com/velocitypowered/api/proxy/player/ConnectionRequestBuilder.java
# api/src/main/java/com/velocitypowered/api/util/MessagePosition.java
# api/src/main/java/com/velocitypowered/api/util/bossbar/BossBar.java
# api/src/main/java/com/velocitypowered/api/util/bossbar/BossBarColor.java
# api/src/main/java/com/velocitypowered/api/util/bossbar/BossBarFlag.java
# api/src/main/java/com/velocitypowered/api/util/bossbar/BossBarOverlay.java
# api/src/main/java/com/velocitypowered/api/util/title/TextTitle.java
# api/src/main/java/com/velocitypowered/api/util/title/Title.java
# api/src/main/java/com/velocitypowered/api/util/title/Titles.java
# api/src/main/java/com/velocitypowered/api/util/title/package-info.java
# build.gradle
# native/src/main/java/com/velocitypowered/natives/compression/Java11VelocityCompressor.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/LoginSessionHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/network/ConnectionManager.java
# proxy/src/main/java/com/velocitypowered/proxy/network/NettyPreconditions.java
# proxy/src/main/java/com/velocitypowered/proxy/network/PluginMessageUtil.java
# proxy/src/main/java/com/velocitypowered/proxy/network/ProtocolUtils.java
# proxy/src/main/java/com/velocitypowered/proxy/network/ServerChannelInitializerHolder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/buffer/ByteBufDataInput.java
# proxy/src/main/java/com/velocitypowered/proxy/network/buffer/ByteBufDataOutput.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundAvailableCommandsPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundBossBarPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundEncryptionRequestPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundJoinGamePacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundPlayerListItemPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundRespawnPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundTabCompleteResponsePacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/legacy/LegacyDisconnectPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/legacy/LegacyMinecraftPingVersion.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/serverbound/ServerboundClientSettingsPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/serverbound/ServerboundTabCompleteRequestPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/AutoReadHolderHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/GS4QueryHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/LegacyPingDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/LegacyPingEncoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCipherDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCipherEncoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCompressDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCompressEncoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftEncoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftVarintFrameDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftVarintLengthEncoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/VarintByteDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/network/resolver/SeparatePoolInetNameResolver.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/FaviconSerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/GameProfileSerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/VelocityLegacyHoverEventSerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ArgumentPropertyRegistry.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ByteArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/DoubleArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/EmptyArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/FloatArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/GenericArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/IntegerArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/LongArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ModArgumentProperty.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ModArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/PassthroughProperty.java
# proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/StringArgumentPropertySerializer.java
# proxy/src/main/java/com/velocitypowered/proxy/plugin/VelocityEventManager.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/MinecraftPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/StateRegistry.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/Chat.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/Disconnect.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/EncryptionResponse.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/Handshake.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/HeaderAndFooter.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/KeepAlive.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LegacyHandshake.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LegacyPing.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LoginPluginMessage.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LoginPluginResponse.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/PluginMessage.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ResourcePackRequest.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ResourcePackResponse.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ServerLogin.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ServerLoginSuccess.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/SetCompression.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/StatusPing.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/StatusRequest.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/StatusResponse.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/TitlePacket.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/util/DeferredByteBufHolder.java
# proxy/src/main/java/com/velocitypowered/proxy/util/bossbar/AdventureBossBarManager.java
# proxy/src/main/java/com/velocitypowered/proxy/util/bossbar/VelocityBossBar.java
# proxy/src/test/java/com/velocitypowered/proxy/event/MockEventManager.java
# proxy/src/test/java/com/velocitypowered/proxy/network/PluginMessageUtilTest.java
# proxy/src/test/java/com/velocitypowered/proxy/protocol/PacketRegistryTest.java
2021-04-16 04:02:01 -04:00
Andrew Steinborn
c747120b20
Relicense the Velocity proxy under the terms of GPLv3 ( #448 )
2021-03-31 16:04:06 -04:00
Andrew Steinborn
015693090f
Fix typo (thanks zml)
2021-03-21 16:17:41 -04:00
Andrew Steinborn
da54a091fb
Allow the java.lang module to be opened, as a temporary Java 15+ workaround
2021-03-21 16:16:19 -04:00
Andrew Steinborn
699147c916
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
# api/src/main/java/com/velocitypowered/api/proxy/player/TabList.java
# build.gradle
# proxy/build.gradle
# proxy/src/main/java/com/velocitypowered/proxy/Velocity.java
# proxy/src/main/java/com/velocitypowered/proxy/command/CommandNodeFactory.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/backend/BackendPlaySessionHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/backend/BungeeCordMessageResponder.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/backend/VelocityServerConnection.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundAvailableCommandsPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundJoinGamePacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundRespawnPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/MinecraftPacket.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/EncryptionResponse.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/HeaderAndFooter.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LoginPluginMessage.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/PluginMessage.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ServerLogin.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/StatusPing.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/StatusRequest.java
# proxy/src/main/java/com/velocitypowered/proxy/tablist/VelocityTabList.java
# proxy/src/main/java/com/velocitypowered/proxy/tablist/VelocityTabListLegacy.java
# proxy/src/test/java/com/velocitypowered/proxy/command/CommandManagerTests.java
2021-02-21 17:56:40 -05:00
Andrew Steinborn
1a768bda9d
We're going to need custom hash maps after all.
2021-02-16 01:15:58 -05:00
Bastian
7a713e9379
Update bStats and migrate to new config file
...
This commit simplifies the Metrics class by using the new base module
from bStats. It also migrates to the new bStats config file that will
be used by plugins that integrate bStats. If a user disabled bStats in
the old config file, this setting will be copied to the new config file.
2021-02-12 20:29:07 +01:00
Andrew Steinborn
4bc76b3012
Add JUL support to log4j
...
Certain badly behaved plugins insist on logging with java.util.logging. Accommodate them.
2021-01-25 01:51:32 -05:00
Seppe Volkaerts
d0a61e8704
Update java version. Switch to caffeine cache to allow null values.
2020-12-15 13:05:32 +01:00
Seppe Volkaerts
b04d5de141
Implement async event tasks.
...
Events will now only be handled by an async executor if necessary. This should improve performance for lightweight listeners.
2020-12-15 12:48:32 +01:00
Andrew Steinborn
523b61e0c7
Make sure unit tests actually run(!) and fix command hints
2020-12-14 14:39:39 -05:00
Andrew Steinborn
58294595f3
Fix unit tests and correct several issues with hinting.
...
The packet registry tests are defunct, and will be rewritten at a future date.
2020-12-14 14:31:19 -05:00
Andrew Steinborn
4f5c315ef8
Remove netty-resolver-dns dependency
...
Geyser has fixed the issue in the latest builds
2020-12-14 04:29:28 -05:00
Andrew Steinborn
991aaa31b1
Revert "Stop bundling the Netty DNS resolver, we don't use it"
...
This reverts commit 88a57b77df
.
Breaks Geyser
2020-12-13 18:47:47 -05:00
Andrew Steinborn
88a57b77df
Stop bundling the Netty DNS resolver, we don't use it
2020-12-10 06:56:19 -05:00
Andrew Steinborn
aef0e4a825
Update Netty to 4.1.55.Final.
2020-12-09 22:25:06 -05:00
Riley Park
5da085d82f
Adventure 4.3.0: Player list header/footer
2020-12-06 17:50:57 -08:00
Andrew Steinborn
89e1a07448
Try and explicitly specify Java 8 in the modules.
2020-11-06 18:52:00 -05:00
derklaro
fae1ee8373
Track some dependency updates
...
junit: 5.3.0-M1 -> 5.7.0
slf4j: 1.7.25 -> 1.7.30
netty: 4.1.51.Final -> 4.1.52.Final
guava: 25.1-jre -> 29.0-jre
checkerFramework: 2.7.0 -> 3.6.1
jline-terminal-jansi: 3.12.1 -> 3.16.0
fastutil: 8.2.3 -> 8.4.1
async-http-client: 2.10.4 -> 2.12.1
completable-futures: 0.3.2 -> 0.3.3
gradle-wrapper: 6.6 -> 6.6.1
BREAKING CHANGE: No breaking change
2020-09-15 13:27:16 +02:00
Andrew Steinborn
c47d25c88a
Upgrade to Gradle 6.6 and use SpotBugs.
...
As a result, at least one real bug was fixed! Nice.
2020-08-21 19:09:04 -04:00
Andrew Steinborn
cab6919a46
Switch to adventure-nbt and fix server switching on 1.16.2-pre3
2020-08-06 17:38:52 -04:00
Andrew Steinborn
a8651f561d
Update to event 4.0.0-SNAPSHOT for an optimized event path
2020-07-15 17:07:38 -04:00
Andrew Steinborn
28d2366c73
Switch Velocity from existing toml4j+homebrew TOML serializer to night-config.
...
This allows us to allow many more valid configurations and allows us to eliminate a bunch of ugly hacks.
2020-06-24 21:31:39 -04:00
Andrew Steinborn
91743aaa9d
Merge branch 'dev/1.1.0' into future/1.16-velocity-1.1.0
...
# Conflicts:
# proxy/build.gradle
2020-06-21 13:40:19 -04:00
Andrew Steinborn
ada35ff286
Merge branch 'Xernium-future/1.16' into future/1.16-velocity-1.1.0
...
# Conflicts:
# .travis.yml
# api/src/main/java/com/velocitypowered/api/network/ProtocolVersion.java
# build.gradle
# proxy/build.gradle
# proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/backend/VelocityServerConnection.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/netty/DiscardHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/ProtocolUtils.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/StateRegistry.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftCompressDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/JoinGame.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/Respawn.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ServerLoginSuccess.java
# proxy/src/test/java/com/velocitypowered/proxy/plugin/util/PluginDependencyUtilsTest.java
2020-06-20 23:24:32 -04:00
Andrew Steinborn
bb69481f99
Lay down foundation for cross-architecture natives
...
We have dropped the rarely used kqueue and replaced it with the new Netty aarch64
native. In addition, lay down the foundation for other aarch64 natives.
2020-06-04 14:59:22 -04:00
Five (Xer)
d37b6a361c
Snapshot 20w21a
2020-05-23 00:18:36 +02:00
Andrew Steinborn
1441dec367
Implement brigadier:long argument type, fixes #295
2020-04-23 16:21:44 -04:00
Andrew Steinborn
957c0dd307
Implement brigadier:long argument type, fixes #295
2020-04-23 16:21:22 -04:00
Andrew Steinborn
88641662d8
Implement brigadier:long argument type, fixes #295
2020-04-23 16:19:49 -04:00
Andrew Steinborn
19e1e05bbc
Bring back kqueue transport from the dead
...
My PR to AsyncHttpClient was accepted and 2.10.4 was released with it
included.
2019-10-20 00:27:31 -04:00
Andrew Steinborn
ca9a4492c4
Add support for ping pass-through
...
By default, ping pass-through is not enabled. However, you can use
ping passthrough to pass through just mods (great for modded servers)
or everything.
2019-08-06 02:06:53 -04:00
Andrew Steinborn
d1736bf94c
Move from custom HTTP client to Async HTTP Client
...
The most significant advantage is that Velocity gets a well-tested
HTTP client implementation which also includes a connection pool,
allowing us to avoid the overhead of TCP and TLS handshakes upon each
login.
Unfortunately, Async HTTP Client does not work with the kqueue transport.
Since almost nobody runs a production Velocity server on macOS, we have
decided to remove kqueue support. The benefits that Async HTTP Client
provides outweigh the disadvantages of not having a macOS native transport.
macOS is adequately supported by the normal NIO transport.
2019-07-26 01:29:51 -04:00
Minecrell
fde5ec36e7
Update TerminalConsoleAppender to 1.2.0
...
Add log4j.skipJansi to prevent Log4j from initializing a Jansi
terminal. It is redundant because this is handled by TCA and it
will be only active for a few seconds until TCA is loaded.
2019-07-21 16:51:08 +02:00
Andrew Steinborn
2b5b14e4ec
Switch to new TCA version and jansi
2019-07-20 14:25:47 -04:00
Andrew Steinborn
d7e4e20c76
This is Velocity 1.0.0
2019-06-12 18:10:33 -04:00
Andrew Steinborn
e9950da0c5
Enable multi-release flag to improve Java 9+ compatibility
2019-04-25 19:12:22 -04:00
Andrew Steinborn
1661cece2d
An Easter basket bearing gifts! ( #191 )
...
* Delay switch to new server until after JoinGame is sent.
Unfortunately, in some cases (especially vanilla Minecraft) some login
disconnects are sent after ServerLoginSuccess but before JoinGame.
We've been using ServerLoginSuccess but it has caused too many problems.
Now Velocity will switch to a stripped-down version of the play session
handler until JoinGame is received. This handler does very little by
itself: it simply forwards plugin messages (for Forge) and waits for the
JoinGame packet from the server.
This is an initial version: only vanilla Minecraft 1.12.2 was tested.
However this is the way Waterfall without entity rewriting does server
switches (which, in turn, is inherited from BungeeCord).
* Move to Gradle 5 and Error Prone.
2019-04-24 14:36:49 -04:00
Andrew Steinborn
118574e535
Updated log4j and Checker Framework
...
Updating Checker Framework flagged numerous warnings, which have been
corrected. These probably involve type declarations lacking a nullness
annotation that appeared elsewhere.
2019-03-28 22:27:51 -04:00
Andrew Steinborn
9491f948f8
Upgraded Gradle Shadow plugin to 4.0.4 (last Gradle 4.x version)
2019-03-28 22:01:33 -04:00
Andrew Steinborn
611a31b7bb
Attempt to allow Eclipse to import the Gradle project.
2019-03-28 21:46:45 -04:00
Andrew Steinborn
89bcc9a100
Grab most of the low-hanging fruit.
2018-12-29 17:22:36 -05:00
Andrew Steinborn
68fde1e795
Adapt System.(out|err) to log4j.
2018-12-29 13:30:50 -05:00
Andrew Steinborn
09fe7cee1e
Include more of fastutil to allow us to use Object2IntLinkedOpenHashMap
2018-12-29 09:48:09 -05:00
Andrew Steinborn
2cedb457ce
[WIP] Inject commands for Minecraft 1.13+
2018-12-29 09:28:24 -05:00