Помогите Как мне при нажатии в инвентаре открыть другой инвентарь?

Статус
Закрыто для дальнейших ответов.

rexetbanditt

Новичок
Пользователь
Баллы
6
Имя в Minecraft
rexetbandit
Здравствуйте! Я делаю плагин в нем я пишу команду открывается меню с выбором какое следующие меню мне открыть. Как мне сделать так, чтобы при нажатии на нужное мне место открывалось другое меню?
 
Здравствуйте! Я делаю плагин в нем я пишу команду открывается меню с выбором какое следующие меню мне открыть. Как мне сделать так, чтобы при нажатии на нужное мне место открывалось другое меню?
Ну ровно так же, плеер.опенинвентарь.
 
Ну ровно так же, плеер.опенинвентарь.
ну нет. Я присваиваю игрока к типу sender: Player p = (Player) sender; но когда я создаю новую функцию public void onClick(InventoryClickEvent e)
тут я не могу использовать p.openInventory(); т.к действия public void onClick(InventoryClickEvent e) идёт после public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
и естественно я не могу использовать "p" и не могу снова присвоить игроку sender
 
ну нет. Я присваиваю игрока к типу sender: Player p = (Player) sender; но когда я создаю новую функцию public void onClick(InventoryClickEvent e)
тут я не могу использовать p.openInventory(); т.к действия public void onClick(InventoryClickEvent e) идёт после public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
и естественно я не могу использовать "p" и не могу снова присвоить игроку sender
Player player = (Player) e.getWhoClicked();
 
ну нет. Я присваиваю игрока к типу sender: Player p = (Player) sender; но когда я создаю новую функцию public void onClick(InventoryClickEvent e)
тут я не могу использовать p.openInventory(); т.к действия public void onClick(InventoryClickEvent e) идёт после public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
и естественно я не могу использовать "p" и не могу снова присвоить игроку sender
Создай карту при открытии меню и храни там игрока или реализуй свой InventoryHolder и передавай новый экземпляр при открытии своего меню а при InventoryClickEvent просто получай инвентарь, получай холдер и проверяй, является ли этот холдер тем который ты туда передал (через instanceof) а затем работай над логикой менюшки.

А что касается первоначального вопроса, как сказали выше, просто открывай новый инвентарь по правилам выше. Только рекомендуется это делать на следующем тике, так как вызов closeInventory или openInventory может создать непредсказуемое поведение, если были вызваны в InventoryClickEvent.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх