How to create a config list ?

Discussion in 'Plugin Development' started by LunaTiX_, Aug 9, 2012.

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

    LunaTiX_

    Hi,
    first, I am pretty new at bukkit developing..
    I want to create a simple config file. In this config file, i want to create a list like:
    Code:
    #Config
    List:
        -this
        -is
        -a
        -list
    I have a command "addtolist". When i type "/addtolist test", 'test' should be added to my list.
    I red the config tutorial and tried to get it to work ..
    Code:
            @Override
            public boolean onCommand(CommandSender sender, Command cmd, String label, String [] args) {
                if(sender instanceof Player) {
                    Player player = (Player)sender;
                   
                    if(cmd.getName().equalsIgnoreCase("addtolist")) {
                        if(args.length > 1) {
                            return false;
                        }
                        if(args.length == 0) {
                            return false;
                        }
                        if(args.length == 1) {
                            plugin.getConfig().getList("List").add(args[0]);
                            plugin.saveConfig();
                            plugin.reloadConfig();
                            player.sendMessage("Done");
                            return true;
                        }
                    }
                }
                return false;
            }
    }
    But eclipse says that
    Code:
     plugin.getConfig().getList("List").add(args[0]);
    is wrong.
    It underlines 'add'

    Sorry for my bad english. I hope you guys understand.
     
    dominikremes likes this.
  2. Offline

    rjVapes

    LunaTiX_ It doesn't know the type of the list. You'll probably need to cast it, something like
    Code:
            @SuppressWarnings("unchecked")
            List<String> blah = (List<String>) this.getConfig().getList("List");
            blah.add("lala");
    
    or just
    Code:
    ((List<String>) this.getConfig().getList("List")).add("lala");
    
     
    dominikremes likes this.
  3. Offline

    LunaTiX_

    Hi,
    Thanks for your answer.
    Now my command looks like this:
    Code:
                    if(cmd.getName().equalsIgnoreCase("addtolist")) {
                        if(args.length > 1) {
                            return false;
                        }
                        if(args.length == 0) {
                            return false;
                        }
                        if(args.length == 1) {
                            ((List<String>) plugin.getConfig().getList("List")).add(args[0]);
                            plugin.saveConfig();
                            plugin.reloadConfig();
                            player.sendMessage("Done");
                            return true;
                        }
                    }
    I started my server and test it. I got an internal server error:
    Code:
    2012-08-09 21:29:35 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'addtolist' in plugin ConfigList v1.0
        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:281)
        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:583)
        at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
        at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: java.lang.NullPointerException
        at com.theharofreak.AddToList.onCommand(AddToList.java:28)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
        ... 15 more
     
    dominikremes likes this.
  4. Offline

    rjVapes

    Code:
    List<String> configList = (List<String>)plugin.getConfig().getList("List");
    configList.add(args[0]);
    plugin.getConfig(),set("List", configList);
     
    dominikremes likes this.
Thread Status:
Not open for further replies.

Share This Page