From 586840aa53e21f0e9cc5eb848e52b68188ef5ee4 Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Tue, 31 Mar 2020 21:42:16 +0100 Subject: [PATCH] Add safety checks to prevent itemblocks with invalid metadata turning into invalid blockstates, fixes #382 (Because *some* mod authors are not very careful...) --- src/main/java/electroblob/wizardry/block/BlockPedestal.java | 4 +++- src/main/java/electroblob/wizardry/block/BlockRunestone.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/electroblob/wizardry/block/BlockPedestal.java b/src/main/java/electroblob/wizardry/block/BlockPedestal.java index 9da9c6f5..53bb1bb4 100644 --- a/src/main/java/electroblob/wizardry/block/BlockPedestal.java +++ b/src/main/java/electroblob/wizardry/block/BlockPedestal.java @@ -107,7 +107,9 @@ public class BlockPedestal extends Block implements ITileEntityProvider { natural = true; metadata -= ELEMENT.getAllowedValues().size(); } - return this.getDefaultState().withProperty(ELEMENT, Element.values()[metadata]).withProperty(NATURAL, natural); + Element element = Element.values()[metadata]; + if(!ELEMENT.getAllowedValues().contains(element)) return this.getDefaultState().withProperty(NATURAL, natural); + return this.getDefaultState().withProperty(ELEMENT, element).withProperty(NATURAL, natural); } @Override diff --git a/src/main/java/electroblob/wizardry/block/BlockRunestone.java b/src/main/java/electroblob/wizardry/block/BlockRunestone.java index 996eaa52..c480565c 100644 --- a/src/main/java/electroblob/wizardry/block/BlockRunestone.java +++ b/src/main/java/electroblob/wizardry/block/BlockRunestone.java @@ -69,7 +69,9 @@ public class BlockRunestone extends Block { @Override public IBlockState getStateFromMeta(int metadata){ - return this.getDefaultState().withProperty(ELEMENT, Element.values()[metadata]); + Element element = Element.values()[metadata]; + if(!ELEMENT.getAllowedValues().contains(element)) return this.getDefaultState(); + return this.getDefaultState().withProperty(ELEMENT, element); } @Override