- Баллы
- 76
- Имя в Minecraft
- AguRChek_TV
Раньше я проверял слоты на у меня много предметов с одинаковым именем и изменёнными текстурами которые образуют карта минирежима, и проверять нажатия на каждый из 16 слотоы не очень удобно.
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Хитро придумал: отвечать какой-то водой. Это никому не поможет. Просто фарманул одно сообщение в стату.Есть эвент InventoryClickEvent
https://helpch.at/docs/1.12.2/org/bukkit/event/inventory/InventoryClickEvent.html
public void onInventoryClick(InventoryClickEvent event) {
ItemStack item = event.getCurrentItem();
}
И дальше делаешь с предметом что надо
Ээ, нууу. Эвенты это такие события, которые вызывают определённые методы когда что-то происходит, в данном случае когда происходит клик в инвентаре вызывает этот метод. В них передаётся объект, который содержит всю информацию об событии. В данном случае это InventoryClickEvent event. Дальше я получил из переданной информации сам предмет на который кликнул с помощью event.getCurrentItem();Перепиши на русском, перечитал 3 раза, но ничего не понял.
Хитро придумал: отвечать какой-то водой. Это никому не поможет. Просто фарманул одно сообщение в стату.
Воу-воу, полегче, я смог прочитать твои знания еще с прошлого поста, когда ты даже не загуглил саму ошибку. Это вода, т.к. у него это все уже есть, да и в целом, каждый может переписать, что ты кинул, по туториалу.Ээ, нууу. Эвенты это такие события, которые вызывают определённые методы когда что-то происходит, в данном случае когда происходит клик в инвентаре вызывает этот метод. В них передаётся объект, который содержит всю информацию об событии. В данном случае это InventoryClickEvent event. Дальше я получил из переданной информации сам предмет на который кликнул с помощью event.getCurrentItem();
Как мне сделать проверку имени предмета на который игрок кликнул в инвентаре?
ItemStack item = ...; // InventoryClickEvent#getClickedItem(); ?
ItemMeta meta = item.getItemMeta();
if ("CustomName".equals(meta.getDisplayName()) {
// ...
}
Как-то я невнимательно поступил :|Код:ItemStack item = ...; // InventoryClickEvent#getClickedItem(); ? ItemMeta meta = item.getItemMeta(); if ("CustomName".equals(meta.getDisplayName()) { // ... }
Зависит от нужд же. isSimilar всю мету чекает, это не всегда нужно.Как-то я невнимательно поступил :|
Ну, в любом случае, будет полезно использовать ItemStack#isSimilar(ItemStack), т.к. это по-прежнему точнее.