我想从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贡献1802条经验 获得超10个赞
此代码将清楚地指示编译错误:
private EventsClass plugin = EventsClass.getPlugin(EventsClass.class); ^^^^^^^^^
因为类中没有getPlugin(Class<?> class)
定义EventsClass
。
EventsClass
只有定义onJoin(PlayerJoinEvent e)
和onMove(PlayerMoveEvent e)
方法。
另一方面,Main
这里的类JavaPlugin
使用以下方法扩展:
public static <T extends JavaPlugin> T getPlugin(Class<T> clazz)
这就是为什么Main.getPlugin(...)
可以进行呼叫的原因。
饮歌长啸
TA贡献1951条经验 获得超3个赞
编译器无法解析该方法,getPlugin(...)
因为EventsClass
它没有这样的方法。它只有方法onJoin(...)
和onMove(...)
。
添加回答
举报
0/150
提交
取消