Aller au contenu principal

Protection

Moteur de régions obsolète avec flags et événements de région. Utilisez l'extension Region officielle pour les nouveaux projets.

GratuitesObsolètesv1.3Monde et construction
Cette extension est obsolète et ne reçoit plus de nouvelles fonctionnalités. Utilisez Region (official TypeWriter extension) à la place.

Vue d'ensemble​

Obsolète

Protection est obsolète. Elle ne reçoit plus de nouvelles fonctionnalités, et la v1.3 est la dernière version de compatibilité. Les nouveaux projets devraient utiliser l'extension officielle Region de TypeWriter, documentée sur docs.typewritermc.com. Cette page est conservée pour les serveurs qui utilisent déjà Protection.

Protection vous permet de définir des régions dans le panel web TypeWriter et de leur donner des règles, appelées flags. Une région est un cuboïde ou un prisme polygonal stocké dans un artefact, avec une priorité, des propriétaires, des membres, une région parente facultative et une liste de flags comme build, pvp ou mob-spawning. Lorsque des joueurs agissent dans une région, l'extension annule ou modifie l'action selon les flags.

Les régions sont aussi des objets TypeWriter. Vous pouvez démarrer une séquence lorsqu'un joueur entre dans une région ou la quitte, filtrer une audience par région, regrouper les joueurs par région, lire un fact qui indique si un joueur est à l'intérieur, et afficher les régions sur une carte BlueMap.

Fonctionnalités​

  • Régions cuboïdes et polygonales — dessinez une région en jeu avec une barre d'outils, ou importez une sélection WorldEdit.
  • Régions à l'échelle d'un monde — un artefact global couvre des mondes entiers entre deux hauteurs.
  • Chevauchement et priorité — les régions peuvent se chevaucher ; elles sont évaluées de la priorité la plus haute à la plus basse.
  • Régions parentes — une région enfant hérite des flags, des propriétaires et des membres de son parent.
  • Nombreux flags — 99 clés de flags couvrant la construction, le combat, les explosions, l'environnement, les déplacements et le chat.
  • Propriétaires et membres — ces joueurs ne sont jamais restreints dans leur région.
  • Événements de région — événements d'entrée et de sortie, un filtre d'audience, un groupe et un fact.
  • Outils d'inspection — /typewriter protection inspect, info et flags montrent quels flags s'appliquent là où vous vous trouvez.
  • Marqueurs BlueMap — affichez une région sur BlueMap avec vos propres couleurs.
  • PlaceholderAPI — lisez les régions autour d'un joueur et les valeurs de leurs flags.

Installation​

  1. Installez PacketEvents, que TypeWriter exige déjà.
  2. Facultatif : installez WorldEdit ou FastAsyncWorldEdit pour importer des sélections avec /typewriter protection import-we.
  3. Facultatif : installez MythicMobs pour que le flag mob-spawning s'applique aussi aux mobs Mythic, et BlueMap pour afficher les régions sur la carte.
  4. Facultatif : PlaceholderAPI pour les placeholders.
  5. Placez le JAR de Protection dans plugins/Typewriter/extensions/ et redémarrez le serveur.

Premiers pas​

Protégez une zone de spawn contre la construction et le PvP :

  1. Dans le panel web TypeWriter, ouvrez une page manifest et ajoutez un Protection Region Artifact. Laissez artifactId tel que généré : il stocke la forme de la région.
  2. Ajoutez une Protection Region Definition et reliez l'artefact dans artifact. Définissez une priority (par exemple 10).
  3. Dans flags, ajoutez un flag avec la clé build et une valeur booléenne à false. Ajoutez pvp de la même manière. Un flag booléen à false refuse l'action.
  4. Publiez la page.
  5. En jeu, exécutez /typewriter protection edit <definition>. Une barre d'outils apparaît dans votre barre d'accès rapide : la verge de blaze ajoute un point au bloc que vous regardez, la redstone retire le dernier point, la boussole alterne entre le mode cuboïde et le mode polygone, la teinture verte applique la sélection et la barrière l'annule. Pour un cuboïde, ajoutez deux coins opposés et appliquez.
  6. Entrez dans la zone et essayez de casser un bloc. Vous pouvez vérifier ce qui s'applique avec /typewriter protection inspect.
