猿问

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

我正在尝试为 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 class

package 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?");


    }


}


慕容708150
浏览 148回答 2
2回答

精慕HU

您的构造函数不正确。首先构造函数不应该有返回类型,其次它应该与类命名相同。改成://Constructorpublic MyFirstListener (final Main plugin) {你调用这个构造函数的方式也有问题。你写:MyFirstListener listener = new MyFirstListener();但是您的构造函数采用类型为 的参数Main。您可以从构造函数中删除参数://Constructorpublic MyFirstListener () {或者你可以传递一个类型的参数Main:MyFirstListener listener = new MyFirstListener(this);
随时随地看视频慕课网APP

相关分类

Java
我要回答