Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Отследить перемещение предмета в сундук

Mihael_i

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Mihael_i
Здравствуйте. Мне надо отследить перемещение предмета сундук, делаю я это с помощью такого кода:
Код:
@EventHandler
public void onMoveItem(InventoryClickEvent e) {
if (e.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY && e.getInventory().getName().toLowerCase().contains("chest")) {
getServer().broadcastMessage("Перемещение зафиксировано!");
}
}
Однако, если игрок просто возьмет предмет и положит его в сундук (двумя кликами) перемещение не зафиксируется. Как "поймать" такое перемещение?
 
Последнее редактирование:
Здравствуйте. Мне надо отследить перемещение предмета сундук, делаю я это с помощью такого кода:
Код:
@EventHandler
public void onMoveItem(InventoryClickEvent e) {
if (e.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY && e.getInventory().getName().toLowerCase().contains("chest")) {
getServer().broadcastMessage("Перемещение зафиксировано!");
}
}
Однако, если игрок просто возьмет предмет и положит его в сундук (двумя кликами) перемещение не зафиксируется. Как "поймать" такое перемещение?
if (e.getCurrentItem() != null && e.getInventory().getName().toLowerCase().contains("chest")) {
getServer().broadcastMessage("Перемещение зафиксировано!");
}
 
Как решили проблему, если решили? :creeper:
 
Как решили проблему, если решили? :creeper:
Однако, если игрок просто возьмет предмет и положит его в сундук (двумя кликами) перемещение не зафиксируется. Как "поймать" такое перемещение?
Обычным клик-драг эвентом. Если кому все еще надо.
 
Обычным клик-драг эвентом. Если кому все еще надо.
Это вроде только при удерживании мыши и распределении предметов по инвентарю? Двойной клик это всё ещё InventoryClickEvent, только с ClickType.DOUBLE_CLICK.
 
Это вроде только при удерживании мыши и распределении предметов по инвентарю? Двойной клик это всё ещё InventoryClickEvent, только с ClickType.DOUBLE_CLICK.
Ну так я и указал на оба ивента, на все виды кликов.
 
Обычным клик-драг эвентом. Если кому все еще надо.
Извиняюсь, а Вы не знаете как получить предмет в курсоре через InventoryDragEvent?

Просто так:
Код:
event.getCursor().getType() // Material
у меня не получается :whistle: (значение = null)
 
Последнее редактирование:
У меня это так детектится :coffee:
Код:
if (event.getInventory().getType() != InventoryType.CHEST) {}
А ты попробуй создать кастомный инвентарь либо с 27 слотами, либо 54 слота. Сравнивать нужно через Holder.
if (event.getInventory().getHolder() instanceof Chest) или DoubleChest
 
Извиняюсь, а Вы не знаете как получить предмет в курсоре через InventoryDragEvent?

Просто так:
Код:
event.getCursor().getType() // Material
у меня не получается :whistle: (значение = null)
Ну потому что, если курсор без предмета, значит на нем нет итемстака, а значит он null.
 

Поделиться этой страницей

Назад
Верх