GroupeZ Docs
Modules

Module Sanctions

Système de modération complet avec bans, mutes, kicks, freezes et historique des sanctions

Fichier : modules/sanction/config.yml

Le module Sanctions est un système de modération complet qui propose les bans, mutes, kicks, freezes, un historique des sanctions par joueur ainsi que les commandes de recherche /seen et /seenip. Il inclut des raisons par défaut configurables, une liste de joueurs protégés, des options d'affichage pour /seen et des icônes de matériaux personnalisables pour l'interface d'historique des sanctions.

Stockage SQL requis

Le module Sanctions nécessite un stockage SQL (MYSQL, MARIADB, HIKARICP ou SQLITE). Les sanctions, /seen et /seenip ne sont pas implémentés pour le stockage JSON. Une base MySQL/MariaDB est recommandée pour les serveurs en production.


Configuration Source

enable: true

# List of nicknames that cannot be sanctioned, even if they do not have permission.
protections:
  - "Maxlego08"
  - "Notch"

# Default reason for /kick
kick-default-reason: "You have been kicked"

# Default reason for /mute
ban-default-reason: "The ban hammer has spoken"

# Default reason for /ban
mute-default-reason: "You have to turn your tongue 7 times before speaking"

# Default reason for /unmute
unmute-default-reason: "You have the right to talk to us"

# Default reason for /unban
unban-default-reason: "The ban hammer gives you the right to return"

# Date format used for sanctions
date-format: "yyyy-MM-dd HH:mm:ss"

# Settings of the /seen command.
# Each line can be disabled globally here, even for operators.
# The permissions below are still required when the option is enabled.

# Show the UUID of the player
seen-show-uuid: true

# Show the IP addresses used by the player
# Requires the permission essentials.seen.show.ip
# Set this to false if you never want the IP to be displayed, even to an operator
seen-show-ip: true

# Show the last known location of the player
# Requires the permission essentials.seen.show.last.location
seen-show-last-location: true

# Show the date of the first connection of the player
# Requires the permission essentials.seen.show.created.at
seen-show-created-at: true

# Show the total playtime of the player
seen-show-playtime: true

# Materials are used for sanction_history inventory

# Material used for kicks
kick-material: IRON_INGOT

# Material used for ban
ban-material: DIAMOND

# Material used for mute
mute-material: EMERALD

# Material used for unban
unban-material: IRON_INGOT

# Material used for unmute
unmute-material: COPPER_INGOT

# Material used for warn
warn-material: COAL

# Material used for freeze
freeze-material: ICE

# Material used for mute if it is active
current-mute-material: EMERALD_BLOCK

# Material used for ban if it is active
current-ban-material: DIAMOND_BLOCK

Dans le fichier par défaut, les commentaires au-dessus de ban-default-reason et mute-default-reason sont inversés. Les clés, elles, sont correctes : ban-default-reason est utilisée par /ban et mute-default-reason par /mute.


Options

Options Générales

OptionTypePar DéfautDescription
enableBooleantrueActive ou désactive le module Sanctions
protectionsListe de String["Maxlego08", "Notch"]Liste des pseudos qui ne peuvent pas être sanctionnés. Toute tentative de ban, mute, kick ou freeze contre ces joueurs est refusée
date-formatStringyyyy-MM-dd HH:mm:ssFormat de date utilisé pour les dates des sanctions (%created_at%, %expired_at% dans les notifications) et pour les dates affichées par /seen. Suit les motifs Java SimpleDateFormat

Raisons par Défaut

La raison par défaut est utilisée lorsque le modérateur ne précise pas de raison dans la commande.

OptionTypePar DéfautDescription
kick-default-reasonStringYou have been kickedRaison par défaut de /kick
ban-default-reasonStringThe ban hammer has spokenRaison par défaut de /ban
mute-default-reasonStringYou have to turn your tongue 7 times before speakingRaison par défaut de /mute
unmute-default-reasonStringYou have the right to talk to usRaison enregistrée par défaut pour /unmute
unban-default-reasonStringThe ban hammer gives you the right to returnRaison enregistrée par défaut pour /unban

Avant la version 1.0.3.8, date-format et les cinq options *-default-reason étaient ignorées silencieusement et les valeurs internes étaient toujours utilisées. Elles sont désormais lues depuis le fichier de configuration.

