diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityBomb.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityBomb.java index 11cb8562..d7ae1a3b 100644 --- a/src/main/java/electroblob/wizardry/entity/projectile/EntityBomb.java +++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityBomb.java @@ -36,14 +36,14 @@ public abstract class EntityBomb extends EntityMagicProjectile { @Override public void writeSpawnData(ByteBuf buffer){ - super.writeSpawnData(buffer); buffer.writeFloat(blastMultiplier); + super.writeSpawnData(buffer); } @Override public void readSpawnData(ByteBuf buffer){ - super.readSpawnData(buffer); blastMultiplier = buffer.readFloat(); + super.readSpawnData(buffer); } @Override diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicProjectile.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicProjectile.java index 3aad3978..337776ac 100644 --- a/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicProjectile.java +++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicProjectile.java @@ -107,15 +107,20 @@ public abstract class EntityMagicProjectile extends EntityThrowable implements I } @Override + // For now, we're only writing when the thrower exists, so subclasses MUST CALL SUPER LAST. + // TODO: Figure out whether there's a default value we can write that is never used as an entity id (0? -1? +/-MAX_VALUE?) public void writeSpawnData(ByteBuf data){ - data.writeInt(this.getThrower().getEntityId()); + if(this.getThrower() != null) data.writeInt(this.getThrower().getEntityId()); } @Override + // For now, we're only writing when the thrower exists, so subclasses MUST CALL SUPER LAST. public void readSpawnData(ByteBuf data){ - Entity entity = this.world.getEntityByID(data.readInt()); - if(entity instanceof EntityLivingBase) this.thrower = (EntityLivingBase)entity; - this.ignoreEntity = this.thrower; + if(data.isReadable()){ + Entity entity = this.world.getEntityByID(data.readInt()); + if(entity instanceof EntityLivingBase) this.thrower = (EntityLivingBase)entity; + this.ignoreEntity = this.thrower; + } } }