我试图创建一个每隔几秒钟喷出矿石的发电机。
问题是标志变为发电机,但它不会吐出矿石。
@EventHandler
public void onSignChange(SignChangeEvent e) {
if (e.getLine(0).equalsIgnoreCase("DGEN")) {
e.setLine(0, "§0§lGENERATOR");
e.setLine(1, "§bDiamond");
e.setLine(2, "§0Level 1");
}
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
if (!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
if((e.getClickedBlock().getType() == Material.SIGN_POST) || (e.getClickedBlock().getType() == Material.WALL_SIGN)){
Sign s = (Sign) e.getClickedBlock().getState();
if (s.getLine(1).equalsIgnoreCase("§0§lGENERATOR")) {
e.getPlayer().getWorld().dropItemNaturally(e.getPlayer().getLocation(), new ItemStack(Material.DIAMOND_ORE, 1));
e.getPlayer().sendMessage(ChatColor.GREEN + "Diamond Gen works!");
}
}
}
答案 0 :(得分:2)
您将第1
行(第二行)设为"§bDiamond"
:
e.setLine(1, "§bDiamond");
所以这句话:
if (s.getLine(1).equalsIgnoreCase("§0§lGENERATOR")) { [...] }
永远不会是true
,因为第1
行的值为"§bDiamond"
。