Планировщик
Отложенные и повторяющиеся задачи, привязанные к жизненному циклу плагина.
В этом разделе
Другие страницы раздела:
Задачи плагина
Используйте ctx.Scheduler() для легких отложенных и повторяющихся задач. Задачи, созданные через plugin context, привязаны к плагину и автоматически отменяются при остановке или выгрузке.
Отложенная задача
Отложенные задачи удобны для коротких действий после события, команды или ответа формы.
scheduler-later.go
ctx.Scheduler().Later(2*time.Second, func(task context.Context) { playerHandle, ok := ctx.Gameplay().Players().Resolve("Steve") if !ok || task.Err() != nil { return } _ = playerHandle.SendMessage("Ready")})Повторяющаяся задача
Повторяющаяся задача возвращает cancel-функцию. Ее можно остановить вручную до выгрузки плагина или оставить автоматическую отмену через scope плагина.
scheduler-repeat.go
cancel := ctx.Scheduler().Repeat(30*time.Second, func(task context.Context) { for _, playerHandle := range ctx.Gameplay().Players().All() { _ = playerHandle.SendTip("Arena is live") }})// Optional manual stop before plugin unload.cancel()