Aller au contenu

Enquêtes et outils

Le module investigation rassemble les outils qui servent à vérifier un comportement avant de sanctionner. Options : config/investigation.yml.

/examine <joueur> inventaire, armure et infos alias /inspecter, /invsee
/eview <joueur> ender chest alias /voirender, /endersee
  • En ligne : la vue est synchronisée en temps réel dans les deux sens avec l’inventaire du joueur.
  • Hors ligne : l’inventaire est lu depuis les données du joueur et réécrit à la fermeture si vous l’avez modifié. Si le joueur se connecte pendant ce temps, vos changements sont appliqués à son inventaire réel.
  • La dernière ligne du menu /examine affiche des infos sur le joueur : faim, IP, ping, mode de jeu, casier, position, notes, freeze et warn. L’ordre de ces cases se règle dans examine.info (0 = caché), et les boutons casier, freeze et warn lancent des commandes configurables.

Permissions : cobaltstaff.inventory.examine.view.online|offline pour voir, cobaltstaff.inventory.examine.interact.online|offline pour modifier ; cobaltstaff.enderchests.view.online|offline et cobaltstaff.enderchests.interact pour l’ender chest.

En mode staff, les conteneurs (coffres, tonneaux, entonnoirs, distributeurs, shulkers…) s’ouvrent sans animation ni son. La modification du contenu demande cobaltstaff.mode.silent-chest-interaction et un mode staff qui l’autorise.

/players [joueur] alias /joueurs

Sans argument, /players ouvre un hub : joueurs en ligne, hors ligne, staff, mineurs (joueurs sous la couche players.miners-y, 30 par défaut) et joueurs protégés. Chaque liste affiche des têtes avec un résumé au survol (IP, UUID, mode de jeu, faim, position, temps de jeu, gel, protection, enquête, mute…), chaque champ étant protégé par une permission cobaltstaff.player-view.detail.<champ>.

Avec un pseudo, la fiche détaillée du joueur s’ouvre : sanctions, reports, notes et boutons d’action (freeze, spectate, casier, sanction). Elle peut aussi afficher ce que le joueur possède en jeu, lu via PlaceholderAPI ou les plugins compatibles présents (CMI, LuckPerms, CobaltiaEffets…) : monnaies, métiers, temps de jeu, grade, clan, statistiques, passe de combat, cosmétiques, familiers, homes, warps, clés de box, boosters et quêtes. Une source absente affiche « ? » sans erreur ; les homes et warps se rejoignent d’un clic.

/note <joueur> <texte> [-private] alias /noter
/pnote <joueur> <texte> note privée
/notes [joueur] [-id=] [-private=] [-target=] [-notedBy=] [-note="..."] [-l]

Une note publique est visible par tout le staff ayant cobaltstaff.player-notes.view (et notifiée à cobaltstaff.player-notes.notifications si notes.notify-on-create est actif). Une note privée n’est visible que par son auteur. /notes ouvre un menu filtrable, ou une liste au chat avec -l.

/cps <joueur> alias /testcps

Compte les clics du joueur pendant 10 secondes (cps.duration) et alerte le staff au-delà de 16 clics par seconde (cps.threshold).

/trace start <joueur>
/trace stop [joueur]

Suit en direct tout ce que fait un joueur : commandes, chat, blocs cassés et posés, interactions, dégâts infligés et reçus, ramassages, jets, changements de monde, ouvertures d’inventaire. La sortie va au chat du staff et/ou dans un fichier journal (trace.output: [CHAT, FILE]). cobaltstaff.trace.bypass protège un joueur de la trace.

/follow [joueur] alias /suivre

Le staff s’attache au joueur comme passager. Refaites la commande (ou accroupissez-vous) pour vous détacher.

Une enquête regroupe le suivi d’un joueur suspect : preuves, notes et mode staff dédié.

  1. /investigate [joueur] ouvre une enquête (ou reprend la vôtre). Un staff n’a qu’une enquête active à la fois : en reprendre une autre met la courante en pause.

  2. Le mode staff d’enquête est imposé (enforce-staff-mode, mode Enquete par défaut) et le joueur ciblé est prévenu au chat et en barre d’action (notify-target).

  3. Ajoutez des notes (/investigate note <texte>) et liez des preuves : /investigate preuve <report|warn|mute|ban|kick|ipban> <id> [enquête].

  4. Mettez en pause (/investigate pause) ou concluez (/investigate conclure). La pause est automatique quand le joueur se déconnecte ou que vous quittez le mode staff.

  5. /investigate gerer [joueur] liste les enquêtes, toutes ou celles d’un joueur.

