From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Sun, 1 Apr 2018 02:29:37 +0300 Subject: [PATCH] Add method to open already placed sign diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java index c13f04de0d22ddf51c1f0c26c72da6062c07d8cf..16f907df4690098e6c45191963f1f98e2c505f82 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -29,6 +29,7 @@ import net.minecraft.world.level.block.BlockEnchantmentTable; import net.minecraft.world.level.block.BlockWorkbench; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.TileEntity; +import net.minecraft.world.level.block.entity.TileEntitySign; import net.minecraft.world.level.block.state.IBlockData; import org.bukkit.GameMode; import org.bukkit.Location; @@ -602,6 +603,17 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } } + // Paper start - Add method to open already placed sign + @Override + public void openSign(org.bukkit.block.Sign sign) { + org.apache.commons.lang.Validate.isTrue(sign.getWorld().equals(this.getWorld()), "Sign must be in the same world as player is in"); + org.bukkit.craftbukkit.block.CraftSign craftSign = (org.bukkit.craftbukkit.block.CraftSign) sign; + TileEntitySign teSign = craftSign.getTileEntity(); + // Make sign editable temporarily, will be set back to false in PlayerConnection later + teSign.isEditable = true; + getHandle().openSign(teSign); + } + // Paper end @Override public boolean dropItem(boolean dropAll) { return getHandle().dropItem(dropAll);