替换标志后面的方块

Replace the block behind a sign

最近我开始开发一个新插件,但我在寻找如何替换标志所附块的问题时遇到了问题。我尝试了一些来自互联网的方法 none 有效 关于如何做这样的事情的任何想法? (我有对象"type :Sign name: sign"是我要替换他身后方块的标志)

非常感谢您阅读

固定编辑: 主要方法内部的某处:

e.getPlayer().sendMessage("DETECTED");
                Block sb = sign.getBlock();// "sign " is type Sign imported from org.bukkit.block.Sign
            Block b =  RedstoneSign.getblock(sb);
            b.setType(Material.REDSTONE_BLOCK);

主要方法导入:

    import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;

getblock 方法:

public static Block getblock (Block b){

    if (b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST)
    { 
        Sign s = (Sign) b.getState().getData();//in this case "s" is type "Sign" imported from org.bukkit.material.Sign
        return b.getRelative(s.getAttachedFace());
    }
    else {
        return null;
    }
}

getblock 导入:

 import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.material.Sign;
 Sign s = (Sign) block.getState().getData();
 Block attachedBlock = b.getRelative(s.getAttachedFace());
 attachedBlock.setType(Material.DIRT);

导入必须 org.bukkit.material.Sign 而不是 org.bukkit.block.Sign