package me.desht.chesscraft.commands; import me.desht.chesscraft.ChessCraft; import me.desht.chesscraft.exceptions.ChessException; import me.desht.dhutils.ConfigurationManager; import me.desht.dhutils.MiscUtil; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.plugin.Plugin; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class SetcfgCommand extends ChessAbstractCommand { public SetcfgCommand() { super("chess setcfg", 2, 2); setPermissionNode("chesscraft.commands.setcfg"); setUsage("/chess setcfg"); setQuotedArgs(true); } @Override public boolean execute(Plugin plugin, CommandSender sender, String[] args) { String key = args[0], val = args[1]; ConfigurationManager configManager = ((ChessCraft) plugin).getConfigManager(); try { if (args.length > 2) { List<String> list = new ArrayList<String>(args.length - 1); list.addAll(Arrays.asList(args).subList(1, args.length)); configManager.set(key, list); } else { configManager.set(key, val); } Object res = configManager.get(key); MiscUtil.statusMessage(sender, key + " is now set to '&e" + res + "&-'"); } catch (ChessException e) { MiscUtil.errorMessage(sender, e.getMessage()); MiscUtil.errorMessage(sender, "Use /chess getcfg to list all valid keys"); } catch (IllegalArgumentException e) { MiscUtil.errorMessage(sender, e.getMessage()); } return true; } @Override public List<String> onTabComplete(Plugin plugin, CommandSender sender, String[] args) { ConfigurationSection config = ChessCraft.getInstance().getConfig(); switch (args.length) { case 1: return getConfigCompletions(sender, config, args[0]); case 2: return getConfigValueCompletions(sender, args[0], config.get(args[0]), "", args[1]); default: return noCompletions(sender); } } }