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
62 lines
1.6 KiB
Groovy
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)
|