Options : nombre d’enquêtes ouvertes en même temps sur un joueur (max-concurrent, 1 par défaut), enquête sur un joueur hors ligne (allow-offline), et hooks start, pause, conclude (variables %target%, %investigator%, %issuer%, %id%).

/clearips <joueur> effacer l’historique IP
/altcheck <joueur> chercher les doubles comptes
/altwhitelist add|remove <joueur> <joueur> liste blanche des faux positifs
/altwhitelist list

CobaltStaff garde l’historique des IP de chaque joueur (première et dernière utilisation). À chaque connexion, il compare le joueur aux autres comptes :

Critère Points
Même IP qu’un autre compte +1
Pseudo ressemblant à ≥ 90 % 4
≥ 70 % 3
≥ 50 % 2
≥ 30 % 1

Le score donne un niveau, de POSITIVE à SAME_IP. Les niveaux listés dans alt-detect.alert-levels déclenchent l’alerte alt-detects. Avec same-ip-required: true (défaut), rien n’est signalé sans IP commune. cobaltstaff.altdetect.bypass exclut un joueur de la détection.

/tplieu <joueur> <lieu> vers un lieu prédéfini alias /teleporttolocation
/tpjoueur <joueur> vers un joueur alias /teleporttoplayer
/tpici <joueur> joueur vers soi alias /teleporthere
/tpretour [joueur] retour avant le dernier TP staff alias /teleportback

Les lieux prédéfinis (teleport.locations, ex. spawn, jail) servent aussi à l’argument -T<lieu> de /freeze. La position avant le dernier TP staff est conservée, même après un redémarrage. cobaltstaff.teleport.bypass protège un joueur des TP staff.

Les lieux staff sont des points de repère partagés par l’équipe (zone de grief, machine suspecte, ferme…) :

/lieux creer <nom> alias /lieux create
/lieux [-id=] [-name="..."] [-creator=] alias /stafflocations

Le menu permet de les lister, renommer, changer d’icône (liste staff-locations.icons), s’y téléporter, les supprimer et y attacher des notes.

/protectplayer <joueur> alias /proteger
/protectarea create <taille> <nom> | delete <nom> alias /zoneprotegee
  • Un joueur protégé ne subit plus aucun dégât jusqu’à sa déconnexion ou jusqu’au retrait de la protection.
  • Une zone protégée est un carré autour de votre position (jusqu’à 50 blocs de chaque côté par défaut) où les joueurs hors staff ne peuvent ni casser, ni poser, ni ouvrir de conteneur, ni utiliser boutons, leviers et plaques, ni vider ou remplir un seau. Sans argument, /protectarea ouvre le menu des zones.
/strip <joueur> retirer l’armure (rangée dans l’inventaire) alias /desequiper
/clear <joueur> [-D] vider l’inventaire (une copie est gardée) alias /vider
/revive <joueur> rendre ce qu’un joueur a perdu (mort ou /clear) alias /restaurer

/revive sert à rembourser un joueur : il a perdu son stuff à cause d’un bug, d’un lag, d’une mort injuste, ou un staff l’a vidé par erreur avec /clear.

Pour que ce soit possible, CobaltStaff garde automatiquement une copie de l’inventaire d’un joueur à chaque mort et avant chaque /clear (les 10 dernières par joueur par défaut, inventory.revive.max-backups ; la copie à la mort se coupe avec inventory.revive.save-on-death: false).

  • En jeu, /revive <joueur> ouvre un menu avec ces copies (cause : mort ou clear, date, nombre d’objets) ; un clic rend celle choisie.
  • Depuis la console, la copie la plus récente est rendue directement.
  • Le joueur doit être connecté. Si son inventaire est vide, il retrouve chaque objet à sa place ; sinon les objets sont ajoutés et ce qui ne rentre pas tombe au sol à ses pieds.
  • Chaque revive est inscrit au journal d’audit. Avec -D, le clear d’un joueur hors ligne est appliqué à sa prochaine connexion. cobaltstaff.inventory.clearinv-bypass protège un joueur du clear.