Nekorise
Пользователь
- Сообщения
- 11
- Другие ядра
- Purpur
Идея в том, что нужно создать и открыть инвентарь игроку по команде.
Есть класс с кастом-инвентарём и методом, который его заполняет.
В классе обработки команды создаётся новый экземпляр этого инвентаря (То есть у каждого игрока он свой)
В классе слушателя ивентов (А конкретно InventoryClickEvent) мне надо понять, как проверить открыт-ли именно тот инвентарь, который игрок открыл (создал) через команду.
Идея с проверкой названия инвентаря отпадает в силу её абсурдности.
Как можно проверить открыт-ли именно тот инвентарь, который был создан для игрока?
Класс с созданием инвентаря:
Класс слушателя ивентов:
Класс обработки команды:
Есть класс с кастом-инвентарём и методом, который его заполняет.
В классе обработки команды создаётся новый экземпляр этого инвентаря (То есть у каждого игрока он свой)
В классе слушателя ивентов (А конкретно InventoryClickEvent) мне надо понять, как проверить открыт-ли именно тот инвентарь, который игрок открыл (создал) через команду.
Идея с проверкой названия инвентаря отпадает в силу её абсурдности.
Как можно проверить открыт-ли именно тот инвентарь, который был создан для игрока?
Класс с созданием инвентаря:
Код:
public class MainGUI
{
public Inventory mainInventory = Bukkit.createInventory(null, 18, "gui-меню");
public void Menu(Player player)
{
ItemStack item = new ItemStack(Material.STRUCTURE_VOID);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(HEX.ApplyColor("Твой ник: " + player.getName()));
item.setItemMeta(meta);
mainInventory.setItem(4, item);
}
}
Класс слушателя ивентов:
Код:
public class MainGUIEvent implements Listener
{
@EventHandler
public void onGUIClick(InventoryClickEvent event)
{
Player player = (Player) event.getWhoClicked();
if ( ? ? ? )
{
if (event.getRawSlot() == 4)
{
player.sendMessage("Клик по предмету");
}
event.setCancelled(true);
}
}
}
Класс обработки команды:
Код:
public class AboutCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args)
{
if (args.length <= 0)
{
MainGUI mainGUI = new MainGUI();
mainGUI.Menu((Player) sender);
Player player = (Player) sender;
player.openInventory(mainGUI.mainInventory);
return true;
}
return false;
}
}