From 9644693de31e89cdf9088b06b5ee6c1926b848b1 Mon Sep 17 00:00:00 2001 From: StrangeOne101 Date: Sat, 19 Jun 2021 22:49:32 +1200 Subject: [PATCH] More fixes - Fixed Jigsaws not placing TileStates - Fixed NPE when banners, signs or skulls try to be rotated to be up or down --- .../java/com/volmit/iris/object/IrisObjectRotation.java | 4 +++- .../java/com/volmit/iris/scaffold/jigsaw/PlannedPiece.java | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/volmit/iris/object/IrisObjectRotation.java b/src/main/java/com/volmit/iris/object/IrisObjectRotation.java index cdb9a7fed..9c3ca17c9 100644 --- a/src/main/java/com/volmit/iris/object/IrisObjectRotation.java +++ b/src/main/java/com/volmit/iris/object/IrisObjectRotation.java @@ -245,7 +245,9 @@ public class IrisObjectRotation BlockVector bv = new BlockVector(f.getModX(), f.getModY(), f.getModZ()); bv = rotate(bv.clone(), spinx, spiny, spinz); BlockFace t = getFace(bv); - g.setRotation(t); + if (t.getModY() == 0) { + g.setRotation(t); + } } else if(d instanceof Orientable) diff --git a/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedPiece.java b/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedPiece.java index b6b538782..0694d7e0a 100644 --- a/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedPiece.java +++ b/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedPiece.java @@ -9,6 +9,7 @@ import com.volmit.iris.util.KList; import com.volmit.iris.util.RNG; import lombok.Data; import org.bukkit.World; +import org.bukkit.block.BlockState; import org.bukkit.block.TileState; import org.bukkit.block.data.BlockData; import org.bukkit.util.BlockVector; @@ -163,7 +164,7 @@ public class PlannedPiece { @Override public boolean isSolid(int x, int y, int z) { - return false; + return world.getBlockAt(x,y,z).getType().isSolid(); } @Override @@ -183,7 +184,9 @@ public class PlannedPiece { @Override public void setTile(int xx, int yy, int zz, TileData tile) { - + BlockState state = world.getBlockAt(xx,yy,zz).getState(); + tile.toBukkitTry(state); + state.update(); } }, piece.getPlacementOptions(), new RNG(), getData()); }