Custom Config files

Discussion in 'Plugin Development' started by Spikes, Sep 18, 2012.

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

    Spikes

    Hello,

    i need two YML based Config files. I put the script into a new class.
    If i try to write/save/load the config i get always a NullPointer and idk why.
    Could someone help me?

    Code:
    Code:
        public static main plugin;
        private FileConfiguration databaseConfig = null;
        private File databaseConfigFile = null;
       
        public void reloadDatabaseConfig() {
            if (databaseConfigFile == null) {
                databaseConfigFile = new File(plugin.getDataFolder(), "database.yml");
            }
            databaseConfig = YamlConfiguration.loadConfiguration(databaseConfigFile);
            InputStream defConfigStream = plugin.getResource("database.yml");
            if (defConfigStream != null) {
                YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
                databaseConfig.setDefaults(defConfig);
            }
        }
        public FileConfiguration getDatabaseConfig() {
            if (databaseConfig == null) {
                reloadDatabaseConfig();
            }
            return databaseConfig;
        }
        public void saveDatabaseConfig() {
            if (databaseConfig == null || databaseConfigFile == null) {
            return;
            }
            try {
                databaseConfig.save(databaseConfigFile);
            } catch (IOException ex) {
                Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Could not save config to " + databaseConfigFile, ex);
            }
        }
    Main:
    Code:
        public podConfig podConfig = new podConfig();
        public databaseConfig databaseConfig = new databaseConfig();
                            if(databaseConfig.getDatabaseConfig().getBoolean("database." + player.getName() + ".system.pvp_message") == true){
                                databaseConfig.getDatabaseConfig().set("database." + player.getName() + ".system.pvp_message", false);
                                databaseConfig.saveDatabaseConfig();
                                player.sendMessage(ChatColor.GRAY + "PvP messages are now disabled!");
                                return true;
                            } else {
                                databaseConfig.getDatabaseConfig().set("database." + player.getName() + ".system.pvp_message", true);
                                databaseConfig.saveDatabaseConfig();
                                player.sendMessage(ChatColor.GRAY + "PvP messages are now enabled!");
                                return true;
                            }
    
    Error:
    Code:
    org.bukkit.command.CommandException: Unhandled exception executing command 'settings' in plugin Test v0.0.0.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:878)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:825)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:807)
        at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
        at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
        at net.minecraft.server.ServerConnection.b(SourceFile:35)
        at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:581)
        at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
        at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: java.lang.NullPointerException
        at me.Spikes.test.databaseConfig.reloadDatabaseConfig(databaseConfig.java:20)
        at me.Spikes.test.databaseConfig.getDatabaseConfig(databaseConfig.java:31)
        at me.Spikes.test.main.onCommand(main.java:127)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
        ... 15 more
     
  2. Offline

    Jogy34

    Check lines 2o of databaseConfig, 31 of databaseConfig, and line 127 of main for a variable that you are using that is null. Most commonly this is brought about when someone never initializes the variable
     
  3. Offline

    Spikes

    Mhh, the code get the NullPointer at plugin.getDataFolder() and at plugin.getResource("database.yml")...
     
  4. Offline

    Jogy34

    Do you have database.yml in your plugin.jar?
     
  5. Offline

    Spikes

    Yes sir.
     
  6. Offline

    Zumpz

    at me.Spikes.test.main.onCommand(main.java:127)
    Yesterday I learn, read the error
     
Thread Status:
Not open for further replies.

Share This Page