Plugin Velocity qui redirige automatiquement les joueurs vers un serveur cible après leur authentification via NavAuth, avec un système de file d'attente intégré pour gérer les indisponibilités du serveur.
- Un joueur se connecte au proxy et atterrit sur le serveur limbo.
- NavAuth procède à l'authentification (auto-login premium ou
/logincrack). - LimboRelay intercepte l'événement
UserAuthenticatedEventet ping le serveur cible :- Serveur disponible → transfert immédiat.
- Serveur indisponible → le joueur reste en limbo et entre en file d'attente.
- Un watcher tourne en arrière-plan et ping le serveur cible à intervalle régulier. Dès qu'il répond, les joueurs en file sont redirigés un par un (avec un délai configurable).
- Si le serveur cible crashe ou redémarre pendant qu'un joueur y est connecté, celui-ci est automatiquement renvoyé en limbo et placé en file d'attente pour être reconnecté dès le retour du serveur.
| Dépendance | Rôle |
|---|---|
| Velocity ≥ 3.4.0 | Proxy Minecraft requis |
| NavAuth | Plugin d'authentification (doit tourner sur le proxy) |
- Placez le jar
LimboRelay-1.0.0.jardans le dossierplugins/de votre proxy Velocity. - Assurez-vous que NavAuth est également installé et fonctionnel.
- Configurez votre
velocity.tomlpour que le serveur limbo soit un fallback valide. - Démarrez le proxy — le fichier
plugins/LimboRelay/config.ymlest créé automatiquement au premier lancement.
Le fichier config.yml est généré avec des valeurs par défaut commentées au premier démarrage.
# Serveur vers lequel les joueurs sont redirigés après authentification.
# Doit correspondre à un serveur enregistré dans velocity.toml.
target-server: survival
# Serveur d'attente où les joueurs patientent quand le serveur cible est indisponible.
# Doit correspondre à un serveur enregistré dans velocity.toml.
limbo-server: limbo
# Intervalle (en secondes) entre chaque ping du serveur cible (actif seulement si la file est non vide).
check-interval-seconds: 5
# Timeout (en ms) du ping utilisé pour sonder le serveur cible.
ping-timeout-ms: 2000
# Délai (en ms) entre chaque transfert de joueur lors du vidage de la file.
# Mettre à 0 pour envoyer tous les joueurs simultanément.
queue-dispatch-delay-ms: 200
messages:
# Affiché quand le joueur est authentifié mais le serveur cible est indisponible.
server-unavailable:
- "<red><bold>⚠</bold></red> <gold>Le serveur démarre actuellement.</gold>"
- "<gray>Vous avez été placé en file et serez transféré automatiquement.</gray>"
# Affiché quand un joueur est renvoyé en limbo suite au crash/redémarrage du serveur cible.
server-crashed:
- "<red><bold>⚠</bold></red> <gold>Le serveur s'est fermé ou a crashé.</gold>"
- "<gray>Vous avez été placé en file et serez reconnecté automatiquement.</gray>"
# Affiché quand un joueur est transféré directement (sans passer par la file).
sent-direct: "<green>✔</green> <gold>Transfert en cours…</gold>"
# Affiché quand un joueur en file est finalement transféré après attente.
sent-from-queue: "<green>✔</green> <gold>Le serveur est de retour — transfert en cours !</gold>"
# Affiché dans l'action bar des joueurs en file à chaque tick du watcher.
# Placeholder : {position} → position 1-based dans la file.
queue-action-bar: "<yellow>⏳ Position en file : <white><bold>{position}</bold></white> — attente du serveur…</yellow>"
# Active les logs DEBUG dans la console.
debug: falseTous les messages supportent le format MiniMessage.
Les champs server-unavailable, server-crashed, sent-direct et sent-from-queue acceptent une chaîne simple ou une liste de chaînes (chaque entrée est envoyée comme message chat séparé).
- Java 25+
- Gradle (le wrapper
./gradlewest inclus) - Accès au registre GitHub Packages de NavAuth (voir ci-dessous)
L'API NavAuth est publiée sur GitHub Packages. GitHub exige une authentification même pour les paquets publics. Créez un fichier ~/.gradle/gradle.properties avec :
gpr.user=VOTRE_USERNAME_GITHUB
gpr.key=VOTRE_TOKEN_GITHUBLe token doit avoir le scope read:packages.
Vous pouvez aussi passer les credentials via des variables d'environnement :
export USERNAME=VOTRE_USERNAME_GITHUB
export TOKEN=VOTRE_TOKEN_GITHUB./gradlew buildLe jar final est produit dans build/libs/LimboRelay-1.0.0.jar.
Développé par Aethernode.