Options d'affichage de /seen

Chaque ligne de /seen peut être désactivée globalement. Lorsqu'une option est activée, la permission associée (s'il y en a une) reste nécessaire.

OptionTypePar DéfautPermission requiseDescription
seen-show-uuidBooleantrue-Affiche l'UUID du joueur
seen-show-ipBooleantrueessentials.seen.show.ipAffiche les adresses IP utilisées par le joueur
seen-show-last-locationBooleantrueessentials.seen.show.last.locationAffiche la dernière position connue du joueur
seen-show-created-atBooleantrueessentials.seen.show.created.atAffiche la date de première connexion du joueur
seen-show-playtimeBooleantrue-Affiche le temps de jeu total du joueur

Masquer les adresses IP à tout le monde

Les opérateurs possèdent toutes les permissions, y compris essentials.seen.show.ip : la permission seule ne permet donc pas de leur cacher les adresses IP. Mettez seen-show-ip: false pour ne jamais afficher les adresses IP dans /seen, même aux opérateurs.

Icônes de Matériaux

Ces matériaux servent d'icônes dans l'interface d'historique des sanctions pour distinguer visuellement les différents types de sanctions.

OptionTypePar DéfautDescription
kick-materialMaterialIRON_INGOTIcône des kicks
ban-materialMaterialDIAMONDIcône des bans
mute-materialMaterialEMERALDIcône des mutes
unban-materialMaterialIRON_INGOTIcône des unbans
unmute-materialMaterialCOPPER_INGOTIcône des unmutes
warn-materialMaterialCOALIcône des avertissements
freeze-materialMaterialICEIcône des freezes
current-mute-materialMaterialEMERALD_BLOCKIcône du mute actif (en cours)
current-ban-materialMaterialDIAMOND_BLOCKIcône du ban actif (en cours)

Les variantes en bloc (EMERALD_BLOCK, DIAMOND_BLOCK) sont utilisées pour les sanctions actives, ce qui permet aux modérateurs de distinguer facilement les bans/mutes passés et en cours dans l'historique.


Fonctionnement

  1. Un modérateur exécute une commande de sanction (par exemple /ban, /mute, /kick, /freeze).
  2. Le plugin vérifie si le joueur ciblé figure dans la liste protections. Si c'est le cas, l'action est refusée.
  3. La sanction est appliquée au joueur ciblé et enregistrée dans la base de données avec la date, la raison et l'auteur.
  4. Si aucune raison n'est fournie, la raison par défaut correspondante est utilisée.
  5. Les membres du staff ayant la permission notify correspondante reçoivent une notification.
  6. Les modérateurs peuvent consulter l'historique complet d'un joueur avec /sanction <joueur>, qui ouvre une interface avec des entrées identifiées par leur matériau.

Commandes Associées

CommandeAliasPermissionDescription
/ban <joueur> <durée> [raison]-essentials.banBannit un joueur du serveur
/unban <joueur> [raison]-essentials.un.banDébannit un joueur
/mute <joueur> <durée> [raison]-essentials.muteRend un joueur muet, l'empêchant d'écrire dans le chat
/unmute <joueur> [raison]-essentials.un.muteRend la parole à un joueur muet
/kick <joueur> [raison]-essentials.kickExpulse un joueur du serveur
/kickall [raison]-essentials.kick.allExpulse tous les joueurs du serveur
/freeze <joueur>-essentials.freezeGèle ou dégèle un joueur
/sanction <joueur>scessentials.sanctionOuvre l'interface de sanction d'un joueur
/seen <joueur>whoisessentials.seenAffiche les informations d'un joueur (statut, temps de jeu, UUID, IP, dernière position, première connexion)
/seenip <ip>whoisipessentials.seen.ipListe les joueurs ayant utilisé une adresse IP

Permissions Supplémentaires

