From 3dae97cb4af919c35045c817db870954df953ca0 Mon Sep 17 00:00:00 2001 From: cpw Date: Sun, 7 Sep 2014 20:13:37 +1200 Subject: [PATCH] Is vanilla possible with this mod load, side tests. --- .../cpw/mods/fml/common/network/NetworkRegistry.java | 10 ++++++++++ .../common/network/internal/NetworkModHolder.java | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/fml/src/main/java/cpw/mods/fml/common/network/NetworkRegistry.java b/fml/src/main/java/cpw/mods/fml/common/network/NetworkRegistry.java index b0cbd703a..2f8325e40 100644 --- a/fml/src/main/java/cpw/mods/fml/common/network/NetworkRegistry.java +++ b/fml/src/main/java/cpw/mods/fml/common/network/NetworkRegistry.java @@ -285,8 +285,18 @@ public enum NetworkRegistry { NetworkModHolder networkModHolder = new NetworkModHolder(fmlModContainer, clazz, remoteVersionRange, asmHarvestedData); registry.put(fmlModContainer, networkModHolder); + networkModHolder.testVanillaAcceptance(); } + public boolean isVanillaAccepted(Side from) + { + boolean result = true; + for (Entry e : registry.entrySet()) + { + result &= e.getValue().acceptsVanilla(from); + } + return result; + } public Map registry() { return ImmutableMap.copyOf(registry); diff --git a/fml/src/main/java/cpw/mods/fml/common/network/internal/NetworkModHolder.java b/fml/src/main/java/cpw/mods/fml/common/network/internal/NetworkModHolder.java index 1c6236ca8..a2f669e12 100644 --- a/fml/src/main/java/cpw/mods/fml/common/network/internal/NetworkModHolder.java +++ b/fml/src/main/java/cpw/mods/fml/common/network/internal/NetworkModHolder.java @@ -19,6 +19,7 @@ import org.apache.logging.log4j.Level; import com.google.common.base.Preconditions; import com.google.common.base.Strings; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.SetMultimap; @@ -94,6 +95,9 @@ public class NetworkModHolder private NetworkChecker checker; + private boolean acceptsVanillaClient; + private boolean acceptsVanillaServer; + public NetworkModHolder(ModContainer container) { this.container = container; @@ -230,4 +234,12 @@ public class NetworkModHolder this.networkId = value; } + public void testVanillaAcceptance() { + acceptsVanillaClient = check(ImmutableMap.of(), Side.CLIENT); + acceptsVanillaServer = check(ImmutableMap.of(), Side.SERVER); + } + public boolean acceptsVanilla(Side from) { + return from == Side.CLIENT ? acceptsVanillaClient : acceptsVanillaServer; + } + }