Importer une sélection WorldEdit

Faites une sélection avec WorldEdit, puis exécutez /typewriter protection import-we <definition>. Votre sélection est convertie en points que vous pouvez ensuite appliquer.

Propriétaires et membres

Les propriétaires et les membres d'une région, ainsi que les joueurs ayant typewriter.protection.bypass, ignorent chaque flag de cette région. Testez avec un joueur qui n'est pas listé, et pas avec un opérateur disposant de la permission de contournement.

Fonctionnement​

Une région n'existe que tant que son entrée de définition existe et est publiée. Sa forme est stockée dans l'artefact, et la définition contient tout le reste.

Chevauchement. Plusieurs régions peuvent contenir le même point. Elles sont vérifiées de la priority la plus haute à la plus basse. Pour les flags booléens, un seul flag à false suffit pour refuser l'action : une région avec build à true n'annule pas le refus d'une région de priorité inférieure. Les flags qui changent quelque chose (messages, actions, téléportations) sont appliqués par la première région qui les définit.

Héritage. Une région avec une parentRegion évalue aussi les flags de ses parents. Les propriétaires et les membres des parents sont ajoutés à l'enfant. L'enfant utilise sa propre priority, ou celle du parent lorsque la sienne vaut 0.

Limites de région. L'entrée et la sortie sont détectées lorsqu'un joueur passe à un autre bloc ou se téléporte. Un joueur qui se connecte à l'intérieur d'une région déclenche l'événement d'entrée à son premier bloc de déplacement.

Configuration​

Messages et inspection. Ajoutez une entrée Protection Settings pour changer l'affichage des actions refusées : chat, action bar ou boss bar, modèles MiniMessage ({reason}, {reason_line}, {region}, {flag}), la fréquence de rafraîchissement du mode inspection (inspectRefreshTicks, au moins 5 ticks) et le texte des messages de commandes dans messages. Sans cette entrée, les valeurs par défaut sont utilisées. Seule la première entrée trouvée est lue.

BlueMap. Dans une définition de région, activez bluemapSettings.enabled pour dessiner la région sur BlueMap. Vous choisissez le jeu de marqueurs, les couleurs de ligne et de remplissage, l'étiquette ({name}, {id}, {priority}) et si le marqueur est extrudé ou plat. Les régions sont synchronisées au démarrage de BlueMap et à chaque modification d'une région.

Propriétaires et membres. owners et members contiennent des UUID de joueurs. Les commandes addowner et addmember acceptent un nom de joueur et enregistrent l'UUID lorsque le joueur est connu du serveur.

Flags​

Les flags sont ajoutés à la liste flags d'une définition de région. Chaque flag a une clé et une valeur typée. La plupart des flags sont des booléens : une valeur à false refuse l'action. Les clés de flags ci-dessous sont celles utilisées dans le panel web et dans les commandes.

Construction et interaction​

FlagCe que fait une valeur à false
buildAnnule la casse et la pose de blocs. Vérifié avant block-break et block-place.
block-break, block-placeAnnule la casse ou la pose de blocs.
useAnnule les clics droits sur les portes, boutons, leviers, portillons, trappes, panneaux, coffres, tonneaux, shulker boxes, fourneaux, enclumes, établis et autres stations, composants de redstone et blocs similaires.
interactAnnule toute interaction du joueur, y compris les clics dans le vide. À utiliser avec précaution.
chest-accessAnnule l'ouverture des conteneurs (coffres, tonneaux, shulker boxes, entonnoirs, distributeurs, droppers, fourneaux, alambics).
sleepAnnule l'utilisation des lits.
lighterAnnule le briquet et les boules de feu.
vehicle-place, vehicle-destroyAnnule la pose de wagonnets et de bateaux, ou la destruction d'un véhicule par un joueur.
entity-painting-destroyAnnule la destruction de tableaux et de cadres par un joueur.
crop-tramplingAnnule le piétinement des terres agricoles.
pistonsAnnule le déplacement de blocs par des pistons vers l'intérieur ou l'extérieur de la région.
item-pickup, item-dropAnnule le ramassage ou le lâcher d'objets.

Combat et mobs​

