为了账号安全,请及时绑定邮箱和手机立即绑定

Eclipse 说“MyFirstListener”未定义,但我已经在我调用的另一个类中定义了它

Eclipse 说“MyFirstListener”未定义,但我已经在我调用的另一个类中定义了它

慕容708150 2021-07-01 10:11:30
我正在尝试为 Minecraft 创建我的第一个插件,但是,我不断收到错误:构造函数 MyFirstListener(Main) 未定义,并且: PluginManager 类型中的方法 registerEvents(Listener, Plugin) 不适用于参数 (MyFirstListener, Main)我不知道把它放在哪里,因为我对 Java 和插件的编码还很陌生,所以我把它放在这里。//first class    package com.courbie.helloworld;import org.bukkit.event.EventHandler;import org.bukkit.plugin.PluginManager;import org.bukkit.plugin.java.JavaPlugin;public class Main extends JavaPlugin{    @EventHandler    public void onEnable() {        getLogger().info("Hey Courbie, have a good day!");        PluginManager pm = getServer().getPluginManager();        MyFirstListener listener = new MyFirstListener();        pm.registerEvents(listener, this);    }    @Override    public void onDisable() {        getLogger().info("MyPlugin has been disabled.");    }}//Second classpackage com.courbie.helloworld;import org.bukkit.event.EventHandler;import org.bukkit.event.Listener;import org.bukkit.event.player.PlayerJoinEvent;public class MyFirstListener implements Listener{    //Constructor    public void FirstListener (final Main Plugin) {    }    //EventHandler    @EventHandler    public void onPlayerJoin(PlayerJoinEvent event) {        event.getPlayer().sendMessage("Hello! How are you today Courbie?");    }}
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

您的构造函数不正确。首先构造函数不应该有返回类型,其次它应该与类命名相同。改成:


//Constructor

public MyFirstListener (final Main plugin) {

你调用这个构造函数的方式也有问题。你写:


MyFirstListener listener = new MyFirstListener();

但是您的构造函数采用类型为 的参数Main。您可以从构造函数中删除参数:


//Constructor

public MyFirstListener () {

或者你可以传递一个类型的参数Main:


MyFirstListener listener = new MyFirstListener(this);


查看完整回答
反对 回复 2021-07-14
  • 2 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信