From 764034216581097ff22cd242e6b0374668bbaef9 Mon Sep 17 00:00:00 2001 From: EnZaXD <60033407+FlorianMichael@users.noreply.github.com> Date: Fri, 23 Feb 2024 15:13:33 +0100 Subject: [PATCH] Don't require a base protocol for current version in BaseProtocol (#3709) --- .../viaversion/api/protocol/ProtocolManager.java | 5 ++--- .../viaversion/protocol/ProtocolManagerImpl.java | 4 ++-- .../viaversion/protocols/base/BaseProtocol.java | 8 +++++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/api/src/main/java/com/viaversion/viaversion/api/protocol/ProtocolManager.java b/api/src/main/java/com/viaversion/viaversion/api/protocol/ProtocolManager.java index d50d3f0c8..3f553c78d 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/protocol/ProtocolManager.java +++ b/api/src/main/java/com/viaversion/viaversion/api/protocol/ProtocolManager.java @@ -78,10 +78,9 @@ public interface ProtocolManager { * The standard base protocols deal with status and login packets for userconnection initialization. * * @param serverVersion server protocol version - * @return base protocol for the given server protocol version - * @throws IllegalStateException if no base protocol could be found + * @return base protocol for the given server protocol version if present, else null */ - Protocol getBaseProtocol(ProtocolVersion serverVersion); + @Nullable Protocol getBaseProtocol(ProtocolVersion serverVersion); /** * Returns an immutable collection of registered protocols. diff --git a/common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java b/common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java index ae05c5837..d8b59310c 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java +++ b/common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java @@ -363,13 +363,13 @@ public class ProtocolManagerImpl implements ProtocolManager { } @Override - public Protocol getBaseProtocol(ProtocolVersion serverVersion) { + public @Nullable Protocol getBaseProtocol(ProtocolVersion serverVersion) { for (Pair, Protocol> rangeProtocol : Lists.reverse(baseProtocols)) { if (rangeProtocol.key().contains(serverVersion)) { return rangeProtocol.value(); } } - throw new IllegalStateException("No Base Protocol for " + serverVersion); + return null; } @Override diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/base/BaseProtocol.java b/common/src/main/java/com/viaversion/viaversion/protocols/base/BaseProtocol.java index 626bd2d72..4f0ea4b7f 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/base/BaseProtocol.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/base/BaseProtocol.java @@ -80,8 +80,14 @@ public class BaseProtocol extends AbstractProtocol