Vous possédez un serveur comptant une quarantaine de joueurs quotidiennement, animé par Factions et protégé par WorldGuard. Malheureusement, cela s’est avéré insuffisant, une malencontreuse erreur de votre part a fait que les joueurs ont pu détruire le spawn et les autres bâtiments du serveur auxquels vous avez accordé de très nombreuses heures de travail, mais le résultat de votre erreur est bien plus positif que vous ne pouviez l’imaginer car, par précaution, vous aviez installé CoreProtect qui, d’après vos nombreux partenaires, permettrait de régler la faute que vous venez de commettre, il ne vous reste plus qu’une seule chose à faire, apprendre son fonctionnement.

coreprotect2-banner_bukkit


Présentation

CoreProtect est un plugin multifonctions qui permet d’enregistrer toutes les modifications apportées aux différents blocs présents sur votre serveur comme vous le désirez et de manière simplifiée. CoreProtect vous permet aussi d’enregistrer toutes les actions effectuées par les joueurs, que ce soit leurs connexions/déconnexions ou encore leurs messages écrits dans le chat. Vous pouvez rollback ou restaurer toutes ses modifications, juste les observer ou encore simplement les inspecter comme vous le désirez.

Un rollback (/co rollback) est un retour en arrière à une date précise, tous les blocs présents au temps du rollback reprendront leurs places, de même pour tous les items présents dans les coffres, tout redeviendra comme au temps indiqué.
Le restore (/co restore) est une restauration qui permet d’annuler un rollback. Si vous décidez de rollback une zone, à l’aide du restore vous pouvez revenir et retrouver cette zone comme vous le désirez.
Quand au Lookup (/co lookup), il permet d’observer, de rechercher tous les changements apportés selon différentes caractéristiques en fonction du temps ou du joueur.
L’inspection (/co inspect) permet de savoir toutes les modifications apportées sur un bloc ou dans un coffre.


Configuration

Une fois ajouté à votre dossier plugins, CoreProtect va générer un dossier dans lequel se trouvera la config.yml et la database.db qui est une base de données dans laquelle toutes les modifications sauvegardées par CoreProtect seront enregistrées à l’intérieur de celle-ci (attention, il faut une certaine place en mémoire pour votre serveur car la database va se remplir au fur et à mesure devenant de plus en plus grosse. Si vous n’avez pas énormément de place veillez à bien effectuer une purge assez souvent !)
La config.yml vous permet de définir chaque paramètre pour savoir si le plugin doit oui ou non enregistrer cette donnée :

verbose: true → Si activé, permet d’afficher des informations supplémentaires sur le rollback ou le restore.

use-mysql: false → Si activé, permet d’utiliser une base de données mysql au lieu d’une base de données classique, présente dans votre dossier CoreProtect.
table-prefix: co_
mysql-host: localhost
mysql-port: 3306
mysql-database: database
mysql-username: root
mysql-password:

check-updates: true → Si activé, CoreProtect va vérifier s’il n’y a pas une nouvelle version disponible à chaque démarrage du serveur.

api-enabled: true → Si activé, permet aux autres plugins d’utiliser l’API de CoreProtect.

default-radius: 10 → Le radius de défaut lors d’un rollback ou d’un restore.

max-radius: 100 → Le radius maximum lors d’un rollback ou d’un restore.

rollback-items: true → Si activé, les items contenus dans les coffres etc. seront inclus dans le rollback.

rollback-entities: true → Si activé, les entités comme les animaux tués, par exemple, seront incluses dans le rollback.

skip-generic-data: true → Si activé, les données comme les zombies brulant au soleil, ne seront pas prises en compte par le plugin.

block-place: true → Si activé, enregistre les blocs posés par les joueurs.

block-break: true → Si activé, enregistre les blocs cassés par les joueurs.

natural-break: true → Si activé, enregistre les blocs cassés par les autres blocs, comme une porte servant de support pour casser d’autres blocs, par exemple.

block-movement: true → Si activé, enregistre les mouvements du sable ou du gravier lorsqu’ils tombent

pistons: true → Si activé, enregistre les mouvements causés par les pistons

block-burn: true → Si activé, enregistre les blocs brûlés par un incendie

block-ignite: true → Si activé, enregistre les blocs brûlés de manière naturelle, c’est-à-dire par la propagation du feu par exemple

