Cannot invoke "polkilopelmeniy.api_control_panel.getConfig()" because "this.config" is null

Discussion in 'Plugin Development' started by PolKiloPelmeniy, Jul 13, 2022.

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

    PolKiloPelmeniy

    Code:
    package polkilopelmeniy;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    public class break_block implements Listener {
    
        api_control_panel config;
        public break_block(api_control_panel instance){
            config = instance;
        }
    
        int score_diamond = config.getConfig().getInt("Diamond");
        int score_iron = config.getConfig().getInt("Iron");
        int score_emerald = config.getConfig().getInt("Emerald");
        int score_coal = config.getConfig().getInt("Coal");
        int score_gold = config.getConfig().getInt("Gold");
        int score_copper = config.getConfig().getInt("Copper");
        int score_redstone = config.getConfig().getInt("Redstone");
        int score_lapis = config.getConfig().getInt("Lapis");
        @EventHandler
        public void blockBreak(BlockBreakEvent event){
            Block block = event.getBlock();
            Material material = block.getType();
            Player player = event.getPlayer();
            if(material.equals(Material.DIAMOND_ORE) | material.equals(Material.DEEPSLATE_DIAMOND_ORE)){
                score_diamond = score_diamond + 1;
                config.getConfig().set("Diamond", score_diamond);
                config.saveConfig();
                config.reloadConfig();
                player.sendMessage(ChatColor.AQUA + "Diamonds mined: " + score_diamond);
            }
            if(material.equals(Material.IRON_ORE) | material.equals(Material.DEEPSLATE_IRON_ORE)){
                score_iron = score_iron + 1;
                config.getConfig().set("Iron", score_iron);
                config.saveConfig();
                config.reloadConfig();
                player.sendMessage(ChatColor.WHITE + "Iron mined: " + score_iron);
            }
            if(material.equals(Material.EMERALD_ORE) | material.equals(Material.DEEPSLATE_EMERALD_ORE)){
                score_emerald = score_emerald + 1;
                config.getConfig().set("Emerald", score_emerald);
                config.saveConfig();
                config.reloadConfig();
                player.sendMessage(ChatColor.GREEN + "Emerald mined: " + score_emerald);
            }
            if(material.equals(Material.COAL_ORE) | material.equals(Material.DEEPSLATE_COAL_ORE)){
                score_coal = score_coal + 1;
                config.getConfig().set("Coal", score_coal);
                config.saveConfig();
                config.reloadConfig();
                player.sendMessage(ChatColor.GRAY + "Coal mined: " + score_coal);
            }
            if(material.equals(Material.GOLD_ORE) | material.equals(Material.DEEPSLATE_GOLD_ORE)){
                score_gold = score_gold + 1;
                config.getConfig().set("Gold", score_gold);
                config.saveConfig();
                config.reloadConfig();
                player.sendMessage(ChatColor.YELLOW + "Gold mined: " + score_gold);
            }
            if(material.equals(Material.COPPER_ORE) | material.equals(Material.DEEPSLATE_COPPER_ORE)){
                score_copper = score_copper + 1;
                config.getConfig().set("Copper", score_copper);
                config.saveConfig();
                config.reloadConfig();
                player.sendMessage(ChatColor.GOLD + "Copper mined: " + score_copper);
            }
            if(material.equals(Material.REDSTONE_ORE) | material.equals(Material.DEEPSLATE_REDSTONE_ORE)){
                score_redstone = score_redstone + 1;
                config.getConfig().set("Redstone", score_redstone);
                config.saveConfig();
                config.reloadConfig();
                player.sendMessage(ChatColor.RED + "Redstone mined: " + score_redstone);
            }
            if(material.equals(Material.LAPIS_ORE) | material.equals(Material.DEEPSLATE_LAPIS_ORE)){
                score_lapis = score_lapis + 1;
                config.getConfig().set("Lapis", score_lapis);
                config.saveConfig();
                config.reloadConfig();
                player.sendMessage(ChatColor.BLUE + "Lapis Lazuli mined: " + score_lapis);
            }
        }
    }
    
    Code:
    package polkilopelmeniy;[/INDENT]
    
    import org.bukkit.plugin.java.JavaPlugin;
    import java.io.File;
    
    public final class api_control_panel extends JavaPlugin {
    
        @Override
        public void onEnable() {
            File file = new File(getDataFolder() + File.separator + "config.yml");
    
    
            if (!file.exists()){
                getConfig().addDefault("Diamond", 0);
                getConfig().addDefault("Iron", 0);
                getConfig().addDefault("Emerald", 0);
                getConfig().addDefault("Coal", 0);
                getConfig().addDefault("Gold", 0);
                getConfig().addDefault("Copper", 0);
                getConfig().addDefault("Redstone", 0);
                getConfig().addDefault("Lapis", 0);
                getConfig().options().copyDefaults(true);
                saveConfig();
            } else {
                CheckConfig();
                saveConfig();
                reloadConfig();
            }
            this.getServer().getPluginManager().registerEvents(new break_block(this), this);
        }
    
        public void CheckConfig() {
    
            if(getConfig().get("Coal") == null){
                getConfig().set("Coal", 0);
                saveConfig();
                reloadConfig();
    
            }
    
        }
    
        @Override
        public void onDisable() {
    
        }
    }
    
    Code:
    Error occurred while enabling Api_Control_Panel v1.0-SNAPSHOT (Is it up to date?)[/INDENT]
    java.lang.NullPointerException: Cannot invoke "polkilopelmeniy.api_control_panel.getConfig()" because "this.config" is null
        at polkilopelmeniy.break_block.<init>(break_block.java:17) ~[?:?]
        at polkilopelmeniy.api_control_panel.onEnable(api_control_panel.java:29) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:342) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:479) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:523) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:437) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.reload(CraftServer.java:922) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at org.bukkit.Bukkit.reload(Bukkit.java:801) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.dispatchCommand(CraftServer.java:831) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.dispatchServerCommand(CraftServer.java:816) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at net.minecraft.server.dedicated.DedicatedServer.bg(DedicatedServer.java:419) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:395) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1197) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:1010) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:291) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3545-Spigot-475f600-4230f8f]
        at java.lang.Thread.run(Thread.java:833) [?:?]
     
  2. Offline

    timtower Administrator Administrator Moderator

    @PolKiloPelmeniy Initialize those score values in the constructor, not outside.
     
  3. Offline

    PolKiloPelmeniy

Thread Status:
Not open for further replies.

Share This Page