Otternel est un service Rust de gestion des serveurs et de leur données. Il à pour mission d'automatisé des tâches nécéssaire au bon fonctionnement de l'Antre des Loutres.
Ci-dessous les missions d'Otternel :
.
├── serverlog/ # Dossier contenant les logs des serveurs
│ └── README.md # README expliquant la redirection de logs
├── src/
│ ├── db/ # Dossier contenant les logiques d'interaction avec la BDD
│ ├── helper/ # Dossier contenant divers helper
│ ├── playerstats/ # Dossier contenant les logiques de récupération de statistique celon leurs type (cobblemon, vanilla, palworld, ...)
│ ├── serverlog/ # Dossier contenant les logiques lié à la lecture et au traitement des logs
│ ├── config.rs # Fichier de configuration utilisant le .env
│ └── main.rs # Point d'entrée de l'application
├── .env # Fichier contenant les variables d'environnement
├── .env_exemple # Fichier contenant un exemple d'un .env vierge
├── .gitignore # Fcihier .gitignore
├── Cargo.toml # Fichier contenant les dépendances Cargo du projet
├── README.md # README de l'application
├── deploy-update.sh # Script pour re-deployer l'application après une mise à jour ou un changement dans le .env
└── triggers.toml # Fichier contenant l'ensemble des triggers rechercher par le serverlog
"Serverlog" Fait référence au module de lecture de log. Celui-ci lis les logs des serveurs à la recherche de triggers afin d'effectuer certaines actions.
Exemple :
TheAzertotr joined the game va déclancher le trigger minecraft_player_joined, Otternel va alors éxcécuter la méthode lié au trigger : on_player_joined.
"Trigger" (ou en français "déclancheur") fait référence au expressions utilisés pour détectés certaines actions loggé par le serveur. Un trigger, dans Otternel, ce présente de la manière suivante (dans le fichier triggers.toml :
[[trigger]]
name = "doing_tests" # Nom du trigger, n'affecte rien. IL sert simplement à les reconnaitres.
game = "minecraft" # Jeux concernés par le trigger (Non défini = Tous les jeux)
pattern = "Th1s 1s 4 7e57" # Regex utilisé pour détecter la ligne
serverlog_ids = [1] # Serverlog IDs concernés par le trigger (Non défini = Tous les serveurs)
function = "on_test" # Méthode appeller dans la crate "actions" lorsque le trigger est déclanché
Ici, le trigger doing_tests sera déclancher lorsque qu'une ligne loggé correspondra au paterne regex "Th1s 1s 4 7e57". Une fois la ligne détecté, la méthode on_test sera lancée.
"Serverlog ID" fait référence à l'emplacement d'un serveur le dossier serverlog. Concretement, chaque serveur est attribué à un serveurlog ID afin que les logs d'un serveur ne soit pas mélangé avec ceux d'un autre.
Exemple :
serverlog/1.log. On peut aussi dire que c'est le serveur primaire (car n°1)serverlog/2.log. On peut aussi dire que c'est les serveurs secondaires (car n°2)Note : Les serverlog IDs sont stocké dans la table [à remplir] de la base
adl_global.
Otternel utilise plusieurs autres projet pour amélioré sont fonctionnement. En voici la liste :
TODO : REMPLIR CETTE SECTION
Otternel à besoin de plusieurs dépendances pour fonctionner. Ci-dessous une courte explication de comment et pourquoi chaque dépendance est utilisé (non exhaustif) :
TODO : REMPLIR CETTE SECTION