Enhance README with features and configuration details
Expanded README with detailed features, commands, and configuration instructions for the queue mod.
This commit is contained in:
1 parent
8e4d00ab16
commit
25e60065f4
1 file changed
+120
-29
@@ -2,36 +2,127 @@
|
||||
A simple queue mod for Minecraft Java Edition. Lightweight, works on essentially any server types, (Spigot/Bukkit/Fabric/Paper), Tiered Priority Queue, and simple at its core.
|
||||
|
||||
**Table of Contents**
|
||||
- Commands
|
||||
- [Install - Requirements and Configuration](https://github.com/ProjectPersistence/queue?tab=readme-ov-file#how-it-works--what-you-need)
|
||||
- [Features](#features)
|
||||
- [Commands](#commands)
|
||||
- [Requirements](#requirements)
|
||||
- [Configuration](#configuration)
|
||||
|
||||
## How it works & What you need.
|
||||
**Requirements**:
|
||||
- A Velocity Proxy Server
|
||||
- Permission System (_Optional but required for things like priority queue and admin account bypasses_ **LuckPerms Velocity Reccomended**).
|
||||
## Features
|
||||
|
||||
### Core Queue System
|
||||
- **Automatic Queue Management** - Players are automatically sent to a queue server when the main server is full
|
||||
- **Point-Based Queue System** - Players accumulate points over time; the player with the most points gets the next available slot
|
||||
- **Tiered Priority Queue System** - Support for multiple VIP/donor tiers with configurable point accumulation rates
|
||||
- **Configurable Point Tiers** - Define custom permission nodes with different point accumulation rates (e.g., VIP tiers get points faster)
|
||||
- **Fair Tiebreaker** - If two players have the same points, the one with the better tier (lower seconds-per-point) goes first
|
||||
- **Queue Persistence** - Players reconnecting to the queue server are automatically re-added to their queue position
|
||||
- **Real-Time Position Updates** - Action bar displays current queue position and points
|
||||
|
||||
### Admin Access System
|
||||
- **Admin Bypass** (`queue.admin`) - Always bypass the queue, can join even when server is over max capacity
|
||||
- **Force Pull Players** - Admins can force pull any player from the queue directly to the main server, bypassing max capacity
|
||||
|
||||
### Server Management
|
||||
- **Automatic Pause on Server Down** - Queue processing pauses when main server goes offline
|
||||
- **Server Status Monitoring** - Checks main server status every 5 seconds
|
||||
- **Manual Queue Control** - Admins can pause/resume queue processing at any time
|
||||
- **Player Notifications** - All queue players are notified when server status changes or queue is paused/resumed
|
||||
|
||||
### Additional Features
|
||||
- **Hot Reload** - Use `/queue reload` to reload all configurations without restart
|
||||
- **Tab Completion** - All commands have tab completion support
|
||||
- **Thread-Safe** - Uses concurrent collections to prevent crashes from simultaneous access
|
||||
- **Graceful Disconnects** - Players are properly removed from queue when they disconnect
|
||||
|
||||
## Commands
|
||||
|
||||
### Player Commands
|
||||
- `/queue info` - View your current queue position, points, and point accumulation rate
|
||||
- `/queue status` - View overall queue system status (players in queue, paused state, server online status, player count)
|
||||
- `/queue credits` - View plugin credits with clickable GitHub link
|
||||
|
||||
### Admin Commands (Require `queue.admin` permission)
|
||||
- `/queue pull <player>` - Force pull a specific player from queue to main server (bypasses max capacity)
|
||||
- `/queue pause` - Pause the queue from processing new players
|
||||
- `/queue resume` - Resume queue processing
|
||||
- `/queue list` - List all players in queue with their position, points, and priority tier
|
||||
- `/queue reload` - Reload all configuration files without restarting
|
||||
|
||||
## Requirements
|
||||
|
||||
### What You Need:
|
||||
- **A Velocity Proxy Server**
|
||||
- Permission System (_Optional but required for tiered queue and admin account bypasses_ **LuckPerms Velocity Recommended**).
|
||||
- The Queue plugin installed on the velocity server.
|
||||
- Your Main Server:
|
||||
- **Your Main Server:**
|
||||
- This can be any type of Minecraft Server, **as long as it connects to the velocity proxy it will work**.
|
||||
- Fabric Proxy Lite is reccomended for **fabric servers.**
|
||||
- The Queue Server
|
||||
- Fabric Proxy Lite is recommended for **fabric servers.**
|
||||
- **The Queue Server**
|
||||
- This can be any type of Minecraft Server, **as long as it connects to the velocity proxy it will work**.
|
||||
- If you don't want to deploy yet another heavy load Minecraft Server it is reccomended to use [https://github.com/Quozul/PicoLimbo](url) or [https://github.com/Nan1t/NanoLimbo](url).
|
||||
|
||||
**Configuration:**
|
||||
- `server-config.yml`:
|
||||
```
|
||||
{main-server: main, queue-server: queue, main-server-max-players: 160}
|
||||
```
|
||||
- The `main-server` is the server that players not in queue will play on, the name of it is the name defined in you velocity proxy.
|
||||
- The `queue-server` is the server that players in queue will wait in, the name of it is the name defined in you velocity proxy.
|
||||
- The `main-server-max-players` is the maximum amount of players can be on the server before players are sent to wait in the queue.
|
||||
> [!WARNING]
|
||||
> On your actual main server `server.properities` file it is recomended that you have 5-10 more slots that your max players defined in the configuration file above to ensure that admins can bypass the queue even when the main server is full.
|
||||
- `queue-points.yml`:
|
||||
```
|
||||
tiers: {queue.vip.diamond: 10, queue.vip.gold: 20, queue.vip.silver: 30, queue.vip: 45}
|
||||
default-seconds: 60
|
||||
```
|
||||
- The `tiers` allows you to define the amount of seconds per point each rank gets, if a player contains one of these permission nodes the tier config will be applied to them. (You can add more permission nodes too)
|
||||
- The `default-seconds` is for players without a priority tier, this is the default for players without a setup rank.
|
||||
|
||||
- If you don't want to deploy yet another heavy load Minecraft Server it is recommended to use [PicoLimbo](https://github.com/Quozul/PicoLimbo) or [NanoLimbo](https://github.com/Nan1t/NanoLimbo).
|
||||
|
||||
## Configuration
|
||||
|
||||
The plugin uses two YAML configuration files, all located in the `plugins/queue/` directory. These files are automatically generated with default values on first run.
|
||||
|
||||
### server-config.yml
|
||||
|
||||
Defines the main server, queue server, and player capacity settings.
|
||||
```yaml
|
||||
# The name of the main server in your Velocity configuration
|
||||
main-server: main
|
||||
|
||||
# The name of the queue/lobby server in your Velocity configuration
|
||||
queue-server: queue
|
||||
|
||||
# Maximum players allowed on the main server (admins can bypass this)
|
||||
main-server-max-players: 100
|
||||
```
|
||||
|
||||
**Configuration Options:**
|
||||
- **main-server**: The name of your main/survival server as defined in Velocity's `velocity.toml`
|
||||
- **queue-server**: The name of your queue/lobby server as defined in Velocity's `velocity.toml`
|
||||
- **main-server-max-players**: Maximum player capacity before queue activates (admins with `queue.admin` can bypass this limit)
|
||||
|
||||
### queue-points.yml
|
||||
|
||||
Configures the point-based queue system with priority tiers.
|
||||
```yaml
|
||||
tiers:
|
||||
queue.vip.diamond: 10 # 1 point every 10 seconds
|
||||
queue.vip.gold: 20 # 1 point every 20 seconds
|
||||
queue.vip.silver: 30 # 1 point every 30 seconds
|
||||
queue.vip: 45 # 1 point every 45 seconds
|
||||
|
||||
default-seconds: 60 # Default for players without permissions
|
||||
```
|
||||
|
||||
**How It Works:**
|
||||
- Players earn points while waiting in queue
|
||||
- Lower seconds = faster points = higher priority
|
||||
- Player with most points gets the next slot
|
||||
- First matching permission in the list is used
|
||||
|
||||
**Example:** A VIP Diamond player earns 6 points per minute, while a default player earns 1 point per minute.
|
||||
|
||||
### Permission Nodes
|
||||
|
||||
**Player Permissions:**
|
||||
- Custom tier permissions defined in `queue-points.yml` (e.g., `queue.vip.diamond`, `queue.vip.gold`, etc.)
|
||||
|
||||
**Admin Permissions:**
|
||||
- `queue.admin` - Full admin access:
|
||||
- Bypass queue entirely
|
||||
- Join even when server is over max capacity
|
||||
- Access to all admin commands
|
||||
- If server is down, placed at front of queue with maximum priority
|
||||
|
||||
### Reloading Configuration
|
||||
|
||||
Use `/queue reload` in-game or console to reload all configuration files without restarting the proxy.
|
||||
|
||||
Changes will take effect immediately for:
|
||||
- Server names and max players
|
||||
- Point tier configuration
|
||||
|
||||
**Note**: Players already in the queue will keep their current point accumulation rate until they reconnect.
|
||||
Reference in new issue
Block a user