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