Aller au contenu

Chat et alertes

Le module chat gère la communication du staff et la modération du chat public. Options : config/chat.yml (rechargeable avec /cobaltstaff reload chat).

Chaque canal du chat staff crée automatiquement ses commandes :

Commande Effet Permission
/<commande> <message> Écrire dans le canal <permission>
/<commande> Basculer : tout ce que vous écrivez au chat part dans le canal <permission>
/<commande> mute (alias muet) Ne plus recevoir le canal <permission>.mute
/<commande> son (alias sound) Son à la réception activé ou coupé <permission>.sound

Seul le mot compte : /sc mute ce joueur est un message envoyé dans le canal, pas la sous-commande.

Deux canaux sont fournis :

staff-chat:
channels:
staff:
command: sc
aliases: [staffchat]
permission: cobaltstaff.staffchat.staff
prefix: "<gradient:#6FE2E8:#6180C9><b>ꜱᴛᴀꜰꜰ</b></gradient>"
format: "" # vide = format de la langue
shortcut: "@" # "@message" au chat = message dans ce canal
sound: {name: block.note_block.hat, volume: 0.6, pitch: 1.6}
admin:
command: ac
aliases: [adminchat]
permission: cobaltstaff.staffchat.admin
shortcut: "#"

Ajoutez autant de canaux que nécessaire (guides, responsables…). Le format accepte les variables <prefixe>, <joueur> et <message>.

/chat clear vider le chat
/chat toggle [on|off] verrouiller ou rouvrir le chat
/chat slow <secondes|off> [durée] mode lent, éventuellement limité dans le temps
Action Permission Contournement
Vider cobaltstaff.chat.clear Le staff garde son historique (chat.clear-keep-staff)
Verrouiller cobaltstaff.chat.toggle cobaltstaff.chat.bypass-lock
Mode lent cobaltstaff.chat.slow cobaltstaff.chat.bypass-slow

Le filtre s’applique au chat, aux panneaux, aux enclumes et aux livres. Il détecte :

  • les mots interdits, malgré la casse, les accents, les chiffres « leet », les lettres répétées ou espacées ;
  • les mots interdits cachés dans un autre mot (merging), avec une liste de mots autorisés pour les faux positifs ;
  • les caractères interdits, n’importe où dans le message ;
  • les liens, y compris avec un faux point (site(dot)com, site [.] fr), sauf les domaines de allowed-links.

Par défaut, le mot est censuré avec * ; block-message: true bloque tout le message. Le staff ayant cobaltstaff.blacklist.see-uncensored voit le message d’origine au survol, et une alerte blacklist-detection est envoyée aux abonnés. cobaltstaff.blacklist.bypass désactive le filtre pour un joueur.

Des groupes de phrases déclenchent une alerte chat-phrase-detection et des actions. Une phrase est cherchée en mots entiers, sans casse, accents ni ponctuation (« x-ray » trouve aussi « xray »).

phrase-detection:
enabled: true
groups:
pub:
phrases: ["rejoignez mon serveur", "venez sur mon serveur", "mon discord"]
alert: true
block-message: true
actions:
- command: "warn %player% LEGER Publicité"
executor: console

Variables : %player%, %phrases%. Contournement : cobaltstaff.alerts.chat-phrase-detection.bypass.

Liste Pour qui
blocked-commands Joueurs ayant cobaltstaff.block (sauf cobaltstaff.block.bypass) : par exemple op, stop, reload pour un staff de confiance limitée
blocked-mode-commands Tout staff en mode staff : give, kit, pay, sell, enchant… pour ne rien gagner avec le mode staff
/alerts voir ses abonnements alias /alertes
/alerts <type> [on|off] s’abonner ou se désabonner

Un staff reçoit une alerte s’il a la permission cobaltstaff.alerts.<type> et s’il y est abonné (abonné par défaut). Cliquer sur une alerte qui vise un joueur lance alerts.click-command (par défaut /tp %player%).

Type Déclencheur
namechange Un joueur se connecte avec un nouveau pseudo
mention Un staff est mentionné au chat (avec ou sans @, option mention.require-at)
xray Minage suspect de minerais rares
alt-detects Double compte probable
chat-phrase-detection Phrase surveillée
command-detection Commande surveillée
blacklist-detection Message filtré par la blacklist
grimac Alerte relayée de l’anticheat GrimAC

Chaque type s’active, se copie dans la console et reçoit son propre son (config.yml > alerts.sounds.<type>).

Chaque bloc surveillé suit un format simple :

Format Alerte
BLOC À chaque bloc cassé
BLOC:N Au N-ième bloc
BLOC:N:durée N blocs dans la durée donnée
xray:
ignore-creative: true
blocks:
- SPAWNER
- ANCIENT_DEBRIS:4:5m
- DIAMOND_ORE:8:5m
- EMERALD_ORE:5
nexo-blocks: # minerais custom Nexo, même format
- ruby_ore:6:5m

Contournement : cobaltstaff.alerts.xray-bypass.

Si GrimAC est installé, ses alertes sont relayées dans /alerts (type grimac), avec un seuil de violations, un anti-spam par joueur et par check (cooldown) et une liste de checks ignorés.

Un message personnalisé peut être diffusé à la connexion selon la permission du joueur ; le plus gros weight l’emporte. Aucun message n’est envoyé pour un joueur en vanish.

join-messages:
enabled: true
messages:
staff:
permission: cobaltstaff.join-message.staff
weight: 10
message: "<gray><white><joueur><gray> vient de se connecter."
/broadcast <message> alias /diffuser

Envoie une annonce à tout le serveur (permission cobaltstaff.broadcast).