From dcda451a0a1e482095eae549975b7524cdcd2d0f Mon Sep 17 00:00:00 2001 From: LexManos Date: Thu, 10 Dec 2015 02:54:00 -0800 Subject: [PATCH] Deprecate int IDs in FluidRegistry. Modders should only ever use the String name. Also add a 'friendly' exception when attempting to get an ID for a unregistered fluid. Closes #1374 --- .../common/network/ForgeMessage.java | 3 ++- .../java/net/minecraftforge/fluids/Fluid.java | 1 + .../minecraftforge/fluids/FluidRegistry.java | 22 +++++++++---------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/minecraftforge/common/network/ForgeMessage.java b/src/main/java/net/minecraftforge/common/network/ForgeMessage.java index c76f040dd6..45b6ad32f3 100644 --- a/src/main/java/net/minecraftforge/common/network/ForgeMessage.java +++ b/src/main/java/net/minecraftforge/common/network/ForgeMessage.java @@ -48,10 +48,11 @@ public abstract class ForgeMessage { public static class FluidIdMapMessage extends ForgeMessage { BiMap fluidIds = HashBiMap.create(); Set defaultFluids = Sets.newHashSet(); + @SuppressWarnings("deprecation") @Override void toBytes(ByteBuf bytes) { - Map ids = FluidRegistry.getRegisteredFluidIDsByFluid(); + Map ids = FluidRegistry.getRegisteredFluidIDs(); bytes.writeInt(ids.size()); for (Map.Entry entry : ids.entrySet()) { diff --git a/src/main/java/net/minecraftforge/fluids/Fluid.java b/src/main/java/net/minecraftforge/fluids/Fluid.java index 8da11b417f..c533506fa5 100644 --- a/src/main/java/net/minecraftforge/fluids/Fluid.java +++ b/src/main/java/net/minecraftforge/fluids/Fluid.java @@ -165,6 +165,7 @@ public class Fluid return this.fluidName; } + @Deprecated // Modders should never actually use int ID, use String public final int getID() { return FluidRegistry.getFluidID(this.fluidName); diff --git a/src/main/java/net/minecraftforge/fluids/FluidRegistry.java b/src/main/java/net/minecraftforge/fluids/FluidRegistry.java index 6f1bd7eb18..b1a2e6f22e 100644 --- a/src/main/java/net/minecraftforge/fluids/FluidRegistry.java +++ b/src/main/java/net/minecraftforge/fluids/FluidRegistry.java @@ -188,19 +188,26 @@ public abstract class FluidRegistry return fluids.get(fluidName); } + @Deprecated // Modders should never actually use int ID, use String public static Fluid getFluid(int fluidID) { return fluidIDs.inverse().get(fluidID); } + @Deprecated // Modders should never actually use int ID, use String public static int getFluidID(Fluid fluid) { - return fluidIDs.get(fluid); + Integer ret = fluidIDs.get(fluid); + if (ret == null) throw new RuntimeException("Attempted to access ID for unregistered fluid, Stop using this method modder!"); + return ret; } + @Deprecated // Modders should never actually use int ID, use String public static int getFluidID(String fluidName) { - return fluidIDs.get(getFluid(fluidName)); + Integer ret = fluidIDs.get(getFluid(fluidName)); + if (ret == null) throw new RuntimeException("Attempted to access ID for unregistered fluid, Stop using this method modder!"); + return ret; } public static String getFluidName(Fluid fluid) @@ -232,21 +239,14 @@ public abstract class FluidRegistry /** * Returns a read-only map containing Fluid Names and their associated IDs. + * Modders should never actually use this, use the String names. */ + @Deprecated public static Map getRegisteredFluidIDs() { return ImmutableMap.copyOf(fluidIDs); } - /** - * Returns a read-only map containing Fluid IDs and their associated Fluids. - * In 1.8.3, this will change to just 'getRegisteredFluidIDs' - */ - public static Map getRegisteredFluidIDsByFluid() - { - return ImmutableMap.copyOf(fluidIDs); - } - public static Fluid lookupFluidForBlock(Block block) { if (fluidBlocks == null)