public boolean run(CommandSender csender, String[] preArgs, String cmd)
    {
        sender = csender;
        usedCommand = cmd;
        // Sort out arguments
        args.clear();
        args.addAll(Arrays.asList(preArgs));
        // Check arg lengths
        if (minArgs > -1 && args.size() < minArgs || maxArgs > -1 && args.size() > maxArgs)
        {
            BukkitUtils.sendMessage(sender, Colors.Red, "Wrong arguments supplied!");
            sendUsage();
            return true;
        }
        // Check if sender should be a player
        if (!allowConsole && !(sender instanceof Player))
        {
            return false;
        }
        if (sender instanceof Player)
        {
            player = (Player) sender;
        }
        // Check permission
        if (!permission())
        {
            BukkitUtils.sendMessage(sender, Colors.Red, "You do not have permission to do that!");
            return false;
        }
        return execute();

    }