WorldGuard - plugin pour protéger et privatiser les régions

Si vous effectuez une mise à niveau à partir d'une version antérieure à 1.11 (1.10 ou inférieure), veuillez lire ce qui suit :

  1. En raison des modifications apportées aux bibliothèques Spigot, si vous avez utilisé le plugin LWC, vous obtiendrez probablement une erreur "UnsatisfiedLinkException" lors du démarrage de votre serveur. Cela empêchera WorldGuard de fonctionner correctement. Il est fortement recommandé de mettre à jour vers la version non officielle de LWC et de supprimer votre dossier "lib" LWC. Si vous obtenez une erreur liée à "org.sqlite.core.NativeDB", essayez : rendre /tmp/ exécutable, passer à oraclejdk et/ou exécuter avec "-Dsqlite.purejava=true". Ce ne sont pas des problèmes WorldGuard et nous ne pouvons pas les résoudre pour vous.
  2. Si vous avez utilisé un plugin tiers qui a ajouté des indicateurs personnalisés à WorldGuard, il peut cesser de fonctionner avec la version 6.2. Il est fortement recommandé de sauvegarder vos fichiers de région. Même si WorldGuard tentera de préserver les drapeaux, ils ne seront probablement pas fonctionnels. Maintenant que WorldGuard prend en charge nativement une API de drapeaux personnalisés, les plugins tiers devront se mettre à jour vers la nouvelle API avant de fonctionner à nouveau.

Cette version prend en charge uniquement Minecraft 1.12. Il peut fonctionner partiellement dès la version 1.8, mais il est recommandé d'utiliser la version 6.2 pour les versions 1.11.2 et inférieures de Minecraft, car vous rencontrerez des erreurs lors de l'exécution de commandes.

NOUVELLE DOCUMENTATION : Il y a une nouvelle documentation.
Développeurs : il existe une page sur l'utilisation de la nouvelle API d'indicateur personnalisé.

