@SuppressWarnings("unchecked")
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
        try {
            this.commandsManager.execute(cmd.getName(), args, sender, sender);
            return true;
        } catch (CommandPermissionsException e) {
            sender.sendMessage(colorize("&c&lERROR: &cYou do not have permission to use that command!"));
        } catch (MissingNestedCommandException e) {
            sender.sendMessage(colorize(e.getUsage()));
        } catch (CommandUsageException e) {
            sender.sendMessage(colorize("&c&lERROR: &cIncorrect arguments! Usage: &6" + e.getUsage()));
        } catch (WrappedCommandException e) {
            if (e.getCause() instanceof NumberFormatException) {
                sender.sendMessage(colorize("&c&lERROR: &cA number was expected!"));
            } else {
                sender.sendMessage(colorize("&c&lERROR: &cAn unknown error has occurred!"));
            }
        } catch (CommandException e) {
            sender.sendMessage(colorize(e.getMessage()));
        }

        return true;
    }