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

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


但我对这条线有问题:


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

编译器无法解析 getPlugin。


代码:


主.java:


package com.github.noisersup.serverrust.LoginMe;


import org.bukkit.plugin.java.JavaPlugin;


public class Main extends JavaPlugin {


    @Override

    public void onEnable() {

        loadConfig();

        getServer().getPluginManager().registerEvents(new EventsClass(),this);

    }


    public void loadConfig(){

        getConfig().options().copyDefaults(true);

        this.saveConfig();

    }

}

事件类.java:


    package com.github.noisersup.serverrust.LoginMe;


    import org.bukkit.entity.Player;

    import org.bukkit.event.EventHandler;

    import org.bukkit.event.Listener;

    import org.bukkit.event.player.PlayerJoinEvent;

    import org.bukkit.event.player.PlayerMoveEvent;


    import java.util.UUID;


    public class EventsClass implements Listener {


    public boolean logged;


    @EventHandler

    public void onJoin(PlayerJoinEvent e){


        Player p = e.getPlayer();

        UUID uuid = p.getUniqueId();


        logged = false;


        if("player."+uuid+".password"!=null){


            //login

            p.sendMessage("§2Welcome again "+p.getName()+"! Please login with command: §6§n/login <password>");



        }else{

            //register

            p.sendMessage("§2Welcome "+p.getName()+"! Please register with command: + §6§n/register <password> <repeat_password>");

        }

    }


    @EventHandler

    public void onMove(PlayerMoveEvent e){

        if(!logged){

            e.setCancelled(true);

        }


    }

}


红颜莎娜
浏览 181回答 2
2回答

守候你守候我

此代码将清楚地指示编译错误:private&nbsp;EventsClass&nbsp;plugin&nbsp;=&nbsp;EventsClass.getPlugin(EventsClass.class); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^^^^^^^^因为类中没有getPlugin(Class<?> class)定义EventsClass。EventsClass只有定义onJoin(PlayerJoinEvent e)和onMove(PlayerMoveEvent e)方法。另一方面,Main这里的类JavaPlugin使用以下方法扩展:public&nbsp;static&nbsp;<T&nbsp;extends&nbsp;JavaPlugin>&nbsp;T&nbsp;getPlugin(Class<T>&nbsp;clazz)这就是为什么Main.getPlugin(...)可以进行呼叫的原因。

饮歌长啸

编译器无法解析该方法,getPlugin(...)因为EventsClass它没有这样的方法。它只有方法onJoin(...)和onMove(...)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java