Andrew Steinborn
3209103317
Licensing fun
2021-04-17 09:01:21 -04:00
Andrew Steinborn
69cba59630
Load localizations automatically.
...
Also included a sample "backwards" localization to demonstrate that it does in fact work.
2021-04-17 09:00:48 -04:00
Andrew Steinborn
c0b6f461cb
Add localization support. Fixes #230
...
This is less flexible, but it is an Adventure-native solution and doesn't require an onerous amount of work to maintain.
2021-04-17 08:30:31 -04:00
Andrew Steinborn
5d07c29cf6
Fix SpotBugs issue
2021-04-17 07:08:35 -04:00
Andrew Steinborn
50f4742240
Add some cases where the locale should fallback to the default
2021-04-17 07:06:23 -04:00
Andrew Steinborn
3d0ca2732e
Run all components in cases where the locale is known through the translation registry.
2021-04-17 07:02:39 -04:00
Andrew Steinborn
4318c179a4
Fix Javadocs for PairedPluginChannelId and KeyedPluginChannelId
2021-04-17 06:19:29 -04:00
Andrew Steinborn
9645fb59da
Further improvements.
...
The main component here is the total revamp of the plugin channel identifier system - instead of Legacy/Modern channel IDs, you can have a modern channel or a modern channel paired with a legacy channel, which is much less confusing to work with.
2021-04-17 06:04:12 -04:00
Andrew Steinborn
47c354e6ee
[Breaking] Many renamings in the API
...
The get prefix has been dropped from getters where it is unambiguous what is being referred to. Other getters have also received renames to clarify their purpose.
The main exception is the ProxyConfig API, but it's one of my personal sore spots in the API, so it'll be replaced instead.
2021-04-17 04:58:16 -04:00
Andrew Steinborn
2254e3b617
Rename CommandManager#metaBuilder -> CommandManager#createMetaBuilder
2021-04-17 04:23:58 -04:00
Andrew Steinborn
a6728476db
I missed a spot
2021-04-17 03:52:01 -04:00
Andrew Steinborn
730d385f02
Extract interfaces for all events.
...
This is in preparation for moving to event-impl-gen.
2021-04-17 03:50:10 -04:00
Andrew Steinborn
f879858e7d
Bring 2.0.0 fully up to date on GPLv3 relicense
2021-04-16 04:11:55 -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
f1cb3eb1a2
Move timeout handler to after frame decoder
...
Mitigates attacks like the one described in SpigotMC/BungeeCord#3066 . This cannot be considered a full protection, only a mitigation that expects full packets. The attack described is essentially the infamous Slowloris attack.
2021-04-15 22:56:37 -04:00
Andrew Steinborn
c51359e893
Move away from deprecated percent() method.
...
Also fixed another small nit.
2021-04-15 04:23:59 -04:00
Andrew Steinborn
4de71fe942
Fix color and overlay packets for Adventure boss bar
...
Someone discovered this bug but decided not to tell anyone. For the record, I'm the one who was brain-damaged... well, I made that particular copy-paste error.
2021-04-15 04:22:44 -04:00
Cubxity
5ea6728d1a
Added ListenerBoundEvent and ListenerCloseEvent. ( #454 )
2021-04-02 13:24:45 -04:00
Rocco
c34aee76ae
Fix Forge/Client Proxy Connections mismatch in config ( #456 )
2021-04-02 12:36:32 -04:00
A248
7ba2318506
Fix one more case of a possibly swallowed exception ( #455 )
...
Maybe spotbugs will add a rule for this in the future
2021-04-02 01:45:58 -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
514115a85c
Do not use an ASCII string for handshake
2021-03-30 12:10:55 -04:00
Andrew Steinborn
f88283f127
Revert "Revert strict handshake hostname checks"
...
This reverts commit 4f80d2b261
.
Experience elsewhere (Waterfall PR) and confirmation from TCPShield means
this ought to work. Let's hope.
2021-03-30 12:08:08 -04:00
Andrew Steinborn
8aad6e2ece
clear input buffer in case of bad varints
2021-03-30 12:05:43 -04:00
Andrew Steinborn
0cc300b621
don't swap these two around
2021-03-23 07:38:07 -04:00
Andrew Steinborn
3111816545
Warn about null permission functions.
2021-03-23 07:32:01 -04:00
A248
0016f4ce19
Relay more exceptions ( #446 )
2021-03-22 08:11:25 -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
3a51bee052
Fix Checkstyle errors and update geriatric Checkstyle version
2021-03-01 19:41:35 -05:00
Andrew Steinborn
ba7ba70f4b
Connections -> HandlerNames
2021-02-21 21:03:06 -05:00
Andrew Steinborn
0294cfda56
Add PacketWriter interface.
2021-02-21 20:45:59 -05:00
Andrew Steinborn
28f12e2d7f
Merge remote-tracking branch 'origin/dev/2.0.0' into dev/2.0.0
2021-02-21 18:10:10 -05:00
Andrew Steinborn
0e05f5f308
Mostly brought 2.0.0 up to update with Velocity 1.1.5-SNAPSHOT changes.
...
I have not verified that this actually works.
2021-02-21 18:09:56 -05: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
72d47b5a3d
Don't advertise the BungeeCord plugin messaging channel if it is disabled.
2021-02-18 18:12:51 -05:00
David Mayr
648624d333
Check permissions before providing suggestions ( #430 )
2021-02-16 19:13:48 -05:00
Andrew Steinborn
1a768bda9d
We're going to need custom hash maps after all.
2021-02-16 01:15:58 -05:00
Andrew Steinborn
b94303d2be
Map command nodes being serialized by their identities
...
Fixes #429
2021-02-16 01:14:22 -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
Camotoy
fb879cb498
Apply initial requested changes
2021-02-09 14:13:33 -05:00
Camotoy
d47b339908
Add PlayerPluginMessageRegisterEvent
2021-02-09 13:51:43 -05:00
Andrew Steinborn
7e42c5b2e7
Turn some APIs into no-ops if they apply to clients without the relevant client functionality.
2021-02-07 15:19:59 -05:00
Andrew Steinborn
b88c573eb1
Correctly forward the player's virtual host to the remote server.
2021-02-01 16:17:02 -05:00
Andrew Steinborn
4f80d2b261
Revert strict handshake hostname checks
...
These will break TCPShield and Cosmic Guard plugins. Sad as this was a worthwhile mitigation.
2021-01-29 23:08:14 -05:00
Andrew Steinborn
501853e807
Fix Checkstyle issue for the umpteenth time...
2021-01-29 17:59:00 -05:00
Andrew Steinborn
4f6d238b39
Strictly limit the hostname size and limit it to ASCII characters only
2021-01-29 17:56:50 -05:00
Andrew Steinborn
4219bf7b09
*Actually* fix Checkstyle issues
2021-01-26 20:02:07 -05:00
Andrew Steinborn
b982c5b6ed
Fix Checkstyle issues
2021-01-26 19:59:29 -05:00
Andrew Steinborn
0c90e94e85
fix
2021-01-26 19:50:43 -05:00