On startup error: java.lang.IllegalArgumentException: File cannot be null

Discussion in 'Plugin Development' started by peti446, Sep 28, 2013.

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

    peti446

    Hi i have this code for create a custom config:
    Code:java
    1.  
    2. package me.peti446.example;
    3.  
    4. import java.io.File;
    5. import java.io.FileOutputStream;
    6. import java.io.IOException;
    7. import java.io.InputStream;
    8. import java.io.OutputStream;
    9. import java.util.HashMap;
    10. import java.util.Map.Entry;
    11.  
    12. import org.bukkit.Bukkit;
    13. import org.bukkit.ChatColor;
    14. import org.bukkit.Material;
    15. import org.bukkit.command.Command;
    16. import org.bukkit.command.CommandSender;
    17. import org.bukkit.configuration.file.FileConfiguration;
    18. import org.bukkit.configuration.file.YamlConfiguration;
    19. import org.bukkit.enchantments.Enchantment;
    20. import org.bukkit.entity.Player;
    21. import org.bukkit.inventory.ItemStack;
    22. import org.bukkit.inventory.meta.ItemMeta;
    23. import org.bukkit.plugin.java.JavaPlugin;
    24.  
    25. public class ExampleClass extends JavaPlugin{
    26.  
    27. File cooldownarchivo;
    28. FileConfiguration cooldown;
    29.  
    30. public int ID = 0;
    31. public long Intervall = getConfig().getInt("Autoguardado");
    32. public boolean rennt = true;
    33. @Override
    34. public void onDisable(){
    35. saveYmls();
    36. }
    37. @Override
    38. public void onEnable(){
    39. cooldownarchivo = new File(getDataFolder(), "cooldown.yml");
    40. try{
    41. firstrun();
    42. } catch (Exception e) {
    43.  
    44. }
    45. cooldown = new YamlConfiguration();
    46. loadYmls();
    47. }
    48. public boolean onCommand(CommandSender sender, Command cmd, String cmdLeabel, String[] args){
    49.  
    50. }
    51. public void copy(InputStream in, File file){
    52. try{
    53. OutputStream out = new FileOutputStream(file);
    54. byte[] buf = new byte[1024];
    55. int len;
    56. while((len = in.read(buf)) > 0){
    57. out.write(buf, 0 ,len);
    58. }
    59. out.close();
    60. in.close();
    61. } catch (Exception e) {
    62.  
    63. }
    64. }
    65. private void firstrun() throws Exception {
    66. if(!cooldownarchivo.exists()){
    67. cooldownarchivo.getParentFile().mkdirs();
    68. copy(getResource("cooldown.yml"), cooldownarchivo);
    69. }
    70. }
    71. public void saveYmls(){
    72. try{
    73. cooldown.save(cooldownarchivo);
    74. } catch ( IOException e) {
    75.  
    76. }
    77. }
    78. public void loadYamls(){
    79. try{
    80. cooldown.load(cooldownarchivo);
    81. } catch (Exception e) {
    82.  
    83. }
    84. }
    85. }
    86.  

    But when i start my server i get his error:
    Code:java
    1. 2013-09-28 19:58:24 [SEVERE] Could not load 'plugins\example.jar' in folder 'plugins'
    2. org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: File cannot be null
    3. at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182)
    4. at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
    5. at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
    6. at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:239)
    7. at org.bukkit.craftbukkit.v1_6_R2.CraftServer.reload(CraftServer.java:607)
    8. at org.bukkit.Bukkit.reload(Bukkit.java:275)
    9. at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
    10. at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:191)
    11. at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523)
    12. at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchServerCommand(CraftServer.java:512)
    13. at net.minecraft.server.v1_6_R2.DedicatedServer.ar(DedicatedServer.java:262)
    14. at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:227)
    15. at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
    16. at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
    17. at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    18. Caused by: java.lang.IllegalArgumentException: File cannot be null
    19. at org.apache.commons.lang.Validate.notNull(Validate.java:203)
    20. at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:170)
    21. at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
    22. at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
    23. at me.peti446.UngasDiamonds.UngasDiamonds.<init>(UngasDiamonds.java:30)
    24. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    25. at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    26. at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    27. at java.lang.reflect.Constructor.newInstance(Unknown Source)
    28. at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178)
    29. ... 14 more

    why can i solve this ??
     
  2. Offline

    nisovin

    You're trying to call getConfig() before the plugin is enabled.
     
  3. Offline

    peti446

    And why can i get it ?? Because i need get it from the config
    Code:java
    1. public long Intervall = getConfig().getInt("Autoguardado")
     
Thread Status:
Not open for further replies.

Share This Page