diff --git a/api b/api index 7b30b4020..d9dd92783 160000 --- a/api +++ b/api @@ -1 +1 @@ -Subproject commit 7b30b4020249bd5c8c1137798eb56182b08c3c86 +Subproject commit d9dd927830e9449d441f823bee5ece662b3615c7 diff --git a/src/main/java/forestry/mail/MailAddress.java b/src/main/java/forestry/mail/MailAddress.java index def51aada..5fbc07ab1 100644 --- a/src/main/java/forestry/mail/MailAddress.java +++ b/src/main/java/forestry/mail/MailAddress.java @@ -32,11 +32,11 @@ public class MailAddress implements INBTTagable, IMailAddress { @EntityNetData private GameProfile gameProfile; // gameProfile is a fake GameProfile for traders, and real for players - private static final MailAddress invalidAddress = new MailAddress(); + private static final GameProfile invalidGameProfile = new GameProfile(new UUID(0,0), ""); public MailAddress() { - this.type = EnumAddressee.INVALID; - this.gameProfile = new GameProfile(new UUID(0,0), ""); + this.type = EnumAddressee.PLAYER; + this.gameProfile = invalidGameProfile; } public MailAddress(GameProfile gameProfile) { @@ -101,20 +101,25 @@ public class MailAddress implements INBTTagable, IMailAddress { return type == EnumAddressee.PLAYER; } + public boolean isTrader() { + return type == EnumAddressee.TRADER; + } + public boolean isValid() { - return type != EnumAddressee.INVALID; + return !gameProfile.equals(invalidGameProfile); } @Override public void readFromNBT(NBTTagCompound nbttagcompound) { - type = EnumAddressee.INVALID; + type = null; if(nbttagcompound.hasKey("TP")) { String typeName = nbttagcompound.getString("TP"); type = EnumAddressee.fromString(typeName); } - if (!isValid()) { - gameProfile = invalidAddress.gameProfile; + if (type == null) { + type = EnumAddressee.PLAYER; + gameProfile = invalidGameProfile; } else if(nbttagcompound.hasKey("profile")) { NBTTagCompound profileTag = nbttagcompound.getCompoundTag("profile"); gameProfile = NBTUtil.func_152459_a(profileTag); diff --git a/src/main/java/forestry/mail/PostRegistry.java b/src/main/java/forestry/mail/PostRegistry.java index 93b9ece4e..64f2812a2 100755 --- a/src/main/java/forestry/mail/PostRegistry.java +++ b/src/main/java/forestry/mail/PostRegistry.java @@ -80,7 +80,7 @@ public class PostRegistry implements IPostRegistry { */ @Override public boolean isValidTradeAddress(World world, IMailAddress address) { - return !address.isPlayer() && address.getName().matches("^[a-zA-Z0-9]+$"); + return address.isTrader() && address.getName().matches("^[a-zA-Z0-9]+$"); } /** diff --git a/src/main/java/forestry/mail/TradeStation.java b/src/main/java/forestry/mail/TradeStation.java index 677ada2ec..e0defc5af 100755 --- a/src/main/java/forestry/mail/TradeStation.java +++ b/src/main/java/forestry/mail/TradeStation.java @@ -64,8 +64,8 @@ public class TradeStation extends WorldSavedData implements ITradeStation, IInve // / CONSTRUCTORS public TradeStation(GameProfile owner, IMailAddress address) { super(SAVE_NAME + address); - if (address.isPlayer()) { - throw new IllegalArgumentException("TradeStation address must not be a player"); + if (!address.isTrader()) { + throw new IllegalArgumentException("TradeStation address must be a trader"); } this.owner = owner; this.address = address; diff --git a/src/main/java/forestry/mail/gui/ContainerLetter.java b/src/main/java/forestry/mail/gui/ContainerLetter.java index d271aa6fc..0d372854c 100755 --- a/src/main/java/forestry/mail/gui/ContainerLetter.java +++ b/src/main/java/forestry/mail/gui/ContainerLetter.java @@ -139,7 +139,7 @@ public class ContainerLetter extends ContainerItemInventory { } public void setRecipient(String recipientName, EnumAddressee type) { - if (StringUtils.isBlank(recipientName) || type == EnumAddressee.INVALID) + if (StringUtils.isBlank(recipientName) || type == null) return; // / Send to server diff --git a/src/main/java/forestry/mail/gui/GuiLetter.java b/src/main/java/forestry/mail/gui/GuiLetter.java index 4a7c240c5..abee1d202 100755 --- a/src/main/java/forestry/mail/gui/GuiLetter.java +++ b/src/main/java/forestry/mail/gui/GuiLetter.java @@ -246,7 +246,7 @@ public class GuiLetter extends GuiForestry { } private void setRecipient(String recipientName, EnumAddressee type) { - if (this.isProcessedLetter || StringUtils.isBlank(recipientName) || type == null || type == EnumAddressee.INVALID) + if (this.isProcessedLetter || StringUtils.isBlank(recipientName) || type == null) return; container.setRecipient(recipientName, type); diff --git a/src/main/java/forestry/mail/network/PacketLetterInfo.java b/src/main/java/forestry/mail/network/PacketLetterInfo.java index cc9ace882..857939524 100644 --- a/src/main/java/forestry/mail/network/PacketLetterInfo.java +++ b/src/main/java/forestry/mail/network/PacketLetterInfo.java @@ -46,11 +46,10 @@ public class PacketLetterInfo extends ForestryPacket { @Override public void writeData(DataOutputStream data) throws IOException { - if (type == null || type == EnumAddressee.INVALID) { + if (type == null) { data.writeShort(-1); return; } - data.writeShort(0); data.writeUTF(type.toString());