diff --git a/src/main/java/net/minecraftforge/fml/client/ClientHooks.java b/src/main/java/net/minecraftforge/fml/client/ClientHooks.java index 9e12744ef..6abd292aa 100644 --- a/src/main/java/net/minecraftforge/fml/client/ClientHooks.java +++ b/src/main/java/net/minecraftforge/fml/client/ClientHooks.java @@ -74,18 +74,12 @@ public class ClientHooks { if(packet.getForgeData() != null){ int numberOfMods = packet.getForgeData().getNumberOfMods(); - MapDifference difference = Maps.difference(packet.getForgeData().getRegistryHashes(), RegistryManager.ACTIVE.computeRegistryHashes()); int fmlver = packet.getForgeData().getFMLNetworkVersion(); boolean b = NetworkRegistry.checkListPingCompatibilityForClient(packet.getForgeData().getPresentMods()) - && difference.areEqual() && fmlver == FMLNetworkConstants.FMLNETVERSION; LOGGER.debug(CLIENTHOOKS, "Received FML ping data from server at {}: FMLNETVER={}, {} mods, channels: [{}] - compatible: {}", target.serverIP, fmlver, numberOfMods, packet.getForgeData().getPresentMods().entrySet(), b); - difference.entriesDiffering().forEach((k,vd)-> LOGGER.debug(CLIENTHOOKS, "Registry {}: Local: {}, Remote: {}", k, vd.rightValue(), vd.leftValue())); - difference.entriesOnlyOnLeft().forEach((k,vd)-> LOGGER.debug(CLIENTHOOKS, "Registry {} is only on server with hash {}", k, vd)); - difference.entriesOnlyOnRight().forEach((k,vd)-> LOGGER.debug(CLIENTHOOKS, "Registry {} is missing on server with hash {}", k, vd)); - difference.entriesInCommon().forEach((k,vd)-> LOGGER.debug(CLIENTHOOKS, "Registry {} is equal, hash={}", k, vd)); String extraReason = null; if(fmlver> channelVersions; private int numberOfMods; private int fmlNetworkVer; - private Map registrySnapshots; public FMLStatusPing(){ this.channelVersions = NetworkRegistry.buildChannelVersionsForListPing(); this.numberOfMods = ModList.get().size(); - this.registrySnapshots = RegistryManager.ACTIVE.computeRegistryHashes(); this.fmlNetworkVer = FMLNetworkConstants.FMLNETVERSION; } - private FMLStatusPing(Map> deserialized, Map registryHashes, int nom, int fmlNetVer){ + private FMLStatusPing(Map> deserialized, int nom, int fmlNetVer){ this.channelVersions = ImmutableMap.copyOf(deserialized); this.numberOfMods = nom; - this.registrySnapshots = registryHashes; this.fmlNetworkVer = fmlNetVer; } @@ -64,14 +61,7 @@ public class FMLStatusPing { Boolean canBeAbsent = JsonUtils.getBoolean(jo, "mayBeAbsent"); versions.put(name, Pair.of(version, canBeAbsent)); } - JsonArray reghashes = JsonUtils.getJsonArray(forgeData, "registryKeys"); - Map registyData = Maps.newHashMap(); - for(JsonElement el : reghashes){ - JsonObject jo = el.getAsJsonObject(); - ResourceLocation name = new ResourceLocation(JsonUtils.getString(jo, "namespace"), JsonUtils.getString(jo, "path")); - registyData.put(name, JsonUtils.getInt(jo, "hash")); - } - return new FMLStatusPing(versions, registyData, JsonUtils.getInt(forgeData, "numberOfMods"), JsonUtils.getInt(forgeData, "fmlNetworkVersion")); + return new FMLStatusPing(versions, JsonUtils.getInt(forgeData, "numberOfMods"), JsonUtils.getInt(forgeData, "fmlNetworkVersion")); }catch (Exception c){ return null; } @@ -89,15 +79,6 @@ public class FMLStatusPing { return mi; }).forEach(mods::add); obj.add("mods", mods); - JsonArray regdata = new JsonArray(); - forgeData.registrySnapshots.entrySet().stream().map(p -> { - JsonObject mi = new JsonObject(); - mi.addProperty("namespace", p.getKey().getNamespace()); - mi.addProperty("path", p.getKey().getPath()); - mi.addProperty("hash", p.getValue()); - return mi; - }).forEach(regdata::add); - obj.add("registryKeys", regdata); obj.addProperty("numberOfMods", forgeData.numberOfMods); obj.addProperty("fmlNetworkVersion", forgeData.fmlNetworkVer); return obj; @@ -112,10 +93,6 @@ public class FMLStatusPing { return numberOfMods; } - public Map getRegistryHashes(){ - return registrySnapshots; - } - public int getFMLNetworkVersion(){ return fmlNetworkVer; } diff --git a/src/main/java/net/minecraftforge/registries/RegistryManager.java b/src/main/java/net/minecraftforge/registries/RegistryManager.java index 9c068c3d6..3c573aa48 100644 --- a/src/main/java/net/minecraftforge/registries/RegistryManager.java +++ b/src/main/java/net/minecraftforge/registries/RegistryManager.java @@ -159,8 +159,4 @@ public class RegistryManager { return new ArrayList<>(ACTIVE.registries.keySet()); } - - public Map computeRegistryHashes() { - return this.registries.entrySet().stream().map(p -> Pair.of(p.getKey(), p.getValue().getKeys().hashCode())).collect(Collectors.toMap(Pair::getLeft, Pair::getRight)); - } }