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

Помогите Гуи инвентарь

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

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

    EugeneRu Новичок Пользователь

    Баллы:
    11
    Как сделать так чтобы если команда активирована, например fly - работает, то в гуи мы видем блок который я указал. И наоборот, fly - не работает, и в гуи другой блок который я так же указал.
     
  2. Автор темы
    EugeneRu

    EugeneRu Новичок Пользователь

    Баллы:
    11
    Мне нужно сделать это в коде, а не при использовании каких-то плагинов
     
  3. ВukkitPrоfi

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

    Баллы:
    76
    извини, не глянул раздел
     
  4. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Жесть, наверное сложно применить условный оператор?
     
  5. Автор темы
    EugeneRu

    EugeneRu Новичок Пользователь

    Баллы:
    11
    Прошу выйти из темы, если можешь помочь только словами, а не примерным кодом.
     
  6. alexandrage

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

    Баллы:
    173
  7. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Код:
    if (player.getAllowFlight()) {
        inv.setItem....
    } else {
        inv.setItem....
    }
    Я не знаю что ты имеешь под видом "активированная команда", такого собственно нет. Но в случае с флаем игрок получает возможность летать и это можно узнать примером кода выше.
     
  8. InterWall

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

    Баллы:
    173
    [offtop]
    Нет, слушай, ты просишь помощи, тебе предлагают вариант с условным оператором, который точно сработает. Но вместо того, чтобы самому что-то написать, ты просишь готовый код. Это как, нормально?
     
  9. Автор темы
    EugeneRu

    EugeneRu Новичок Пользователь

    Баллы:
    11
    Про условный оператор я знаю, но мне нужен пример гуи, возможно была тема на спиготе но я её не нашёл.
     
  10. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Вот тебе пример GUI:

    Вот пример условного оператора:
     
  11. alexandrage

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

    Баллы:
    173
    Ну все - сам нарвался.

    Код:
    package Example;
    
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    
    public class EventListener implements Listener {
        Main plugin;
    
        public EventListener(Main main) {
            this.plugin = main;
        }
    
        @EventHandler
        public void on(PlayerCommandPreprocessEvent e) {
            if (e.getMessage().equalsIgnoreCase("/menu")) {
                Player player = e.getPlayer();
                Menu menu = new Menu("Меню");
                if (player.getAllowFlight()) {
                    Stack stack = new Stack(new ItemBuilder(Material.RED_WOOL).setName("off").build(), "fly");
                    menu.addItem(stack);
                } else {
                    Stack stack = new Stack(new ItemBuilder(Material.GREEN_WOOL).setName("on").build(), "fly");
                    menu.addItem(stack);
                }
                player.openInventory(menu.getInventory());
            }
        }
    
        @EventHandler
        public void on(InventoryClickEvent e) {
            if (e.getClickedInventory().getHolder() instanceof Menu) {
                e.setCancelled(true);
                Menu menu = (Menu) e.getClickedInventory().getHolder();
                Stack stack = menu.getItem(e.getSlot());
                if (stack != null) {
                    Player p = (Player) e.getWhoClicked();
                    p.performCommand(stack.getommand());
                    p.closeInventory();
                }
            }
        }
    }
    Дополнительные классы ниже.

    https://hastebin.com/igicoxirin.cpp
    https://hastebin.com/onicunoreg.cpp
    https://hastebin.com/jopofogeyi.cpp
     
    Последнее редактирование: 6 дек 2018

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