1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Lisenochek, 7 янв 2017.

  1. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

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

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Вот так делал форич:

    Код:
                    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;
                        }
                    }
     
  3. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    конечно, у тебя есть n профессий, и ты сравниваешь аргумент с ними в n-1 случаях он не совпадет и тебе скажут что ты питух.
     
  4. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Ты хоть сам понял, что сказал?
     
  5. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    АА боже.

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

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

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

    Все, пролет.

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



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

    xDark Активный участник Пользователь

    Баллы:
    96
    valueOf(..) ? Неее, зачем нам это
     
  7. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Пробовал, ничего.
     
  8. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    ну человеку нужно name. в чем проблем то
    Тему закрывать то будем, или как?
     
  9. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    И ты отхватишь нпе.
     
  10. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    ну так то try catch вполне удобен
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Да удобен. Если не забыть toUpperCase().
     
  12. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    ну главные скиллы программиста - понимать что он хочет, понимать какой алгоритм сделает это, понимать почему твой алгоритм не сработал, и не забывать про такие мелочи
     

Поделиться этой страницей