Documentation

# 😴 Anti-AFK (BETA)

# 📝 Introduction

Le système anti-AFK de Horizons permet de détecter et d'expulser les joueurs inactifs. Il dispose de deux modes de détection: simple et avancé. Le mode avancé est capable de détecter des méthodes sophistiquées d'évitement AFK comme les auto-clickers, les macros et les mouvements automatisés.

# ⚙️ Configuration

La configuration du système anti-AFK se fait dans le fichier config.yml du module

anti-afk:
  # Activer ou désactiver le système anti-AFK
  enabled: true
  
  # Mode de détection: SIMPLE ou ADVANCED
  # SIMPLE: Vérifie uniquement le mouvement entre les blocs
  # ADVANCED: Détecte les modèles de mouvement automatisés
  mode: ADVANCED
  
  # Temps en minutes avant qu'un joueur inactif soit expulsé
  afk-time-minutes: 15
  
  # Temps en secondes avant l'expulsion pour afficher un avertissement
  warning-time-seconds: 30
  
  # Messages affichés aux joueurs
  warning-message: "&c&lAFK WARNING &7You will be kicked for inactivity in {time} seconds."
  kick-message: "&c&lAFK KICK &7You were kicked for being inactive."
  
  # Paramètres de performance
  
  # Intervalle entre les vérifications AFK (secondes)
  check-interval-seconds: 1
  
  # Nombre de joueurs à traiter dans chaque cycle de vérification
  batch-size: 20
  
  # Afficher des informations de débogage détaillées
  debug: false

# 🔄 Rechargement de la configuration

Pour recharger la configuration du système anti-AFK sans redémarrer le serveur, utilisez la commande:

/horizons reload config

# 🔍 Modes de détection

Mode SIMPLE

Le mode simple détecte l'inactivité en fonction des mouvements du joueur:

  • Déplacement entre blocs
  • Placement/destruction de blocs
  • Interaction avec des objets/inventaires

Mode ADVANCED

Le mode avancé ajoute une détection supplémentaire pour identifier:

Type d'automatisation Description Méthode de détection
Mouvements circulaires Joueur tournant en cercle Analyse des changements d'angle
Sauts répétitifs Script faisant sauter régulièrement Comptage des sauts consécutifs
Mouvements ping-pong Aller-retour automatisés Détection des changements de direction
Rotations automatisées Auto-clicker/script sur la caméra Détection des motifs réguliers

# 🛡️ Permission de contournement

Les joueurs avec la permission suivante ne seront pas affectés par le système anti-AFK: horizons.afk.bypass

# 📊 Fonctionnement technique

Processus de détection

  • Les activités des joueurs sont surveillées via différents événements (mouvement, interaction, etc.)
  • Les joueurs inactifs pendant plus longtemps que afk-time-minutes reçoivent un avertissement
  • Si l'inactivité continue, le joueur est expulsé du serveur

Détection avancée
En mode ADVANCED, le système:

  • Stocke les 15-20 dernières positions et orientations
  • Analyse les motifs de mouvement pour détecter des comportements automatisés
  • Recherche des régularités dans les mouvements qui seraient impossibles pour un humain

# 💡 Conseils d'optimisation

Pour les serveurs à grande échelle (50+ joueurs):

  • Augmentez check-interval-seconds à 2-3 pour réduire la charge CPU
  • Augmentez batch-size à 25-30 pour un traitement plus efficace
  • Utilisez le mode SIMPLE si la charge serveur est préoccupante

Pour les petits serveurs avec détection stricte:

  • Maintenez check-interval-seconds à 1
  • Réduisez batch-size à 10-15
  • Utilisez le mode ADVANCED pour la meilleure détection

# ⚠️ Remarques

  • Le système anti-AFK peut avoir un impact sur les performances du serveur en mode ADVANCED avec de nombreux joueurs
  • Certains mods légitimes des clients peuvent être détectés comme des comportements AFK automatisés
  • Le délai d'inactivité (afk-time-minutes) devrait être raisonnable pour ne pas pénaliser les joueurs légitimes