Планировщик

Отложенные и повторяющиеся задачи, привязанные к жизненному циклу плагина.

В этом разделе

Другие страницы раздела:

Задачи плагина

Используйте 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()