我想为插件的bug编写插件(ChestShop)。 当玩家右键点击标志(标志的第2行是“B免费”或“免费”,第3行是“Iron_Ingot”)时,取消事件并发送消息。玩家签名交互
public void onPlayerInteract(PlayerInteractEvent e){
Player player = e.getPlayer();
if(e.getAction().equals(Action.RIGHT_CLICK_BLOCK) || e.getAction().equals(Action.LEFT_CLICK_BLOCK)){
if(e.getClickedBlock().getState() instanceof Sign){
Sign sign = (Sign) e.getClickedBlock().getState();
if(sign.getLine(2).equals("B Free") || sign.getLine(2).equals("Free")){
if(sign.getLine(3).equals("Iron_Ingot"))
e.setCancelled(true);
e.getPlayer().sendMessage("You can not click this sign");
}
}
}
}
我试过这个,但它没有工作,哪部分代码错了? 我可以使用什么方法?
什么是Block.getState()? – TsundereBug
指定签名使用它的块。 – drhopeness
你忘了'@ EventHandler'? 还要确保你有注册的事件。 –