From 3a0c5aff0c646b6ae16345da1a168805f0a53cc7 Mon Sep 17 00:00:00 2001 From: feildmaster Date: Tue, 25 Dec 2012 05:42:04 -0600 Subject: [PATCH] Fix fireballs being motionless (again). Fixes BUKKIT-3299 The key "direction" incorrectly mapped to variables that were already set in the entity. In order to prevent loading incorrect data we renamed "direction" to "power." --- .../java/net/minecraft/server/EntityFireball.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityFireball.java b/src/main/java/net/minecraft/server/EntityFireball.java index d8f34ef87a..107abcad3c 100644 --- a/src/main/java/net/minecraft/server/EntityFireball.java +++ b/src/main/java/net/minecraft/server/EntityFireball.java @@ -199,7 +199,8 @@ public abstract class EntityFireball extends Entity { nbttagcompound.setShort("zTile", (short) this.g); nbttagcompound.setByte("inTile", (byte) this.h); nbttagcompound.setByte("inGround", (byte) (this.i ? 1 : 0)); - nbttagcompound.set("direction", this.a(new double[] { this.motX, this.motY, this.motZ})); + // CraftBukkit - Fix direction being mismapped to invalid variables + nbttagcompound.set("power", this.a(new double[] { this.dirX, this.dirY, this.dirZ})); } public void a(NBTTagCompound nbttagcompound) { @@ -208,12 +209,14 @@ public abstract class EntityFireball extends Entity { this.g = nbttagcompound.getShort("zTile"); this.h = nbttagcompound.getByte("inTile") & 255; this.i = nbttagcompound.getByte("inGround") == 1; - if (nbttagcompound.hasKey("direction")) { - NBTTagList nbttaglist = nbttagcompound.getList("direction"); + // CraftBukkit - direction -> power + if (nbttagcompound.hasKey("power")) { + NBTTagList nbttaglist = nbttagcompound.getList("power"); - this.motX = ((NBTTagDouble) nbttaglist.get(0)).data; - this.motY = ((NBTTagDouble) nbttaglist.get(1)).data; - this.motZ = ((NBTTagDouble) nbttaglist.get(2)).data; + this.dirX = ((NBTTagDouble) nbttaglist.get(0)).data; + this.dirY = ((NBTTagDouble) nbttaglist.get(1)).data; + this.dirZ = ((NBTTagDouble) nbttaglist.get(2)).data; + // CraftBukkit end } else { this.die(); }