Aller au contenu principal

Module Chat

Fichier : modules/chat/config.yml

Le module Chat est l'un des modules les plus riches en fonctionnalites de zEssentials. Il controle tous les aspects du chat du serveur, notamment le formatage, les outils de moderation, l'anti-spam, les elements interactifs, les mentions, le chat local, l'affichage d'objets, les liens cliquables, les regles personnalisees, les boutons d'action de moderateur et le stockage optionnel de l'historique du chat. Le module utilise un systeme de permissions base sur les priorites pour les formats de chat et MiniMessage pour le formatage de texte enrichi.


Permissions de Contournement

Les permissions suivantes permettent aux joueurs de contourner certaines restrictions du chat :

PermissionDescription
essentials.chat.bypass.alphanumericContourner le filtre regex alphanumerique
essentials.chat.bypass.dynamic.cooldownContourner le temps de recharge dynamique du chat (anti-spam)
essentials.chat.bypass.linkContourner le filtre de liens/URL dans le chat
essentials.chat.bypass.same.messageContourner la detection de messages en double
essentials.chat.bypass.disableContourner la restriction de chat desactive (parler lorsque le chat est desactive)
essentials.chat.moderatorAccorde l'acces au bouton d'action de moderateur sur les messages du chat

Permissions de Formatage du Chat

Ces permissions controlent quelles balises de formatage MiniMessage un joueur peut utiliser dans le chat :

