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

Помогите Способы сравнения DisplayName у Item'ов

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

  1. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Сделай проверку на предмет в руке.
     
  2. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    И на мой взгляд лучше не делать это всё в одну строку, а примерно так:
    Код:
    public boolean isRequiredItemInHand(Player player){
          if (player.getItemInHand() == null) return false;
          ItemStack item = player.getItemInHand();
          if (item.getType()!=Material.НУЖНЫЙ_ТИП) return false;
          if (!item.hasItemMeta()) return false;
          if (!item.getItemMeta().hasDisplayName()) return false;
          return item.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD +"Itemmorger"+ChatColor.RED);
    }
    
    Ну и потом просто вызывать соответствующий метод.
    Понятно, что его можно сделать более универсальным, но по крайней мере если где-то вылезет ошибка (тот же NULL) то будет явно видно в какой строке.

    Вообще я в последнее время всё чаще склоняюсь к таким конструкциям. А то иногда открываешь старый код, а там десятиэтажное условие в if — пойди пойми что ты там сравниваешь и верная ли конструкция в целом.
     

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