GroupeZ Docs
Development

Hooks & Intégrations

Intégrations et hooks optionnels avec d'autres plugins pour zEssentials

zEssentials propose des intégrations optionnelles avec des plugins tiers pour étendre ses fonctionnalités. Ces hooks sont chargés automatiquement lorsque le plugin correspondant est détecté sur le serveur, sauf indication contraire.

Ordre de chargement

zEssentials est un plugin Paper. Toutes les intégrations ci-dessous sont déclarées comme dépendances serveur optionnelles dans son paper-plugin.yml (load: BEFORE, required: false) : Vault, ProtocolLib, SuperiorSkyblock2, BentoBox, BlockTracker, WorldGuard, Votifier, NChat, MythicMobs, AxVaults et PlayerVaults. Lorsqu'elles sont présentes, elles sont chargées avant zEssentials, et toutes sauf BentoBox utilisent join-classpath: true pour que zEssentials puisse accéder à leur API. zMenu et PlaceholderAPI sont les seules dépendances obligatoires.


Vault

Expose le système d'économie de zEssentials via l'API Vault, ce qui permet aux autres plugins d'interagir avec les soldes des joueurs grâce à l'interface standard Vault Economy.

  • Chargé dans : onLoad() (avant l'initialisation des autres plugins)
  • Méthodes supportées : getBalance, deposit, withdraw, has, format et toutes les autres méthodes standard de Vault Economy
  • Support des banques : Non supporté
  • Prérequis : Le module Économie doit être activé dans la configuration de zEssentials

Lorsque Vault est présent et que le module Économie est actif, tout plugin utilisant Vault pour l'économie utilise automatiquement zEssentials comme fournisseur.


Redis

Permet la communication entre plusieurs serveurs via le pub/sub Redis, afin que les instances de zEssentials synchronisent leurs données et leurs actions en temps réel.

En développement

L'intégration Redis est actuellement désactivée dans le plugin : le serveur Redis n'est pas démarré, même avec server-type: REDIS. Les informations ci-dessous décrivent le fonctionnement prévu.

Configuration

Redis se configure dans le fichier principal config.yml :

server-type: REDIS

redis-configuration:
  host: "192.168.10.10"
  port: 6379
  password: "123456a"

Passez server-type à REDIS pour activer le mode multi-serveurs.

Fonctionnalités

  • Messages privés entre serveurs
  • Annonces entre serveurs
  • Expulsions entre serveurs
  • Synchronisation des cooldowns entre serveurs
  • Synchronisation de l'effacement et de l'activation/désactivation du chat
  • Synchronisation de la liste des joueurs via un SET Redis

Détails techniques

PropriétéValeur
Canal pub/subessentials:messages
Clé de suivi des joueursessentials:playerlist

Types de messages

zEssentials utilise 7 types de messages pour la communication entre serveurs :

Type de messageDescription
KickMessageExpulse un joueur sur l'ensemble des serveurs
ServerMessageEnvoie une annonce à tous les serveurs
ChatClearEfface le chat sur tous les serveurs
ChatToggleActive/désactive le chat sur tous les serveurs
ServerPrivateMessageTransmet un message privé à un autre serveur
ClearCooldownSupprime un cooldown sur l'ensemble des serveurs
UpdateCooldownSynchronise les cooldowns entre serveurs

WorldGuard

S'intègre avec WorldGuard pour vérifier les permissions sur les blocs dans les régions protégées. Lorsque le module WorldEdit modifie un bloc, zEssentials teste le flag WorldGuard BLOCK_BREAK du joueur à cet emplacement ; les blocs que le joueur n'a pas le droit de casser sont ignorés.

  • Chargé automatiquement : Oui, si WorldGuard est présent sur le serveur
  • Aucune configuration supplémentaire requise

SuperiorSkyblock2

S'intègre avec SuperiorSkyblock2 pour vérifier les permissions sur les blocs des îles. Avant que le module WorldEdit ne modifie un bloc, zEssentials vérifie l'appartenance du joueur à l'île et les limites de celle-ci.

  • Chargé automatiquement : Oui, si SuperiorSkyblock2 est présent sur le serveur
  • Vérifications effectuées :
    • isMember() -- vérifie que le joueur est membre de l'île
    • isInsideRange() -- vérifie que l'action a lieu dans les limites de l'île
  • Aucune configuration supplémentaire requise

Plugins de protection génériques

En plus des hooks dédiés ci-dessus, zEssentials enregistre toujours un vérificateur de permissions basé sur les événements Bukkit (depuis la 1.0.3.6). Avant que le module WorldEdit ne modifie un bloc, il déclenche un BlockBreakEvent simulé pour le joueur : si un plugin de protection annule l'événement, le bloc est ignoré.

  • Toujours actif, aucune configuration requise
  • Fonctionne avec tout plugin de protection qui annule le BlockBreakEvent (HuskClaims, GriefPrevention, Lands, Towny, etc.)

NuVotifier

S'intègre avec NuVotifier pour recevoir les notifications de vote. Lorsqu'un joueur vote sur un site de classement, NuVotifier déclenche un VotifierEvent que zEssentials écoute et enregistre dans son système de suivi des votes.

  • Chargé automatiquement : Oui, si Votifier est présent sur le serveur
  • Aucune configuration supplémentaire requise

Les votes reçus via NuVotifier alimentent le module Vote de zEssentials : compteur de votes de chaque joueur et progression de la vote party.


NChat

S'intègre avec NChat pour appliquer les mutes aux messages publics comme aux messages privés. Lorsqu'un joueur est rendu muet via zEssentials, le mute s'applique aussi aux canaux de NChat.

  • Chargé automatiquement : Oui, si NChat est présent sur le serveur
  • Priorité de l'événement : HIGHEST
  • Appliqué sur : Messages publics et messages privés
  • Aucune configuration supplémentaire requise

BlockTracker

S'intègre avec BlockTracker pour suivre les blocs modifiés par les joueurs. C'est utile pour les fonctionnalités qui doivent distinguer les blocs générés naturellement des blocs posés par les joueurs.

  • Chargé automatiquement : Oui, si BlockTracker est présent sur le serveur
  • Méthodes :
    • isTracked() -- vérifie si un bloc a été modifié par un joueur
    • track() -- marque un bloc comme modifié par un joueur
  • Repli : Si BlockTracker n'est pas installé, zEssentials utilise une implémentation DefaultBlockTracker dont isTracked() renvoie toujours false

ProtocolLib

Intégration avec ProtocolLib prévue pour intercepter les paquets SYSTEM_CHAT et rendre le motif ./commande cliquable dans tous les messages envoyés aux joueurs (et pas seulement dans le chat des joueurs).

L'écouteur de paquets ProtocolLib est actuellement désactivé dans le plugin. ProtocolLib est seulement déclaré comme dépendance optionnelle et n'est requis par aucun module.

  • Chargé automatiquement : Non (désactivé)
  • Paquet intercepté : SYSTEM_CHAT

Le placeholder ./commande dans le chat des joueurs ne nécessite pas ProtocolLib : il est géré par le module Chat, dans la section command-placeholder de modules/chat/config.yml :

command-placeholder: # ./<command>. placeholder
  enable: true
  result: "<hover:show_text:'<yellow>Try this command'><click:suggest_command:'/%fixed_command%'><yellow>/%command%</yellow></click></hover>"
  permission: "zessentials.chat.placeholder.command"

MythicMobs

S'intègre avec MythicMobs pour afficher le nom des mobs personnalisés dans les messages de mort. Lorsqu'un joueur est tué par une créature MythicMobs, le module Messages de mort peut afficher le nom configuré du mob au lieu du type d'entité vanilla.

  • Chargé automatiquement : Oui, si MythicMobs est présent sur le serveur
  • Prérequis : Le module Messages de mort doit être activé avec death-message-type: CUSTOM
  • Méthodes :
    • isMythicMob() -- vérifie si une entité est une créature MythicMobs
    • getMythicMobName() -- récupère le nom affiché de la créature MythicMobs
  • Aucune configuration supplémentaire requise

AxVaults

Permet la migration des données d'AxVaults vers le système de coffres de zEssentials. Il ne s'agit pas d'une intégration permanente mais d'un outil de migration ponctuel.

  • Utilisation : Via la commande de conversion intégrée
  • Objectif : Migrer les coffres existants des joueurs d'AxVaults vers les coffres de zEssentials

Pour migrer les données d'AxVaults, exécutez /zessentials convert axvaults (voir Migration de données). Il en va de même pour PlayerVaults avec /zessentials convert playervaultx.

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.