Protection
Vue d'ensemble
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,infoetflagsmontrent 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
- Installez PacketEvents, que TypeWriter exige déjà.
- Facultatif : installez WorldEdit ou FastAsyncWorldEdit pour importer des sélections avec
/typewriter protection import-we. - Facultatif : installez MythicMobs pour que le flag
mob-spawnings'applique aussi aux mobs Mythic, et BlueMap pour afficher les régions sur la carte. - Facultatif : PlaceholderAPI pour les placeholders.
- 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 :
- Dans le panel web TypeWriter, ouvrez une page manifest et ajoutez un Protection Region Artifact. Laissez
artifactIdtel que généré : il stocke la forme de la région. - Ajoutez une Protection Region Definition et reliez l'artefact dans
artifact. Définissez unepriority(par exemple10). - Dans
flags, ajoutez un flag avec la clébuildet une valeur booléenne à false. Ajoutezpvpde la même manière. Un flag booléen à false refuse l'action. - Publiez la page.
- 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. - Entrez dans la zone et essayez de casser un bloc. Vous pouvez vérifier ce qui s'applique avec
/typewriter protection inspect.
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.
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
| Flag | Ce que fait une valeur à false |
|---|---|
build | Annule la casse et la pose de blocs. Vérifié avant block-break et block-place. |
block-break, block-place | Annule la casse ou la pose de blocs. |
use | Annule 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. |
interact | Annule toute interaction du joueur, y compris les clics dans le vide. À utiliser avec précaution. |
chest-access | Annule l'ouverture des conteneurs (coffres, tonneaux, shulker boxes, entonnoirs, distributeurs, droppers, fourneaux, alambics). |
sleep | Annule l'utilisation des lits. |
lighter | Annule le briquet et les boules de feu. |
vehicle-place, vehicle-destroy | Annule la pose de wagonnets et de bateaux, ou la destruction d'un véhicule par un joueur. |
entity-painting-destroy | Annule la destruction de tableaux et de cadres par un joueur. |
crop-trampling | Annule le piétinement des terres agricoles. |
pistons | Annule le déplacement de blocs par des pistons vers l'intérieur ou l'extérieur de la région. |
item-pickup, item-drop | Annule le ramassage ou le lâcher d'objets. |
Combat et mobs
| Flag | Ce que fait une valeur à false |
|---|---|
pvp | Annule les dégâts entre joueurs. |
mob-damage | Annule les dégâts infligés à un joueur par une entité qui n'est pas un joueur. |
damage-animals | Annule les coups d'un joueur sur les animaux. |
tnt-damage, firework-damage | Annule les dégâts de TNT et de wagonnets explosifs, ou de feux d'artifice. |
mob-spawning | Annule les apparitions de créatures, quelle qu'en soit la raison. S'applique aussi à MythicMobs lorsque MythicMobs est installé. |
btcmob-spawning, btcmob-damage | Idem pour les créatures de BTC Mobs, lorsque BTC Mobs est installé. |
exp-drops | Les mobs tués dans la région ne lâchent pas d'expérience. |
potion-splash | Annule les potions jetables qui atterrissent dans la région. |
Explosions et environnement
| Flag | Ce que fait une valeur à false |
|---|---|
creeper-explosion, tnt | Annule les explosions de creepers, ou de TNT, de wagonnets TNT et d'ancres de réapparition. |
ghast-fireball | Annule les explosions de boules de feu, de crânes de wither, de boules de feu de dragon et de charges de vent. |
fire-spread | Annule 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, lightning | Annule l'allumage par la lave, ainsi que les impacts et allumages de la foudre. |
lava-flow, water-flow | Annule l'écoulement de lave ou d'eau dans la région. |
ice-melt, snow-melt | Annule la fonte de la glace ou de la neige. |
ice-form, snow-fall | Annule la formation de glace ou de neige. |
frostwalker | Annule la glace de Semelles givrantes. |
leaf-decay, grass-growth, vine-growth | Annule 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-grief | Annule la modification de blocs par les endermen et les ravageurs. |
chunk-unload | Une valeur à true maintient les chunks de la région chargés de force. |
Déplacement
| Flag | Valeur | Effet |
|---|---|---|
entry, exit | booléen | Une 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-action | actions | Actions 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-pearl | booléen | Une valeur à false annule les téléportations par perle de l'Ender vers la région. |
fall-damage | booléen | Une valeur à false annule les dégâts de chute. |
fly | booléen | Une valeur à false désactive le vol pour les joueurs dans la région. |
walk-speed, fly-speed | nombre | Dé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. |
glide | texte | deny empêche le vol plané en élytres et l'activation du vol. allow et default ne font rien. |
join-location | position | Les joueurs qui se connectent ou réapparaissent dans la région sont déplacés à cette position. |
État du joueur, chat et commandes
| Flag | Valeur | Effet |
|---|---|---|
hunger | booléen | Une valeur à false arrête la perte de faim. |
heal-amount, heal-min-health, heal-max-health | nombre | Soigne 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-durability | booléen | Une valeur à true empêche les outils, armes et armures de perdre de la durabilité. |
send-chat, receive-chat | booléen | Une valeur à false bloque les messages envoyés depuis la région, ou reçus à l'intérieur. |
chat-prefix, chat-suffix | texte | Ajoute du texte avant ou après les messages de chat envoyés depuis la région. |
blocked-cmds, allowed-cmds | liste | Noms de commandes (sans le slash) qui sont bloquées, ou toujours autorisées. * bloque toutes les commandes. allowed-cmds l'emporte. |
worldedit | booléen | Une 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.
| Commande | Description |
|---|---|
/typewriter protection list | Liste 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 apply | Enregistre la sélection en cours. |
/typewriter protection cancel | Annule 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 inspect | Active 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 wand | Donne 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. |
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
| Permission | Autorise |
|---|---|
typewriter.protection | Les commandes /typewriter protection qui ne sont pas réservées aux admins. |
typewriter.protection.admin | Les commandes admin : flags, propriétaires, membres, suppression, rechargement et migration WorldGuard. |
typewriter.protection.bypass | Ignorer 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.
| Placeholder | Renvoie |
|---|---|
%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 :
- Listez vos régions avec
/typewriter protection listet notez, pour chacune, sa forme, sa priorité, son parent, ses propriétaires et membres, et ses flags (/typewriter protection info <region>). - 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.
- Testez sur une copie de votre serveur, avec des joueurs qui ne sont ni propriétaires, ni membres, ni détenteurs du contournement.
- 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
- On Enter Protection RegionWhen a player enters a protection region
- On Exit Protection RegionWhen a player exits a protection region
Faits1
- In Protection Region FactIf the player is in a protection region
Audiences1
- Protection Region AudienceFilter players based on if they are in a protection region
Groupes1
- Protection Region GroupAll players grouped by protection regions
Artefacts2
- Global Protection Region ArtifactPersistent data for a world-wide protection region
- Protection Region ArtifactPersistent data for a TypeWriter-managed protection region
Manifestes2
- Protection SettingsConfiguration for protection tooling
- Region DefinitionProtection region definition
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-spawnings'applique aussi aux mobs Mythic.