FlagCe que fait une valeur à false
pvpAnnule les dégâts entre joueurs.
mob-damageAnnule les dégâts infligés à un joueur par une entité qui n'est pas un joueur.
damage-animalsAnnule les coups d'un joueur sur les animaux.
tnt-damage, firework-damageAnnule les dégâts de TNT et de wagonnets explosifs, ou de feux d'artifice.
mob-spawningAnnule les apparitions de créatures, quelle qu'en soit la raison. S'applique aussi à MythicMobs lorsque MythicMobs est installé.
btcmob-spawning, btcmob-damageIdem pour les créatures de BTC Mobs, lorsque BTC Mobs est installé.
exp-dropsLes mobs tués dans la région ne lâchent pas d'expérience.
potion-splashAnnule les potions jetables qui atterrissent dans la région.

Explosions et environnement​

FlagCe que fait une valeur à false
creeper-explosion, tntAnnule les explosions de creepers, ou de TNT, de wagonnets TNT et d'ancres de réapparition.
ghast-fireballAnnule les explosions de boules de feu, de crânes de wither, de boules de feu de dragon et de charges de vent.
fire-spreadAnnule la propagation du feu, les blocs qui brûlent et les allumages qui ne viennent ni de la lave ni de la foudre.
lava-fire, lightningAnnule l'allumage par la lave, ainsi que les impacts et allumages de la foudre.
lava-flow, water-flowAnnule l'écoulement de lave ou d'eau dans la région.
ice-melt, snow-meltAnnule la fonte de la glace ou de la neige.
ice-form, snow-fallAnnule la formation de glace ou de neige.
frostwalkerAnnule la glace de Semelles givrantes.
leaf-decay, grass-growth, vine-growthAnnule la disparition des feuilles, l'extension de l'herbe, du mycélium, des chemins et des champignons, et la pousse des lianes.
enderman-grief, ravager-griefAnnule la modification de blocs par les endermen et les ravageurs.
chunk-unloadUne valeur à true maintient les chunks de la région chargés de force.

Déplacement​

FlagValeurEffet
entry, exitbooléenUne valeur à false bloque l'entrée dans la région ou la sortie. Les joueurs bloqués reçoivent le message deniedEntry.
entry-deny-action, exit-deny-actionactionsActions TypeWriter exécutées pour le joueur lorsqu'il entre ou sort, et lorsqu'une entrée ou une sortie est refusée. Utilisez les entrées d'événements d'entrée et de sortie pour la logique ordinaire.
ender-pearlbooléenUne valeur à false annule les téléportations par perle de l'Ender vers la région.
fall-damagebooléenUne valeur à false annule les dégâts de chute.
flybooléenUne valeur à false désactive le vol pour les joueurs dans la région.
walk-speed, fly-speednombreDéfinit la vitesse de marche ou de vol des joueurs à l'intérieur, entre 0 et 1. Échelle Bukkit : 0.2 est la vitesse de marche normale et 0.1 la vitesse de vol normale. La valeur par défaut est rétablie à l'extérieur.
glidetextedeny empêche le vol plané en élytres et l'activation du vol. allow et default ne font rien.
join-locationpositionLes joueurs qui se connectent ou réapparaissent dans la région sont déplacés à cette position.

État du joueur, chat et commandes​

FlagValeurEffet
hungerbooléenUne valeur à false arrête la perte de faim.
heal-amount, heal-min-health, heal-max-healthnombreSoigne les joueurs dans la région de heal-amount points de vie chaque seconde, entre la santé minimale et maximale. Les soins sont suspendus pendant 5 secondes après tout dégât.
item-durabilitybooléenUne valeur à true empêche les outils, armes et armures de perdre de la durabilité.
send-chat, receive-chatbooléenUne valeur à false bloque les messages envoyés depuis la région, ou reçus à l'intérieur.
chat-prefix, chat-suffixtexteAjoute du texte avant ou après les messages de chat envoyés depuis la région.
blocked-cmds, allowed-cmdslisteNoms de commandes (sans le slash) qui sont bloquées, ou toujours autorisées. * bloque toutes les commandes. allowed-cmds l'emporte.
worldeditbooléenUne valeur à true bloque les commandes WorldEdit pour les joueurs dans la région.

Non appliqués par cette extension​

