diff --git a/common/src/main/java/com/viaversion/viaversion/platform/AbstractProtocolDetectorService.java b/common/src/main/java/com/viaversion/viaversion/platform/AbstractProtocolDetectorService.java index c0787bb5c..40a9e1dfb 100644 --- a/common/src/main/java/com/viaversion/viaversion/platform/AbstractProtocolDetectorService.java +++ b/common/src/main/java/com/viaversion/viaversion/platform/AbstractProtocolDetectorService.java @@ -33,14 +33,15 @@ public abstract class AbstractProtocolDetectorService implements ProtocolDetecto public int serverProtocolVersion(final String serverName) { // Step 1. Check detected lock.readLock().lock(); + final int detectedProtocol; try { - final int detectedProtocol = detectedProtocolIds.getInt(serverName); - if (detectedProtocol != -1) { - return detectedProtocol; - } + detectedProtocol = detectedProtocolIds.getInt(serverName); } finally { lock.readLock().unlock(); } + if (detectedProtocol != -1) { + return detectedProtocol; + } // Step 2. Check config (CME moment?) final Map servers = configuredServers(); @@ -81,6 +82,7 @@ public abstract class AbstractProtocolDetectorService implements ProtocolDetecto @Override public Object2IntMap detectedProtocolVersions() { + lock.readLock().lock(); try { return new Object2IntOpenHashMap<>(detectedProtocolIds); } finally {