explosions: true → Si activé, enregistre les explosions venants des Creepers ou encore de la TNT

entity-change: true → Si activé, enregistre lorsqu’une entité comme les endermans, par exemple, détruisent des blocs

entity-kills: true → Si activé, enregistre les entités tuées commes les vaches ou encore les endermans

sign-text: true → Si activé, enregistre le texte présent sur les pancartes

buckets: true → Si activé, enregistre les sources d’eau et de lave placées/supprimées par les joueurs à l’aide de sceaux

leaf-decay: true → Si activé, enregistre la chute des feuilles

tree-growth: true → Si activé, enregistre la croissante des arbres(Les arbres sont liés aux joueurs qui les ont posés)

mushroom-growth: true → Si activé, enregistre le croissance des champignons

vine-growth: true → Si activé, enregistre la croissance des lianes

portals: true → Si activé, enregistre les portails du Nether sont générés

water-flow: true → Si activé, enregistre l’écoulement de l’eau ainsi que le fait qu’elle détruise d’autres blocs comme des torches

lava-flow: true → Si activé, enregistre la propagation de la lave ainsi que le fait qu’elle détruise d’autres blocs comme des torches

liquid-tracking: true → Si activé, permet aux liquides d’être proprement suivis et de les liés à un joueur, si par exemple ce joueur pose de l’eau et cette eau détruit une torche, il suffira juste de rollback ce joueur pour faire réapparaitre la torche

item-transactions: true → Si activé, enregistre lorsque les joueurs prennent des items des fours, des coffres etc.(Nécessaire pour un rollback d’un item en particulier)

player-interactions: true → Si activé, enregistre toutes les interactions faites par les joueurs, c’est à dire lorsqu’il ouvre un coffre, une porte etc. (Ces interactions ne peuvent pas être rollback)

player-messages: true → Si activé, enregistre tous les messages du chat

player-commands: true → Si activé, enregistre toutes les commandes effectuées par les joueurs

player-sessions: true → Si activé, enregistre les connexions et les déconnexions des joueurs

username-changes: true → Si activé, enregistre les changements de pseudos effectués par les joueurs

worldedit: true → Si activé, enregistre les changements fait par WorldEdit


Les paramètres

Les paramètres plus communnément appelés ‘params’ par CoreProtect, sont des caractéristiques permettant le fonctionnement de chaque commande. Elles permettent d’ajouter une certains précision. Elles sont au nombre de 7 et possède chacune une fonctionnalité différente :

– Le temps(t):
Il s’agit de la durée pour laquelle vous voulez effectuer l’action, elle peut s’exprimer en semaines(w),en jours(d),en heures(h),en minutes(m) ou en secondes(s)

Exemple :
/co rollback t:2d
Le serveur effectuera un rollback de 2 jours dans un certain rayon.
/co lookup t:1w2d b:glass
Le serveur affichera toutes les personnes qui ont modifié une vitre depuis 9 jours.

– L’utilisateur(u):
Il s’agit du joueur que vous désirez rollback ou observer, vous devez y affilier un temps et cela va rollback toutes les modifications qu’il a apportés sur la durée que vous avez écrite

Exemple :
/co rollback u:Estro t:1w
Toutes les modifications apportés par le joueur Estro depuis 1 semaine seront annulées et rollback.
/co lookup u:Estro t:1w
Le serveur communiquera toutes les modications apportés par Estro depuis 1 semaine

– Le radius(r):
Il s’agit du rayon du champ d’action de l’action, si vous ne le spécifiez pas il aura la valeur d’origine écrite dans le config.yml et vous pouvez avoir un rayon maximal en fonction de la valeur que vous avez écrite encore une fois dans le config.yml. Vous pouvez étendre la sélection à toute la map ou encore à votre sélection worldedit

Exemple :
/co rollback r:50 t:1w
Dans un rayon de 50 blocs il y aura un rollback qui date d’une semaine.
/co rollback r:#world t:1w u:Estro
Toutes les modifications d’Estro dans le monde world seront rollback à une semaine.
/co lookup r:#we t:30m
Le serveur communiquera toutes les modifications apportés par les joueurs dans la sélection WorldEdit depuis 30 minutes.

