Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更换标志后面的挡块_Java_Eclipse_Plugins_Minecraft_Bukkit - Fatal编程技术网

Java 更换标志后面的挡块

Java 更换标志后面的挡块,java,eclipse,plugins,minecraft,bukkit,Java,Eclipse,Plugins,Minecraft,Bukkit,最近,我开始开发一个新插件,我发现如何替换一个标志所附的块有问题。。我在网上尝试了几种方法,但都不管用 我怎么能做这样的事?(我有一个对象“type:Sign name:Sign”witch,就是我要替换他后面的块的标志) 非常感谢您的阅读 固定编辑: 主要方法中的某个地方: e.getPlayer().sendMessage("DETECTED"); Block sb = sign.getBlock();// "sign " is type Sign impor

最近,我开始开发一个新插件,我发现如何替换一个标志所附的块有问题。。我在网上尝试了几种方法,但都不管用 我怎么能做这样的事?(我有一个对象“type:Sign name:Sign”witch,就是我要替换他后面的块的标志)

非常感谢您的阅读

固定编辑: 主要方法中的某个地方:

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;

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

是的org.bukkit.material.Sign是我的错误我尝试从org.bukkit.material.Sign和org.bukkit.block.Sign导入失败,我只是将方法移动到另一个包(我的方法需要org.bukkit.Sign)现在开始工作了谢谢you@toto:如果两个都需要导入,请导入需要更多的一个(可能是
org.bukkit.block.Sign
),然后在此处手动使用完全限定版本:
org.bukkit.material.Sign s=(org.bukkit.material.Sign)block.getState().getData()
 Sign s = (Sign) block.getState().getData();
 Block attachedBlock = b.getRelative(s.getAttachedFace());
 attachedBlock.setType(Material.DIRT);