From 2415e5db13bcb2a219a0d48f407adfb2d1b18427 Mon Sep 17 00:00:00 2001 From: Tschipp Date: Sat, 12 Aug 2017 15:47:34 +0200 Subject: [PATCH] Bugfixes --- .../carryon/client/event/RenderEvents.java | 3 +- .../common/handler/ModelOverridesHandler.java | 58 ++++++++++++------- .../tschipp/carryon/common/item/ItemTile.java | 2 +- 3 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/main/java/tschipp/carryon/client/event/RenderEvents.java b/src/main/java/tschipp/carryon/client/event/RenderEvents.java index 6065f9f..e56313f 100644 --- a/src/main/java/tschipp/carryon/client/event/RenderEvents.java +++ b/src/main/java/tschipp/carryon/client/event/RenderEvents.java @@ -31,6 +31,7 @@ import net.minecraftforge.client.event.RenderHandEvent; import net.minecraftforge.client.event.RenderPlayerEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.InputEvent; +import net.minecraftforge.fml.relauncher.ReflectionHelper; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import tschipp.carryon.common.config.CarryOnConfig; @@ -90,7 +91,7 @@ public class RenderEvents public void inputEvent(InputEvent event) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { GameSettings settings = Minecraft.getMinecraft().gameSettings; - Field field = KeyBinding.class.getDeclaredField("pressed"); + Field field = KeyBinding.class.getDeclaredFields()[7]; field.setAccessible(true); ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand(); if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)) diff --git a/src/main/java/tschipp/carryon/common/handler/ModelOverridesHandler.java b/src/main/java/tschipp/carryon/common/handler/ModelOverridesHandler.java index 62e0691..909e6e5 100644 --- a/src/main/java/tschipp/carryon/common/handler/ModelOverridesHandler.java +++ b/src/main/java/tschipp/carryon/common/handler/ModelOverridesHandler.java @@ -17,6 +17,7 @@ import net.minecraft.nbt.NBTException; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTUtil; import net.minecraft.util.IntHashMap; +import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.registry.IForgeRegistryEntry; import net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl; import net.minecraftforge.fml.relauncher.Side; @@ -30,8 +31,8 @@ public class ModelOverridesHandler public static HashMap OVERRIDE_OBJECTS = new HashMap(); /* - * This class is really ugly, will probably be replaced by something else - * - Tschipp + * This class is really ugly, will probably be replaced by something else - + * Tschipp */ public static void initOverrides() { @@ -80,30 +81,43 @@ public class ModelOverridesHandler else if (toOverride.contains("}")) throw new InvalidConfigException("Missing { at line " + i + " : " + currentline); - int meta = StringParser.getMeta(toOverride); - if (meta == 0) - toOverrideObject = StringParser.getBlock(toOverride); - else - toOverrideObject = StringParser.getBlockState(toOverride); + String modidToOverride = "minecraft"; + String modidOverride = "minecraft"; - overrideObject = StringParser.getItem(override); - if (Block.getBlockFromItem((Item) overrideObject) != Blocks.AIR) - overrideObject = StringParser.getItemStack(override); - else - overrideObject = StringParser.getBlockState(override); + if (toOverride.contains(":")) + modidToOverride = toOverride.replace(toOverride.substring(toOverride.indexOf(":")), ""); - NBTTagCompound keyComp = new NBTTagCompound(); - keyComp.setTag("nbttag", tag); - if (toOverrideObject instanceof Block) + if (override.contains(":")) + modidOverride = override.replace(override.substring(override.indexOf(":")), ""); + + if (Loader.isModLoaded(modidOverride) && Loader.isModLoaded(modidToOverride)) { - keyComp.setString("block", ((Block) toOverrideObject).getRegistryName().toString()); + + int meta = StringParser.getMeta(toOverride); + if (meta == 0) + toOverrideObject = StringParser.getBlock(toOverride); + else + toOverrideObject = StringParser.getBlockState(toOverride); + + overrideObject = StringParser.getItem(override); + if (Block.getBlockFromItem((Item) overrideObject) != Blocks.AIR) + overrideObject = StringParser.getItemStack(override); + else + overrideObject = StringParser.getBlockState(override); + + NBTTagCompound keyComp = new NBTTagCompound(); + keyComp.setTag("nbttag", tag); + if (toOverrideObject instanceof Block) + { + keyComp.setString("block", ((Block) toOverrideObject).getRegistryName().toString()); + } + else + { + keyComp.setInteger("stateid", Block.getStateId((IBlockState) toOverrideObject)); + keyComp.setString("block", ((IBlockState) toOverrideObject).getBlock().getRegistryName().toString()); + } + OVERRIDE_OBJECTS.put(keyComp, overrideObject); } - else - { - keyComp.setInteger("stateid", Block.getStateId((IBlockState) toOverrideObject)); - keyComp.setString("block", ((IBlockState) toOverrideObject).getBlock().getRegistryName().toString()); - } - OVERRIDE_OBJECTS.put(keyComp, overrideObject); } } diff --git a/src/main/java/tschipp/carryon/common/item/ItemTile.java b/src/main/java/tschipp/carryon/common/item/ItemTile.java index df2842b..c406e71 100644 --- a/src/main/java/tschipp/carryon/common/item/ItemTile.java +++ b/src/main/java/tschipp/carryon/common/item/ItemTile.java @@ -1,5 +1,6 @@ package tschipp.carryon.common.item; +import java.util.Arrays; import java.util.Iterator; import java.util.List; @@ -26,7 +27,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; -import scala.actors.threadpool.Arrays; import tschipp.carryon.CarryOn; import tschipp.carryon.common.config.CarryOnConfig;