– Les actions(a):
Il s’agit du paramètre le plus diversifié, ce paramètre permet de restreindre le rollback à une certaine action. Sachant qu’il y a 14 actions possibles :

  • a:block → Tous les blocs posés et cassés
  • a:+block → Tous les blocs posés
  • a:-block → Tous les blocs cassés
  • a:chat → Tous les messages envoyés dans le chat
  • a:click → Toutes les interactions des joueurs (portes,leviers etc.)
  • a:command → Toutes les commandes effectuées par les joueurs
  • a:container → Tous les items pris/déposés dans les coffres
  • a:+container → Tous les items déposés dans les coffres
  • a:-container → Tous les items pris dans les coffres
  • a:inventory → items récupérés ou jetés par les joueurs
  • a:+inventory → items récupérés par les joueurs
  • a:-inventory → items jetés par les joueurs
  • a:item → items récupérés ou jetés par les joueurs, pris ou déposés dans un coffre
  • a:+item → items récupérés par les joueurs ou déposés dans un coffre
  • a:-item → items jetés par les joueurs ou pris dans un coffre
  • a:kill → Tous les monstres/animaux tués
  • a:session → Toutes les connexions/déconnexions de joueurs
  • a:+session → Toutes les connexions de joueurs
  • a:-session → Toutes les déconnexions de joueurs
  • a:sign → messages écrits sur les panneaux
  • a:username → Tous les changements de pseudos de joueurs

Toutes ses actions ne servent pas qu’au rollback mais les actions comportant une étoile(*) ne peuvent pas servir pour le rollback mais seulement pour le lookup.

Exemple:
/co rollback a:block t:1h
Tous les blocs qui ont été posés ou cassés dans l’heure seront rollback.
/co lookup a:click u:Estro t:1h
Le plugin donnera toutes les interactions effectuées avec des portes ou des leviers par exemple, par Estro dans la dernière heure.

– Les blocks(b):
Il s’agit des blocs que vous voulez rollback ou observer ceux qui l’ont utilisés/minés.

Exemple :
/co rollback b:diamond_ore t:30m
Tous les minerais de diamants minés ou placés dans les 30 dernières minutes seront rollback dans un certain rayon.
/co lookup b:stone t:30m
Le serveur communiquera tous les blocs de stone qui ont été minés ou placés dans les 30 dernières minutes dans un certain rayon.

– Les exclus(e) :
Il s’agit des blocs que vous ne voulez pas prendre en compte lors d’un rollback ou d’une observation.

Exemple :
/co rollback a:block t:1h e:stone
Tous les blocs d’un certain rayon seront rollback d’1 heure sauf la stone.
/co lookup a:block t:1h e:diamond_ore
Le serveur communiquera tous les blocs modifiés dans un certain rayon depuis 1 heure sauf les minerais de diamants.

