Files
queue/build.gradle
T
Lucas Whitman ceb7d4bbe4 Add files via upload
Here's the markdown list:

## Queue Features Implemented in This Commit

- Redirection to a queue server when the main server is full
- Messages about users waiting spot
- Fallback recovery if the main server goes down, this includes appropriate message updates and re-queueing
- Admins bypass the queue entirely even if the server is full using the permission node `queue.admin`
- Admins can use `/queue pull <PlayerName>` to force bypass them to the main server for a single time
- `/queue pause` can be used to stop the queue from sending new players to the main server
- `/queue status` will tell any player (not just admins) the current conditions of the main and queue server, such as:
  - If the main server is online
  - Position in queue
  - Min/max players on the main server
  - The status of whether the queue is paused or not
- `/queue resume` unpauses the paused queue
- `/queue list` is an admin command providing information on what players are in queue and how they are being prioritized (queue points)
- Tiered queue points based ticketing system where whoever has the most points takes the next available server slot
- Permission node configuration file allowing administrators to define how many seconds it takes for (let's say) a VIP player to get a queue point
- Configuration files for server settings:
  - Which server is the queue server in Velocity
  - The max amount of non-admin player slots on the main server
  - The main server defined in a Velocity config
2025-10-23 22:10:09 -05:00

62 lines
1.6 KiB
Groovy

plugins {
id 'java'
id 'eclipse'
id 'org.jetbrains.gradle.plugin.idea-ext' version '1.1.8'
id("xyz.jpenilla.run-velocity") version "2.3.1"
}
group = 'org.projectpersistence'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral()
maven {
name = "papermc-repo"
url = "https://repo.papermc.io/repository/maven-public/"
}
}
dependencies {
compileOnly("com.velocitypowered:velocity-api:3.4.0-SNAPSHOT")
annotationProcessor("com.velocitypowered:velocity-api:3.4.0-SNAPSHOT")
}
tasks.withType(Jar) {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
tasks {
runVelocity {
// Configure the Velocity version for our task.
// This is the only required configuration besides applying the plugin.
// Your plugin's jar (or shadowJar if present) will be used automatically.
velocityVersion("3.4.0-SNAPSHOT")
}
}
def targetJavaVersion = 17
java {
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
options.release.set(targetJavaVersion)
}
def templateSource = file('src/main/templates')
def templateDest = layout.buildDirectory.dir('generated/sources/templates')
def generateTemplates = tasks.register('generateTemplates', Copy) { task ->
def props = ['version': project.version]
task.inputs.properties props
task.from templateSource
task.into templateDest
task.expand props
}
sourceSets.main.java.srcDir(generateTemplates.map { it.outputs })
project.idea.project.settings.taskTriggers.afterSync generateTemplates
project.eclipse.synchronizationTasks(generateTemplates)