错误。无法将事件PlayerJoinEvent传递给插件(BUKKIT)

问题描述 投票:0回答:1

我在做一个测试插件,登录的时候,它没有告诉我登录信息,而是给我一个错误。下面是日志。https:/pastebin.comSyBN5G2k。

我在互联网上寻找,但我不能找到任何帮助我。

谁能帮帮我,我需要它来做我的服务器!

这是PlayerJoinEvent事件的代码。

package com.Test.events;

import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

import com.Test.main.MClass;

public class Enter implements Listener{
    private MClass plugin;

    public Enter(MClass plugin) {
        this.plugin = plugin;
    }

    @EventHandler
    public void onEnter(PlayerJoinEvent event) {
        Player player = event.getPlayer();
        Location spawn = new Location(player.getWorld(), -8, 64, -467.0, -90, 0);
        player.teleport(spawn);

        FileConfiguration config = plugin.getConfig();
        String path = "config.welcome-message";
        if(config.getString(path).equals("true")) {
            String text = "Config.welcome-message-text";
            player.sendMessage(config.getString(text));
        }
    }
}

这是我的主类(称为MC类)

package com.Test.main;

import java.io.File;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

import com.Test.commands.CommandPotatoes;
import com.Test.commands.PrincipalCommand;
import com.Test.events.Enter;

public class MClass extends JavaPlugin{
    public String configPath;
    PluginDescriptionFile pdffile = getDescription();
    //Declaration on variables thas include info of the version and the name
    public String name = ChatColor.GOLD+""+ChatColor.BOLD+"["+pdffile.getName()+"] "+ChatColor.RESET;
    public String version = pdffile.getVersion();

    //Instruction on enable plugin
    public void onEnable() {
        //Mensaje de la consola que indica que el plugin ha sido activado
        Bukkit.getConsoleSender().sendMessage(name+ChatColor.BLUE+"Sucesfully loaded (ver "+version+")");
        registerCommands();
        registerEvents();
        registerConfig();
    }

    public void registerCommands() {
        this.getCommand("potatoes").setExecutor(new CommandPotatoes(this));
        this.getCommand("test").setExecutor(new PrincipalCommand(this));
    }
    public void registerEvents() {
        PluginManager pm = getServer().getPluginManager();
        pm.registerEvents(new Enter(this), this);
    }
    public void registerConfig() {
        File config = new File(this.getDataFolder(),"config.yml");
        configPath = config.getPath();
        if(!config.exists()) {
            this.getConfig().options().copyDefaults(true);
            saveConfig();
        }

        }
}

Plz help I need it to make my server :(

java bukkit
1个回答
1
投票

这就是你要找的东西。

Caused by: java.lang.NullPointerException
    at com.Test.events.Enter.onEnter(Enter.java:27) ~[?:?]

第27行应该是 if(config.getString(path).equals("true"))检查该路径是否真的有字符串,即是说

config:
  welcome-message: true

作为一个补充说明,你应该使用布尔类型的真值,而不是字符串。

© www.soinside.com 2019 - 2024. All rights reserved.