package net.mc_pandacraft.java.plugin.pandacraftutils.commands; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import net.mc_pandacraft.java.plugin.pandacraftutils.ConfigManager; import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer; import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitScheduler; public class CommandMuco extends AbstractCommandExecutor { public CommandMuco() { super("muco"); } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (args.length == 0) { sendMucoLists(sender); return true; } Map> lists = ConfigManager.getInstance().MultiCommand_config; String list_name = args[0].toLowerCase(); if (!lists.containsKey(list_name)) { sender.sendMessage(ChatColor.RED+"La sous commande '"+list_name+"' n'existe pas"); return true; } if ((sender instanceof Player) && !OnlinePlayerManager.get((Player)sender).hasPermission("pandacraft.muco."+list_name)) { sender.sendMessage(ChatColor.RED+"Vous n'avez pas la permission pour la sous commande '"+list_name+"'"); return true; } List params = new ArrayList(); for (int i=1; i list = lists.get(list_name); for (String line : list) { executeListedCommand(sender, line, params); } return true; } private void sendMucoLists(CommandSender sender) { List list_names = getMucoLists((sender instanceof Player)?OnlinePlayerManager.get((Player) sender):null); sender.sendMessage(ChatColor.GOLD+"----- Liste des commandes /muco -----"); for (String name : list_names) { sender.sendMessage(" - "+ChatColor.GRAY+name); } sender.sendMessage(ChatColor.GOLD+"-----------------------------------"); } private List getMucoLists(OnlinePlayer permittedPlayer) { Set list_names = ConfigManager.getInstance().MultiCommand_config.keySet(); List retList = new ArrayList(); for (String name : list_names) { if (permittedPlayer == null || permittedPlayer.hasPermission("pandacraft.muco."+name)) retList.add(name); } return retList; } private void executeListedCommand(CommandSender sender, String line, List params) { String[] args = line.split(" ", 4); if (args.length != 4) { plugin.getLogger().warning("/muco : bad format for "+ChatColor.ITALIC+line); return; } long time; try { time = Integer.parseInt(args[0]); } catch (NumberFormatException e) { plugin.getLogger().warning("/muco : bad format for "+ChatColor.ITALIC+line); return; } boolean console = args[1].equalsIgnoreCase("c"); boolean async = args[2].equalsIgnoreCase("a"); if (!args[3].startsWith("/")) { plugin.getLogger().warning("/muco : bad format for "+ChatColor.ITALIC+line); return; } String cmd = args[3].substring(1); for (int i=0; i