Java 无法放置墙标志或编辑其文字

Java 无法放置墙标志或编辑其文字,java,minecraft,bukkit,Java,Minecraft,Bukkit,我正在尝试放置和编辑一个面向西方的墙标志。到目前为止,我在正确定位标志和编辑其文本方面都不成功。我的代码根本不起任何作用 @SuppressWarnings("deprecation") public void Generate(Location location) { location.getBlock().getState().setType(material); Block signBlock = location.getBlock().getRelat

我正在尝试放置和编辑一个面向西方的墙标志。到目前为止,我在正确定位标志和编辑其文本方面都不成功。我的代码根本不起任何作用

@SuppressWarnings("deprecation")
public void Generate(Location location)
{
    location.getBlock().getState().setType(material);
    Block signBlock = location.getBlock().getRelative(BlockFace.WEST);
    signBlock.setType(Material.OAK_WALL_SIGN);
    BlockState signState = signBlock.getState();
    Sign sign = (Sign) signState;
    org.bukkit.material.Sign matSign = new org.bukkit.material.Sign(Material.OAK_WALL_SIGN);
    matSign.setFacingDirection(BlockFace.WEST);
    sign.setData(matSign);
    sign.setLine(0, name().replaceAll("_", " "));
    sign.update();
}

以下代码解决了该问题:

public void Generate(Location location)
{
    location.getBlock().getState().setType(material);
    Block block = location.getBlock().getLocation().add(-1, 0, 0).getBlock();
    block.setType(Material.OAK_WALL_SIGN);
    Sign sign = (Sign) block.getState();
    Directional wallSignData = (Directional) sign.getBlockData();
    wallSignData.setFacing(BlockFace.WEST);
    sign.setBlockData(wallSignData);
    sign.setLine(0, name().replaceAll("_", " "));
    sign.update();
}