Solved File Not Found?

Discussion in 'Plugin Development' started by Googlelover1234, Oct 6, 2014.

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

    Googlelover1234

    Hey, I've been working on my current plugin and I was planning on doing a few updates since it already has almost 100 downloads in the first day. Anyway, I was working on some new commands, and I decided to create a new String variable, called "prefix". Obviously, this would be the prefix I would be using before the messages, but I am having trouble with it. I let the people configure the prefix in the config, so I did
    Code:java
    1. public String prefix = ChatColor.translateAlternateColorCodes('&',
    2. getConfig().getString("Settings.prefix"));

    thinking it would work. I got an error in console, and I expected it to be some silly error, but it was a "IllegalArgumentException", and says that it simply cannot be found. Log:
    Code:
    [18:31:15 ERROR]: Could not load 'plugins/AdminEssentials.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: File cannot be null
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:308) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.java:255) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.reload(CraftServer.java:628) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.Bukkit.reload(Bukkit.java:279) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchServerCommand(CraftServer.java:529) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.aw(DedicatedServer.java:286) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:251) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
    Caused by: java.lang.IllegalArgumentException: File cannot be null
        at org.apache.commons.lang.Validate.notNull(Validate.java:203) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:171) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:118) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:112) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at com.GummyPvP.AdminEssentials.Main.Main.<init>(Main.java:28) ~[?:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_20]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_20]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_20]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[?:1.8.0_20]
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        ... 14 more
    
    My main class, where it happened:

    Code:java
    1. package com.GummyPvP.AdminEssentials.Main;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.plugin.java.JavaPlugin;
    10.  
    11. import com.GummyPvP.AdminEssentials.Commands.Admin;
    12. import com.GummyPvP.AdminEssentials.Commands.AdminEssentials;
    13. import com.GummyPvP.AdminEssentials.Commands.ClearChat;
    14. import com.GummyPvP.AdminEssentials.Commands.Freeze;
    15. import com.GummyPvP.AdminEssentials.Commands.MuteChat;
    16. import com.GummyPvP.AdminEssentials.Commands.UnFreeze;
    17. import com.GummyPvP.AdminEssentials.Listeners.ChatEvent;
    18. import com.GummyPvP.AdminEssentials.Listeners.JoinEvent;
    19. import com.GummyPvP.AdminEssentials.Listeners.MoveEvent;
    20. import com.GummyPvP.AdminEssentials.Listeners.QuitEvent;
    21.  
    22. public class Main extends JavaPlugin {
    23.  
    24. public ArrayList<Player> admin = new ArrayList<Player>();
    25. public boolean Muted;
    26. public ArrayList<Player> frozen = new ArrayList<Player>();
    27. public String prefix = ChatColor.translateAlternateColorCodes('&',
    28. getConfig().getString("Settings.prefix"));
    29.  
    30. public void onEnable() {
    31. registerCommands();
    32. registerEvents(this, new JoinEvent(this), new QuitEvent(this),
    33. new ChatEvent(this), new MoveEvent(this));
    34. if (!this.getDataFolder().exists()) {
    35. this.getDataFolder().mkdir();
    36. }
    37.  
    38. this.getConfig().options().copyDefaults(true);
    39. this.saveConfig();
    40. }
    41.  
    42. public void registerEvents(org.bukkit.plugin.Plugin plugin, Listener... lis) {
    43. for (Listener l : lis) {
    44. Bukkit.getServer().getPluginManager().registerEvents(l, plugin);
    45. }
    46. }
    47.  
    48. public void registerCommands() {
    49. getCommand("Admin").setExecutor(new Admin(this));
    50. getCommand("Admin").setPermissionMessage(
    51. ChatColor.RED + "You may not use this command.");
    52. getCommand("AdminEssentials").setExecutor(new AdminEssentials(this));
    53. getCommand("AdminEssentials").setPermissionMessage(
    54. ChatColor.RED + "You may not use this command.");
    55. getCommand("ClearChat").setExecutor(new ClearChat(this));
    56. getCommand("ClearChat").setPermissionMessage(
    57. ChatColor.RED + "You may not use this command.");
    58. getCommand("MuteChat").setExecutor(new MuteChat(this));
    59. getCommand("MuteChat").setPermissionMessage(
    60. ChatColor.RED + "You may not use this command.");
    61. getCommand("Freeze").setExecutor(new Freeze(this));
    62. getCommand("Freeze").setPermissionMessage(
    63. ChatColor.RED + "You may not use this command.");
    64. getCommand("UnFreeze").setExecutor(new UnFreeze(this));
    65. getCommand("UnFreeze").setPermissionMessage(
    66. ChatColor.RED + "You may not use this command.");
    67. }
    68. }
    69.  



    P.S. Don't hate on me for using players for arraylists, it is usually a lot easier to do than tracking all of the names and such when I'm trying to use a for loop.
     
  2. Offline

    Gater12

    Googlelover1234
    If you're going to use Players in a List at least handle it properly (e.g. Clearing lists onDisable) to avoid memory leaks.

    The config could not exist on start up. Assign the variable after creating the config.
     
  3. Offline

    Googlelover1234

    Gater12

    I use players' names/UUIDs on most things, but on this plugin I've found it a bit easier to use players instead. Anyway, it isn't working either way, just brings the same error up.
     
  4. Offline

    Gater12

  5. Offline

    Googlelover1234

    I just moved the "prefix" after the onEnable.

    Solved. Thanks for the time you spent helping Gater12.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
Thread Status:
Not open for further replies.

Share This Page