diff --git a/austri3Fix.md b/austri3Fix.md index 2cddc79..a5028b2 100644 --- a/austri3Fix.md +++ b/austri3Fix.md @@ -7,6 +7,5 @@ - flying blocks dont properly render - black hole doesn't suck in blocks - remote detonator doesnt work -- emp tower only deletes missiles on client - see `// TODO: WTF` diff --git a/src/main/java/icbm/zhapin/daodan/EMissile.java b/src/main/java/icbm/zhapin/daodan/EMissile.java index ca52089..b09d9c7 100644 --- a/src/main/java/icbm/zhapin/daodan/EMissile.java +++ b/src/main/java/icbm/zhapin/daodan/EMissile.java @@ -576,7 +576,7 @@ public class EMissile extends Entity public void explode() { try { - if (!this.exploded) { + if (!this.exploded && !this.isDead) { if (this.missileId == 0) { if (!super.worldObj.isRemote) { super.worldObj.createExplosion( diff --git a/src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java b/src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java index 9c0fe26..7e4103f 100644 --- a/src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java +++ b/src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java @@ -82,7 +82,8 @@ public class TLauncherControlPanel nbt.setInteger("frequency", this.getFrequency()); nbt.setShort("height", this.height); nbt.setInteger("disabledTicks", this.disabledTicks); - nbt.setTag("target", super.target.writeToNBT(new NBTTagCompound())); + if (super.target != null) + nbt.setTag("target", super.target.writeToNBT(new NBTTagCompound())); return new S35PacketUpdateTileEntity( this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt @@ -106,7 +107,8 @@ public class TLauncherControlPanel this.setFrequency(nbt.getInteger("frequency")); this.height = nbt.getShort("height"); this.disabledTicks = nbt.getInteger("disabledTicks"); - super.target = Vector3.readFromNBT(nbt.getCompoundTag("target")); + if (nbt.hasKey("target")) + super.target = Vector3.readFromNBT(nbt.getCompoundTag("target")); } // TODO: WTF