
Li✨eferred
Persistent command queues and scheduled actions for Paper servers.
!Li✨eferred Banner
🌸 What is Li✨eferred?
Li✨eferred is a lightweight utility plugin for Paper that allows server administrators to queue commands and actions to run later.
Tasks can either run after a specified amount of time or the next time a particular player joins the server.
Everything is persisted using SQLite, meaning queued tasks survive restarts and remain available for inspection, cancellation, retrying and historical review.
/deferred in 30m say The event has started!
/deferred player Lily next-login give Lily diamond 3
✨ Features
- Persistent scheduled commands
- Next-login player actions
- SQLite storage
- Automatic retry support
- Crash-safe interrupted task handling
- Paginated task history
- Clickable task inspection
- Configurable MiniMessage output
- Granular permissions
- Automatic history cleanup
⏰ Examples
/deferred in <duration> <command...>
/deferred player <player> next-login <command...>
📋 Commands
| Command | Description |
|---|---|
/deferred in <duration> <command...> | Schedule a command for later |
/deferred player <player> next-login <command...> | Queue a command for a player's next login |
/deferred list [page] | View stored deferred tasks |
/deferred inspect <id> | Inspect a task in detail |
/deferred cancel <id> | Cancel a pending or failed task |
/deferred retry <id> | Retry a failed task |
/deferred reload | Reload configuration and messages |
Task entries shown by /deferred list include a clickable Inspect action for quickly opening the corresponding task.
🔐 Permissions
| Permission | Description |
|---|---|
li✨eferred.create | Create scheduled and next-login tasks |
li✨eferred.list | View stored task listings |
li✨eferred.manage | Inspect, cancel and retry tasks |
li✨eferred.reload | Reload configuration and messages |
li✨eferred.admin | Grants all Li✨eferred permissions |
All permissions default to server operators.
🏡 Architecture
!Li✨eferred Diagram
Li✨eferred keeps its runtime, business logic and persistence layers deliberately separated.
Commands / PlayerJoinEvent
│
▼
DeferredTaskService
│ │
▼ ▼
TaskRepository ScheduledTaskQueue
│ │
▼ ▼
SQLite ScheduledTaskRunner
│
▼
TaskExecutor
│
▼
Paper Main Thread
⚡ Performance
- No normal SQL work on Paper's main thread
- No recurring SQLite polling for scheduled tasks
- Indexed database queries
- Configurable backlog limits
- Single dedicated database thread
- WAL mode SQLite persistence
🛡️ Crash Safety
There is an unavoidable ambiguity when executing persistent commands:
Task marked RUNNING
↓
Command dispatched successfully
↓
Server crashes
↓
COMPLETED state was never persisted
✅ Requirements
- Paper 26.2+
- Java 25
Li✨eferred is developed and tested against Paper.
Other server implementations are not currently officially supported.
🌸 The Lils Plugin Collection
Li✨eferred is part of the Lils collection: a growing set of clean, lightweight Paper utilities with a focus on practical server administration, efficient implementation and maintainable code.
The goal of each project is to remain focused rather than becoming an oversized all-in-one plugin.
📜 License
Li✨eferred is open-source software licensed under the MIT License.
You are free to use, modify and redistribute the project in accordance with the terms of the license.
See the full LICENSE file for details.
Сервер для плагина Li✨eferred - как у профи
Плагин Li✨eferred создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином Li✨eferred для друзей можно за пару минут - BungeeHost всё уже подготовил.