Modifications dans 6.2.1

  • Les pots de fleurs sont plus strictement protégés (via la construction, pas seulement par interaction).
  • Ajout d'une option de configuration (mobs.block-armor-stand-destroy) qui fait exactement ce qu'elle dit.
  • Ajout d'un drapeau de dégâts de feu d'artifice qui fait exactement ce qu'il dit.
  • Ajoutez un drapeau de dégâts du garrot (protège de l'explosion du garrot lui-même, pas des projectiles du crâne)
  • Correction des erreurs de spam de la console si un coffre invalide (3 coffres connectés ou plus) était connecté à une trémie.
  • Amélioration de la lisibilité de la liste des indicateurs lorsqu'un indicateur non valide est saisi.

Modifications dans 6.2

  • Ajout de blocs 1.11.
  • Ajoutez une option de configuration pour empêcher les drapeaux de téléportation et d'apparition d'être définis en dehors de leur région.
  • Ajout de l'API des indicateurs personnalisés.
  • Ajout de l'API du gestionnaire de session personnalisé.
  • Ajoutez une propriété transitoire aux régions pour l'API.
  • Modification du drapeau d'éclaboussure de potion pour inclure le lancement de potions persistantes.
  • Suppression de l'indicateur de construction. Il est obsolète depuis très longtemps.
  • Protection des cristaux d'extrémité fixe.
  • Correction de quelques problèmes de compatibilité ascendante.
  • Correction des monstres ne s'enflammant pas dans les régions en raison des changements de Spigot.

Modifications dans 6.1.2

  • Ajout de la prise en charge de nouveaux blocs dans 1.8, 1.9 et 1.10.
  • Ajout d'une protection contre les portails Nether créés dans une région protégée (activée via la configuration Nether-Portal-Protection).
  • Protection supplémentaire contre les engins à piston à bloc visqueux poussant ou tirant depuis les régions.
  • Ajout du drapeau de téléportation Chorus-Fruit, fonctionne de manière similaire à Enderpearl pour empêcher la téléportation.
  • Ajout d'une protection contre le retrait des supports d'armure, des objets et des entités des régions protégées.
  • Modification de l'ordre des drapeaux de salutation et d'adieu sur les régions adjacentes. Lorsque vous quittez une région avec un drapeau d'adieu et que vous entrez dans une région avec un drapeau de salutation, le message d'adieu s'affichera en premier.
  • Modification de la commande /heal pour remplir également les compteurs de nourriture/saturation.
  • Modification de la prévention des dégâts de chute pour empêcher également de voler dans les murs, les élytres étant mortels.
  • Correction du drapeau de propagation du feu empêchant uniquement la destruction, empêchant désormais également la propagation comme son nom l'indique.
  • Correction des creepers ciblant les joueurs pouvant faire exploser des choses dans certains cas.
  • Correction des supports d'armure supprimés par /stoplag.
  • Correction de quelques problèmes avec les boules de feu pouvant exploser lorsque ghast-fireball était configuré pour refuser.
  • Correction de nombreux autres problèmes mineurs.

Modifications dans la version 6.1

  • Ajout d'un indicateur de sortie via téléportation (autorisation par défaut) pour contrôler la sortie d'une région exit=deny via la téléportation.
  • Ajout d'un indicateur de dégâts de chute pour contrôler les dégâts causés par les chutes aux joueurs.
  • Ajout d'un indicateur de verrouillage temporel pour verrouiller l'heure de la journée des joueurs. Les valeurs valides sont comprises entre 0 et 24 000 pour le temps absolu, ou +- n'importe quel nombre pour le temps relatif.
  • Ajout d'un drapeau de verrouillage météo pour verrouiller la météo des joueurs. Les valeurs valides sont "clair" ou "chute". Désactivé pour restaurer la météo mondiale normale.
  • Ajout de -s aux commandes de débogage d'événements pour afficher une trace de pile plutôt que de tenter de détecter le plugin à l'origine.
  • Ajout de la prise en charge de l'utilisation de l'argument -e (définit une valeur vide pour l'indicateur) dans la commande flag set lorsque le type d'indicateur est du type "set".
  • Ajout des PNJ du plugin Citizens à une liste blanche afin qu'ils ne soient pas protégés.
  • Ajout de la prise en charge de BlockExplodeEvent de Spigot.
  • Fil-piège modifié pour tomber sous le drapeau d'utilisation.
  • Modification des enderchests pour qu'ils tombent sous le drapeau d'utilisation.
  • Véhicules et animaux modifiés afin qu'ils ne soient pas inclus dans le drapeau d'interaction.
  • Modification de l'affichage des messages de liste noire personnalisés pour ne plus inclure de point à la fin.
  • Modification de la logique de protection pour prendre en compte les coffres connectés.
  • Modification des drapeaux de soins et d'alimentation pour augmenter les valeurs pour les joueurs invincibles (ou en mode créatif) mais pas les diminuer.
  • Modification de la protection PvP pour prendre en compte à la fois les emplacements des attaquants et des défenseurs.
  • Correction des données de protection manquantes pour certains blocs ajoutés à la version 1.8.
  • Correction de problèmes de compatibilité avec MC 1.7.
  • Correction des détecteurs de lumière du jour inversés non protégés.
  • Correction des œufs d'apparition n'étant pas inclus dans la protection.
  • Correction du blocage du piston ne fonctionnant pas en raison d'un bug dans Spigot.
  • Correction du blocage de certains événements de dégâts d'entité invalides.
  • Correction des explosions de creepers n'étant pas bloquées dans certaines situations avec des drapeaux liés aux explosions définis.
  • Correction du « caractère collant » de certains drapeaux liés à la position, entraînant parfois des bandes élastiques dans les drapeaux de sortie.
  • Les armures ont été corrigées afin qu'elles soient traitées davantage comme des cadres d'objets que comme des monstres.
  • Blocs fixes (par exemple cannes à sucre) adjacents aux blocs physiques (par exemple sable) ne se mettant pas à jour.
  • Correction d'une NullPointerException qui se produisait parfois lors de la génération de la section planificateur de la fonction de rapport (rapport /wg).
  • Correction de la configuration "pas de chute XP" qui ne fonctionnait pas suite à une version précédente.
  • Correction des modifications apportées à la propriété de la région ne déclenchant parfois pas une sauvegarde de la base de données de la région.
  • Correction de la protection du seau affichant « l'effet de refus » même si l'utilisation du seau n'était pas empêchée.
  • Correction de CommandFilter correspondant aux émoticônes et autres caractères indésirables.
  • Correction d'une exception se produisant parfois lors des changements de mode de jeu.
  • Correction du TNT amorcé étant vérifié deux fois pour les drapeaux TNT.

WorldGuard est un plugin pour le serveur Bukkit qui permet de protéger des régions (privées). Ce plugin ajoute également quelques outils utiles. La page du plugin est disponible sur : http://dev.bukkit.org/server-mods/worldguard/.

Les utilisateurs réguliers utilisent ce plugin pour protéger leurs bâtiments. Vous pouvez procéder ainsi :

  1. Sélection d'une région
  2. Entrez la commande : /region définit Region_Name Player_Name

Commandes de base

  • /god [Player_Name] - rend le joueur immortel
  • /ungod [Player_Name] - supprime l'immortalité d'un joueur
  • /heal [Player_Name] - restaure la santé du joueur
  • /slay [Player_Name] - prendre la vie d'un joueur
  • /pile ou /; - augmenter tous les éléments de l'inventaire jusqu'au nombre maximum dans la pile
  • /locate [PlayerName] - Pointe votre boussole vers un joueur.

Commandes d'urgence

  • /stopfire [World] - arrête la propagation du feu sur le serveur. Il s'agit d'une commande temporaire qui cessera de fonctionner après le redémarrage du serveur. Tous les joueurs qui entreront seront avertis de ne pas propager le feu.
  • /allowfire [World] - désactive la commande précédente /stopfire
  • /stoplag [Monde] - arrête tous les processus intensifs : déversement d'eau, déversement de lave, TNT, apparition de foule, etc. Il s'agit également d'une commande temporaire, dont l'effet s'arrêtera après le redémarrage du serveur. Tous les joueurs connectés seront avertis que ce mode est activé.
  • /stoplag -c - désactive la commande /stoplag précédente
  • /worldguard flushstates [PlayerName] - Vide toutes les données stockées dans le gestionnaire d'état qui suit l'emplacement du joueur pour les drapeaux d'entrée, de sortie, de salutation et d'adieu. Utilisez ceci si quelqu'un est bloqué dans une région de refus de sortie (ou en dehors d'une région de refus d'entrée) après la suppression du drapeau ou de la région.

Commandes de gestion du plugin WorldGuard

  • /worldguard version - affiche la version du plugin
  • /worldguard reload - redémarrez le plugin WorldGuard
  • /worldguard report [-p] - rédige un rapport sur tous les paramètres et informations sur le serveur dans un fichier qui sera situé dans le dossier du plugin

Les équipes WorldGuard pour protéger les régions

Définition de la région (définir)

  • /région définir<Имя_Региона> [<Владелец1> [<Владелец2> [<Другие_Владельцы...>]]]
  • /définition de la région<Имя_Региона> [<Владелец1> [<Владелец2> [<Другие_Владельцы...>]]]
  • /région d<Имя_Региона> [<Владелец1> [<Владелец2> [<Другие_Владельцы...>]]]

À l'aide de cette commande, vous pouvez définir une région et attribuer des propriétaires à la région créée. Les propriétaires de régions sont indiqués séparés par un espace.

Région redéfinie

  • /région redéfinir<Имя_Региона>
  • /mise à jour de la région<Имя_Региона>
  • /déplacement de région<Имя_Региона>

Vous pouvez utiliser cette commande pour remplacer la taille de la région. Nécessaire dans les cas où vous réalisez que vous n'avez pas assez d'espace :-)

Réclamer

  • /région revendication<Имя_Региона> [<Владелец1> [<Владелец2> [<Другие_Валадельцы...>]]]

Cette commande fait la même chose que définir, c'est-à-dire qu'elle définit une région. Mais il existe certaines restrictions, par exemple, en utilisant cette commande, vous ne pouvez pas créer une grande région et vous ne pouvez pas créer plus de régions que celles enregistrées pour l'utilisateur. Comme j'ai un serveur assez gratuit, utilisez la commande de définition pour les zones privées - c'est bien mieux.

Informations sur la région

  • /informations sur la région [-s] [<Мир>] [<Имя_Региона>]

Affiche des informations sur la région. L'indicateur -s, en plus d'afficher les informations sur la région, met en évidence la région spécifiée.

Sélection de région

  • /région sélectionner [<Имя_Региона>]

Sélectionne une région. Si vous ne spécifiez pas de Region_Name, la région hautement prioritaire de l'emplacement actuel sera sélectionnée.

Obtenez une liste des régions

  • /liste des régions [<Номер_Страницы> [<Мир>]]

La commande affiche une liste de toutes les régions du monde spécifié. Comme il existe généralement de nombreuses régions, vous devez parfois indiquer le numéro de page.

Définir des drapeaux

  • /drapeau de région<Имя_Региона> <Название_Флага> [<Значение>]

Définit le drapeau de la région. Les drapeaux peuvent interdire le PvP, empêcher la propagation du feu, empêcher les autres joueurs de se déplacer dans la région, afficher un message de bienvenue et bien plus encore. Je décrirai les drapeaux plus en détail plus tard. Vous pouvez lire les plus utiles d'entre eux.

Définir la priorité

  • /région définie comme priorité<Имя_Региона> <Приоритет>
  • /priorité région<Имя_Региона> <Приоритет>
  • /région pri<Имя_Региона> <Приоритет>

Une équipe est nécessaire pour les régions qui se chevauchent. Par exemple, lors de la construction d'une ville, vous pouvez interdire le PvP dans toute la ville, mais l'autoriser à un certain endroit de la ville. La valeur de priorité doit être numérique.

Définir la région parente

  • /region setparent<Имя_Региона> <Имя_Родительского_Региона>
  • /région parent<Имя_Региона> <Имя_Родительского_Региона>
  • /région par<Имя_Региона> <Имя_Родительского_Региона>

Définit la région parent. Par exemple. Nous avons une ville appelée City. Dans cette ville, nous attribuons des zones à construire. Pour ce faire, vous devez définir une nouvelle région pour le joueur, par exemple avec le nom City-Home-Nick et désigner le joueur comme propriétaire de la région nouvellement créée. Désormais, pour que le joueur puisse construire dans sa région, il doit spécifier la région parent : /region setparent city-home-nick city . Certains administrateurs, sans chercher à comprendre les spécificités du plugin, attribuent simplement le joueur de la ville comme propriétaire de la région. Cela pourrait entraîner des dommages à la ville entière et le licenciement ignominieux de l'administrateur.

Supprimer une région

  • /région supprimer<Имя_Региона> <Приоритет>
  • /région rem<Имя_Региона> <Приоритет>
  • /région supprimer<Имя_Региона> <Приоритет>
  • /région du<Имя_Региона> <Приоритет>

La commande supprime la région. Exemple : /region Remove Marick - supprime une région nommée Marick.

Téléportation

  • /région téléportation [-s]<Имя_Региона>
  • /région tp [-s]<Имя_Региона>

Se téléporte au point spécifié par le drapeau de téléportation de la région. Si vous spécifiez le drapeau -s, vous serez téléporté au point d'apparition à la place.


Il y a une classe

Classe LogClass (fichier FileHandle privé; void LogClass() ( Print("::: ::: Init:::"); ) void ~LogClass() ( Print("::: ::: UnInit:::") ; ) void Save(string FileName, string String) ( private int année, mois, jour, heure, minute, seconde; Print("::: : Save: " + FileName); if (!FileExist(FileName)) ( Fichier = OpenFile(FileName,FileMode.WRITE); ) else ( File = OpenFile(FileName, FileMode.APPEND); ) if (File == 0) ( Print("::: : Impossible d'écrire FileName: " + FileName); Print("::: : Peut être une erreur de disque, un fichier protégé en écriture, un fichier occupé ou FileMode.WRITE désactivé (besoin de spécifier l'option -scrAllowFileWrite dans les paramètres d'exécution du serveur pour activer FileMode.WRITE."); return; ) FPrintln(Fichier, DataBase_GetDate() + "," + DataBase_GetTime() + " : " + String); void Rotate(string FileName, int FileNum) ( Print("::: : Rotate: " + FileName); if ( !FileExist(FileName)) ( Print("::: : Rotation : FileName n'existe pas : " + FileName); return; ) else ( for (int i = FileNum; je > 0 ; i--) ( Print("::: : Rotation: FileName: " + FileName + "." + i); if (FileExist(FileName + "." + i)) ( Print("::: : Rotation: DeleteFile: " + FileName + "." + i); DeleteFile(FileName + "." + i); ) if (FileExist(FileName + "." + (i - 1))) ( Print("::: : Rotation : CopyFile : " + FileName + "." + (i - 1) + " => " + FileName + "." + i); CopyFile(FileName + "." + (i - 1), FileName + ". " + i); ) ) CopyFile(FileName, FileName + ".0");
Supprimer le fichier (nom du fichier);
) ) chaîne statique DataBase_GetDate() ( int année, mois, jour; GetYearMonthDay(année, mois, jour); chaîne date = jour.ToStringLen(2) + "." + mois.ToStringLen(2) + "." + année .ToStringLen(2); date de retour; ) chaîne statique DataBase_GetTime() ( int heure, minute, seconde; GetHourMinuteSecond(heure, minute, seconde); chaîne time = hour.ToStringLen(2) + ":" + minute.ToStringLen( 2) + ":" + second.ToStringLen(2); return time; ) J'ai besoin d'en utiliser les fonctions à plusieurs endroits.
dans PlayerBase.c dans les fonctions de la classe PlayerBase

dans init.c dans une fonction de la classe mission
La question est comment ?
Dans PlayerBase.c
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\LogClass\\LogClass.c"
Le prochain en classe
ref LogClass Log = new LogClass();

et dans les fonctions
Log.Save("nom-chemin", données);
Mais après la dernière mise à jour 0.63.149.525
Dans init.c

Impossible de compiler le script d'initialisation de la mission !
$CurrentDir://mpmissions//dayzOffline.chernarusplus//_MOD//LogClass//LogClass.c(1) : Déclaration multiple de la classe "LogClass"

Avant cette mise à jour, tout allait bien
Que dois-je faire?

Supposons

Déclaré un tableau dans une fonction

Tableau stringParam;
// définit un tableau de types de texte qui dure jusqu'à ce que la fonction soit terminée

Tableau statique stringParam;
// définit un tableau de type texte qui stocke les données à la fois une fois la fonction terminée et la fois suivante
lors de l'appel d'une fonction, le contenu du tableau restera et pourra être utilisé à l'intérieur de la fonction (le tableau ne sera pas redéclaré)

Texte de chaîne = "texte" ;

//écrit le contenu de la variable texte dans l'élément de tableau 0
stringParam.Insert(texte);
//écrit le contenu de la variable texte dans l'élément 1 du tableau, si la variable texte est vide, le texte NULL sera écrit dans l'élément
stringParam.Insert(texte, "NULL");

Lecture de l'élément de tableau 1 dans la variable texte
texte de chaîne = stringParam.Get(1);

Maintenant, voici la question
Comment changer l’élément 1 d’un tableau ?
stringParam = "blablabla";

Donc?
en théorie ça devrait être comme ça

Est-ce même possible ?

Et en savoir plus sur la fonction qui renvoie le résultat sous forme de tableau

Tableau FichierLire (chaîne NomFichier)
{
tableau stringParam;
chaîne line_content ;

FermerFichier(Fichier);
retourner stringParam ;
}

WorldGuard est un plugin populaire pour protéger et privatiser le monde ou certaines régions contre la destruction. Le plugin ne fonctionne que lorsque WorldEdit est installé. Si vous avez besoin de protection contre les chagrins ou si vous souhaitez interdire le PVP dans une certaine région, alors ce plugin vous sera utile comme aucun autre. Presque tous les administrateurs de serveurs l'utilisent pour aider les joueurs à protéger leurs bâtiments, alors n'hésitez pas à l'installer !

Comment utiliser le plugin WorldGuard ?
Si je vous parle de toutes les fonctions du plugin, comme dans le cas de WorldEdit, j'y passerai plus de quelques jours. Mais je peux vous parler des principales fonctions du plugin WorldGuard !
Cela commence par les bases, à savoir avec ce pour quoi ce plugin a été créé à l'origine - pour protéger les régions des fauteurs de troubles et des mauvaises personnes. Pour privatiser une région, il faudra d’abord l’attribuer. Je vous ai déjà expliqué comment procéder à plusieurs reprises et je vous le répéterai. Je vais vous parler de la méthode de mise en valeur la plus simple : la mise en valeur avec une hache en bois. Allons-y étape par étape.
1. Prenez une hache en bois dans vos mains.
2. Cliquez avec le bouton gauche sur le point A.
3. Cliquez avec le bouton droit sur le point B.
C'est fait, vous avez sélectionné le parallélépipède. J'ai du mal à vous dire avec des mots où vous devez mettre des points pour mettre en évidence un parallélépipède, alors je vais juste vous montrer une image. En le regardant, vous comprendrez tout !
WorldGuard - plugin pour protéger et privatiser les régions
Donc, je pense que nous avons réglé le choix de la région. Gardons-le privé pour que les méchants chagrins ne le détruisent pas.
Pour privatiser une région, entrez la commande /rgclaim. Je pense que nous avons réglé ce problème. Si vous souhaitez en savoir plus sur la confidentialité des régions, lisez cet article sur la confidentialité des régions.

Nous avons compris l'utilisation habituelle du plugin. Configurons maintenant WorldGuard à des fins normales. Je vais vous le dire en utilisant mes paramètres comme exemple.
Examinons d’abord les droits. J'ai donné ces droits aux joueurs ordinaires :
- worldedit.wand - autorisation du plugin WorldEdit pour que les joueurs puissent se donner une hache avec la commande //wand.
- worldedit.wand.toggle - autorisation de mettre en évidence les régions.
- worldguard.wand - Je ne me souviens pas pourquoi, mais sans cela, la sélection ne semble pas non plus fonctionner.
- worldedit.selection.pos - sélection d'une région à l'aide des commandes.
- worldguard.region.claim - autorisation d'utiliser la commande privée après que le joueur ait sélectionné une région.
- worldedit.selection.expand - autorisation d'utiliser la commande pour développer une région après l'avoir sélectionnée.
- worldguard.region.addmember.own.* - ajout d'un utilisateur par région.
- worldguard.region.addowner.own.* - ajout d'un propriétaire de région.
- worldguard.region.removemember.own.* - suppression d'un utilisateur de région.
- worldguard.region.removeowner.own.* - supprimer le propriétaire de la région.
- worldguard.region.remove.own.* - suppression de la région elle-même.
Après ces simples réglages de droits, vos joueurs pourront utiliser la fonctionnalité principale du plugin de protection de région. Si vous êtes familier avec la configuration des autorisations et souhaitez les configurer plus en détail, voici une liste des autorisations et commandes sur le site Wiki officiel du développeur du plugin.

Vous pouvez également configurer d'autres fonctions à l'aide du plugin WorldGuard. Par exemple, vous pouvez vous assurer que lorsqu'une plante grimpante explose, elle inflige des dégâts aux joueurs et aux monstres à proximité, mais ne détruit pas les blocs. Tout cela peut être fait dans le fichier de configuration, qui se trouve dans le dossier du plugin WorldGuard/config.yml. Mais si vous ne comprenez pas la configuration du plugin, alors il vaut mieux ne pas y aller, tout y est déjà bien configuré.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :