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

Помогите Проблема с инвенторями

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

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

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

    Баллы:
    63
    Имя в Minecraft:
    DarkForce101
    Доброе время суток всем, у меня возникла небольшая проблема с ГУИ. Я написал небольшой ивент, и как приз, в этом ивенте, по окончанию, игроку открывается ГУИ с 10ю алмазами (его выигрышем) И проблема в том, что в этом ГУИ у меня 9 слотов, 8 из которых заняты обычным барьером, и забирать его нельзя, а 1 слот как раз эти 10 алмазов. Я, через InventoryClickEvent проверяю, что бы название инвенторя соответствовало названию ГУИ, (if (e.getView().getTitle() == "§eЗабери свой выигрыш!")
    и после проверки на название, я уже проверяю, чтобы игрок забирал алмазы, а не барьеры. И вот в чем проблема, все проверки работают и на сам ГУИ из 9ти слотов (https://skr.sh/s7v9eZO5LWP?a), и на сам инвентарь игрока, который находится под ГУИ (https://skr.sh/s7vHsmxy86P?a) И я не знаю, как сделать так, чтобы проверки работали только на сам ГУИ

    https://skr.sh/s7vEZDJAXaD?a - общий вид
     
  2. Хостинг MineCraft
    <
  3. veyn12

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

    Баллы:
    68
    Имя в Minecraft:
    Veynique
    Как ты реализуешь? Игрок сам будет брать алмазы, или ты ему в инвентарь их добавляешь? Если первое, то вот
    А ты проверяешь так: если игрок просматривает инвентарь "...", то отменить весь ивент. В итоге он отменяется во всех инвентарях
    PHP:
    if(e.getClickedInventory().getName().equalsIgnoreCase("you inventory") && e.getCurrentItem().getType().equals(Material.BARRIER)) e.setCancelled(true); return;
    Если ты будешь в инвентарь ему их выдавать, то вот
    PHP:
    if(e.getClickedInventory().getName().equalsIgnoreCase("you inventory"e.setCancelled(true); return;
     
    Последнее редактирование: 6 май 2021
    DarkForce нравится это.
  4. Автор темы
    DarkForce

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

    Баллы:
    63
    Имя в Minecraft:
    DarkForce101
    Благодарю, все работает
     
  5. LOVEC3327

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

    Баллы:
    68
    Имя в Minecraft:
    LOVEC3327
    Сейчас бы по названию инвентари сравнивать)
     
  6. veyn12

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

    Баллы:
    68
    Имя в Minecraft:
    Veynique
    У него свой код на сравнение по названию, я ему написал лучший вариант этого. В чем проблема?)
     
  7. Автор темы
    DarkForce

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

    Баллы:
    63
    Имя в Minecraft:
    DarkForce101
    Господа профессионалы, если вы знаете более стабильные способы решения задачи, то либо пишите их, либо не устраиваете срач
     
  8. LOVEC3327

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

    Баллы:
    68
    Имя в Minecraft:
    LOVEC3327
    Дал бы тогда более лучший вариант, чем его))0
     

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