当前位置: 首页 > 知识库问答 >
问题:

Minecraft bukkit插件右键单击项

郝玄天
2023-03-14

我正在为一个服务器做一个插件,我是开发者,我正在开发一个插件!我想通过执行boss give lvl命令来生成boss鸡蛋

@EventHandler
public void onPlayerClicks(PlayerInteractEvent event) {
    Player player = event.getPlayer();
    Action action = event.getAction();

     if (action.equals(Action.RIGHT_CLICK_AIR) || action.equals(Action.RIGHT_CLICK_BLOCK)) {
         if (player.getItemInHand().getType() == Material.SLIME_BALL) {
             player.sendMessage("You have right click a slime ball!");
         } 
     }

}

共有2个答案

印子平
2023-03-14

也许可以使用action==代替action.equals(),如下所示:

if (action == Action.RIGHT_CLICK_AIR || action == Action.RIGHT_CLICK_BLOCK) {
     if (player.getItemInHand().getType() == Material.SLIME_BALL) {
         player.sendMessage("You have right click a slime ball!");
     } 
 }
柴辰阳
2023-03-14

鉴于您在日志中没有看到任何堆栈跟踪,我同意您的事件侦听器没有注册。假设您的侦听器类名为MyEventHandler,它将在方法中注册,类似于

class MyPlugin extends JavaPlugin {
    ...
    public void onEnable() {
        Listener myEvtHnd = new MyEventHandler();
        Bukkit.getPluginManager().registerEvents( myEvtHnd, this );
        ...
    }
}

一般来说,您的处理程序看起来很合适PlayerInteractEvent提供了一种方便的方法,返回玩家手中的当前物品。但是,无论使用哪种方法,都必须检查返回的项目堆栈是否为空,如果玩家手中没有项目,则会发生这种情况。

@EventHandler
public void onPlayerClicks(PlayerInteractEvent event) {
    Player player = event.getPlayer();
    Action action = event.getAction();
    ItemStack item = event.getItem();

     if ( action.equals( Action.RIGHT_CLICK_AIR ) || action.equals( Action.RIGHT_CLICK_BLOCK ) ) {
         if ( item != null && item.getType() == Material.SLIME_BALL ) {
             player.sendMessage( "You have right click a slime ball!" );
         } 
     }

}

 类似资料:
  • 问题内容: 右键单击Javascript事件吗?如果可以,该如何使用? 问题答案: 正如其他人提到的那样,可以[通过常规鼠标事件(mousedown,mouseup,click)检测[鼠标右键。但是,如果在弹出右键单击菜单时正在寻找触发事件,那么您所寻找的位置是错误的。也可以通过键盘(在Windows和某些Linux上为shift + F10或上下文菜单键)访问右键单击/上下文菜单。在这种情况下,

  • 问题内容: 在我的三个按钮上,鼠标=中键单击和=右键单击。 两键鼠标就是这种情况吗? 谢谢 问题答案: 为了避免任何歧义,请使用SwingUtilities中的实用程序方法:

  • 本文向大家介绍jquery实现右键菜单插件,包括了jquery实现右键菜单插件的使用技巧和注意事项,需要的朋友参考一下 今天开发一个项目的时候需要一个模拟鼠标右键菜单的功能。也就是在网页点击鼠标右键的时候不是弹出系统的菜单而是我们制定的内容。这样可以拓展右键的功能。实现过程不多说了,写出来的代码和效果如下: js部分: css部分代码如下: 创建调用代码如下: 销毁调用代码如下: 效果如下: 调用

  • 本文向大家介绍jquery插件ContextMenu设置右键菜单,包括了jquery插件ContextMenu设置右键菜单的使用技巧和注意事项,需要的朋友参考一下 Struts项目中右键菜单一般很少用到,但是一旦客户有要求,很多人就懵圈了,比如我。这个时候,当然要表现镇定,一面拍着胸口对客户承诺说绝对可以实现,一面赶紧打开百度神器,搜搜看是否有前人已经写好的插件。 于是便找到了jQuery的Con

  • 我知道如何通过鼠标左键点击所选项目来获取项目。我可以使用。 但我需要用鼠标右键点击项目。显示与单击的项目相关的弹出菜单。我试过这个: 但如果用户用右键点击该项,则会出现问题。右键单击不选择项目。如何按事件坐标选择项目或如何解决此问题?主要我需要得到的对象是点击没有选择项目,如果可能的话。