Помогите Проверить правильность написания профессии у жителей.

Lisenochek

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Lisenochek
Народ, мне необходимо сделать проверку на профессии жителей. Например, если в команде будет второй аргумент равен BUTCHER, то будет спавнится мясник, но если будет неправильное название профессии, например BYTHCER, то проверка сработает и игроку выведется сообщение о неправильном аргументе. Пытался сделать foreach, но не помогло, проверка постоянно срабатывала, даже если профессия была написана правильно. Помогите мне!
 
Вот так делал форич:

JavaScript:
                for (Villager.Profession prof : Villager.Profession.values()) {

                    if (!args[2].equalsIgnoreCase(prof.name())) {
                        p.sendMessage(C.getEntityPrefix() + C.c("&cПрофессии &6\"&7" + args[2] + "&6\" &cне существует!"));
                        p.sendMessage("");
                        p.sendMessage(C.c("&aСписок всех профессий:&7 BLACKSMITH, BUTCHER, FARMER, HUSK, LIBRARIAN, NITWIT, NORMAL, PRIEST&a!"));
                        return true;
                    }
                }
 
Вот так делал форич:

JavaScript:
                for (Villager.Profession prof : Villager.Profession.values()) {

                    if (!args[2].equalsIgnoreCase(prof.name())) {
                        p.sendMessage(C.getEntityPrefix() + C.c("&cПрофессии &6\"&7" + args[2] + "&6\" &cне существует!"));
                        p.sendMessage("");
                        p.sendMessage(C.c("&aСписок всех профессий:&7 BLACKSMITH, BUTCHER, FARMER, HUSK, LIBRARIAN, NITWIT, NORMAL, PRIEST&a!"));
                        return true;
                    }
                }
конечно, у тебя есть n профессий, и ты сравниваешь аргумент с ними в n-1 случаях он не совпадет и тебе скажут что ты питух.
 
Ты хоть сам понял, что сказал?
АА боже.

У тебя есть сколько то проффесий, пусть семь. теперь у тебя есть аргумент профессия (допустим в списке профессий такая есть и она не первая).

Запускаем форку.

При проходе форки первый раз у тебя проффесия не совпадет с аргументом, ибо он отвечает не за ту профессию.

Все, пролет.

Не умеешь понимать алгоритмы, не берись.



Java:
List<String> profs = new ArrayList<>();
for (Villager.Profession prof : Villager.Profession.values()) {
    profs.add(prof.name().toLowerCase());
}
if (!profs.contains(args[2].toLowerCase())){
    //профессии не существует
}
 
АА боже.

У тебя есть сколько то проффесий, пусть семь. теперь у тебя есть аргумент профессия (допустим в списке профессий такая есть и она не первая).

Запускаем форку.

При проходе форки первый раз у тебя проффесия не совпадет с аргументом, ибо он отвечает не за ту профессию.

Все, пролет.

Не умеешь понимать алгоритмы, не берись.



Java:
List<String> profs = new ArrayList<>();
for (Villager.Profession prof : Villager.Profession.values()) {
    profs.add(prof.name().toLowerCase());
}
if (!profs.contains(args[2].toLowerCase())){
    //профессии не существует
}
valueOf(..) ? Неее, зачем нам это
 
Да удобен. Если не забыть toUpperCase().
ну главные скиллы программиста - понимать что он хочет, понимать какой алгоритм сделает это, понимать почему твой алгоритм не сработал, и не забывать про такие мелочи
 
Назад
Верх