Сборки серверов

СливПлатные

Сейчас онлайн

  • neariz
  • shadowstich
  • Yatochka
  • dildakvasya
  • z0roday
  • co4birot
  • kost12345
  • Liko12323
  • FloTyk_CloWn
  • InnoChka
  • lemon3
  • SaintlyDIma
  • darth356
  • AntiG
  • syeddd
  • PuzyroC
  • fcPlugins
  • skete123
  • Wiggy420
  • femalenegative
  • Padomipa
  • sonofstrange
  • frostbite522
  • 280211nabi
  • _PrometheuZ_
  • wbdaAA
  • Kobalew
  • fairyx29
  • qni
  • Fomka_V
  • tjkgeg
  • Matnes
  • Deogen
  • N1A1
  • Scoutbusiness
  • sPidRan_Rpg
  • Blanche
  • Sensebility
  • khieemdu
  • kulex
  • itselloy
  • Aresonhik
  • wqxeqwexq
  • opt1
  • MizukiRai_Baba
  • _Myrmix_
  • Dareyma
  • RokyYTR
  • LiSnow
  • nesinamore
  • karvik
  • qeasqurra
  • anhvuquang0512
  • 0ooo0
  • spectrasonic117
  • neydeen123
  • Blackcat
  • TheKa1n
  • keezo
  • Thanatos
  • qingqingXD
  • billyf0
  • sepersi1488

[СРОЧНО] Помощь с GUI

Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
A
Всем привет. Я работаю с Spigot 1.19.4 & Java 17. Решил попробовать создавать свои GUI-меню (в будущем это будет плагин на скупщика, так как нормальных я не нашел на просторах интернета..) И у меня возник вопрос, а как именно понимать в каком меню игрок нажал ЛКМ например? (Если я смогу понять, в каком меню было сделано действие - я смогу сделать на него какое-то действие, такой принцип и находится в скупщике)

* ещё раз вопрос *
Как можно понять, в каком именно меню (и в меню ли вообще) совершил действие игрок?
 
Решение
Misterror
Самый надежный способ, это создать кастомный холдер, и присвоить его инвентарю. Затем проверять этого холдера.
Сначала создай новый класс:
Java:
public class MyHolder implements InventoryHolder {

    @Override
    public Inventory getInventory() {
        return null;
    }
}
Создай инвентарь с этим холдером:
Inventory inv = Bukkit.createInventory(new MyHolder(), 9, "Title");
Проверь, что клик был в нашем инвентаре:

Java:
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
    if (item == null || e.getClickedInventory() == null || !(e.getWhoClicked() instanceof Player))
        return;
    Player p = (Player) e.getWhoClicked();
    InventoryHolder holder = e.getClickedInventory().getHolder();
    if(holder...
Misterror
Самый надежный способ, это создать кастомный холдер, и присвоить его инвентарю. Затем проверять этого холдера.
Сначала создай новый класс:
Java:
public class MyHolder implements InventoryHolder {

    @Override
    public Inventory getInventory() {
        return null;
    }
}
Создай инвентарь с этим холдером:
Inventory inv = Bukkit.createInventory(new MyHolder(), 9, "Title");
Проверь, что клик был в нашем инвентаре:

Java:
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
    if (item == null || e.getClickedInventory() == null || !(e.getWhoClicked() instanceof Player))
        return;
    Player p = (Player) e.getWhoClicked();
    InventoryHolder holder = e.getClickedInventory().getHolder();
    if(holder instanceof MyHolder) { // твой холдер
        // твой код
    }
}
 
Решение
Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
ВерхНиз