3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-09-29 22:50:15 +02:00
Commit graph

66 Commits

Autor SHA1 Nachricht Datum
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