我想從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); } }}
2 回答

守候你守候我
TA貢獻(xiàn)1802條經(jīng)驗 獲得超10個贊
此代碼將清楚地指示編譯錯誤:
private EventsClass plugin = EventsClass.getPlugin(EventsClass.class); ^^^^^^^^^
因為類中沒有getPlugin(Class<?> class)
定義EventsClass
。
EventsClass
只有定義onJoin(PlayerJoinEvent e)
和onMove(PlayerMoveEvent e)
方法。
另一方面,Main
這里的類JavaPlugin
使用以下方法擴(kuò)展:
public static <T extends JavaPlugin> T getPlugin(Class<T> clazz)
這就是為什么Main.getPlugin(...)
可以進(jìn)行呼叫的原因。

飲歌長嘯
TA貢獻(xiàn)1951條經(jīng)驗 獲得超3個贊
編譯器無法解析該方法,getPlugin(...)
因為EventsClass
它沒有這樣的方法。它只有方法onJoin(...)
和onMove(...)
。
添加回答
舉報
0/150
提交
取消