События (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.

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.

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.

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.

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.