From 78abf8be00c5fde15fb2a6bb3e8773109254eb31 Mon Sep 17 00:00:00 2001 From: EnZaXD Date: Wed, 21 Aug 2024 16:56:20 +0200 Subject: [PATCH] Use RedirectProtocolVersion#getOrigin in InitialBaseProtocol if possible (#4110) This way, we should be able to get rid of manually adding the base protocol in projects like ViaAprilFools: https://github.com/ViaVersion/ViaAprilFools/blob/main/common/src/main/java/net/raphimc/viaaprilfools/protocol/s3d_sharewaretov1_14/Protocol3D_SharewareTo1_14.java#L87 --- .../viaversion/protocol/RedirectProtocolVersion.java | 5 +++-- .../viaversion/protocols/base/InitialBaseProtocol.java | 7 ++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/com/viaversion/viaversion/protocol/RedirectProtocolVersion.java b/common/src/main/java/com/viaversion/viaversion/protocol/RedirectProtocolVersion.java index 5a90c924a..dc28c6b48 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocol/RedirectProtocolVersion.java +++ b/common/src/main/java/com/viaversion/viaversion/protocol/RedirectProtocolVersion.java @@ -24,8 +24,9 @@ import java.util.Comparator; import org.checkerframework.checker.nullness.qual.Nullable; /** - * Special protocol version that compares to another version. This can be used for e.g. April Fool versions which are depending - * on vanilla game versions. + * A {@link ProtocolVersion} with the version type {@link VersionType#SPECIAL} that compares equal to the given + * origin version. The origin version will also be used in {@link com.viaversion.viaversion.protocols.base.InitialBaseProtocol} + * to determine the correct base protocol. */ public class RedirectProtocolVersion extends ProtocolVersion { diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/base/InitialBaseProtocol.java b/common/src/main/java/com/viaversion/viaversion/protocols/base/InitialBaseProtocol.java index d14daeeb0..d2d5bbe5e 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/base/InitialBaseProtocol.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/base/InitialBaseProtocol.java @@ -35,6 +35,7 @@ import com.viaversion.viaversion.api.protocol.version.VersionType; import com.viaversion.viaversion.api.type.Types; import com.viaversion.viaversion.exception.CancelException; import com.viaversion.viaversion.exception.InformativeException; +import com.viaversion.viaversion.protocol.RedirectProtocolVersion; import com.viaversion.viaversion.protocol.version.BaseVersionProvider; import com.viaversion.viaversion.protocols.base.packet.BaseClientboundPacket; import com.viaversion.viaversion.protocols.base.packet.BasePacketTypesProvider; @@ -99,11 +100,15 @@ public class InitialBaseProtocol extends AbstractProtocol