球员标志互动
Player sign interact
我想为插件的错误编写一个插件。(ChestShop)。
当玩家右击标志时(标志的第 2 行是 "B Free" 或 "Free",第 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");
}
}
}
}
我试过了,还是不行,请问是哪部分代码错了?
我可以使用哪些方法?
您的方法 onPlayerInteract 所在的 class 必须实现接口 Listener。您还必须使用 EventHandler 注释并在您的插件中注册事件。
public class PlayerInteract implements Listener {
// priority is when the listener is called.
// LOWEST is called first, then LOW, NORMAL, HIGH, HIGHEST, MONITOR.
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerInteract(PlayerInteractEvent event) {
// ...
}
}
在 Main 中的 onEnable class(扩展了 JavaPlugin):
getServer().getPluginManager().registerEvents(new PlayerInteract(),this);
我想为插件的错误编写一个插件。(ChestShop)。 当玩家右击标志时(标志的第 2 行是 "B Free" 或 "Free",第 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");
}
}
}
}
我试过了,还是不行,请问是哪部分代码错了? 我可以使用哪些方法?
您的方法 onPlayerInteract 所在的 class 必须实现接口 Listener。您还必须使用 EventHandler 注释并在您的插件中注册事件。
public class PlayerInteract implements Listener {
// priority is when the listener is called.
// LOWEST is called first, then LOW, NORMAL, HIGH, HIGHEST, MONITOR.
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerInteract(PlayerInteractEvent event) {
// ...
}
}
在 Main 中的 onEnable class(扩展了 JavaPlugin):
getServer().getPluginManager().registerEvents(new PlayerInteract(),this);