Agent pour serveurs backend

VIM Agent v1.0.0

Le plugin à installer sur vos serveurs Paper/Spigot.
Il reçoit et exécute les commandes envoyées par VelocityInstanceManager.

Présentation

VIM Agent est un plugin pour serveurs Minecraft Paper / Spigot (et forks) qui agit comme un relais d’exécution de commandes. Il écoute les messages provenant du proxy Velocity (via le canal velocity:command) et exécute les commandes reçues sur la console du serveur backend.

Cet agent est le complément indispensable de VelocityInstanceManager (VIM) pour permettre l’exécution de commandes à distance (ex: /instance exec).

  • ✅ Exécute n’importe quelle commande console envoyée par Velocity
  • ✅ Supporte le remplacement du placeholder {player}
  • ✅ Léger, sans configuration obligatoire
  • ✅ Compatible Paper 1.16+ et versions ultérieures

Installation

  1. Téléchargez VIM-Agent-1.0.0.jar depuis GitHub.
  2. Placez-le dans le dossier plugins/ de votre serveur Minecraft (Paper/Spigot).
  3. Redémarrez (ou reload) le serveur.
  4. Vérifiez que le plugin s’est bien chargé : /plugins doit afficher « VIM Agent ».
Aucune dépendance externe n’est requise. Le plugin fonctionne avec l’agent Velocity intégré (présent par défaut dans Paper).

Fonctionnement

Lorsque le proxy Velocity (via VIM) envoie une commande sur le canal velocity:command, VIM Agent :

  1. Reçoit le message (une chaîne de caractères).
  2. Remplace dynamiquement {player} par le nom du joueur cible (si fourni dans la commande Velocity).
  3. Exécute la commande sur la console du serveur comme si elle avait été tapée par un opérateur.

Exemple : depuis Velocity, la commande :
/instance exec survival-1 "give {player} diamond 1" Devlynx
sera transformée et exécutée sur le serveur survival-1 comme :
give Devlynx diamond 1.

Commandes locales

VIM Agent n’ajoute aucune commande aux joueurs. Toute l’interaction se fait depuis Velocity. Cependant, une commande console d’administration est disponible :

/vimagent reload Recharge la configuration (uniquement en console ou avec permission vimagent.admin).
Pour des raisons de sécurité, aucune commande joueur n’est exposée.

Configuration

Le fichier config.yml (dans plugins/VIMAgent/) est optionnel. Il est généré automatiquement au premier démarrage :

# Fichier de configuration VIM Agent
# Documentation : https://www.devlynx.fr/plugins/vim-agent

# Activer les logs détaillés (pour le debugging)
debug: false

# Liste des commandes interdites (empêche leur exécution)
blocked_commands:
  - "op"
  - "deop"
  - "stop"
  - "restart"
  - "plugman reload"

# Remplacement de variables supplémentaires (hors {player})
custom_placeholders:
  "{server}" : "mon_serveur"
  "{time}" : "%time%"

Explication des options

  • debug : active les messages détaillés dans la console du serveur backend.
  • blocked_commands : interdiction d’exécution de certaines commandes sensibles (ex: op, stop).
  • custom_placeholders : permet de définir vos propres variables, remplacées avant exécution.
Il est fortement recommandé d’interdire les commandes dangereuses (op, stop, etc.) via blocked_commands.

Sécurité

VIM Agent n’accepte les commandes que depuis le proxy Velocity qui l’a enregistré. Aucun autre client ou plugin ne peut envoyer de messages sur ce canal.

Recommandations supplémentaires :

  • Utilisez blocked_commands pour désactiver les commandes critiques.
  • Configurez votre proxy Velocity pour qu’il n’accepte que les commandes d’utilisateurs ayant la permission vim.exec.
  • Vérifiez que votre serveur backend est bien protégé par un pare-feu (les commandes restent locales).