无法放置墙标或编辑其文本

Cannot place a wallsign or edit its text

我正在尝试放置和编辑一个朝西的墙牌。到目前为止,我在正确定位标志和编辑其文本方面都没有成功。我的代码根本没有做任何事情。

@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();
}