package me.desht.scrollingmenusign.commands; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import me.desht.dhutils.ConfigurationManager; import me.desht.dhutils.MiscUtil; import me.desht.scrollingmenusign.SMSException; import me.desht.scrollingmenusign.ScrollingMenuSign; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.plugin.Plugin; public class SetConfigCommand extends SMSAbstractCommand { public SetConfigCommand() { super("sms setcfg", 2); setPermissionNode("scrollingmenusign.commands.setcfg"); setUsage("/sms setcfg <key> <value>"); setQuotedArgs(true); } @Override public boolean execute(Plugin plugin, CommandSender player, String[] args) { String key = args[0], val = args[1]; ConfigurationManager configManager = ((ScrollingMenuSign) 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.rawMessage(player, MiscUtil.STATUS_COLOUR + key + " is now set to '" + ChatColor.YELLOW + res + MiscUtil.STATUS_COLOUR + "'"); } catch (SMSException e) { MiscUtil.errorMessage(player, e.getMessage()); MiscUtil.errorMessage(player, "Use /sms getcfg to list all valid keys"); } catch (IllegalArgumentException e) { MiscUtil.errorMessage(player, e.getMessage()); } return true; } @Override public List<String> onTabComplete(Plugin plugin, CommandSender sender, String[] args) { ConfigurationSection config = ScrollingMenuSign.getInstance().getConfig().getConfigurationSection("sms"); 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); } } }