Mirror von
https://github.com/PaperMC/Velocity.git
synchronisiert 2024-11-16 21:10:30 +01:00
A full reorganization of the networking logic
While we're at it, make the packet files mostly Checkstyle clean, except for Javadocs (not very useful)
Dieser Commit ist enthalten in:
Ursprung
67a6d27123
Commit
115ac92d5c
@ -7,4 +7,6 @@ extensions.configure<CheckstyleExtension> {
|
||||
maxErrors = 0
|
||||
maxWarnings = 0
|
||||
toolVersion = libs.checkstyle.get().version.toString()
|
||||
configProperties["org.checkstyle.google.suppressionfilter.config"] =
|
||||
rootProject.file("config/checkstyle/checkstyle-suppressions.xml")
|
||||
}
|
||||
|
12
config/checkstyle/checkstyle-suppressions.xml
Normale Datei
12
config/checkstyle/checkstyle-suppressions.xml
Normale Datei
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
|
||||
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
|
||||
|
||||
<suppressions>
|
||||
<suppress checks="MissingJavadocType"
|
||||
files="src/main/java/com/velocitypowered/proxy/network/protocol/packet/*" />
|
||||
<suppress checks="MissingJavadocMethod"
|
||||
files="src/main/java/com/velocitypowered/proxy/network/protocol/packet/*" />
|
||||
</suppressions>
|
@ -33,7 +33,7 @@
|
||||
<module name="SuppressionFilter">
|
||||
<property name="file" value="${org.checkstyle.google.suppressionfilter.config}"
|
||||
default="checkstyle-suppressions.xml" />
|
||||
<property name="optional" value="true"/>
|
||||
<!--<property name="optional" value="true"/>-->
|
||||
</module>
|
||||
|
||||
<!-- Checks for whitespace -->
|
||||
|
@ -49,10 +49,10 @@ import com.velocitypowered.proxy.console.VelocityConsole;
|
||||
import com.velocitypowered.proxy.crypto.EncryptionUtils;
|
||||
import com.velocitypowered.proxy.event.VelocityEventManager;
|
||||
import com.velocitypowered.proxy.network.ConnectionManager;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.util.FaviconSerializer;
|
||||
import com.velocitypowered.proxy.network.protocol.util.GameProfileSerializer;
|
||||
import com.velocitypowered.proxy.plugin.VelocityPluginManager;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.util.FaviconSerializer;
|
||||
import com.velocitypowered.proxy.protocol.util.GameProfileSerializer;
|
||||
import com.velocitypowered.proxy.scheduler.VelocityScheduler;
|
||||
import com.velocitypowered.proxy.server.ServerMap;
|
||||
import com.velocitypowered.proxy.util.AddressUtil;
|
||||
|
@ -37,17 +37,18 @@ import com.velocitypowered.proxy.connection.client.HandshakeSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.client.InitialLoginSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.client.StatusSessionHandler;
|
||||
import com.velocitypowered.proxy.network.Connections;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.VelocityConnectionEvent;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftCipherDecoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftCipherEncoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftCompressDecoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftCompressorAndLengthEncoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftEncoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftVarintLengthEncoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.PlayPacketQueueHandler;
|
||||
import com.velocitypowered.proxy.network.pipeline.compression.MinecraftCompressDecoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.compression.MinecraftCompressorAndLengthEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.encryption.MinecraftCipherDecoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.encryption.MinecraftCipherEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.framing.MinecraftVarintLengthEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.util.PlayPacketQueueHandler;
|
||||
import com.velocitypowered.proxy.network.pipeline.util.VelocityConnectionEvent;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.SetCompression;
|
||||
import com.velocitypowered.proxy.util.except.QuietDecoderException;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.Channel;
|
||||
@ -487,7 +488,7 @@ public class MinecraftConnection extends ChannelInboundHandlerAdapter {
|
||||
|
||||
/**
|
||||
* Sets the compression threshold on the connection. You are responsible for sending {@link
|
||||
* com.velocitypowered.proxy.protocol.packet.SetCompression} beforehand.
|
||||
* SetCompression} beforehand.
|
||||
*
|
||||
* @param threshold the compression threshold to use
|
||||
*/
|
||||
|
@ -17,58 +17,58 @@
|
||||
|
||||
package com.velocitypowered.proxy.connection;
|
||||
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.AvailableCommands;
|
||||
import com.velocitypowered.proxy.protocol.packet.BossBar;
|
||||
import com.velocitypowered.proxy.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.EncryptionRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.EncryptionResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.protocol.packet.HeaderAndFooter;
|
||||
import com.velocitypowered.proxy.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyHandshake;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyPing;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyPlayerListItem;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginAcknowledged;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.PingIdentify;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.RemovePlayerInfo;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.Respawn;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerData;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerLogin;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerLoginSuccess;
|
||||
import com.velocitypowered.proxy.protocol.packet.SetCompression;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusPing;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.TabCompleteRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.TabCompleteResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.UpsertPlayerInfo;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.ChatAcknowledgement;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.PlayerChatCompletion;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.SystemChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.keyed.KeyedPlayerChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.keyed.KeyedPlayerCommand;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.legacy.LegacyChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.session.SessionPlayerChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.session.SessionPlayerCommand;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.ActiveFeatures;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.RegistrySync;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.TagsUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.LegacyTitlePacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleActionbarPacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleClearPacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleSubtitlePacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleTextPacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleTimesPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.AvailableCommands;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.BossBarPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.EncryptionRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.EncryptionResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.HeaderAndFooter;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyHandshake;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyPing;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyPlayerListItem;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginAcknowledged;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PingIdentify;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.RemovePlayerInfo;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Respawn;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerData;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerLogin;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerLoginSuccess;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.SetCompression;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusPing;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.TabCompleteRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.TabCompleteResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.UpsertPlayerInfo;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.ChatAcknowledgement;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.PlayerChatCompletion;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.SystemChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.keyed.KeyedPlayerChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.keyed.KeyedPlayerCommand;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.legacy.LegacyChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.session.SessionPlayerChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.session.SessionPlayerCommand;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.ActiveFeatures;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.RegistrySync;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.TagsUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.LegacyTitlePacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleActionbarPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleClearPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleSubtitlePacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleTextPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleTimesPacket;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
/**
|
||||
@ -120,7 +120,7 @@ public interface MinecraftSessionHandler {
|
||||
return false;
|
||||
}
|
||||
|
||||
default boolean handle(BossBar packet) {
|
||||
default boolean handle(BossBarPacket packet) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ package com.velocitypowered.proxy.connection.backend;
|
||||
|
||||
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||
import com.velocitypowered.proxy.connection.forge.legacy.LegacyForgeHandshakeBackendPhase;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
|
||||
/**
|
||||
* Provides connection phase specific actions.
|
||||
|
@ -19,7 +19,7 @@ package com.velocitypowered.proxy.connection.backend;
|
||||
|
||||
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||
import com.velocitypowered.proxy.connection.forge.legacy.LegacyForgeHandshakeBackendPhase;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
|
||||
/**
|
||||
* Contains Vanilla {@link BackendConnectionPhase}s.
|
||||
|
@ -38,24 +38,24 @@ import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler;
|
||||
import com.velocitypowered.proxy.connection.player.VelocityResourcePackInfo;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionMessages;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.protocol.packet.AvailableCommands;
|
||||
import com.velocitypowered.proxy.protocol.packet.BossBar;
|
||||
import com.velocitypowered.proxy.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyPlayerListItem;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.RemovePlayerInfo;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerData;
|
||||
import com.velocitypowered.proxy.protocol.packet.TabCompleteResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.UpsertPlayerInfo;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.protocol.util.PluginMessageUtil;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.AvailableCommands;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.BossBarPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyPlayerListItem;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.RemovePlayerInfo;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerData;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.TabCompleteResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.UpsertPlayerInfo;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.util.PluginMessageUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufUtil;
|
||||
import io.netty.buffer.Unpooled;
|
||||
@ -154,10 +154,10 @@ public class BackendPlaySessionHandler implements MinecraftSessionHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(BossBar packet) {
|
||||
if (packet.getAction() == BossBar.ADD) {
|
||||
public boolean handle(BossBarPacket packet) {
|
||||
if (packet.getAction() == BossBarPacket.ADD) {
|
||||
playerSessionHandler.getServerBossBars().add(packet.getUuid());
|
||||
} else if (packet.getAction() == BossBar.REMOVE) {
|
||||
} else if (packet.getAction() == BossBarPacket.REMOVE) {
|
||||
playerSessionHandler.getServerBossBars().remove(packet.getUuid());
|
||||
}
|
||||
return false; // forward
|
||||
|
@ -28,9 +28,9 @@ import com.velocitypowered.api.util.UuidUtils;
|
||||
import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.util.ByteBufDataInput;
|
||||
import com.velocitypowered.proxy.protocol.util.ByteBufDataOutput;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.util.ByteBufDataInput;
|
||||
import com.velocitypowered.proxy.network.protocol.util.ByteBufDataOutput;
|
||||
import com.velocitypowered.proxy.server.VelocityRegisteredServer;
|
||||
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
@ -29,19 +29,19 @@ import com.velocitypowered.proxy.connection.player.VelocityResourcePackInfo;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionMessages;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionRequestResults;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionRequestResults.Impl;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.RegistrySync;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.TagsUpdate;
|
||||
import com.velocitypowered.proxy.protocol.util.PluginMessageUtil;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.RegistrySync;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.TagsUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.util.PluginMessageUtil;
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.regex.Pattern;
|
||||
|
@ -31,15 +31,15 @@ import com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler;
|
||||
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionRequestResults;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionRequestResults.Impl;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.EncryptionRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginAcknowledged;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerLoginSuccess;
|
||||
import com.velocitypowered.proxy.protocol.packet.SetCompression;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.EncryptionRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginAcknowledged;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerLoginSuccess;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.SetCompression;
|
||||
import com.velocitypowered.proxy.util.except.QuietRuntimeException;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufUtil;
|
||||
|
@ -33,11 +33,11 @@ import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionMessages;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionRequestResults;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionRequestResults.Impl;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
@ -37,10 +37,11 @@ import com.velocitypowered.proxy.connection.MinecraftConnectionAssociation;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionRequestResults.Impl;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerLogin;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerLogin;
|
||||
import com.velocitypowered.proxy.server.VelocityRegisteredServer;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
@ -356,7 +357,7 @@ public class VelocityServerConnection implements MinecraftConnectionAssociation,
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets whether the {@link com.velocitypowered.proxy.protocol.packet.JoinGame} packet has been
|
||||
* Gets whether the {@link JoinGame} packet has been
|
||||
* sent by this server.
|
||||
*
|
||||
* @return Whether the join has been completed.
|
||||
|
@ -37,10 +37,10 @@ import com.velocitypowered.proxy.config.VelocityConfiguration;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.crypto.IdentifiedKeyImpl;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginAcknowledged;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerLoginSuccess;
|
||||
import com.velocitypowered.proxy.protocol.packet.SetCompression;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginAcknowledged;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerLoginSuccess;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.SetCompression;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
@ -22,15 +22,15 @@ import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.backend.VelocityServerConnection;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.protocol.packet.PingIdentify;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.protocol.util.PluginMessageUtil;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PingIdentify;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.util.PluginMessageUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import net.kyori.adventure.text.Component;
|
||||
|
@ -19,7 +19,7 @@ package com.velocitypowered.proxy.connection.client;
|
||||
|
||||
import com.velocitypowered.proxy.connection.backend.VelocityServerConnection;
|
||||
import com.velocitypowered.proxy.connection.forge.legacy.LegacyForgeHandshakeClientPhase;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
|
||||
/**
|
||||
* Provides connection phase specific actions.
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
package com.velocitypowered.proxy.connection.client;
|
||||
|
||||
import static com.velocitypowered.proxy.protocol.util.PluginMessageUtil.constructChannelsPacket;
|
||||
import static com.velocitypowered.proxy.network.protocol.util.PluginMessageUtil.constructChannelsPacket;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.mojang.brigadier.suggestion.Suggestion;
|
||||
@ -38,35 +38,35 @@ import com.velocitypowered.proxy.connection.backend.BackendConnectionPhases;
|
||||
import com.velocitypowered.proxy.connection.backend.BungeeCordMessageResponder;
|
||||
import com.velocitypowered.proxy.connection.backend.VelocityServerConnection;
|
||||
import com.velocitypowered.proxy.connection.forge.legacy.LegacyForgeConstants;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.packet.BossBar;
|
||||
import com.velocitypowered.proxy.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.Respawn;
|
||||
import com.velocitypowered.proxy.protocol.packet.TabCompleteRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.TabCompleteResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.TabCompleteResponse.Offer;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.ChatHandler;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.ChatTimeKeeper;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.CommandHandler;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.keyed.KeyedChatHandler;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.keyed.KeyedCommandHandler;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.keyed.KeyedPlayerChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.keyed.KeyedPlayerCommand;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.legacy.LegacyChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.legacy.LegacyChatHandler;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.legacy.LegacyCommandHandler;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.session.SessionChatHandler;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.session.SessionCommandHandler;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.session.SessionPlayerChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.session.SessionPlayerCommand;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.GenericTitlePacket;
|
||||
import com.velocitypowered.proxy.protocol.util.PluginMessageUtil;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.BossBarPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Respawn;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.TabCompleteRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.TabCompleteResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.TabCompleteResponse.Offer;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.ChatHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.ChatTimeKeeper;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.CommandHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.keyed.KeyedChatHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.keyed.KeyedCommandHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.keyed.KeyedPlayerChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.keyed.KeyedPlayerCommand;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.legacy.LegacyChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.legacy.LegacyChatHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.legacy.LegacyCommandHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.session.SessionChatHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.session.SessionCommandHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.session.SessionPlayerChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.session.SessionPlayerCommand;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.GenericTitlePacket;
|
||||
import com.velocitypowered.proxy.network.protocol.util.PluginMessageUtil;
|
||||
import com.velocitypowered.proxy.util.CharacterUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufUtil;
|
||||
@ -529,9 +529,9 @@ public class ClientPlaySessionHandler implements MinecraftSessionHandler {
|
||||
// Remove previous boss bars. These don't get cleared when sending JoinGame, thus the need to
|
||||
// track them.
|
||||
for (UUID serverBossBar : serverBossBars) {
|
||||
BossBar deletePacket = new BossBar();
|
||||
BossBarPacket deletePacket = new BossBarPacket();
|
||||
deletePacket.setUuid(serverBossBar);
|
||||
deletePacket.setAction(BossBar.REMOVE);
|
||||
deletePacket.setAction(BossBarPacket.REMOVE);
|
||||
player.getConnection().delayedWrite(deletePacket);
|
||||
}
|
||||
serverBossBars.clear();
|
||||
|
@ -19,7 +19,7 @@ package com.velocitypowered.proxy.connection.client;
|
||||
|
||||
import com.velocitypowered.api.proxy.player.PlayerSettings;
|
||||
import com.velocitypowered.api.proxy.player.SkinParts;
|
||||
import com.velocitypowered.proxy.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ClientSettings;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
@ -55,21 +55,21 @@ import com.velocitypowered.proxy.connection.player.VelocityResourcePackInfo;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionMessages;
|
||||
import com.velocitypowered.proxy.connection.util.ConnectionRequestResults.Impl;
|
||||
import com.velocitypowered.proxy.connection.util.VelocityInboundConnection;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftEncoder;
|
||||
import com.velocitypowered.proxy.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.HeaderAndFooter;
|
||||
import com.velocitypowered.proxy.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.ChatQueue;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.ChatType;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.builder.ChatBuilderFactory;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.legacy.LegacyChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.GenericTitlePacket;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftEncoder;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.HeaderAndFooter;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.ChatQueue;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.ChatType;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.builder.ChatBuilderFactory;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.legacy.LegacyChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.GenericTitlePacket;
|
||||
import com.velocitypowered.proxy.server.VelocityRegisteredServer;
|
||||
import com.velocitypowered.proxy.tablist.InternalTabList;
|
||||
import com.velocitypowered.proxy.tablist.KeyedVelocityTabList;
|
||||
|
@ -29,12 +29,12 @@ import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.forge.legacy.LegacyForgeConstants;
|
||||
import com.velocitypowered.proxy.connection.util.VelocityInboundConnection;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyDisconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyHandshake;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyPing;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyDisconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyHandshake;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyPing;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
|
@ -23,7 +23,7 @@ import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.backend.BungeeCordMessageResponder;
|
||||
import com.velocitypowered.proxy.connection.backend.VelocityServerConnection;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import io.netty.buffer.ByteBufUtil;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
@ -22,8 +22,8 @@ import com.velocitypowered.api.proxy.InboundConnection;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnectionAssociation;
|
||||
import com.velocitypowered.proxy.connection.util.VelocityInboundConnection;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.util.ClosestLocaleMatcher;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.Locale;
|
||||
|
@ -34,12 +34,12 @@ import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.crypto.IdentifiedKeyImpl;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.protocol.packet.EncryptionRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.EncryptionResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerLogin;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.EncryptionRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.EncryptionResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerLogin;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.security.GeneralSecurityException;
|
||||
|
@ -23,8 +23,8 @@ import com.velocitypowered.api.proxy.crypto.IdentifiedKey;
|
||||
import com.velocitypowered.api.proxy.crypto.KeyIdentifiable;
|
||||
import com.velocitypowered.api.proxy.messages.ChannelIdentifier;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginResponse;
|
||||
import io.netty.buffer.ByteBufUtil;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
|
@ -21,10 +21,10 @@ import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.util.VelocityInboundConnection;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyDisconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyPing;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusPing;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyDisconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyPing;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusPing;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusRequest;
|
||||
import com.velocitypowered.proxy.util.except.QuietRuntimeException;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
@ -23,7 +23,7 @@ import com.velocitypowered.proxy.connection.backend.BackendConnectionPhase;
|
||||
import com.velocitypowered.proxy.connection.backend.BackendConnectionPhases;
|
||||
import com.velocitypowered.proxy.connection.backend.VelocityServerConnection;
|
||||
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
|
@ -24,7 +24,7 @@ import com.velocitypowered.proxy.connection.backend.VelocityServerConnection;
|
||||
import com.velocitypowered.proxy.connection.client.ClientConnectionPhase;
|
||||
import com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler;
|
||||
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import java.util.List;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
@ -24,8 +24,8 @@ import static com.velocitypowered.proxy.connection.forge.legacy.LegacyForgeConst
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.velocitypowered.api.util.ModInfo;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import java.util.List;
|
||||
|
@ -18,7 +18,7 @@
|
||||
package com.velocitypowered.proxy.connection.registry;
|
||||
|
||||
import com.velocitypowered.proxy.connection.player.VelocityResourcePackInfo;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.RegistrySync;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.RegistrySync;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
@ -20,7 +20,7 @@ package com.velocitypowered.proxy.connection.util;
|
||||
import com.velocitypowered.api.proxy.ConnectionRequestBuilder;
|
||||
import com.velocitypowered.api.proxy.ConnectionRequestBuilder.Status;
|
||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import java.util.Optional;
|
||||
import javax.annotation.Nullable;
|
||||
import net.kyori.adventure.text.Component;
|
||||
|
@ -28,7 +28,7 @@ import com.velocitypowered.api.util.ModInfo;
|
||||
import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.config.PingPassthroughMode;
|
||||
import com.velocitypowered.proxy.config.VelocityConfiguration;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusResponse;
|
||||
import com.velocitypowered.proxy.server.VelocityRegisteredServer;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.ArrayList;
|
||||
|
@ -26,8 +26,13 @@ import com.velocitypowered.api.event.proxy.ListenerCloseEvent;
|
||||
import com.velocitypowered.api.network.ListenerType;
|
||||
import com.velocitypowered.natives.util.Natives;
|
||||
import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.network.netty.SeparatePoolInetNameResolver;
|
||||
import com.velocitypowered.proxy.protocol.netty.GameSpyQueryHandler;
|
||||
import com.velocitypowered.proxy.network.pipeline.initializers.BackendChannelInitializer;
|
||||
import com.velocitypowered.proxy.network.pipeline.initializers.BackendChannelInitializerHolder;
|
||||
import com.velocitypowered.proxy.network.pipeline.initializers.ServerChannelInitializer;
|
||||
import com.velocitypowered.proxy.network.pipeline.initializers.ServerChannelInitializerHolder;
|
||||
import com.velocitypowered.proxy.network.pipeline.query.GameSpyQueryHandler;
|
||||
import com.velocitypowered.proxy.network.util.SeparatePoolInetNameResolver;
|
||||
import com.velocitypowered.proxy.network.util.TransportType;
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.bootstrap.ServerBootstrap;
|
||||
import io.netty.channel.Channel;
|
||||
@ -154,7 +159,7 @@ public final class ConnectionManager {
|
||||
public void queryBind(final String hostname, final int port) {
|
||||
InetSocketAddress address = new InetSocketAddress(hostname, port);
|
||||
final Bootstrap bootstrap = new Bootstrap()
|
||||
.channelFactory(this.transportType.datagramChannelFactory)
|
||||
.channelFactory(this.transportType.getDatagramChannelFactory())
|
||||
.group(this.workerGroup)
|
||||
.handler(new GameSpyQueryHandler(this.server))
|
||||
.localAddress(address);
|
||||
@ -177,7 +182,7 @@ public final class ConnectionManager {
|
||||
/**
|
||||
* Creates a {@link Bootstrap} using Velocity's event loops.
|
||||
*
|
||||
* @param group the event loop group to use. Use {@code null} for the default worker group.
|
||||
* @param group the event loop group to use. Use {@code null} for the default worker group.
|
||||
* @param target the address the client will connect to
|
||||
* @return a new {@link Bootstrap}
|
||||
*/
|
||||
|
@ -15,14 +15,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.compression;
|
||||
|
||||
import static com.velocitypowered.natives.util.MoreByteBufUtils.ensureCompatible;
|
||||
import static com.velocitypowered.natives.util.MoreByteBufUtils.preferredBuffer;
|
||||
import static com.velocitypowered.proxy.protocol.util.NettyPreconditions.checkFrame;
|
||||
import static com.velocitypowered.proxy.network.protocol.util.NettyPreconditions.checkFrame;
|
||||
|
||||
import com.velocitypowered.natives.compression.VelocityCompressor;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToMessageDecoder;
|
@ -15,13 +15,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.compression;
|
||||
|
||||
import static com.velocitypowered.proxy.protocol.netty.MinecraftVarintLengthEncoder.IS_JAVA_CIPHER;
|
||||
import static com.velocitypowered.proxy.network.pipeline.framing.MinecraftVarintLengthEncoder.IS_JAVA_CIPHER;
|
||||
|
||||
import com.velocitypowered.natives.compression.VelocityCompressor;
|
||||
import com.velocitypowered.natives.util.MoreByteBufUtils;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
@ -15,13 +15,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.deser;
|
||||
|
||||
import static com.velocitypowered.proxy.protocol.util.NettyPreconditions.checkFrame;
|
||||
import static com.velocitypowered.proxy.network.protocol.util.NettyPreconditions.checkFrame;
|
||||
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyHandshake;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyPing;
|
||||
import com.velocitypowered.proxy.protocol.packet.legacyping.LegacyMinecraftPingVersion;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyHandshake;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyPing;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.legacyping.LegacyMinecraftPingVersion;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
@ -15,9 +15,9 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.deser;
|
||||
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyDisconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyDisconnect;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
@ -15,13 +15,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.deser;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.util.except.QuietRuntimeException;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
@ -15,13 +15,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.deser;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.encryption;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.velocitypowered.natives.encryption.VelocityCipher;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.encryption;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.velocitypowered.natives.encryption.VelocityCipher;
|
@ -15,9 +15,9 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.framing;
|
||||
|
||||
import com.velocitypowered.proxy.protocol.netty.VarintByteDecoder.DecodeResult;
|
||||
import com.velocitypowered.proxy.network.pipeline.framing.VarintByteDecoder.DecodeResult;
|
||||
import com.velocitypowered.proxy.util.except.QuietDecoderException;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
@ -15,11 +15,11 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.framing;
|
||||
|
||||
import com.velocitypowered.natives.encryption.JavaVelocityCipher;
|
||||
import com.velocitypowered.natives.util.Natives;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.framing;
|
||||
|
||||
import io.netty.util.ByteProcessor;
|
||||
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.network;
|
||||
package com.velocitypowered.proxy.network.pipeline.initializers;
|
||||
|
||||
import static com.velocitypowered.proxy.network.Connections.FLOW_HANDLER;
|
||||
import static com.velocitypowered.proxy.network.Connections.FRAME_DECODER;
|
||||
@ -25,12 +25,12 @@ import static com.velocitypowered.proxy.network.Connections.MINECRAFT_ENCODER;
|
||||
import static com.velocitypowered.proxy.network.Connections.READ_TIMEOUT;
|
||||
|
||||
import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.netty.AutoReadHolderHandler;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftEncoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftVarintFrameDecoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftVarintLengthEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.framing.MinecraftVarintFrameDecoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.framing.MinecraftVarintLengthEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.util.AutoReadHolderHandler;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.handler.timeout.ReadTimeoutHandler;
|
||||
@ -42,20 +42,25 @@ import java.util.concurrent.TimeUnit;
|
||||
@SuppressWarnings("WeakerAccess")
|
||||
public class BackendChannelInitializer extends ChannelInitializer<Channel> {
|
||||
|
||||
private final VelocityServer server;
|
||||
private final long readTimeoutMs;
|
||||
|
||||
public BackendChannelInitializer(VelocityServer server) {
|
||||
this.server = server;
|
||||
this(server.getConfiguration().getReadTimeout());
|
||||
}
|
||||
|
||||
public BackendChannelInitializer(long readTimeoutMs) {
|
||||
this.readTimeoutMs = readTimeoutMs;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initChannel(Channel ch) throws Exception {
|
||||
ch.pipeline()
|
||||
.addLast(FRAME_DECODER, new MinecraftVarintFrameDecoder())
|
||||
.addLast(READ_TIMEOUT,
|
||||
new ReadTimeoutHandler(server.getConfiguration().getReadTimeout(),
|
||||
TimeUnit.MILLISECONDS))
|
||||
.addLast(FRAME_ENCODER, MinecraftVarintLengthEncoder.INSTANCE)
|
||||
ch.pipeline().addLast(FRAME_DECODER, new MinecraftVarintFrameDecoder());
|
||||
if (this.readTimeoutMs > 0) {
|
||||
ch.pipeline().addLast(READ_TIMEOUT, new ReadTimeoutHandler(
|
||||
this.readTimeoutMs, TimeUnit.MILLISECONDS));
|
||||
}
|
||||
|
||||
ch.pipeline().addLast(FRAME_ENCODER, MinecraftVarintLengthEncoder.INSTANCE)
|
||||
.addLast(MINECRAFT_DECODER,
|
||||
new MinecraftDecoder(ProtocolUtils.Direction.CLIENTBOUND))
|
||||
.addLast(FLOW_HANDLER, new AutoReadHolderHandler())
|
@ -15,8 +15,9 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.network;
|
||||
package com.velocitypowered.proxy.network.pipeline.initializers;
|
||||
|
||||
import com.velocitypowered.proxy.network.ConnectionManager;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import java.util.function.Supplier;
|
||||
@ -31,7 +32,7 @@ public class BackendChannelInitializerHolder implements Supplier<ChannelInitiali
|
||||
private static final Logger LOGGER = LogManager.getLogger(ConnectionManager.class);
|
||||
private ChannelInitializer<Channel> initializer;
|
||||
|
||||
BackendChannelInitializerHolder(final ChannelInitializer<Channel> initializer) {
|
||||
public BackendChannelInitializerHolder(final ChannelInitializer<Channel> initializer) {
|
||||
this.initializer = initializer;
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.network;
|
||||
package com.velocitypowered.proxy.network.pipeline.initializers;
|
||||
|
||||
import static com.velocitypowered.proxy.network.Connections.FRAME_DECODER;
|
||||
import static com.velocitypowered.proxy.network.Connections.FRAME_ENCODER;
|
||||
@ -28,14 +28,15 @@ import static com.velocitypowered.proxy.network.Connections.READ_TIMEOUT;
|
||||
import com.velocitypowered.proxy.VelocityServer;
|
||||
import com.velocitypowered.proxy.connection.MinecraftConnection;
|
||||
import com.velocitypowered.proxy.connection.client.HandshakeSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.protocol.netty.LegacyPingDecoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.LegacyPingEncoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftEncoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftVarintFrameDecoder;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftVarintLengthEncoder;
|
||||
import com.velocitypowered.proxy.network.Connections;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.LegacyPingDecoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.LegacyPingEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftEncoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.framing.MinecraftVarintFrameDecoder;
|
||||
import com.velocitypowered.proxy.network.pipeline.framing.MinecraftVarintLengthEncoder;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.handler.codec.haproxy.HAProxyMessageDecoder;
|
@ -15,8 +15,9 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.network;
|
||||
package com.velocitypowered.proxy.network.pipeline.initializers;
|
||||
|
||||
import com.velocitypowered.proxy.network.ConnectionManager;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import java.util.function.Supplier;
|
||||
@ -31,7 +32,7 @@ public class ServerChannelInitializerHolder implements Supplier<ChannelInitializ
|
||||
private static final Logger LOGGER = LogManager.getLogger(ConnectionManager.class);
|
||||
private ChannelInitializer<Channel> initializer;
|
||||
|
||||
ServerChannelInitializerHolder(final ChannelInitializer<Channel> initializer) {
|
||||
public ServerChannelInitializerHolder(final ChannelInitializer<Channel> initializer) {
|
||||
this.initializer = initializer;
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.query;
|
||||
|
||||
import static com.velocitypowered.api.event.query.ProxyQueryEvent.QueryType.BASIC;
|
||||
import static com.velocitypowered.api.event.query.ProxyQueryEvent.QueryType.FULL;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.util;
|
||||
|
||||
import io.netty.channel.ChannelDuplexHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
@ -15,12 +15,12 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.netty;
|
||||
package com.velocitypowered.proxy.network.pipeline.util;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.StateRegistry;
|
||||
import io.netty.channel.ChannelDuplexHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelPromise;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol;
|
||||
package com.velocitypowered.proxy.network.pipeline.util;
|
||||
|
||||
/**
|
||||
* Describes various events fired during the course of a connection.
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol;
|
||||
package com.velocitypowered.proxy.network.protocol;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
@ -15,17 +15,17 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol;
|
||||
package com.velocitypowered.proxy.network.protocol;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.velocitypowered.proxy.protocol.util.NettyPreconditions.checkFrame;
|
||||
import static com.velocitypowered.proxy.network.protocol.util.NettyPreconditions.checkFrame;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.api.proxy.crypto.IdentifiedKey;
|
||||
import com.velocitypowered.api.util.GameProfile;
|
||||
import com.velocitypowered.proxy.crypto.IdentifiedKeyImpl;
|
||||
import com.velocitypowered.proxy.protocol.netty.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.protocol.util.VelocityLegacyHoverEventSerializer;
|
||||
import com.velocitypowered.proxy.network.pipeline.deser.MinecraftDecoder;
|
||||
import com.velocitypowered.proxy.network.protocol.util.VelocityLegacyHoverEventSerializer;
|
||||
import com.velocitypowered.proxy.util.except.QuietDecoderException;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufInputStream;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol;
|
||||
package com.velocitypowered.proxy.network.protocol;
|
||||
|
||||
import static com.google.common.collect.Iterables.getLast;
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_12;
|
||||
@ -40,60 +40,58 @@ import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_9;
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_9_4;
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINIMUM_VERSION;
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.SUPPORTED_VERSIONS;
|
||||
import static com.velocitypowered.proxy.protocol.ProtocolUtils.Direction;
|
||||
import static com.velocitypowered.proxy.protocol.ProtocolUtils.Direction.CLIENTBOUND;
|
||||
import static com.velocitypowered.proxy.protocol.ProtocolUtils.Direction.SERVERBOUND;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.protocol.packet.AvailableCommands;
|
||||
import com.velocitypowered.proxy.protocol.packet.BossBar;
|
||||
import com.velocitypowered.proxy.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.protocol.packet.EncryptionRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.EncryptionResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.protocol.packet.HeaderAndFooter;
|
||||
import com.velocitypowered.proxy.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.protocol.packet.LegacyPlayerListItem;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginAcknowledged;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.PingIdentify;
|
||||
import com.velocitypowered.proxy.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.protocol.packet.RemovePlayerInfo;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.Respawn;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerData;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerLogin;
|
||||
import com.velocitypowered.proxy.protocol.packet.ServerLoginSuccess;
|
||||
import com.velocitypowered.proxy.protocol.packet.SetCompression;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusPing;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.StatusResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.TabCompleteRequest;
|
||||
import com.velocitypowered.proxy.protocol.packet.TabCompleteResponse;
|
||||
import com.velocitypowered.proxy.protocol.packet.UpsertPlayerInfo;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.ChatAcknowledgement;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.PlayerChatCompletion;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.SystemChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.keyed.KeyedPlayerChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.keyed.KeyedPlayerCommand;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.legacy.LegacyChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.session.SessionPlayerChat;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.session.SessionPlayerCommand;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.ActiveFeatures;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.RegistrySync;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.config.TagsUpdate;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.LegacyTitlePacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleActionbarPacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleClearPacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleSubtitlePacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleTextPacket;
|
||||
import com.velocitypowered.proxy.protocol.packet.title.TitleTimesPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.AvailableCommands;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.BossBarPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ClientSettings;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Disconnect;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.EncryptionRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.EncryptionResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Handshake;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.HeaderAndFooter;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.JoinGame;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.KeepAlive;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LegacyPlayerListItem;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginAcknowledged;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.LoginPluginResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PingIdentify;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.PluginMessage;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.RemovePlayerInfo;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ResourcePackResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.Respawn;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerData;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerLogin;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.ServerLoginSuccess;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.SetCompression;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusPing;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.StatusResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.TabCompleteRequest;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.TabCompleteResponse;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.UpsertPlayerInfo;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.ChatAcknowledgement;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.PlayerChatCompletion;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.SystemChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.keyed.KeyedPlayerChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.keyed.KeyedPlayerCommand;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.legacy.LegacyChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.session.SessionPlayerChat;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.session.SessionPlayerCommand;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.ActiveFeatures;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.FinishedUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.RegistrySync;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.StartUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.config.TagsUpdate;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.LegacyTitlePacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleActionbarPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleClearPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleSubtitlePacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleTextPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.title.TitleTimesPacket;
|
||||
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
|
||||
import io.netty.util.collection.IntObjectHashMap;
|
||||
import io.netty.util.collection.IntObjectMap;
|
||||
@ -107,7 +105,9 @@ import java.util.Objects;
|
||||
import java.util.function.Supplier;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
/** Registry of all Minecraft protocol states and the packets for each state. */
|
||||
/**
|
||||
* Registry of all Minecraft protocol states and the packets for each state.
|
||||
*/
|
||||
public enum StateRegistry {
|
||||
|
||||
HANDSHAKE {
|
||||
@ -186,9 +186,9 @@ public enum StateRegistry {
|
||||
map(0x02, MINECRAFT_1_12_1, false),
|
||||
map(0x03, MINECRAFT_1_14, MINECRAFT_1_18_2, false));
|
||||
serverbound.register(
|
||||
ChatAcknowledgement.class,
|
||||
ChatAcknowledgement::new,
|
||||
map(0x03, MINECRAFT_1_19_3, false));
|
||||
ChatAcknowledgement.class,
|
||||
ChatAcknowledgement::new,
|
||||
map(0x03, MINECRAFT_1_19_3, false));
|
||||
serverbound.register(KeyedPlayerCommand.class, KeyedPlayerCommand::new,
|
||||
map(0x03, MINECRAFT_1_19, false),
|
||||
map(0x04, MINECRAFT_1_19_1, MINECRAFT_1_19_1, false));
|
||||
@ -262,8 +262,8 @@ public enum StateRegistry {
|
||||
FinishedUpdate.class, FinishedUpdate::new, map(0x0B, MINECRAFT_1_20_2, false));
|
||||
|
||||
clientbound.register(
|
||||
BossBar.class,
|
||||
BossBar::new,
|
||||
BossBarPacket.class,
|
||||
BossBarPacket::new,
|
||||
map(0x0C, MINECRAFT_1_9, false),
|
||||
map(0x0D, MINECRAFT_1_15, false),
|
||||
map(0x0C, MINECRAFT_1_16, false),
|
||||
@ -550,15 +550,18 @@ public enum StateRegistry {
|
||||
|
||||
public static final int STATUS_ID = 1;
|
||||
public static final int LOGIN_ID = 2;
|
||||
protected final PacketRegistry clientbound = new PacketRegistry(CLIENTBOUND, this);
|
||||
protected final PacketRegistry serverbound = new PacketRegistry(SERVERBOUND, this);
|
||||
protected final PacketRegistry clientbound = new PacketRegistry(Direction.CLIENTBOUND, this);
|
||||
protected final PacketRegistry serverbound = new PacketRegistry(Direction.SERVERBOUND, this);
|
||||
|
||||
public StateRegistry.PacketRegistry.ProtocolRegistry getProtocolRegistry(Direction direction,
|
||||
ProtocolVersion version) {
|
||||
return (direction == SERVERBOUND ? serverbound : clientbound).getProtocolRegistry(version);
|
||||
return (direction == Direction.SERVERBOUND ? serverbound : clientbound).getProtocolRegistry(
|
||||
version);
|
||||
}
|
||||
|
||||
/** Packet registry. */
|
||||
/**
|
||||
* Packet registry.
|
||||
*/
|
||||
public static class PacketRegistry {
|
||||
|
||||
private final Direction direction;
|
||||
@ -656,7 +659,9 @@ public enum StateRegistry {
|
||||
}
|
||||
}
|
||||
|
||||
/** Protocol registry. */
|
||||
/**
|
||||
* Protocol registry.
|
||||
*/
|
||||
public class ProtocolRegistry {
|
||||
|
||||
public final ProtocolVersion version;
|
||||
@ -697,7 +702,7 @@ public enum StateRegistry {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"Unable to find id for packet of type %s in %s protocol %s phase %s",
|
||||
packet.getClass().getName(), PacketRegistry.this.direction,
|
||||
this.version, PacketRegistry.this.registry
|
||||
this.version, PacketRegistry.this.registry
|
||||
));
|
||||
}
|
||||
return id;
|
||||
@ -715,7 +720,9 @@ public enum StateRegistry {
|
||||
}
|
||||
}
|
||||
|
||||
/** Packet mapping. */
|
||||
/**
|
||||
* Packet mapping.
|
||||
*/
|
||||
public static final class PacketMapping {
|
||||
|
||||
private final int id;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
@ -36,10 +36,10 @@ import com.mojang.brigadier.tree.RootCommandNode;
|
||||
import com.velocitypowered.api.command.CommandSource;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentPropertyRegistry;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.brigadier.ArgumentPropertyRegistry;
|
||||
import com.velocitypowered.proxy.util.collect.IdentityHashStrategy;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenCustomHashMap;
|
@ -15,17 +15,18 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.UUID;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
public class BossBar implements MinecraftPacket {
|
||||
public class BossBarPacket implements MinecraftPacket {
|
||||
|
||||
public static final int ADD = 0;
|
||||
public static final int REMOVE = 1;
|
||||
@ -114,7 +115,7 @@ public class BossBar implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
this.uuid = ProtocolUtils.readUuid(buf);
|
||||
this.action = ProtocolUtils.readVarInt(buf);
|
||||
switch (action) {
|
||||
@ -191,8 +192,8 @@ public class BossBar implements MinecraftPacket {
|
||||
return handler.handle(this);
|
||||
}
|
||||
|
||||
public static BossBar createRemovePacket(UUID id) {
|
||||
BossBar packet = new BossBar();
|
||||
public static BossBarPacket createRemovePacket(UUID id) {
|
||||
BossBarPacket packet = new BossBarPacket();
|
||||
packet.setUuid(id);
|
||||
packet.setAction(REMOVE);
|
||||
return packet;
|
@ -15,18 +15,19 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
public class ClientSettings implements MinecraftPacket {
|
||||
|
||||
private @Nullable String locale;
|
||||
private byte viewDistance;
|
||||
private int chatVisibility;
|
||||
@ -120,14 +121,14 @@ public class ClientSettings implements MinecraftPacket {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ClientSettings{" + "locale='" + locale + '\'' + ", viewDistance=" + viewDistance +
|
||||
", chatVisibility=" + chatVisibility + ", chatColors=" + chatColors + ", skinParts=" +
|
||||
skinParts + ", mainHand=" + mainHand + ", chatFilteringEnabled=" + chatFilteringEnabled +
|
||||
", clientListingAllowed=" + clientListingAllowed + '}';
|
||||
return "ClientSettings{" + "locale='" + locale + '\'' + ", viewDistance=" + viewDistance
|
||||
+ ", chatVisibility=" + chatVisibility + ", chatColors=" + chatColors + ", skinParts="
|
||||
+ skinParts + ", mainHand=" + mainHand + ", chatFilteringEnabled=" + chatFilteringEnabled
|
||||
+ ", clientListingAllowed=" + clientListingAllowed + '}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
this.locale = ProtocolUtils.readString(buf, 16);
|
||||
this.viewDistance = buf.readByte();
|
||||
this.chatVisibility = ProtocolUtils.readVarInt(buf);
|
@ -15,13 +15,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -55,7 +56,7 @@ public class Disconnect implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
reason = ProtocolUtils.readString(buf);
|
||||
}
|
||||
|
@ -15,14 +15,15 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import static com.velocitypowered.proxy.connection.VelocityConstants.EMPTY_BYTE_ARRAY;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.Arrays;
|
||||
|
||||
@ -57,7 +58,7 @@ public class EncryptionRequest implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
this.serverId = ProtocolUtils.readString(buf, 20);
|
||||
|
||||
if (version.compareTo(ProtocolVersion.MINECRAFT_1_8) >= 0) {
|
@ -15,24 +15,23 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import static com.velocitypowered.proxy.connection.VelocityConstants.EMPTY_BYTE_ARRAY;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.util.except.QuietDecoderException;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
public class EncryptionResponse implements MinecraftPacket {
|
||||
|
||||
private final static QuietDecoderException NO_SALT = new QuietDecoderException(
|
||||
private static final QuietDecoderException NO_SALT = new QuietDecoderException(
|
||||
"Encryption response didn't contain salt");
|
||||
|
||||
private byte[] sharedSecret = EMPTY_BYTE_ARRAY;
|
||||
@ -63,7 +62,7 @@ public class EncryptionResponse implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
if (version.compareTo(ProtocolVersion.MINECRAFT_1_8) >= 0) {
|
||||
this.sharedSecret = ProtocolUtils.readByteArray(buf, 128);
|
||||
|
@ -15,14 +15,15 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import static com.velocitypowered.proxy.connection.forge.legacy.LegacyForgeConstants.HANDSHAKE_HOSTNAME_TOKEN;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class Handshake implements MinecraftPacket {
|
||||
@ -78,7 +79,7 @@ public class Handshake implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion ignored) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion ignored) {
|
||||
int realProtocolVersion = ProtocolUtils.readVarInt(buf);
|
||||
this.protocolVersion = ProtocolVersion.getProtocolVersion(realProtocolVersion);
|
||||
this.serverAddress = ProtocolUtils.readString(buf, MAXIMUM_HOSTNAME_LENGTH);
|
@ -15,15 +15,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
|
||||
import static com.velocitypowered.proxy.protocol.ProtocolUtils.writeString;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
@ -54,14 +53,14 @@ public class HeaderAndFooter implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
throw new UnsupportedOperationException("Decode is not implemented");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void encode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
writeString(buf, header);
|
||||
writeString(buf, footer);
|
||||
public void encode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
ProtocolUtils.writeString(buf, header);
|
||||
ProtocolUtils.writeString(buf, footer);
|
||||
}
|
||||
|
||||
@Override
|
@ -15,13 +15,15 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.registry.DimensionInfo;
|
||||
import com.velocitypowered.proxy.protocol.*;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.Pair;
|
||||
import net.kyori.adventure.nbt.BinaryTagIO;
|
||||
@ -186,20 +188,20 @@ public class JoinGame implements MinecraftPacket {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JoinGame{" + "entityId=" + entityId + ", gamemode=" + gamemode + ", dimension=" +
|
||||
dimension + ", partialHashedSeed=" + partialHashedSeed + ", difficulty=" + difficulty +
|
||||
", isHardcore=" + isHardcore + ", maxPlayers=" + maxPlayers + ", levelType='" + levelType +
|
||||
'\'' + ", viewDistance=" + viewDistance + ", reducedDebugInfo=" + reducedDebugInfo +
|
||||
", showRespawnScreen=" + showRespawnScreen + ", doLimitedCrafting=" + doLimitedCrafting +
|
||||
", levelNames=" + levelNames + ", registry='" + registry + '\'' + ", dimensionInfo='" +
|
||||
dimensionInfo + '\'' + ", currentDimensionData='" + currentDimensionData + '\'' +
|
||||
", previousGamemode=" + previousGamemode + ", simulationDistance=" + simulationDistance +
|
||||
", lastDeathPosition='" + lastDeathPosition + '\'' + ", portalCooldown=" + portalCooldown +
|
||||
'}';
|
||||
return "JoinGame{" + "entityId=" + entityId + ", gamemode=" + gamemode + ", dimension="
|
||||
+ dimension + ", partialHashedSeed=" + partialHashedSeed + ", difficulty=" + difficulty
|
||||
+ ", isHardcore=" + isHardcore + ", maxPlayers=" + maxPlayers + ", levelType='" + levelType
|
||||
+ '\'' + ", viewDistance=" + viewDistance + ", reducedDebugInfo=" + reducedDebugInfo
|
||||
+ ", showRespawnScreen=" + showRespawnScreen + ", doLimitedCrafting=" + doLimitedCrafting
|
||||
+ ", levelNames=" + levelNames + ", registry='" + registry + '\'' + ", dimensionInfo='"
|
||||
+ dimensionInfo + '\'' + ", currentDimensionData='" + currentDimensionData + '\''
|
||||
+ ", previousGamemode=" + previousGamemode + ", simulationDistance=" + simulationDistance
|
||||
+ ", lastDeathPosition='" + lastDeathPosition + '\'' + ", portalCooldown=" + portalCooldown
|
||||
+ '}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
if (version.compareTo(ProtocolVersion.MINECRAFT_1_20_2) >= 0) {
|
||||
// haha funny, they made 1.20.2 more complicated
|
||||
this.decode1202Up(buf, version);
|
||||
@ -311,8 +313,10 @@ public class JoinGame implements MinecraftPacket {
|
||||
this.showRespawnScreen = buf.readBoolean();
|
||||
this.doLimitedCrafting = buf.readBoolean();
|
||||
|
||||
// CHECKSTYLE.OFF: VariableDeclarationUsageDistance - we can't pull this down, side effects
|
||||
String dimensionIdentifier = ProtocolUtils.readString(buf);
|
||||
String levelName = ProtocolUtils.readString(buf);
|
||||
// CHECKSTYLE.ON: VariableDeclarationUsageDistance - we can't pull this down, side effects
|
||||
this.partialHashedSeed = buf.readLong();
|
||||
|
||||
this.gamemode = buf.readByte();
|
@ -15,12 +15,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class KeepAlive implements MinecraftPacket {
|
||||
@ -43,7 +44,7 @@ public class KeepAlive implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
if (version.compareTo(ProtocolVersion.MINECRAFT_1_12_2) >= 0) {
|
||||
randomId = buf.readLong();
|
||||
} else if (version.compareTo(ProtocolVersion.MINECRAFT_1_8) >= 0) {
|
@ -15,12 +15,12 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.velocitypowered.api.proxy.server.ServerPing;
|
||||
import com.velocitypowered.api.proxy.server.ServerPing.Players;
|
||||
import com.velocitypowered.proxy.protocol.packet.legacyping.LegacyMinecraftPingVersion;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.legacyping.LegacyMinecraftPingVersion;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
@ -15,23 +15,23 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class LegacyHandshake implements MinecraftPacket {
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void encode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void encode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
@ -15,13 +15,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.packet.legacyping.LegacyMinecraftPingVersion;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.legacyping.LegacyMinecraftPingVersion;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.net.InetSocketAddress;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
@ -50,12 +50,12 @@ public class LegacyPing implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void encode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void encode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
@ -23,8 +23,9 @@ import com.velocitypowered.api.proxy.crypto.IdentifiedKey;
|
||||
import com.velocitypowered.api.proxy.player.TabListEntry;
|
||||
import com.velocitypowered.api.util.GameProfile;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -60,7 +61,7 @@ public class LegacyPlayerListItem implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
if (version.compareTo(ProtocolVersion.MINECRAFT_1_8) >= 0) {
|
||||
action = ProtocolUtils.readVarInt(buf);
|
||||
int length = ProtocolUtils.readVarInt(buf);
|
@ -15,29 +15,29 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class LoginAcknowledged implements MinecraftPacket {
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction,
|
||||
ProtocolVersion protocolVersion) {
|
||||
public void decode(ByteBuf buf, Direction direction,
|
||||
ProtocolVersion protocolVersion) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void encode(ByteBuf buf, ProtocolUtils.Direction direction,
|
||||
ProtocolVersion protocolVersion) {
|
||||
public void encode(ByteBuf buf, Direction direction,
|
||||
ProtocolVersion protocolVersion) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int expectedMaxLength(ByteBuf buf, ProtocolUtils.Direction direction,
|
||||
ProtocolVersion version) {
|
||||
public int expectedMaxLength(ByteBuf buf, Direction direction,
|
||||
ProtocolVersion version) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -15,13 +15,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.util.DeferredByteBufHolder;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.util.DeferredByteBufHolder;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
@ -62,7 +63,7 @@ public class LoginPluginMessage extends DeferredByteBufHolder implements Minecra
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
this.id = ProtocolUtils.readVarInt(buf);
|
||||
this.channel = ProtocolUtils.readString(buf);
|
||||
if (buf.isReadable()) {
|
@ -15,13 +15,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.util.DeferredByteBufHolder;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.util.DeferredByteBufHolder;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
@ -67,7 +68,7 @@ public class LoginPluginResponse extends DeferredByteBufHolder implements Minecr
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
this.id = ProtocolUtils.readVarInt(buf);
|
||||
this.success = buf.readBoolean();
|
||||
if (buf.isReadable()) {
|
@ -15,12 +15,12 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class PingIdentify implements MinecraftPacket {
|
||||
@ -33,12 +33,12 @@ public class PingIdentify implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
id = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void encode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void encode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
buf.writeInt(id);
|
||||
}
|
||||
|
@ -15,15 +15,16 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import static com.velocitypowered.proxy.protocol.util.PluginMessageUtil.transformLegacyToModernChannel;
|
||||
import static com.velocitypowered.proxy.network.protocol.util.PluginMessageUtil.transformLegacyToModernChannel;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.util.DeferredByteBufHolder;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.util.DeferredByteBufHolder;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
@ -62,7 +63,7 @@ public class PluginMessage extends DeferredByteBufHolder implements MinecraftPac
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
this.channel = ProtocolUtils.readString(buf);
|
||||
if (version.compareTo(ProtocolVersion.MINECRAFT_1_13) >= 0) {
|
||||
this.channel = transformLegacyToModernChannel(this.channel);
|
@ -15,13 +15,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@ -48,7 +49,7 @@ public class RemovePlayerInfo implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction,
|
||||
public void decode(ByteBuf buf, Direction direction,
|
||||
ProtocolVersion protocolVersion) {
|
||||
int length = ProtocolUtils.readVarInt(buf);
|
||||
Collection<UUID> profilesToRemove = Lists.newArrayListWithCapacity(length);
|
@ -15,25 +15,24 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.api.proxy.player.ResourcePackInfo;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.player.VelocityResourcePackInfo;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufUtil;
|
||||
import java.util.regex.Pattern;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class ResourcePackRequest implements MinecraftPacket {
|
||||
|
||||
private @MonotonicNonNull String url;
|
||||
@ -127,7 +126,7 @@ public class ResourcePackRequest implements MinecraftPacket {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ResourcePackRequest{" + "url='" + url + '\'' + ", hash='" + hash + '\'' +
|
||||
", isRequired=" + isRequired + ", prompt='" + prompt + '\'' + '}';
|
||||
return "ResourcePackRequest{" + "url='" + url + '\'' + ", hash='" + hash + '\''
|
||||
+ ", isRequired=" + isRequired + ", prompt='" + prompt + '\'' + '}';
|
||||
}
|
||||
}
|
@ -15,14 +15,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.event.player.PlayerResourcePackStatusEvent.Status;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
|
@ -15,13 +15,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.connection.registry.DimensionInfo;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.Pair;
|
||||
import net.kyori.adventure.nbt.BinaryTagIO;
|
||||
@ -66,7 +67,8 @@ public class Respawn implements MinecraftPacket {
|
||||
return new Respawn(joinGame.getDimension(), joinGame.getPartialHashedSeed(),
|
||||
joinGame.getDifficulty(), joinGame.getGamemode(), joinGame.getLevelType(),
|
||||
(byte) 0, joinGame.getDimensionInfo(), joinGame.getPreviousGamemode(),
|
||||
joinGame.getCurrentDimensionData(), joinGame.getLastDeathPosition(), joinGame.getPortalCooldown());
|
||||
joinGame.getCurrentDimensionData(), joinGame.getLastDeathPosition(),
|
||||
joinGame.getPortalCooldown());
|
||||
}
|
||||
|
||||
public int getDimension() {
|
||||
@ -159,7 +161,7 @@ public class Respawn implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
String dimensionIdentifier = null;
|
||||
String levelName = null;
|
||||
if (version.compareTo(ProtocolVersion.MINECRAFT_1_16) >= 0) {
|
@ -15,18 +15,19 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.api.util.Favicon;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Base64;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class ServerData implements MinecraftPacket {
|
||||
|
||||
@ -45,7 +46,7 @@ public class ServerData implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction,
|
||||
public void decode(ByteBuf buf, Direction direction,
|
||||
ProtocolVersion protocolVersion) {
|
||||
if (protocolVersion.compareTo(ProtocolVersion.MINECRAFT_1_19_4) >= 0 || buf.readBoolean()) {
|
||||
this.description = ProtocolUtils.getJsonChatSerializer(protocolVersion)
|
||||
@ -55,7 +56,8 @@ public class ServerData implements MinecraftPacket {
|
||||
String iconBase64;
|
||||
if (protocolVersion.compareTo(ProtocolVersion.MINECRAFT_1_19_4) >= 0) {
|
||||
byte[] iconBytes = ProtocolUtils.readByteArray(buf);
|
||||
iconBase64 = "data:image/png;base64," + new String(Base64.getEncoder().encode(iconBytes), StandardCharsets.UTF_8);
|
||||
iconBase64 = "data:image/png;base64," + new String(Base64.getEncoder().encode(iconBytes),
|
||||
StandardCharsets.UTF_8);
|
||||
} else {
|
||||
iconBase64 = ProtocolUtils.readString(buf);
|
||||
}
|
||||
@ -88,7 +90,8 @@ public class ServerData implements MinecraftPacket {
|
||||
if (hasFavicon) {
|
||||
if (protocolVersion.compareTo(ProtocolVersion.MINECRAFT_1_19_4) >= 0) {
|
||||
String cutIconBase64 = favicon.getBase64Url().substring("data:image/png;base64,".length());
|
||||
byte[] iconBytes = Base64.getDecoder().decode(cutIconBase64.getBytes(StandardCharsets.UTF_8));
|
||||
byte[] iconBytes = Base64.getDecoder()
|
||||
.decode(cutIconBase64.getBytes(StandardCharsets.UTF_8));
|
||||
ProtocolUtils.writeByteArray(buf, iconBytes);
|
||||
} else {
|
||||
ProtocolUtils.writeString(buf, favicon.getBase64Url());
|
@ -15,20 +15,19 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.api.proxy.crypto.IdentifiedKey;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.util.except.QuietDecoderException;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
import java.util.UUID;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
public class ServerLogin implements MinecraftPacket {
|
||||
|
@ -15,16 +15,16 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.api.util.GameProfile;
|
||||
import com.velocitypowered.api.util.UuidUtils;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
@ -75,7 +75,7 @@ public class ServerLoginSuccess implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
if (version.compareTo(ProtocolVersion.MINECRAFT_1_19) >= 0) {
|
||||
uuid = ProtocolUtils.readUuid(buf);
|
||||
} else if (version.compareTo(ProtocolVersion.MINECRAFT_1_16) >= 0) {
|
@ -15,12 +15,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class SetCompression implements MinecraftPacket {
|
||||
@ -50,7 +51,7 @@ public class SetCompression implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
this.threshold = ProtocolUtils.readVarInt(buf);
|
||||
}
|
||||
|
@ -15,13 +15,12 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class StatusPing implements MinecraftPacket {
|
||||
@ -29,12 +28,12 @@ public class StatusPing implements MinecraftPacket {
|
||||
private long randomId;
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
randomId = buf.readLong();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void encode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void encode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
buf.writeLong(randomId);
|
||||
}
|
||||
|
@ -15,13 +15,12 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class StatusRequest implements MinecraftPacket {
|
||||
@ -33,12 +32,12 @@ public class StatusRequest implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
// There is no additional data to decode.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void encode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void encode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
// There is no data to decode.
|
||||
}
|
||||
|
@ -15,12 +15,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -50,7 +51,7 @@ public class StatusResponse implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
status = ProtocolUtils.readString(buf, Short.MAX_VALUE);
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_13;
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_8;
|
||||
@ -24,8 +24,9 @@ import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_9;
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -94,7 +95,7 @@ public class TabCompleteRequest implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
if (version.compareTo(MINECRAFT_1_13) >= 0) {
|
||||
this.transactionId = ProtocolUtils.readVarInt(buf);
|
||||
this.command = ProtocolUtils.readString(buf, VANILLA_MAX_TAB_COMPLETE_LEN);
|
@ -15,15 +15,16 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_13;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -76,7 +77,7 @@ public class TabCompleteResponse implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) {
|
||||
public void decode(ByteBuf buf, Direction direction, ProtocolVersion version) {
|
||||
if (version.compareTo(MINECRAFT_1_13) >= 0) {
|
||||
this.transactionId = ProtocolUtils.readVarInt(buf);
|
||||
this.start = ProtocolUtils.readVarInt(buf);
|
@ -15,14 +15,15 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet;
|
||||
package com.velocitypowered.proxy.network.protocol.packet;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.api.util.GameProfile;
|
||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.protocol.packet.chat.RemoteChatSession;
|
||||
import com.velocitypowered.proxy.network.protocol.MinecraftPacket;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils.Direction;
|
||||
import com.velocitypowered.proxy.network.protocol.packet.chat.RemoteChatSession;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@ -83,7 +84,7 @@ public class UpsertPlayerInfo implements MinecraftPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction,
|
||||
public void decode(ByteBuf buf, Direction direction,
|
||||
ProtocolVersion protocolVersion) {
|
||||
Action[] actions = Action.class.getEnumConstants();
|
||||
byte[] bytes = new byte[-Math.floorDiv(-actions.length, 8)];
|
||||
@ -283,15 +284,15 @@ public class UpsertPlayerInfo implements MinecraftPacket {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Entry{" +
|
||||
"profileId=" + profileId +
|
||||
", profile=" + profile +
|
||||
", listed=" + listed +
|
||||
", latency=" + latency +
|
||||
", gameMode=" + gameMode +
|
||||
", displayName=" + displayName +
|
||||
", chatSession=" + chatSession +
|
||||
'}';
|
||||
return "Entry{"
|
||||
+ "profileId=" + profileId
|
||||
+ ", profile=" + profile
|
||||
+ ", listed=" + listed
|
||||
+ ", latency=" + latency
|
||||
+ ", gameMode=" + gameMode
|
||||
+ ", displayName=" + displayName
|
||||
+ ", chatSession=" + chatSession
|
||||
+ '}';
|
||||
}
|
||||
}
|
||||
}
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.ImmutableMap;
|
@ -15,20 +15,18 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_19;
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_19_3;
|
||||
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_19_4;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentIdentifier.id;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentIdentifier.mapSet;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.DoubleArgumentPropertySerializer.DOUBLE;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.EmptyArgumentPropertySerializer.EMPTY;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.FloatArgumentPropertySerializer.FLOAT;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.INTEGER;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.LongArgumentPropertySerializer.LONG;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.ModArgumentPropertySerializer.MOD;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.StringArgumentPropertySerializer.STRING;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.ArgumentIdentifier.id;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.ArgumentIdentifier.mapSet;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.DoubleArgumentPropertySerializer.DOUBLE;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.EmptyArgumentPropertySerializer.EMPTY;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.FloatArgumentPropertySerializer.FLOAT;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.IntegerArgumentPropertySerializer.INTEGER;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.ModArgumentPropertySerializer.MOD;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.mojang.brigadier.arguments.ArgumentType;
|
||||
@ -39,7 +37,7 @@ import com.mojang.brigadier.arguments.IntegerArgumentType;
|
||||
import com.mojang.brigadier.arguments.LongArgumentType;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -191,8 +189,10 @@ public class ArgumentPropertyRegistry {
|
||||
register(id("brigadier:double", mapSet(MINECRAFT_1_19, 2)), DoubleArgumentType.class, DOUBLE);
|
||||
register(id("brigadier:integer", mapSet(MINECRAFT_1_19, 3)), IntegerArgumentType.class,
|
||||
INTEGER);
|
||||
register(id("brigadier:long", mapSet(MINECRAFT_1_19, 4)), LongArgumentType.class, LONG);
|
||||
register(id("brigadier:string", mapSet(MINECRAFT_1_19, 5)), StringArgumentType.class, STRING);
|
||||
register(id("brigadier:long", mapSet(MINECRAFT_1_19, 4)), LongArgumentType.class,
|
||||
LongArgumentPropertySerializer.LONG);
|
||||
register(id("brigadier:string", mapSet(MINECRAFT_1_19, 5)), StringArgumentType.class,
|
||||
StringArgumentPropertySerializer.STRING);
|
||||
|
||||
empty(id("minecraft:entity", mapSet(MINECRAFT_1_19, 6)), ByteArgumentPropertySerializer.BYTE);
|
||||
empty(id("minecraft:game_profile", mapSet(MINECRAFT_1_19, 7)));
|
||||
@ -253,7 +253,8 @@ public class ArgumentPropertyRegistry {
|
||||
empty(id("minecraft:template_rotation", mapSet(MINECRAFT_1_19, 46))); // 1.19
|
||||
empty(id("minecraft:heightmap", mapSet(MINECRAFT_1_19_4, 47))); // 1.19.4
|
||||
|
||||
empty(id("minecraft:uuid", mapSet(MINECRAFT_1_19_4, 48), mapSet(MINECRAFT_1_19, 47))); // added in 1.16
|
||||
empty(id("minecraft:uuid", mapSet(MINECRAFT_1_19_4, 48),
|
||||
mapSet(MINECRAFT_1_19, 47))); // added in 1.16
|
||||
|
||||
// Crossstitch support
|
||||
register(id("crossstitch:mod_argument", mapSet(MINECRAFT_1_19, -256)),
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import io.netty.buffer.ByteBuf;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import io.netty.buffer.ByteBuf;
|
@ -15,11 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MAXIMUM;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MINIMUM;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.getFlags;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.mojang.brigadier.arguments.DoubleArgumentType;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
@ -35,8 +31,10 @@ class DoubleArgumentPropertySerializer implements ArgumentPropertySerializer<Dou
|
||||
@Override
|
||||
public DoubleArgumentType deserialize(ByteBuf buf, ProtocolVersion protocolVersion) {
|
||||
byte flags = buf.readByte();
|
||||
double minimum = (flags & HAS_MINIMUM) != 0 ? buf.readDouble() : Double.MIN_VALUE;
|
||||
double maximum = (flags & HAS_MAXIMUM) != 0 ? buf.readDouble() : Double.MAX_VALUE;
|
||||
double minimum = (flags & IntegerArgumentPropertySerializer.HAS_MINIMUM) != 0 ? buf.readDouble()
|
||||
: Double.MIN_VALUE;
|
||||
double maximum = (flags & IntegerArgumentPropertySerializer.HAS_MAXIMUM) != 0 ? buf.readDouble()
|
||||
: Double.MAX_VALUE;
|
||||
return DoubleArgumentType.doubleArg(minimum, maximum);
|
||||
}
|
||||
|
||||
@ -44,7 +42,7 @@ class DoubleArgumentPropertySerializer implements ArgumentPropertySerializer<Dou
|
||||
public void serialize(DoubleArgumentType object, ByteBuf buf, ProtocolVersion protocolVersion) {
|
||||
boolean hasMinimum = Double.compare(object.getMinimum(), Double.MIN_VALUE) != 0;
|
||||
boolean hasMaximum = Double.compare(object.getMaximum(), Double.MAX_VALUE) != 0;
|
||||
byte flag = getFlags(hasMinimum, hasMaximum);
|
||||
byte flag = IntegerArgumentPropertySerializer.getFlags(hasMinimum, hasMaximum);
|
||||
|
||||
buf.writeByte(flag);
|
||||
if (hasMinimum) {
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import io.netty.buffer.ByteBuf;
|
@ -15,11 +15,11 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MAXIMUM;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MINIMUM;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.getFlags;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MAXIMUM;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MINIMUM;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.IntegerArgumentPropertySerializer.getFlags;
|
||||
|
||||
import com.mojang.brigadier.arguments.FloatArgumentType;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.mojang.brigadier.arguments.IntegerArgumentType;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
@ -15,11 +15,11 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MAXIMUM;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MINIMUM;
|
||||
import static com.velocitypowered.proxy.protocol.packet.brigadier.IntegerArgumentPropertySerializer.getFlags;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MAXIMUM;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.IntegerArgumentPropertySerializer.HAS_MINIMUM;
|
||||
import static com.velocitypowered.proxy.network.protocol.packet.brigadier.IntegerArgumentPropertySerializer.getFlags;
|
||||
|
||||
import com.mojang.brigadier.arguments.LongArgumentType;
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.mojang.brigadier.StringReader;
|
||||
import com.mojang.brigadier.arguments.ArgumentType;
|
@ -15,10 +15,10 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||
import com.velocitypowered.proxy.network.protocol.ProtocolUtils;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.velocitypowered.proxy.protocol.packet.brigadier;
|
||||
package com.velocitypowered.proxy.network.protocol.packet.brigadier;
|
||||
|
||||
import com.mojang.brigadier.StringReader;
|
||||
import com.mojang.brigadier.arguments.ArgumentType;
|
Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden Mehr anzeigen
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren