Java 更换标志后面的挡块
最近,我开始开发一个新插件,我发现如何替换一个标志所附的块有问题。。我在网上尝试了几种方法,但都不管用 我怎么能做这样的事?(我有一个对象“type:Sign name:Sign”witch,就是我要替换他后面的块的标志) 非常感谢您的阅读 固定编辑: 主要方法中的某个地方: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
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);