summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java15
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java11
2 files changed, 12 insertions, 14 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java
index 411c023d..d9a871a8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java
@@ -1,11 +1,10 @@
package org.bukkit.craftbukkit.entity;
-import net.minecraft.server.BlockPosition;
import net.minecraft.server.EntityHanging;
import net.minecraft.server.EnumDirection;
-import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.CraftServer;
+import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Hanging;
@@ -51,17 +50,7 @@ public class CraftHanging extends CraftEntity implements Hanging {
public BlockFace getFacing() {
EnumDirection direction = this.getHandle().direction;
if (direction == null) return BlockFace.SELF;
- switch (direction) {
- case SOUTH:
- default:
- return BlockFace.SOUTH;
- case WEST:
- return BlockFace.WEST;
- case NORTH:
- return BlockFace.NORTH;
- case EAST:
- return BlockFace.EAST;
- }
+ return CraftBlock.notchToBlockFace(direction);
}
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
index 95647efc..75812a58 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
@@ -1,6 +1,7 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.BlockPosition;
+import net.minecraft.server.EntityHanging;
import net.minecraft.server.EntityItemFrame;
import net.minecraft.server.EnumDirection;
import net.minecraft.server.ItemStack;
@@ -12,6 +13,7 @@ import org.bukkit.Rotation;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
+import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.ItemFrame;
@@ -21,8 +23,15 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
super(server, entity);
}
+ @Override
public boolean setFacingDirection(BlockFace face, boolean force) {
- if (!super.setFacingDirection(face, force)) {
+ EntityHanging hanging = getHandle();
+ EnumDirection oldDir = hanging.direction;
+ EnumDirection newDir = CraftBlock.blockFaceToNotch(face);
+
+ getHandle().setDirection(newDir);
+ if (!force && !hanging.survives()) {
+ hanging.setDirection(oldDir);
return false;
}