Configuration file null?

Discussion in 'Plugin Development' started by RoboticPlayer, Oct 26, 2015.

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

    RoboticPlayer

    Whenever I start my server, I get this error thrown:
    Code:
    [20:14:57 WARN]: java.lang.IllegalArgumentException: File cannot be null
    [20:14:57 WARN]:        at org.apache.commons.lang.Validate.notNull(Validate.java:192)
    [20:14:57 WARN]:        at org.bukkit.configuration.file.FileConfiguration.save(FileConfiguration.java:99)
    [20:14:57 WARN]:        at me.roboticplayer.chunkprotect.SettingsManager.saveDefaultConfig(SettingsManager.java:36)
    [20:14:57 WARN]:        at me.roboticplayer.chunkprotect.SettingsManager.setup(SettingsManager.java:30)
    [20:14:57 WARN]:        at me.roboticplayer.chunkprotect.ChunkProtect.onEnable(ChunkProtect.java:9)
    [20:14:57 WARN]:        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
    [20:14:57 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332)
    [20:14:57 WARN]:        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404)
    [20:14:57 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:342)
    [20:14:57 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:314)
    [20:14:57 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:720)
    [20:14:57 WARN]:        at org.bukkit.Bukkit.reload(Bukkit.java:544)
    [20:14:57 WARN]:        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25)
    [20:14:57 WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140)
    [20:14:57 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:620)
    [20:14:57 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:606)
    [20:14:57 WARN]:        at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:372)
    [20:14:57 WARN]:        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:336)
    [20:14:57 WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:629)
    [20:14:57 WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:537)
    [20:14:57 WARN]:        at java.lang.Thread.run(Unknown Source)
    I am simply trying to save the config.yml when the server starts, and I don't know why it is throwing this.
    SettingsManager.java:
    Code:java
    1. package me.roboticplayer.chunkprotect;
    2.  
    3. import java.io.File;
    4. import java.io.IOException;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.configuration.file.FileConfiguration;
    9. import org.bukkit.plugin.Plugin;
    10. import org.bukkit.plugin.PluginDescriptionFile;
    11.  
    12. public class SettingsManager {
    13.  
    14. private SettingsManager() {
    15. }
    16.  
    17. static SettingsManager instance = new SettingsManager();
    18.  
    19. public static SettingsManager getInstance() {
    20. return instance;
    21. }
    22.  
    23. Plugin p;
    24. FileConfiguration config;
    25. File cfile;
    26.  
    27. public void setup(Plugin p) {
    28. config = p.getConfig();
    29. getConfig().options().copyDefaults(true);
    30. saveDefaultConfig();
    31. cfile = new File(p.getDataFolder(), "config.yml");
    32. }
    33.  
    34. public void saveDefaultConfig() {
    35. try {
    36. config.save(cfile);
    37. } catch (IOException e) {
    38. Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not save config.yml!");
    39. } catch (IllegalArgumentException ex) {
    40. ex.printStackTrace();
    41. Bukkit.getServer().getLogger().severe(ChatColor.RED + "Temp, cleaned up stacktrace :)");
    42. }
    43. }
    44.  
    45. public FileConfiguration getConfig() {
    46. return config;
    47. }
    48.  
    49. public PluginDescriptionFile getDescription() {
    50. return p.getDescription();
    51. }
    52. }
    53.  

    Line 9 of ChunkProtect.java just calls the setup method. Any help with this? I am going to be using multiple configuration files for this plugin, which is why I am using a SettingsManager class.
     
  2. Offline

    Zombie_Striker

    Do tell me, where are you getting the "getConfig" instance? Your class does not extend JavaPlugin (which it should not) and you have no method that has the same name, so how can you access something that does not exist? Most likely you meant to replace getConfig() with config.

    The same for the saveConfig as well.
     
  3. Offline

    RoboticPlayer

    A) It is using the plugin class to access the getConfig method. Look at the parameters for the setup method
    B) I also have a getConfig method.. I'm not sure what you are talking about
     
  4. Offline

    Zombie_Striker

    @henderry2019
    Make sure there already is a file before getting the instance maybe.
     
  5. Offline

    RoboticPlayer

    @Zombie_Striker I think I figured it out, I will test it tomorrow. I am trying to save the file before I define where it is. So I just need to switch my saveDefaultConfig call and where I define cfile.
     
Thread Status:
Not open for further replies.

Share This Page