PermissionDescription
essentials.ban.notifyRecevoir une notification lorsqu'un joueur est banni
essentials.unban.notifyRecevoir une notification lorsqu'un joueur est débanni
essentials.mute.notifyRecevoir une notification lorsqu'un joueur est rendu muet
essentials.unmute.notifyRecevoir une notification lorsqu'un joueur retrouve la parole
essentials.kick.notifyRecevoir une notification lorsqu'un joueur est expulsé
essentials.kick.bypass.allNe pas être expulsé par /kickall
essentials.seen.show.ipVoir les adresses IP dans /seen (si seen-show-ip vaut true)
essentials.seen.show.last.locationVoir la dernière position dans /seen (si seen-show-last-location vaut true)
essentials.seen.show.created.atVoir la date de première connexion dans /seen (si seen-show-created-at vaut true)

Pour la liste complète des commandes, consultez Commandes & Permissions.


Placeholders Associés

PlaceholderDescription
%zessentials_user_is_mute%Retourne true si le joueur est actuellement muet
%zessentials_user_mute_seconds%Retourne la durée restante du mute en secondes
%zessentials_user_mute_formatted%Retourne la durée restante du mute dans un format lisible
%zessentials_user_mute_reason%Retourne la raison du mute
%zessentials_user_is_ban%Retourne true si le joueur est banni
%zessentials_user_ban_reason%Retourne la raison du ban
%zessentials_user_ban_duration%Retourne la durée restante du ban en secondes
%zessentials_user_ban_duration_formatted%Retourne la durée restante du ban formatée
%zessentials_user_is_frozen%Retourne true si le joueur est gelé
%zessentials_user_target_is_ban%Retourne true si le joueur ciblé est actuellement banni
%zessentials_user_target_is_mute%Retourne true si le joueur ciblé est actuellement muet

Pour la liste complète des placeholders, consultez Placeholders.

Les placeholders %zessentials_user_target_is_ban% et %zessentials_user_target_is_mute% s'appliquent au joueur ciblé, et non au joueur qui fait la requête. Ils sont généralement utilisés dans les interfaces de sanction, lorsqu'un modérateur inspecte un autre joueur.


Joueurs Protégés

La liste protections empêche certains joueurs d'être sanctionnés par n'importe quel modérateur, y compris ceux qui possèdent toutes les permissions. C'est utile pour protéger les propriétaires du serveur ou des comptes système contre des sanctions accidentelles ou malveillantes.

protections:
  - "Maxlego08"
  - "Notch"

La protection se base sur le pseudo du joueur, sans tenir compte des majuscules et minuscules.


Exemple : /seen respectueux de la vie privée

seen-show-uuid: true
seen-show-ip: false
seen-show-last-location: false
seen-show-created-at: true
seen-show-playtime: true

/seen n'affiche jamais les adresses IP ni la dernière position, même aux opérateurs, mais affiche toujours l'UUID, la date de première connexion et le temps de jeu.

Sur cette page

GroupeZ MCP

La documentation dans ton IA

Le MCP permet à ton IA de chercher dans la documentation GroupeZ et de lire les exemples à jour pour t’aider à configurer tes plugins.

Lecture seule · Sans clé API côté documentation

1. Copie l’adresse du serveur

Transport : HTTP (Streamable HTTP). Authentification : aucune. Ton outil utilise son propre modèle et ses propres limites d’abonnement.

  1. Ouvre Plugins dans ChatGPT sur le web, puis + → Ajouter un serveur MCP personnalisé.
  2. Nomme-le « GroupeZ Documentation », colle l’URL ci-dessus et choisis « Aucune authentification ». Crée puis installe le plugin.
  3. Dans une conversation, tape @ et sélectionne ce plugin avant d’envoyer ta question. Si nécessaire, active search, get_page et list_pages dans ses paramètres.
Guide officiel de cet outil

3. Pose une question

Utilise le MCP GroupeZ pour m’aider à créer un inventaire zMenu. Recherche les pages pertinentes, lis les exemples et cite tes sources.
Autres clients et dépannage

Pour les clients utilisant mcpServers, adapte cet exemple à leur format :

{
  "mcpServers": {
    "groupez-docs": {
      "url": ""
    }
  }
}

Les outils disponibles sont search, get_page et list_pages. Après une mise à jour, actualise les outils du connecteur. Si ton IA n’y accède pas, vérifie que le connecteur est activé dans la conversation et que ton compte autorise les MCP personnalisés. Ouvrir l’URL dans un navigateur n’est pas un test MCP.