Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Проверить, было ли изменено имя предмета

Тема в разделе "Разработка плагинов для новичков", создана пользователем Best_pr0stk, 12 июл 2016.

Статус темы:
Закрыта.
  1. Автор темы
    Best_pr0stk

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

    Баллы:
    78
    Имя в Minecraft:
    Best_pr0stik
    Здравствуйте. Можно ли проверить, было ли изменено имя предмета, допустим, в наковальне?
     
  2. Хостинг MineCraft
    <
  3. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
  4. Автор темы
    Best_pr0stk

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

    Баллы:
    78
    Имя в Minecraft:
    Best_pr0stik
    Код в студию!
     
  5. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Берёшь имя предмета - кладёшь в хешмапу типа <ItemStack, String>. Сравниваешь значения из хешмапы со значениями в инвентаре (или где там). Если имя отличается - название было изменено.[DOUBLEPOST=1468317623,1468317571][/DOUBLEPOST]
    От него только быдлокод идёт :(
     
  6. Автор темы
    Best_pr0stk

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

    Баллы:
    78
    Имя в Minecraft:
    Best_pr0stik
    Кхм, а если имя одинаковое? Допустим:
    Было: "Алмазная кирка"
    Стало: "Алмазная кирка"
    То тоже будет работать?
     
  7. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    Ок ща[DOUBLEPOST=1468319476,1468319314][/DOUBLEPOST]
    Код:
            ItemStack item = e.getItem();
            net.minecraft.server.v1_10_R1.ItemStack stack = CraftItemStack.asNMSCopy(item);
            NBTTagCompound tag = stack.getTag();
            boolean name = false;
            if (tag != null)
                name = !tag.getCompound("display").getString("Name").equals("");
            System.out.println(name);
    
    Если у предмета нету имени то пишется false если есть то true
     
    Последнее редактирование: 12 июл 2016
  8. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
     
  9. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
  10. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ты по булевой задаёшь булеву. А можно обойтись инвертированием.
     
  11. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    А ой сори просто до этого там было
    Код:
    System.out.println(tag.getCompound("display").getString("Name").equals("") ? "NO" : "YES";)
     
  12. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    К чему такие состыли, в ведроапи есть же дисплейнейм. getItemMeta().getDisplayName()
     
  13. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    Код:
    bool isNameChanged(ItemStack is)
    {
        return is.hasItemMeta()&&is.getItemMeta().hasDisplayName();
    }
     
  14. Автор темы
    Best_pr0stk

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

    Баллы:
    78
    Имя в Minecraft:
    Best_pr0stik
    Всем спасибо. Закрыто.
     
Статус темы:
Закрыта.

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