Les flags suivants peuvent être ajoutés à une région mais rien dans Protection n'agit dessus : passthrough, teleport, godmode, nether-portals, entry-min-level, entry-max-level, permit-completely, mobtrap-use, blocked-effects, heal-delay, biome (le biome n'est pas modifié), ainsi que les flags RPG mana-regen, mana-drain, double-drop, grappling-hook, fishing, alchemy, enchanting-override, elytra-auto-switch, ground-item-glow, pistol, corruption, auction, backpack, wardrobe, profession, experience, gathering et resin.

keep-inventory, keep-exp et invincible n'ont pas non plus d'effet pour les joueurs ordinaires : ils n'agissent que pour les propriétaires, les membres et les joueurs ayant la permission de contournement.

Commandes​

Toutes les commandes sont des sous-commandes de /typewriter (alias /tw), par exemple /typewriter protection list. Elles ne peuvent être utilisées que par des joueurs et nécessitent typewriter.protection. Les commandes marquées admin nécessitent typewriter.protection.admin.

CommandeDescription
/typewriter protection listListe les régions chargées, priorité la plus haute en premier.
/typewriter protection edit <definition>Commence à dessiner la région en jeu avec la barre d'outils de la barre d'accès rapide. Pour un artefact global, applique immédiatement les valeurs de l'artefact.
/typewriter protection applyEnregistre la sélection en cours.
/typewriter protection cancelAnnule la sélection en cours.
/typewriter protection remove <1-16>Retire un point de la sélection en cours.
/typewriter protection import-we <definition>Importe votre sélection WorldEdit comme points de la région.
/typewriter protection info <region>Affiche la forme, la priorité, les propriétaires, les membres et les flags d'une région.
/typewriter protection flags <region>Affiche quels flags sont effectifs, hérités, remplacés ou bloqués par l'héritage.
/typewriter protection inspectActive ou désactive une vue en direct des régions et flags là où vous vous trouvez, dans l'action bar et les boss bars.
/typewriter protection teleport <region>Vous téléporte au centre d'une région (ou au spawn du monde pour une région globale).
/typewriter protection wandDonne un bâton nommé Protection Wand. Dans cette version, rien n'y réagit.
/typewriter protection setflag <region> <flag> <value> (admin)Modifie un flag en mémoire.
/typewriter protection clearflag <region> <flag> (admin)Efface un flag en mémoire.
/typewriter protection addowner|removeowner|addmember|removemember <region> <player> (admin)Modifie les propriétaires ou les membres en mémoire.
/typewriter protection delete <region> (admin)Retire une région de la mémoire.
/typewriter protection reload (admin)Recharge les régions depuis les entrées publiées.
/typewriter protection migrate-from-worldguard (admin)Import expérimental des limites cuboïdes des régions WorldGuard. Voir la page sur l'identité des artefacts et la migration.
Commandes en mémoire

setflag, clearflag, addowner, removeowner, addmember, removemember et delete n'écrivent pas dans vos entrées. Elles modifient la copie chargée, et les changements sont perdus au rechargement ou au redémarrage. La plupart des flags sont appliqués à partir de l'entrée de définition de la région : un setflag ne change donc pas le comportement de build, pvp ou de la plupart des autres flags. Modifiez les flags dans le panel web et publiez.

Permissions​

PermissionAutorise
typewriter.protectionLes commandes /typewriter protection qui ne sont pas réservées aux admins.
typewriter.protection.adminLes commandes admin : flags, propriétaires, membres, suppression, rechargement et migration WorldGuard.
typewriter.protection.bypassIgnorer chaque flag, dans chaque région.

Placeholders​

Les placeholders PlaceholderAPI ont la forme %typewriter_regions:<path>%. Ils lisent les régions à la position du joueur, triées par priorité ; primary est la première.

