java - 我的配置文件出现 PlayerJoinEvent 错误

标签 java bukkit

每次通过配置文件连接时,我都会收到错误。

主类:


    public Core plugin;

    @Override
    public void onEnable() {

        Bukkit.getServer().getPluginManager().registerEvents(new Events(), this);
        new DiscordCommand(this);
        new TeamspeakCommand(this);
        new cHubCommand(this);
        new PingCommand(this);
        new HelpCommand(this);
        new WebsiteCommand(this);
        new BuyCommand(this);
        new MenuCommand(this);

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

事件类:


    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {

        Player player = event.getPlayer();

        event.setJoinMessage(null);
        event.getPlayer().sendMessage(Core.getPlugin(null).getConfig().getString("joinmessage_1.", "§fWelcome to the official §acHub§f network!"));
        event.getPlayer().sendMessage(Core.getPlugin(null).getConfig().getString("joinmessage_1.", "§fWelcome to the official §acHub§f network!"));
        event.getPlayer().sendMessage(Core.getPlugin(null).getConfig().getString("joinmessage_2.", "§fIf you need any assistance, type §a/help"));
        event.getPlayer().sendMessage(Core.getPlugin(null).getConfig().getString("joinmessage_line_2.", "§7§m--------------------------------------"));

控制台错误: https://pastebin.com/CDwK3UFj

最佳答案

问题出在 Core.getPlugin(null) 上。方法 getPlugin() 来自您的 Core.java 扩展的父类 JavaPlugin,并且您不能将 null 作为参数传递。

如果你想引用你的插件对象(Core.java),你可以将其更改为Core.getPlugin(Core.class),但更专业的是在构造函数中传递对该类的引用。

因此,您的 Events.class 的开头将如下所示:

Core plugin;

public Events(Core plugin){
    this.plugin = plugin;
}

然后你可以简单地做:

event.getPlayer().sendMessage(plugin.getConfig().getString("joinmessage_1.", "§fWelcome to the official §acHub§f network!"));

在核心类中,您将其更改为:

Bukkit.getServer().getPluginManager().registerEvents(new Events(this), this);

关于java - 我的配置文件出现 PlayerJoinEvent 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554624/

相关文章:

java - Antlr 规则的返回值必须是 *Context 类型吗?

java - Gradle 测试在 teamcity 上找不到 flowId

java - 将 Java 嵌入到 C++ 应用程序中?

java - 检查数千个矩形是否相交

java - Bukkit 插件从 config.yml 获取位置

java - 在重复任务中调用 'this' 时出现静态问题

Java 日期对象列表间隔检查

java - 亚马逊 MWS listMatchingProducts 超过 10 个结果?

java - 无法修复 java.io.ObjectOutputStream.writeObject0 处的 : java. io.NotSerializedException(来源未知)

java - Bukkit 插件多个权限不起作用