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

СливПлатные

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

  • Ziaget
  • MrGliach
  • blad
  • Kalvi
  • kirbytop901280
  • Podzemka
  • HizewQ
  • FoxySSoksy
  • BiazerMine
  • ser1261
  • Wziazara
  • DenysVojnarovych
  • lqxnio
  • MrNygus
  • namida
  • bo1shak
  • akv5
  • KrosMcPork
  • playgamesgo
  • VinPlays
  • Gundone
  • Bruh_Bird
  • skeetov222
  • playsus1234
  • claimee5945
  • Fura
  • ьрл
  • phany
  • MopsayrskY
  • VALEIM_
  • MrLavX
  • figuredout
  • Morphin
  • dsad23sda
  • jgdrf
  • Devdoggen
  • Tzima7
  • d3zer
  • karvik
  • MrAlekseYT
  • worldhipe
  • appels
  • avadakeda12332
  • AquaZ
  • azharifarid
  • Wkirill2024
  • wearxx
  • xCrazYlovely
  • NYLANT
  • Vinsent
  • Tc_Rist
  • Naiolix
  • Ranis
  • dfsdfsdfsd
  • MALEX
  • Maks411222
  • shu4y
  • ChiMei_
  • qeasqurra
  • VitaliyXX
  • DieInCalamity
  • jesusmmendozac
  • PenTaorg
  • ftup
  • maks1ch
  • Nikita534
  • gopite6642
  • zdebry
  • KillersVi_p123
  • Felleus Development
  • m1dzuha
  • Caracoto4
  • wermitist21
  • NevileeV
  • Headus

[СРОЧНО] Помощь с 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) { // твой холдер
        // твой код
    }
}
 
Решение
Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
ВерхНиз