PlaceholderRenvoie
%typewriter_regions:count%Le nombre de régions qui contiennent le joueur.
%typewriter_regions:list%, %typewriter_regions:list_names%Les identifiants, ou les noms, de ces régions, séparés par des virgules.
%typewriter_regions:stack%Priorité et nom de chaque région, séparés par |.
%typewriter_regions:has:<id1>,<id2>%true si le joueur se trouve dans l'une des régions listées.
%typewriter_regions:primary%Le nom de la région de plus haute priorité. Ajoutez :id, :name, :priority, :overlap_count, :parent, :parent_name, :owner_count, :member_count, :is_global, :depth ou :path pour d'autres champs.
%typewriter_regions:active:<n>%Les mêmes champs pour la n-ième région de la pile, à partir de 1, par exemple %typewriter_regions:active:2:id%.
%typewriter_regions:flag:<flag>%La valeur d'un flag dans la région principale. Ajoutez :state, :source ou :source_name pour connaître son origine.
%typewriter_regions:by_id:<region>:<field>%Un champ d'une région donnée, par exemple %typewriter_regions:by_id:spawn:priority%.
%typewriter_regions:exists:<region>%true si la région existe.
%typewriter_regions:nearest%La région dont le coin minimal est le plus proche du joueur. Les mêmes champs sont disponibles.
%typewriter_regions:can_build%, %typewriter_regions:can_interact%false lorsque la première région, par priorité, qui définit build (ou interact) l'a à false, sinon true.

Migrer vers Region​

Protection ne recevra pas de nouvelles fonctionnalités : prévoyez donc de passer à l'extension officielle Region de TypeWriter, documentée sur docs.typewritermc.com. Cette page ne décrit pas Region : suivez sa propre documentation.

Protection ne contient aucun outil pour convertir ses régions vers Region. L'approche générale est la suivante :

  1. Listez vos régions avec /typewriter protection list et notez, pour chacune, sa forme, sa priorité, son parent, ses propriétaires et membres, et ses flags (/typewriter protection info <region>).
  2. Recréez chaque région dans la nouvelle extension et associez chaque flag au paramètre équivalent. Certains flags de Protection ne sont pas appliqués (voir plus haut), vous n'en aurez donc peut-être pas besoin.
  3. Testez sur une copie de votre serveur, avec des joueurs qui ne sont ni propriétaires, ni membres, ni détenteurs du contournement.
  4. Supprimez les entrées Protection et le JAR une fois que les nouvelles régions se comportent comme prévu. Faites d'abord une sauvegarde de vos pages et assets TypeWriter.

Entrées​

9 entrées, générées depuis la source de l'extension.

Événements2
Faits1
Audiences1
Groupes1
Artefacts2
Manifestes2

Dépannage​

Un flag ne fait rien. Vérifiez le flag dans Flags : certaines clés ne sont pas appliquées. Vérifiez aussi que la région est enregistrée et publiée, que le joueur n'est ni propriétaire, ni membre, ni détenteur de typewriter.protection.bypass, et que la valeur est un booléen à false pour les flags qui refusent.

La région existe mais les joueurs ne sont pas dedans. La forme provient de l'artefact. Une définition sans artefact, ou un artefact auquel vous n'avez jamais appliqué de sélection, ne couvre rien. Exécutez /typewriter protection edit <definition> et appliquez une sélection, puis vérifiez avec /typewriter protection info <region>. Tous les points doivent être dans le même monde, et un cuboïde nécessite 2 points, un polygone 3.

La barre d'outils de sélection n'apparaît pas. edit nécessite une définition de région publiée reliée à un artefact. Si le message indique que la définition n'est reliée à aucun artefact, reliez-en un. Pour un artefact global, il n'y a pas de barre d'outils : définissez worlds, minY et maxY sur l'artefact.

/typewriter protection import-we indique aucune sélection ou aucun adaptateur. WorldEdit ou FastAsyncWorldEdit doit être installé et vous devez avoir fait une sélection dans le monde où vous vous trouvez.

Une modification faite avec setflag disparaît. La commande ne modifie que la mémoire. Placez le flag dans la définition de la région et publiez.

Une migration WorldGuard n'a pas créé de régions. La migration ne crée ni définitions de régions, ni flags, ni propriétaires, ni membres : elle ne gère que les limites cuboïdes de chaque région, et elle lit les régions de WorldGuard via le premier monde chargé. Créez les définitions dans le panel web.

Les joueurs ne sont ni téléportés ni bloqués par entry. La vérification a lieu lorsqu'un joueur passe à un autre bloc ou se téléporte. Une entrée via un plugin qui déplace le joueur sans événement de déplacement ou de téléportation n'est pas détectée.

Extensions associées​

  • MythicMobs — mob-spawning s'applique aussi aux mobs Mythic.