From 3fb8ba1ef4f3e5e89f3dd1d64ea512ebbe2111b5 Mon Sep 17 00:00:00 2001 From: mezz Date: Wed, 24 Jun 2015 21:18:10 -0700 Subject: [PATCH] Fix #732 letter sizes --- .../java/forestry/mail/items/ItemLetter.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/forestry/mail/items/ItemLetter.java b/src/main/java/forestry/mail/items/ItemLetter.java index 9eee710b0..e4f02081e 100755 --- a/src/main/java/forestry/mail/items/ItemLetter.java +++ b/src/main/java/forestry/mail/items/ItemLetter.java @@ -111,12 +111,20 @@ public class ItemLetter extends ItemInventoried { public static LetterState getState(int meta) { int ordinal = meta & 0x0f; - return LetterState.values()[ordinal]; + LetterState[] values = LetterState.values(); + if (ordinal >= values.length) { + ordinal = 0; + } + return values[ordinal]; } public static LetterSize getSize(int meta) { int ordinal = meta >> 4; - return LetterSize.values()[ordinal]; + LetterSize[] values = LetterSize.values(); + if (ordinal >= values.length) { + ordinal = 0; + } + return values[ordinal]; } public static LetterSize getSize(ILetter letter) { @@ -167,23 +175,24 @@ public class ItemLetter extends ItemInventoried { switch (state) { case OPENED: if (letter.countAttachments() <= 0) { - int meta = encodeMeta(LetterState.EMPTIED, size); - parent.setItemDamage(meta); + state = LetterState.EMPTIED; } break; case FRESH: case STAMPED: if (letter.isMailable() && letter.isPostPaid()) { - int meta = encodeMeta(LetterState.STAMPED, size); - parent.setItemDamage(meta); + state = LetterState.STAMPED; } else { - int meta = encodeMeta(LetterState.FRESH, size); - parent.setItemDamage(meta); + state = LetterState.FRESH; } + size = getSize(letter); break; case EMPTIED: } + int meta = encodeMeta(state, size); + parent.setItemDamage(meta); + letter.writeToNBT(parent.getTagCompound()); }