@Override
    public void execute() {
        Player receiver = getReceiver();

        StringBuilder builder = new StringBuilder();
        if (players != null && !players.isEmpty()) {
            HashMap<String, String> values = new HashMap<String, String>(1);
            builder.append(TerminalUtil.createHeadline("TimeBan rm")).append("\n");

            for (String playerName : players) {
                Ban removedBan = plugin.getController().getBans().remove(playerName);
                values.put("{user}", playerName);
                
                if (removedBan != null) {
                    String message = MessagesUtil.formatMessage("rm_result", values);
                    builder.append(message).append("\n");
                } else {
                    String message = MessagesUtil.formatMessage("rm_no_result", values);
                    builder.append(message).append("\n");
                }
            }
            
            String result = builder.toString();
            if(receiver == null) {
                TerminalUtil.printToConsole(result);
            } else {
                TerminalUtil.printToPlayer(receiver, result);
            }

            // stop here in case that rmAll is also true
            return;
        }

        builder = new StringBuilder();
        if (rmAll) {
            plugin.getController().getBans().clear();
            builder.append(TerminalUtil.createHeadline("TimeBan rm")).append("\n");
            builder.append(MessagesUtil.formatMessage("rm_result_all", null));
            
            String result = builder.toString();
            if(receiver == null) {
                TerminalUtil.printToConsole(result);
            } else {
                TerminalUtil.printToPlayer(receiver, result);
            }
        }
    }