Помогите Двойная проверка при одинаковом значении

FoxyMan228822

Активный участник
Баллы
61
Имя в Minecraft
FoxyMan228822
Здравствуйте. проблема такая что если у двух игроков plrcom[0] в конфиге будет одно и тоже значение plrcom[1], то оно сначала разрешает а потом запрещает, как это можно исправить?

Код:
for (String listic : this.plrcmd) {
              String[] plrcom = listic.split(":");
              String pl = plrcom[0];
              if (com.toLowerCase().startsWith("/" + plrcom[1] + " ") || com.equalsIgnoreCase("/" + plrcom[1])) {
                  if(pl.equalsIgnoreCase(playername)) {
                      e.getPlayer().sendMessage("§8[§6" + this.prefix + "§8] §6Доступ §aразрешен§6!");
                  } else {
                      e.getPlayer().sendMessage("§8[§6" + this.prefix + "§8] §cОтказано §6в доступе!");
                      this.logToFile("Игрок " + e.getPlayer().getName() + " попытался ввести команду " + com + "!");
                      e.setCancelled(true);
                }
              }
        }
 
Думаю, тебе нужно априори изменить подход.
Вместо списка(или что там у тебя) plrcmd используй Map<String, Set<String>>, где ключ String - это команда, а Set<String>(или Set<UUID>) - список игроков.
При вводе команды игроком проверяешь наличие команды в map'е. Если есть - проверяешь наличие у команды игрока, и в зависимости от этого разрешаешь или отказываешь.
 
Назад
Верх