PermissionBalises Autorisees
essentials.chat.colorBalises de couleur (par exemple, <red>, <#ff0000>)
essentials.chat.decorationBalises de decoration (<bold>, <italic>, <underlined>, <strikethrough>, <obfuscated>)
essentials.chat.rainbowBalise de degrade arc-en-ciel (<rainbow>)
essentials.chat.gradientBalise de degrade (<gradient:color1:color2>)
essentials.chat.clickBalises d'evenement de clic (<click:action:value>)
essentials.chat.hoverBalises d'evenement de survol (<hover:show_text:value>)
essentials.chat.newlineBalise de retour a la ligne (<newline>)
essentials.chat.resetBalise de reinitialisation (<reset>)
essentials.chat.fontBalise de police (<font:name>)
essentials.chat.keybindBalise de raccourci clavier (<keybind:key>)
essentials.chat.linkBalises d'URL cliquables

Configuration Source

enable: true

# Regex and filter toggles
enable-alphanumeric-regex: true
enable-link-regex: true
enable-itemadders-font-regex: true

# Anti-spam systems
enable-chat-dynamic-cooldown: true
enable-same-message-cancel: true

# Local (distance-based) chat
enable-local-chat: false
local-chat-distance: 100

# Core chat features
enable-chat-format: true
enable-link-transform: true
enable-chat-messages: true

# Caps detection
enable-caps: true
caps-threshold: 0.5

# Anti-flood
enable-anti-flood: true
anti-flood-regex: "(.)\\1{3,}"

# Ping (@mention) system
enable-ping: true
enable-player-ping-sound: true
player-ping-sound: BLOCK_NOTE_BLOCK_PLING
player-ping-sound-volume: 0.8
player-ping-sound-pitch: 1
player-ping-color: "<red>%name%</red><red>"
player-ping-color-other: "<white>%name%</white>"

# Date format for chat history
date-format: "yyyy-MM-dd HH:mm:ss"

# Dynamic cooldown thresholds
chat-cooldowns:
2: 1500
4: 12000
10: 60000
chat-cooldown-max: 50

# Chat format with priority-based permissions
chat-formats:
- priority: 0
permission: "zessentials.chat.default"
format: "<gray>%player% <dark_gray>>> <white>%message%"
- priority: 1
permission: "zessentials.chat.vip"
format: "<gold>[VIP] <yellow>%player% <dark_gray>>> <white>%message%"
- priority: 2
permission: "zessentials.chat.admin"
format: "<red>[Admin] <white>%player% <dark_gray>>> <white>%message%"

# Chat placeholders (custom replacements in chat)
chat-placeholders:
- placeholder: "[ping]"
replacement: "<yellow>%player_ping%ms</yellow>"
- placeholder: "[money]"
replacement: "<green>%zessentials_user_formatted_balance_default%</green>"

# Item display in chat
show-item:
enable: true
placeholder: "[item]"
format: "<hover:show_item:%item_nbt%><gold>[%item_name% x%item_amount%]</hover>"

# Command placeholder (./command becomes clickable)
command-placeholder:
enable: true

# Custom rules (regex-based)
custom-rules:
- regex: "(?i)(badword1|badword2)"
action: cancel
message: "&cThat word is not allowed."
- regex: "(?i)(advertising\\.com)"
action: cancel
message: "&cAdvertising is not allowed."

# Ping system
ping:
enable: true
sound: BLOCK_NOTE_BLOCK_PLING
volume: 0.8
pitch: 1.0

# Moderator action button
moderator-button:
enable: true

# Link transform (clickable URLs)
link-transform:
enable: true

# Chat history storage (MySQL only)
chat-history:
enable: false

Options

Options Generales

OptionTypePar DefautDescription
enableBooleantrueActiver ou desactiver entierement le module Chat
enable-chat-formatBooleantrueActiver le formatage du chat base sur les priorites
enable-chat-messagesBooleantrueActiver le pipeline de traitement des messages du chat
date-formatStringyyyy-MM-dd HH:mm:ssFormat de date utilise pour les horodatages de l'historique du chat. Utilise les motifs Java SimpleDateFormat

Filtres Regex

OptionTypePar DefautDescription
enable-alphanumeric-regexBooleantrueLorsqu'active, les messages contenant des caracteres non alphanumeriques (sauf la ponctuation standard) sont bloques. Contournable avec essentials.chat.bypass.alphanumeric
enable-link-regexBooleantrueLorsqu'active, les messages contenant des URL/liens sont bloques. Contournable avec essentials.chat.bypass.link
enable-itemadders-font-regexBooleantrueLorsqu'active, filtre les caracteres de police personnalises ItemAdders des messages du chat

Systemes Anti-Spam

OptionTypePar DefautDescription
enable-chat-dynamic-cooldownBooleantrueActive le temps de recharge progressif qui augmente lorsqu'un joueur envoie des messages plus rapidement
enable-same-message-cancelBooleantrueAnnule les messages identiques au message precedent du joueur. Contournable avec essentials.chat.bypass.same.message
chat-cooldownsMap (Integer to Integer){2: 1500, 4: 12000, 10: 60000}Seuils de temps de recharge dynamiques. Cle = nombre de messages, Valeur = temps de recharge en millisecondes applique apres avoir atteint ce nombre de messages
chat-cooldown-maxInteger50Duree maximale du temps de recharge en secondes que le systeme dynamique peut imposer
Temps de Recharge Dynamique

Le systeme de temps de recharge dynamique suit le nombre de messages qu'un joueur envoie dans une fenetre glissante. A mesure que le compteur augmente, des temps de recharge progressivement plus longs sont appliques :

  • Apres 2 messages rapides : 1500ms (1,5 secondes) de temps de recharge
  • Apres 4 messages rapides : 12000ms (12 secondes) de temps de recharge
  • Apres 10 messages rapides : 60000ms (60 secondes) de temps de recharge

Les joueurs avec la permission essentials.chat.bypass.dynamic.cooldown sont exemptes.

Detection des Majuscules

OptionTypePar DefautDescription
enable-capsBooleantrueActive la detection et le blocage des messages avec un nombre excessif de caracteres en majuscules
caps-thresholdDouble0.5Le ratio de caracteres en majuscules par rapport au total de caracteres qui declenche la detection. 0.5 signifie que les messages avec plus de 50% de lettres majuscules sont signales

Anti-Flood

OptionTypePar DefautDescription
enable-anti-floodBooleantrueActive la detection et la suppression du flood de caracteres (par exemple, "helloooooo")
anti-flood-regexString(.)\\1{3,}Motif regex utilise pour detecter la repetition de caracteres. La valeur par defaut correspond a tout caractere repete 4 fois ou plus consecutivement

Chat Local

OptionTypePar DefautDescription
enable-local-chatBooleanfalseActive le chat local base sur la distance. Lorsqu'active, les messages ne sont visibles que par les joueurs situes dans la distance configuree
local-chat-distanceInteger100Distance maximale en blocs dans laquelle les joueurs peuvent voir les messages des autres lorsque le chat local est active
astuce

Le chat local est utile pour les serveurs roleplay ou survie ou vous souhaitez que les joueurs ne communiquent qu'avec les joueurs proches. Les joueurs peuvent utiliser /pub pour envoyer des messages visibles par tous, quelle que soit la distance.

Systeme de Ping (@Mention)

OptionTypePar DefautDescription
enable-pingBooleantrueActive le systeme de ping par @mention dans le chat. Les joueurs peuvent taper @NomDuJoueur pour mentionner un autre joueur
enable-player-ping-soundBooleantrueJouer un effet sonore au joueur mentionne
player-ping-soundStringBLOCK_NOTE_BLOCK_PLINGL'effet sonore Minecraft joue lorsqu'un joueur est mentionne
player-ping-sound-volumeFloat0.8Volume du son de ping (0.0 a 1.0)
player-ping-sound-pitchFloat1Tonalite du son de ping
player-ping-colorString<red>%name%</red><red>Format MiniMessage pour la facon dont le joueur mentionne voit son propre nom mis en evidence dans le message
player-ping-color-otherString<white>%name%</white>Format MiniMessage pour la facon dont les autres joueurs voient le nom du joueur mentionne dans le message

Formats de Chat

Les formats de chat utilisent un systeme de permissions base sur les priorites. Le plugin verifie chaque entree de format dans l'ordre de priorite (le plus bas en premier) et applique le premier format pour lequel le joueur possede la permission requise.

OptionTypePar DefautDescription
chat-formatsList(voir ci-dessus)Liste des entrees de format de chat, chacune avec une priorite, une permission et une chaine de format MiniMessage
chat-formats[].priorityInteger-Ordre de priorite. Les valeurs plus basses sont verifiees en premier
chat-formats[].permissionString-Noeud de permission requis pour que ce format s'applique
chat-formats[].formatString-Chaine de format de chat MiniMessage. Utilisez %player% pour le nom du joueur et %message% pour le contenu du message

Placeholders de Chat

Remplacements de texte personnalises dans les messages du chat. Lorsqu'un joueur tape un mot-cle de placeholder, il est remplace par du contenu dynamique.

OptionTypePar DefautDescription
chat-placeholdersList(voir ci-dessus)Liste des definitions de remplacement de placeholders
chat-placeholders[].placeholderString-Le motif de texte a rechercher dans le chat (par exemple, [ping], [money])
chat-placeholders[].replacementString-Le texte de remplacement MiniMessage. Supporte les placeholders PlaceholderAPI

Affichage d'Objets

OptionTypePar DefautDescription
show-item.enableBooleantrueActive le placeholder [item] qui permet aux joueurs de montrer l'objet tenu en main dans le chat
show-item.placeholderString[item]Le texte que les joueurs tapent dans le chat pour afficher l'objet tenu en main
show-item.formatString(voir ci-dessus)Format MiniMessage pour l'affichage de l'objet. Supporte %item_name%, %item_amount%, %item_nbt%

Placeholder de Commande

OptionTypePar DefautDescription
command-placeholder.enableBooleantrueLorsqu'active, taper ./commande dans le chat cree un texte cliquable qui execute la commande au clic

Regles Personnalisees

Regles basees sur les regex qui peuvent detecter et agir sur les messages du chat. Les regles sont verifiees dans l'ordre.

OptionTypePar DefautDescription
custom-rulesList(voir ci-dessus)Liste des definitions de regles de chat personnalisees
custom-rules[].regexString-Motif d'expression reguliere a comparer aux messages du chat
custom-rules[].actionString-Action a effectuer lorsque la regle correspond. cancel bloque le message
custom-rules[].messageString-Message envoye au joueur lorsque son message est bloque par cette regle

Bouton d'Action de Moderateur

OptionTypePar DefautDescription
moderator-button.enableBooleantrueLorsqu'active, les joueurs avec la permission essentials.chat.moderator voient un bouton d'action a cote de chaque message du chat, permettant un acces rapide aux actions de moderation (mute, kick, etc.) sur l'expediteur du message

Transformation de Liens

OptionTypePar DefautDescription
link-transform.enableBooleantrueConvertit automatiquement les URL postees dans le chat en liens cliquables
enable-link-transformBooleantrueBouton global pour la transformation de liens

Historique du Chat

OptionTypePar DefautDescription
chat-history.enableBooleanfalseActive le stockage des messages du chat dans la base de donnees pour la consultation de l'historique. Necessite MySQL
attention

Le stockage de l'historique du chat necessite une base de donnees MySQL (ou MariaDB). Il n'est pas disponible avec SQLite. Activer cette fonctionnalite sur un serveur actif generera un nombre important d'ecritures en base de donnees.


Commandes Associees

CommandeAliasPermissionDescription
/chathistoryctessentials.chat.historyConsulter l'historique du chat stocke
/chatclearclessentials.chat.clearEffacer le chat pour tous les joueurs
/chatenableceessentials.chat.enableActiver le chat du serveur (apres qu'il a ete desactive)
/chatdisablecdessentials.chat.disableDesactiver le chat du serveur (empeche les joueurs de discuter)
/broadcastbcessentials.chat.broadcastDiffuser un message a tous les joueurs
/showitem-essentials.show.itemMontrer l'objet actuellement tenu en main dans le chat
/pub-essentials.pubEnvoyer un message mis en evidence/public visible par tous (utile avec le chat local)

Pour la liste complete des commandes, voir Commandes & Permissions.


Placeholders Associes

Le module Chat n'enregistre pas de placeholders PlaceholderAPI dedies. Cependant, le module utilise largement PlaceholderAPI dans son systeme de formatage. Tout placeholder enregistre peut etre utilise dans les formats de chat, les placeholders de chat et les formats d'affichage d'objets.

Pour la liste complete des placeholders, voir Placeholders.


Details des Fonctionnalites

Formatage du Chat Base sur les Priorites

Les formats de chat sont evalues dans l'ordre de priorite (le nombre le plus bas en premier). Le premier format dont le joueur possede la permission est applique. Cela vous permet de definir une hierarchie :

chat-formats:
- priority: 0
permission: "zessentials.chat.default"
format: "<gray>%player% <dark_gray>>> <white>%message%"
- priority: 1
permission: "zessentials.chat.vip"
format: "<gold>[VIP] <yellow>%player% <dark_gray>>> <white>%message%"
- priority: 2
permission: "zessentials.chat.admin"
format: "<red>[Admin] <white>%player% <dark_gray>>> <white>%message%"
info

Un joueur possedant a la fois zessentials.chat.default et zessentials.chat.vip utilisera le format default car il a un numero de priorite plus bas et est verifie en premier. Pour utiliser le format VIP, supprimez la permission par defaut ou structurez votre hierarchie de permissions afin que les joueurs ne possedent qu'une seule permission de chat.

Systeme de Temps de Recharge Dynamique

Le temps de recharge dynamique augmente les restrictions en fonction de la frequence des messages :

Messages EnvoyesTemps de Recharge Applique
2 messages rapides1 500 ms (1,5s)
4 messages rapides12 000 ms (12s)
10 messages rapides60 000 ms (60s)

Le plafond maximum du temps de recharge est controle par chat-cooldown-max (par defaut : 50 secondes). Le compteur de temps de recharge se reinitialise apres une periode d'inactivite.

Chat Local

Lorsque enable-local-chat est true, les messages ne sont transmis qu'aux joueurs situes dans un rayon de local-chat-distance blocs de l'expediteur. Ceci est mesure en distance 3D. Les joueurs hors de portee ne verront pas le message. La commande /pub envoie un message qui contourne la restriction de distance et est visible sur tout le serveur.

Placeholders de Chat Personnalises

Les placeholders de chat vous permettent de creer des mots-cles raccourcis qui se developpent en contenu enrichi :

chat-placeholders:
- placeholder: "[ping]"
replacement: "<yellow>%player_ping%ms</yellow>"
- placeholder: "[money]"
replacement: "<green>%zessentials_user_formatted_balance_default%</green>"

Lorsqu'un joueur tape [ping] dans le chat, cela est remplace par son ping actuel en jaune. Lorsqu'il tape [money], cela affiche son solde formate en vert.

Bouton d'Action de Moderateur

Lorsqu'active, les membres du staff avec la permission essentials.chat.moderator voient un petit bouton d'action ajoute a chaque message du chat. Cliquer sur ce bouton ouvre un menu d'actions rapides pour l'expediteur du message, fournissant des raccourcis vers les commandes de moderation telles que mute, kick ou ban.

Transformation de Liens

Les URL detectees dans les messages du chat sont automatiquement converties en liens cliquables. Les joueurs peuvent cliquer directement sur l'URL dans le chat pour l'ouvrir. Cela fonctionne conjointement avec le filtre regex de liens -- si enable-link-regex est true, les liens sont bloques sauf si le joueur possede essentials.chat.bypass.link, auquel cas le lien est a la fois autorise et rendu cliquable.

Copyright © 2026 GroupeZ|Build #loading...|-