События инвентаря
События инвентаря имеют целый ряд определенных подсобытий для специфичных действий. Чаще всего все они попадают под следующие три категории:
События изменяющие инвентарь: ChangeInventoryEvent. События для взаимодействия с контейнером (открытый инвентарь): InteractContainerEvent/ClickContainerEvent. События для воронок или раздатчиков, передающих предметы: TransferInventoryEvent
Все`InteractContainerEvent` имеют тразакцию с курсором, которая представляет собой изменение стака, удерживаемого курсором игрока. Все ChangeInventoryEvent имеют список слот-транзакций, которые представляют изменения в слотах инвентаря. ClickContainerEvent может иметь основной слот взаимодействия.
Некоторые примеры: Взятие предмета левой кнопкой мыши в инвентаре приведет к изменению курсора и слот-транзакции на слоте который был кликнут. Событие ClickContainerEvent.Primary Перенос предмета вдругой инвентарь с помощью shift-left-click не вызовет изменений на курсоре, но создаст две слот транзакции на изначальном слоте и целевом слоте. Событие ClickContainerEvent.Shift.Primary Выбрасывание одного элемента из курсора с помощью правого клика за пределами меню вызовет изменение курсора. Событие: ClickContainerEvent.Drop.Outside. Заполнение рецепта с помощью книги рецептов вызовет кучу слот-транзакций. Событие `ClickContainerEvent.Recipe.Single Прокрутка через хотбар не имеет курсора или слот-транзакций. Событие: ChangeInventoryEvent.Held
События создания предметов
События создания предметов вызываются вместе с обычными событиями клика, позволяя плагинам изменять или отменять результат рецепта.
CraftItemEvent.Preview вызывается после выполнения рецепта. Его отмена удаляет результат рецепта из выходного слота. CraftItemEvent.Craft вызывается когда результат рецепта забирается из выходного слота любым способом.
События зачарований
Зачарование предмета происходит в три этапа: EnchantItemEvent.CalculateLevelRequirement EnchantItemEvent.CalculateEnchantment EnchantItemEvent.Post