– Les hashtags(#):
Les hashtags sont au nombre de 4 et ils sont à ajoutés à la fin de la commande et permettent d’effectuer une action supplémentaire

  • #preview → Permet d’effectuer un aperçu du rollback ou du restore
  • #count → Donne le nombre de modifications par rapport au lookup
  • #verbose → Affiche des informations supplémentaires lors d’un rollback ou d’un restore
  • #silent → Affiche le minimum d’informations possible lors d’un rollback ou d’un restore

Exemple :
/co rollback a:block t:1h e:stone #preview
Tous les blocs dans un certain rayon seront rollback d’1 heure sauf la stone. Le serveur communiquera le nombre de blocs qui vont être modifiés et le joueur n’aura plus qu’à soit annuler soit effectuer le rollback.
/co lookup r:#w t:30m #count
Le serveur communiquera toutes les modifications effectués depuis 30 minutes dans un certain rayon.


La sauvegarde de données et son utilisation

La sauvegarde de données s’effectue de manière automatique et silencieuse, il n’y a aucun message pour prévenir qu’une modification a été faites auprès du joueur l’ayant effectué, de plus, elle enregistre les données en fonction des paramètres décidé dans le config.yml, elle peut donc enregistrer toutes les modifications de blocs, connexions/déconnexions etc. Cette sauvegarde peut donner lieu à 3 actions faites par le joueur qui souhaite l’utiliser, l’observation/inspection, le rollback et le restore.

– L’observation/inspection :

L’observation s’effectue grâce à la commande /co lookup u:<utilisateur> t:<temps> r:<radius> a:<action> b:<blocs> e:<exclus> qui peut être abréviée en /co l <paramètres>. Vous pouvez utiliser les paramètres que vous voulez, et cette commande vous permettra de vérifier une donne bien précise comme les périodes pendant lesquels un joueur était connecté ou encore tous les diamants qui ont été miné dans la dernière heure.

Connexions/Déconnexions d'un joueur

Connexions/Déconnexions d’un joueur

Dans cette situation, le joueur Estro_ s’est connecté il y a 0.63h et s’est déconnecté il y a 0.35h avec les coordonnées de ses connexions/déconnexions.
Bien sûr il y a un nombre incalculable de possibilité, tout est sauvegardé et peut être observé à l’aide du lookup

L’inspection est une méthode simplifiée pour observer les modifications apportés à un bloc, le mode inspection s’active à l’aide de la commande /co inspect qui, comme le lookup, peut être abrégée, cette fois ci en /co i. Il suffit juste de faire clique gauche sur un bloc ou alors poser un bloc pour observer toutes les modifications apportés à cette case, que ce soit les objets qui ont été ajoutés/retirés dans un coffre, les personnes qui ont interagis avec une trappe. On peut aussi observer les données d’un joueur.

Inspection d'un bloc

Inspection d’un bloc grâce à un clic gauche en /co inspect sur le bloc

En activant l’inspection, on peut observes que sur la case situé en 12/65/117, il y a eu toutes ces modifications apportés sur ce bloc ainsi que la date de la modification en question, comme la suppression il y a 29 minutes d’un bloc de cobblestone et le placement à la suite d’un bloc de gravier. Savoir cela, peut permettre aux administrateurs d’un serveur de connaitre la personne ayant grief la zone par exemple ainsi que toutes les modifications qu’elle a apporté lors de son grief

Inspection des interactions d'une trappe

Inspection des interactions d’une trappe grâce à un clique gauche en /co inspect sur la trappe

Sur celle image çi, encore une fois à l’aide de l’inspection on observe que le joueur a cliqué sur la trappe à l’instant mais aussi il y a 238,46h. Tout comme pour les blocs, savoir cela peut permettre de savoir qui est entrée dans une zone par la porte par exemple.

Inspection d'un coffre

Inspection d’un coffre grâce à un clique droit en /co inspect sur le coffre

Où encore en complément des deux autres on peut observer les modifications au niveau du contenu d’un conteneur comme un coffre ou un dispenser par exemple, pour observer ces modifications il faut cette fois çi effectué un clic droit. De plus, même si une Tnt explose un coffre et que vous désirez redonner les objets présents dans le coffre au joueur il suffit juste de remettre un coffre au même endroit que l’ancien et de faire un clique droit en mode inspection et le coffre vous listera les objets supprimés par la Tnt lors de l’explosion du coffre

– Le rollback :

Le rollback est donc un retour en arrière d’une zone à une durée donnée, il permet donc de réparer un grief ou des explosions par exemple.(Attention le rollback n’est pas comme le Regen de worldedit, le regen fait redevenir la zone comme elle était de base sur la map alors que le rollback fait redevenir la zone comme elle était il y a un certains temps, donc il peut faire réapparaitre les constructions, bien sûr si le temps du rollback date d’avant la moindre construction elle aura le même effet qu’un regen)

Rollback d'une zone

Rollback d’une zone à l’aide de la commande /co rollback

Le rollback s’effectue dans un rayon de 10 blocs, il fait un retour en arrière de 27 minutes et il y a un total de 8 blocs qui ont été changé

Avant-Après un rollback

Avant-Après un rollback

Dans cette situation, on observe que le moulin a été complétement détruit, en faisant un rollback de la zone à avant la destruction on retrouve le moulin sans aucun problème en parfait état !

– Le restore :

Exemple d'un /co restore d'une zone

Exemple d’un /co restore d’une zone

Le restore est une commande plutôt secondaire et assez peu connue par l’ensemble des personnes l’utilisant, elle permet d’annuler un rollback dans une zone.
Si l’on prend l’exemple d’un joueur qui a grief dans à peu près toute la map et que vous décidiez d’annuler toutes ses actions en faisant : /co rollback u:Estro r:#global t:4w Tout ce qu’il a modifié durant ces 4 dernières semaines sera annulé. Et vous vous rendez compte qu’en ayant fait ça la construction d’un autre joueur est en partie détruite car il l’avait aidé à la construire il vous suffit juste de faire un restore dans la zone : /co restore u:Estro r:50 t:2w Dans une zone de 50 blocs les modifications que Estro a apportés il y a 2 semaines seront restauré.(Vérifieé bien à mettre un temps inférieur à celui déjà utilisé pour le rollback dans le but de restore ce qu’il a fait sinon ça ne fonctionnera pas)


Les permissions

Les permissions restent assez simple tout en englobant les différentes possibilités liés au plugin :

coreprotect.* → Permet au joueur d’avoir accès à toutes les commandes de CoreProtect
coreprotect.inspect → Permet au joueur d’avoir accès à la commande d’inspection
coreprotect.lookup → Permet au joueur d’avoir accès à la commande de recherche
coreprotect.restore → Permet au joueur d’avoir accès à la commande de restauration
coreprotect.rollback → Permet au joueur d’avoir accès à la commande de rollback
coreprotect.purge → Permet au joueur d’avoir accès à la commande de purge
coreprotect.reload → Permet au joueur d’avoir accès à la commande de rechargement de configuration
coreprotect.help → Permet au joueur d’avoir accès à la commande d’aide
coreprotect.teleport → Permet au joueur d’avoir accès à la commande de téléportation
coreprotect.status → Permet au joueur d’avoir accès à la commande de statut du plugin

Il y a aussi des permissions liés au lookup qui permette une meilleure gestion de cette permission :

coreprotect.lookup.block → Permet au joueur d’avoir accès à la commande de recherche seulement pour les blocs
coreprotect.lookup.click → Permet au joueur d’avoir accès à la commande de recherche seulement pour les clicks
coreprotect.lookup.container → Permet au joueur d’avoir accès à la commande de recherche seulement pour les conteneurs
coreprotect.lookup.kill → Permet au joueur d’avoir accès à la commande de recherche seulement pour les kills
coreprotect.lookup.chat → Permet au joueur d’avoir accès à la commande de recherche seulement pour le chat
coreprotect.lookup.command → Permet au joueur d’avoir accès à la commande de recherche seulement pour les commandes
coreprotect.lookup.session → Permet au joueur d’avoir accès à la commande de recherche seulement pour les sessions
coreprotect.lookup.item → Permet au joueur d’avoir accès à la commande de recherche seulement pour les items
coreprotect.lookup.near → Permet au joueur d’avoir accès à la commande de recherche seulement via la commande de proximité
coreprotect.lookup.sign → Permet au joueur d’avoir accès à la commande de recherche seulement pour les panneaux
coreprotect.lookup.username → Permet au joueur d’avoir accès à la commande de recherche seulement via les noms de joueurs

Toutes ces permissions peuvent être aussi interdites en ajoutant un tiret, ce qui provoquera l’effet contraire par rapport à celui décrit ci-dessus


Les commandes

En plus des quelques commandes déjà cités précedemment, CoreProtect vous offre aussi quelques autres possibilités, voici un récapitulatif de toutes les commandes présentes dans CoreProtect :

/co help → Affiche la liste des commandes
/co inspect → Active l’inspecteur
/co rollback <params> → Permet d’effectuer un rollback
/co restore <params> → Permet d’effectuer un restore
/co lookup <params> → Permet d’effectuer un lookup
/co purge <params> → Permet d’effectuer une purge des données (En mettant un t:1w, toutes les données datant de plus d’1 semaine seront effacées)
/co reload → Recharge le fichier de configuration
/co version → Permet de connaitre la version de CoreProtect
/co near → Effectue un lookup d’un radius de 5
/co undo → Annule un rollback ou un restore
/co teleport → Se téléporter à l’endroit d’un log affiché


Installation

  • Téléchargez CoreProtect
  • Mettez le dans le dossier Plugins
  • Redémarrez votre serveur

Liens utiles

📥 Téléchargement de CoreProtect (1.14 → 1.20)
🖥️  Support d’aide
🖥️  Patreon + accès à la version legacy (1.8 → 1.20)

4.5 / 5 - (8 votes)