为什么Cmds.java中的getPlugin方法不起作用?

为什么Cmds.java中的getPlugin方法不起作用?,java,bukkit,Java,Bukkit,我想从EventsClass.class更改记录的变量,该变量为 放置在Cmds.class中 但我对这句话有个问题: private EventsClass plugin = EventsClass.getPlugin(EventsClass.class); 编译器无法解析getPlugin 代码: Main.java: EventsClass.java: 编译器无法解析getPlugin方法。。。因为EventsClass没有这样的方法。它只有onJoin的方法。。。和onMove…此代码

我想从EventsClass.class更改记录的变量,该变量为 放置在Cmds.class中

但我对这句话有个问题:

private EventsClass plugin = EventsClass.getPlugin(EventsClass.class);
编译器无法解析getPlugin

代码:

Main.java:

EventsClass.java:


编译器无法解析getPlugin方法。。。因为EventsClass没有这样的方法。它只有onJoin的方法。。。和onMove…

此代码将清楚地指示编译错误:

private EventsClass plugin = EventsClass.getPlugin(EventsClass.class);
                                         ^^^^^^^^^
因为EventsClass类中没有定义getPluginClass类

事件类仅定义onJoinPlayerJoinEvent e和onMovePlayerMoveEvent e方法

另一方面,这里的主类使用以下方法扩展JavaPlugin:

public static <T extends JavaPlugin> T getPlugin(Class<T> clazz)

这就是为什么Main.getPlugin。。。调用可能是可能的。

编译器无法解析getPlugin。。。方法,因为EventsClass中没有此类方法。它只有onJoin的方法。。。还有onMove…@haba713没问题,但是当您将getplugin与Main类一起使用时,它是在没有方法声明的情况下工作的,这是因为Main扩展了JavaPlugin,而JavaPlugin具有。
package com.github.noisersup.serverrust.LoginMe;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;


import java.util.UUID;

public class Cmds implements CommandExecutor {


    String cmd1 = "login";
    String cmd2 = "register";
    String cmd3 = "changepassword";

    private EventsClass plugin = EventsClass.getPlugin(EventsClass.class);


    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {

        if(sender instanceof  Player) {
            Player p = (Player) sender;
            UUID uuid = p.getUniqueId();

            if (cmd.getName().equalsIgnoreCase(cmd1)) {
                if ("player." + uuid + ".password" != null){
                    if(!args[0].isEmpty()) {
                        if (args[0].equals("player." + uuid + ".password")) {
                            p.sendMessage("§2Logged!");
                            logged = true;
                        }else{
                            p.sendMessage("§4Wrong password!");
                        }
                    }else{
                        p.sendMessage("§4Enter password!");
                    }
                }else{
                    p.sendMessage("§4You must be registered before login.");
                }
            }
        }

        return false;
    }
}
private EventsClass plugin = EventsClass.getPlugin(EventsClass.class);
                                         ^^^^^^^^^
public static <T extends JavaPlugin> T getPlugin(Class<T> clazz)