using getconfig() in CommandExecutors?

Discussion in 'Plugin Development' started by Datdenkikniet, Jul 3, 2013.

Thread Status:
Not open for further replies.
  1. I have a CommandExecutor set up, but if I use getConfig().getString("asdfdfas"), you can use the getConfig by making a constructor, but you have to cast getString to getConfig, which doesn't work. Who knows how to solve this?

    -Datdenkikniet
     
  2. Offline

    Omerrg

    You need to get the YamlConfiguration on the setup and use it in the executor :)
     
  3. do you have a link?
     
  4. Offline

    EcMiner

    you could also just do: public YourMainClass plugin = new YourMainClass();
    and then to get the config you can type: plugin.getConfig().whateveryouwant
     
  5. thank you very much!

    EcMiner I am sorry, but I tested it, and now the command I use throws this exeption:
    Show Spoiler

    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at net.minecraft.server.v1_6_R1.PlayerList.c(PlayerList.java:204)
    at net.minecraft.server.v1_6_R1.PlayerList.a(PlayerList.java:100)
    at net.minecraft.server.v1_6_R1.PendingConnection.d(PendingConnection.java:130)
    at net.minecraft.server.v1_6_R1.PendingConnection.c(PendingConnection.java:43)
    at net.minecraft.server.v1_6_R1.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:41)
    at net.minecraft.server.v1_6_R1.DedicatedServerConnection.b(SourceFile:29)
    at net.minecraft.server.v1_6_R1.MinecraftServer.t(MinecraftServer.java:591)
    at net.minecraft.server.v1_6_R1.DedicatedServer.t(DedicatedServer.java:226)
    at net.minecraft.server.v1_6_R1.MinecraftServer.s(MinecraftServer.java:487)
    at net.minecraft.server.v1_6_R1.MinecraftServer.run(MinecraftServer.java:420)
    at net.minecraft.server.v1_6_R1.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.IllegalArgumentException: File cannot be null
    at org.apache.commons.lang.Validate.notNull(Validate.java:203)
    at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:170)
    at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
    at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
    at com.survivalcraft.shoutcraft.Hello.onJoinListener.onJoin(onJoinListener.java:24)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    ... 14 more
    2013-07-03 11:25:40 [INFO] datdenkikniet issued server command: /hx
    2013-07-03 11:25:43 [INFO] datdenkikniet issued server command: /hx datdenkikniet
    2013-07-03 11:25:43 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'hx' in plugin Hellow v0.5
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    at org.bukkit.craftbukkit.v1_6_R1.CraftServer.dispatchCommand(CraftServer.java:523)
    at net.minecraft.server.v1_6_R1.PlayerConnection.handleCommand(PlayerConnection.java:983)
    at net.minecraft.server.v1_6_R1.PlayerConnection.chat(PlayerConnection.java:901)
    at net.minecraft.server.v1_6_R1.PlayerConnection.a(PlayerConnection.java:858)
    at net.minecraft.server.v1_6_R1.Packet3Chat.handle(SourceFile:49)
    at net.minecraft.server.v1_6_R1.NetworkManager.b(NetworkManager.java:293)
    at net.minecraft.server.v1_6_R1.PlayerConnection.d(PlayerConnection.java:118)
    at net.minecraft.server.v1_6_R1.ServerConnection.b(SourceFile:37)
    at net.minecraft.server.v1_6_R1.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.v1_6_R1.MinecraftServer.t(MinecraftServer.java:591)
    at net.minecraft.server.v1_6_R1.DedicatedServer.t(DedicatedServer.java:226)
    at net.minecraft.server.v1_6_R1.MinecraftServer.s(MinecraftServer.java:487)
    at net.minecraft.server.v1_6_R1.MinecraftServer.run(MinecraftServer.java:420)
    at net.minecraft.server.v1_6_R1.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.IllegalArgumentException: File cannot be null
    at org.apache.commons.lang.Validate.notNull(Validate.java:203)
    at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:170)
    at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
    at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
    at me.sapply.Hellower.ExploderCommandExecutor.onCommand(ExploderCommandExecutor.java:27)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    ... 15 more

    what is wrong?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 2, 2016
  6. Offline

    MiniDigger

    Datdenkikniet Caused by: java.lang.IllegalArgumentException: File cannot be null

    Its says you that it cound not load the config. Have you created one?
     
  7. yes, and if I use it in my main class it does work................
     
  8. Offline

    MiniDigger

    Datdenkikniet strange....
    try to create a method to get your config.
    Code:java
    1. public static FileConfiguration getMyConfig(){
    2. return getConfig();
    3. }

    now you can get your config using YourMainClass.getMyConfig()
     
  9. I dont know why, but now i get a nullpointerexecption....
     
  10. Offline

    Rocoty

    You can't access a dynamic member from within a static method.

    In your commandExecutor class, do this:

    Code:java
    1. private FileConfiguration config;
    2.  
    3. public YourExecutor(FileConfiguration config) {
    4. this.config = config;
    5. }


    Then just use the config variable to get values (config.getString("...");)

    Of course, when you instantiate the executor in your main class, make sure to pass getConfig() as an argument
     
  11. how do I pass getConfig() as argument?
     
  12. Offline

    MiniDigger

  13. Offline

    AmShaegar

    Same as for Listeners holds for CommandExecutors. Then you can use: plugin.getConfig()...
     
Thread Status:
Not open for further replies.

Share This Page