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

@EventHandler从未为Bukkit插件运行

太叔乐家
2023-03-14

我目前正在尝试使用bukkit插件。我每次都会遇到这个问题,想知道是否有人知道如何解决它。我已经尝试了你可以在谷歌上搜索的几乎所有修复方法,所以希望有人能分享一些光。

所有玩家事件都不起作用。当我用前面的@EventHandler做任何事情时,它就是不跑。下面是一个示例:

package me.tgb20;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class pluginmain extends JavaPlugin implements Listener{

    public void OnEnable(){
        this.getServer().getPluginManager().registerEvents(this, this);
    }

    public void OnDisable(){
    }

    @EventHandler
    public void OnJoin(PlayerJoinEvent e){
        Player p = e.getPlayer();
        p.sendMessage("Hello");
    }
}

当在服务器上运行这个时,它永远不会看到玩家加入了游戏。

共有1个答案

唐兴贤
2023-03-14

如果不将 onEnable(和 onDisable)方法的名称大写,则代码将起作用。onEnable 和 OnEnable 是两种不同的方法,因为 java 区分大小写,并且由于您尝试覆盖 JavaPlugin 超类中的特定方法,因此您需要以完全相同的方式拼写它们。

据我所知,常见的约定是,无论如何,您都使用小写字母开始您的方法。@Overide注释在捕获此类错误方面非常有用,因为它让编译器知道您打算覆盖现有方法,如果该方法不存在(例如,如果您拼错名称或添加了不同的参数),它会提醒您(它还让任何阅读代码的人立即知道您正在覆盖现有方法或实现接口)。

(我从我的另一个答案中复制了这段文字,有人有一个非常相似的问题,尽管我不认为这个问题算作重复)。

 类似资料:
  • 嗨,我有这个问题与我的代码每次我使一个对象在监听器类的监听器将不工作例如。 我在我的主类(CSmain.java)中有这个公共变量: 我在类中还有一个名为getSpawn()的方法,它返回spawn: 我已经在我的onEnable()中初始化了这个变量,但是当我试图从我的另一个类中获取它时,这个类(JoinListener.java)将无法工作。 我测试了它没有创建对象(CSmain main C

  • 当我试图在我的bukkit服务器中加载插件时,我遇到了NullPointerExc的问题,但在Eclipse中没有错误。我的插件是Rush插件,很多东西没有使用/丢失。错误是这样的: 以下是我的代码:

  • 我正在尝试创建插件,当有人打开箱子时,它会检查箱子的位置是否与我的config.yml中的任何位置不匹配。所以我想这样做: 编辑:现在我有了这段代码: 但是当我右键点击箱子时,消息jeej没有出现,所有出现的东西都是消息Hodnota x je 0。但是我的配置中有几个键,x在任何地方都不是0。在控制台中,会出现此错误:

  • 我正在尝试创建一个bukkit插件,当事件触发时,它将连接到tcp服务器并发送消息。 我已经掌握了基础知识,但我错过了一些东西,我不知道从这里开始。我可以看到该插件与服务器建立了连接,但随后抛出错误并且没有发送任何消息。 我正在尝试理解当事件发生时如何向tcp客户端发送字符串。为了测试,我使用了玩家移动事件。 当我启动时,我在craftbukkit服务器日志中看到以下内容: 当我与我的世界客户端连

  • 我正在尝试恢复一个插件,但发现了一个错误: 我做的一切都是对的!plugin.yml外部罐子和出口,但仍然不起作用。知道为什么吗?

  • 在我的Spigot插件中,我使用重复任务每隔0.5秒更新一次玩家的库存。长时间运行代码后,我会得到。 我做了一些调试并使用JProfiler来查看导致内存泄漏的原因,并注意到ItemStacks的数量不断增加。堆遍历器显示这是由更新库存的代码引起的。这是当前代码: 经过更多的调试,我发现删除了将停止增加的itemStack数量。 什么可能导致内存泄漏? 编辑: 我已经更改了代码,不再为每个玻璃窗格