I switched from one config to multiple and it throw errors

Discussion in 'Plugin Development' started by Zaary, Dec 14, 2020.

Thread Status:
Not open for further replies.
  1. Offline

    Zaary

    Hello everyone, i was using one config file and there was no problems but i wanna use more configs and it throw NullPointerException.. I think it started when i used Main.config instead Main.getConfig()
    I've been trying things for so long time and then i decided to get some help here. Hope someone can help me. Thanks

    Here is what i have in my main:

    Code:
    private File configf, statsf;
    public static FileConfiguration config, stats;
    And in on enable:
    Code:
            configf = new File(getDataFolder(), "config.yml");
            statsf = new File(getDataFolder(), "stats.yml");
    
            if (!configf.exists()) {
                configf.getParentFile().mkdirs();
                saveResource("config.yml", false);
            }
            if (!statsf.exists()) {
                statsf.getParentFile().mkdirs();
                saveResource("stats.yml", false);
            }
    
            config = new YamlConfiguration();
            stats = new YamlConfiguration();
    
            try {
                config.load(configf);
                stats.load(statsf);
    
            } catch (IOException | InvalidConfigurationException e) {
                e.printStackTrace();
            }
    There i have on disable:

    Code:
    plugin.saveResource("config.yml", false);
    plugin.saveResource("stats.yml", false);
    In player join event i have setting stats.yml:


    Code:
    @EventHandler
        public void onJoin(PlayerJoinEvent e){
            e.getPlayer().teleport(Bukkit.getServer().getWorld("world").getSpawnLocation());
    
            if(!Main.stats.getConfigurationSection("players").getBoolean("registered")){
                e.getPlayer().sendMessage("§a§lWelcome on server!");
                Main.stats.set("players." + e.getPlayer().getName() + ".registered", true);
                Main.stats.set("players." + e.getPlayer().getName() + ".uuid", e.getPlayer().getUniqueId());
                Main.stats.set("players." + e.getPlayer().getName() + ".kills", 0);
                Main.stats.set("players." + e.getPlayer().getName() + ".deaths", 0);
                Main.stats.set("players." + e.getPlayer().getName() + ".streak", 0);
                Main.stats.set("players." + e.getPlayer().getName() + ".coins", 0);
            }
        }
    Also im setting and getting the config.yml:

    Code:
    Main.config.set("arenas." + args[2] + ".middle", ((Player) commandSender).getLocation());
    Code:
    ((Player) commandSender).teleport((Location) Main.config.getConfigurationSection("arenas." + args[2]).get("middle"));
     
  2. Online

    timtower Administrator Administrator Moderator

    @Zaary What errors do you get then?
     
  3. Offline

    Zaary

    Code:
    19:44:48[ERROR] Could not pass event PlayerJoinEvent to Skywars v1.0.0
    java.lang.NullPointerException: null
    at me.zaary.skywars.events.PlayerJoin.onJoin(PlayerJoin.java:18) ~[?:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor33.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[server.jar:git-Paper-294]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[server.jar:git-Paper-294]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[server.jar:git-Paper-294]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.PlayerList.postChunkLoadJoin(PlayerList.java:273) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.PlayerList.lambda$null$1(PlayerList.java:220) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.PlayerConnection.tick(PlayerConnection.java:165) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.NetworkManager.a(NetworkManager.java:388) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.ServerConnection.c(ServerConnection.java:145) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1384) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:377) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1212) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1000) ~[server.jar:git-Paper-294]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[server.jar:git-Paper-294]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]
     
  4. Offline

    JanTuck

    How does the configurations look? And what is on line 18 in PlayerJoin.java.
     
  5. Offline

    Zaary

    Line 18 is
    Code:
    if(!Main.stats.getConfigurationSection("players").getBoolean("registered")){
    Configurations by default are:
    config.yml -

    Code:
    # Skywars
    
    arenas:
    
    
    stats.yml -
    Code:
    # Player Data
    
    players:
    
     
  6. Offline

    JanTuck

    You should probably make sure that the booleans and everything is there properly then.
     
Thread Status:
Not open for further replies.

Share This Page