События (v0.2)
Event bus, приоритеты и before/after поведение для gameplay.
В этом разделе
Другие страницы раздела:
События
Подписки идут через ctx.On(...), ctx.OnPriority(...), ctx.OnWithOptions(...) на event bus из ctx.Events().
events-v02.go
ctx.OnWithOptions( blockevent.EventBlockPlaceBefore, coreevent.SubscribeOptions{Priority: coreevent.PriorityHigh, IgnoreCancelled: true}, func(event coreevent.Event) { before, ok := event.(*blockevent.BlockPlaceBeforeEvent) if !ok { return } before.Cancel("permission denied") },)- Приоритеты: Lowest/Low/Normal/High/Highest/Monitor.
- IgnoreCancelled позволяет пропускать обработчики для уже отмененных before-ивентов.
- Before-event payload можно править до фактического commit операции.
Block events
Kind
server.block.place.before
Payload
*blockevent.BlockPlaceBeforeEventНазначение
Cancelable hook перед установкой блока. Payload содержит player, world, pos, block, item, consume и from-item flag.
Kind
server.block.place
Payload
blockevent.BlockPlaceEventНазначение
Публикуется после установки блока: player ID, world ID, pos, block, item, consumed и from-item flag.
Kind
server.block.break.before
Payload
*blockevent.BlockBreakBeforeEventНазначение
Cancelable hook перед ломанием блока. Payload содержит player, world, pos, block, item и изменяемый drop stack.
Kind
server.block.break
Payload
blockevent.BlockBreakEventНазначение
Публикуется после commit ломания блока: player ID, world ID, pos, block, item, drop и collected count.
Kind
server.block.drop
Payload
blockevent.BlockDropEventНазначение
Публикуется при создании или сборе block drop: player ID, world ID, pos, block, drop и collected count.
Kind
server.block.redstone.update
Payload
blockevent.BlockRedstoneUpdateEventНазначение
Публикуется при изменении redstone power: world ID, pos, previous power и next power.
Kind
Payload
Назначение
server.block.place.before
*blockevent.BlockPlaceBeforeEventCancelable hook перед установкой блока. Payload содержит player, world, pos, block, item, consume и from-item flag.
server.block.place
blockevent.BlockPlaceEventПубликуется после установки блока: player ID, world ID, pos, block, item, consumed и from-item flag.
server.block.break.before
*blockevent.BlockBreakBeforeEventCancelable hook перед ломанием блока. Payload содержит player, world, pos, block, item и изменяемый drop stack.
server.block.break
blockevent.BlockBreakEventПубликуется после commit ломания блока: player ID, world ID, pos, block, item, drop и collected count.
server.block.drop
blockevent.BlockDropEventПубликуется при создании или сборе block drop: player ID, world ID, pos, block, drop и collected count.
server.block.redstone.update
blockevent.BlockRedstoneUpdateEventПубликуется при изменении redstone power: world ID, pos, previous power и next power.
Player events
Kind
server.player.message.before
Payload
*playerevent.PlayerMessageBeforeEventНазначение
Cancelable hook перед сообщением игрока. Payload содержит player, kind, title и text.
Kind
server.player.message
Payload
playerevent.PlayerMessageEventНазначение
Публикуется после commit сообщения: player ID, kind, title и text.
Kind
server.player.kick.before
Payload
*playerevent.PlayerKickBeforeEventНазначение
Cancelable hook перед kick: player и reason.
Kind
server.player.kick
Payload
playerevent.PlayerKickEventНазначение
Публикуется после kick commit: player ID и reason.
Kind
server.player.teleport.before
Payload
*playerevent.PlayerTeleportBeforeEventНазначение
Cancelable hook перед teleport: player, from position и изменяемый target position.
Kind
server.player.teleport
Payload
playerevent.PlayerTeleportEventНазначение
Публикуется после teleport commit: player ID, from position и target position.
Kind
server.player.health.before
Payload
*playerevent.PlayerHealthBeforeEventНазначение
Cancelable hook перед изменением health: player, previous health и изменяемый next health.
Kind
server.player.health
Payload
playerevent.PlayerHealthEventНазначение
Публикуется после health commit: player ID, previous health и current health.
Kind
server.player.max_health.before
Payload
*playerevent.PlayerMaxHealthBeforeEventНазначение
Cancelable hook перед изменением max health: player, previous max и изменяемый next max.
Kind
server.player.max_health
Payload
playerevent.PlayerMaxHealthEventНазначение
Публикуется после max-health commit: player ID, previous max и current max.
Kind
server.player.gamemode.before
Payload
*playerevent.PlayerGameModeBeforeEventНазначение
Cancelable hook перед сменой game mode: player, previous mode и изменяемый next mode.
Kind
server.player.gamemode
Payload
playerevent.PlayerGameModeEventНазначение
Публикуется после game mode commit: player ID, previous mode и current mode.
Kind
server.player.abilities.before
Payload
*playerevent.PlayerAbilitiesBeforeEventНазначение
Cancelable hook перед изменением abilities: player, allow-flight и flying.
Kind
server.player.abilities
Payload
playerevent.PlayerAbilitiesEventНазначение
Публикуется после abilities commit: player ID, allow-flight и flying.
Kind
Payload
Назначение
server.player.message.before
*playerevent.PlayerMessageBeforeEventCancelable hook перед сообщением игрока. Payload содержит player, kind, title и text.
server.player.message
playerevent.PlayerMessageEventПубликуется после commit сообщения: player ID, kind, title и text.
server.player.kick.before
*playerevent.PlayerKickBeforeEventCancelable hook перед kick: player и reason.
server.player.kick
playerevent.PlayerKickEventПубликуется после kick commit: player ID и reason.
server.player.teleport.before
*playerevent.PlayerTeleportBeforeEventCancelable hook перед teleport: player, from position и изменяемый target position.
server.player.teleport
playerevent.PlayerTeleportEventПубликуется после teleport commit: player ID, from position и target position.
server.player.health.before
*playerevent.PlayerHealthBeforeEventCancelable hook перед изменением health: player, previous health и изменяемый next health.
server.player.health
playerevent.PlayerHealthEventПубликуется после health commit: player ID, previous health и current health.
server.player.max_health.before
*playerevent.PlayerMaxHealthBeforeEventCancelable hook перед изменением max health: player, previous max и изменяемый next max.
server.player.max_health
playerevent.PlayerMaxHealthEventПубликуется после max-health commit: player ID, previous max и current max.
server.player.gamemode.before
*playerevent.PlayerGameModeBeforeEventCancelable hook перед сменой game mode: player, previous mode и изменяемый next mode.
server.player.gamemode
playerevent.PlayerGameModeEventПубликуется после game mode commit: player ID, previous mode и current mode.
server.player.abilities.before
*playerevent.PlayerAbilitiesBeforeEventCancelable hook перед изменением abilities: player, allow-flight и flying.
server.player.abilities
playerevent.PlayerAbilitiesEventПубликуется после abilities commit: player ID, allow-flight и flying.
Inventory events
Kind
server.inventory.give.before
Payload
*inventoryevent.InventoryGiveBeforeEventНазначение
Cancelable hook перед выдачей предмета: player и изменяемый stack.
Kind
server.inventory.give
Payload
inventoryevent.InventoryGiveEventНазначение
Публикуется после give commit: player ID, stack и added count.
Kind
server.inventory.take.before
Payload
*inventoryevent.InventoryTakeBeforeEventНазначение
Cancelable hook перед изъятием предмета: player и изменяемый match stack.
Kind
server.inventory.take
Payload
inventoryevent.InventoryTakeEventНазначение
Публикуется после take commit: player ID, match stack и removed count.
Kind
server.container.open
Payload
inventoryevent.ContainerOpenEventНазначение
Публикуется при открытии block container игроком: player ID, world ID, position, container ID и container type.
Kind
Payload
Назначение
server.inventory.give.before
*inventoryevent.InventoryGiveBeforeEventCancelable hook перед выдачей предмета: player и изменяемый stack.
server.inventory.give
inventoryevent.InventoryGiveEventПубликуется после give commit: player ID, stack и added count.
server.inventory.take.before
*inventoryevent.InventoryTakeBeforeEventCancelable hook перед изъятием предмета: player и изменяемый match stack.
server.inventory.take
inventoryevent.InventoryTakeEventПубликуется после take commit: player ID, match stack и removed count.
server.container.open
inventoryevent.ContainerOpenEventПубликуется при открытии block container игроком: player ID, world ID, position, container ID и container type.
Entity and effect events
Kind
server.effect.add.before
Payload
*entityevent.EffectAddBeforeEventНазначение
Cancelable hook перед добавлением эффекта: player ID, entity ID и effect spec.
Kind
server.effect.remove.before
Payload
*entityevent.EffectRemoveBeforeEventНазначение
Cancelable hook перед снятием эффекта: player ID, entity ID и effect type.
Kind
server.effect.add
Payload
entityevent.EffectEventНазначение
Публикуется после добавления эффекта: kind, player ID, entity ID, effect instance, replaced flag и reason.
Kind
server.effect.remove
Payload
entityevent.EffectEventНазначение
Публикуется после снятия эффекта с тем же shared effect payload.
Kind
server.effect.expire
Payload
entityevent.EffectEventНазначение
Публикуется при естественном истечении эффекта. Использует shared effect payload.
Kind
Payload
Назначение
server.effect.add.before
*entityevent.EffectAddBeforeEventCancelable hook перед добавлением эффекта: player ID, entity ID и effect spec.
server.effect.remove.before
*entityevent.EffectRemoveBeforeEventCancelable hook перед снятием эффекта: player ID, entity ID и effect type.
server.effect.add
entityevent.EffectEventПубликуется после добавления эффекта: kind, player ID, entity ID, effect instance, replaced flag и reason.
server.effect.remove
entityevent.EffectEventПубликуется после снятия эффекта с тем же shared effect payload.
server.effect.expire
entityevent.EffectEventПубликуется при естественном истечении эффекта. Использует shared effect payload.
Task events
Kind
server.task.accepted
Payload
task lifecycle eventНазначение
Публикуется, когда bounded background work принято plugin task runner.
Kind
server.task.started
Payload
task lifecycle eventНазначение
Публикуется, когда принятое задание начало выполняться.
Kind
server.task.completed
Payload
task lifecycle eventНазначение
Публикуется, когда task завершился успешно.
Kind
server.task.failed
Payload
task lifecycle eventНазначение
Публикуется, когда task вернул или записал error.
Kind
server.task.canceled
Payload
task lifecycle eventНазначение
Публикуется, когда task остановлен через context cancellation.
Kind
Payload
Назначение
server.task.accepted
task lifecycle eventПубликуется, когда bounded background work принято plugin task runner.
server.task.started
task lifecycle eventПубликуется, когда принятое задание начало выполняться.
server.task.completed
task lifecycle eventПубликуется, когда task завершился успешно.
server.task.failed
task lifecycle eventПубликуется, когда task вернул или записал error.
server.task.canceled
task lifecycle eventПубликуется, когда task остановлен через context cancellation.