Protection
Descripción general
Protection está obsoleta. No recibirá nuevas funciones, y la v1.3 es la versión final de compatibilidad. Los proyectos nuevos deberían usar la extensión Region oficial de TypeWriter, documentada en docs.typewritermc.com. Esta página se mantiene para los servidores que ya ejecutan Protection.
Protection te permite definir regiones en el panel web de TypeWriter y asignarles reglas, llamadas flags. Una región es un cuboide o un prisma poligonal almacenado en un artefacto, con una prioridad, propietarios, miembros, una región padre opcional y una lista de flags como build, pvp o mob-spawning. Cuando los jugadores actúan dentro de una región, la extensión cancela o modifica la acción según los flags.
Las regiones son también objetos de TypeWriter. Puedes iniciar una secuencia cuando un jugador entra en una región o sale de ella, filtrar una audiencia por región, agrupar jugadores por región, leer un fact que indica si un jugador está dentro y mostrar las regiones en un mapa de BlueMap.
Características
- Regiones cuboides y poligonales — dibuja una región en el juego con una barra de herramientas o importa una selección de WorldEdit.
- Regiones de mundo completo — un artefacto global cubre mundos enteros entre dos alturas.
- Solapamiento y prioridad — las regiones pueden solaparse; se evalúan de la mayor prioridad a la menor.
- Regiones padre — una región hija hereda los flags, propietarios y miembros de su padre.
- Muchos flags — 99 claves de flags que cubren construcción, combate, explosiones, entorno, movimiento y chat.
- Propietarios y miembros — estos jugadores nunca están restringidos dentro de su región.
- Eventos de región — eventos de entrada y salida, un filtro de audiencia, un grupo y un fact.
- Herramientas de inspección —
/typewriter protection inspect,infoyflagsmuestran qué flags se aplican donde estás. - Marcadores de BlueMap — muestra una región en BlueMap con tus propios colores.
- PlaceholderAPI — lee las regiones alrededor de un jugador y los valores de sus flags.
Instalación
- Instala PacketEvents, que TypeWriter ya requiere.
- Opcional: instala WorldEdit o FastAsyncWorldEdit para importar selecciones con
/typewriter protection import-we. - Opcional: instala MythicMobs para que el flag
mob-spawningse aplique también a los mobs de Mythic, y BlueMap para mostrar las regiones en el mapa. - Opcional: PlaceholderAPI para los placeholders.
- Coloca el JAR de Protection en
plugins/Typewriter/extensions/y reinicia el servidor.
Primeros pasos
Protege una zona de spawn contra la construcción y el PvP:
- En el panel web de TypeWriter, abre una página de manifest y añade un Protection Region Artifact. Deja
artifactIdtal como se generó: almacena la forma de la región. - Añade una Protection Region Definition y enlaza el artefacto en
artifact. Establece unapriority(por ejemplo10). - En
flags, añade un flag con la clavebuildy un valor booleano en falso. Añadepvpdel mismo modo. Un flag booleano en falso deniega la acción. - Publica la página.
- En el juego, ejecuta
/typewriter protection edit <definition>. Aparece una barra de herramientas en tu barra rápida: la vara de blaze añade un punto en el bloque que miras, la redstone elimina el último punto, la brújula alterna entre el modo cuboide y el poligonal, el tinte lima aplica la selección y la barrera cancela. Para un cuboide, añade dos esquinas opuestas y aplica. - Camina hasta la zona e intenta romper un bloque. Puedes comprobar qué se aplica con
/typewriter protection inspect.
Haz una selección con WorldEdit y luego ejecuta /typewriter protection import-we <definition>. Tu selección se convierte en puntos que después puedes aplicar.
Los propietarios y miembros de una región, y los jugadores con typewriter.protection.bypass, ignoran todos los flags de esa región. Prueba con un jugador que no figure en la lista y que no sea un operador con el permiso bypass.
Cómo funciona
Una región solo existe mientras exista su entrada de definición y esté publicada. Su forma se almacena en el artefacto, y la definición contiene todo lo demás.
Solapamiento. Varias regiones pueden contener el mismo punto. Se comprueban de la priority más alta a la más baja. En los flags booleanos, un solo flag en falso basta para denegar la acción: una región con build en verdadero no anula la denegación de una región de menor prioridad. Los flags que cambian algo (mensajes, acciones, teletransportes) los aplica la primera región que los define.
Herencia. Una región con un parentRegion evalúa también los flags de sus padres. Los propietarios y miembros de los padres se añaden a la hija. La hija usa su propia priority, o la del padre cuando la suya es 0.
Bordes de región. La entrada y la salida se detectan cuando un jugador se mueve a otro bloque o se teletransporta. Un jugador que se conecta dentro de una región activa el evento de entrada en su primer bloque de movimiento.
Configuración
Mensajes e inspección. Añade una entrada Protection Settings para cambiar cómo se muestran las acciones denegadas: chat, action bar o boss bar, plantillas MiniMessage ({reason}, {reason_line}, {region}, {flag}), la frecuencia de actualización del modo de inspección (inspectRefreshTicks, al menos 5 ticks) y el texto de los mensajes de los comandos en messages. Sin esta entrada se usan los valores por defecto. Solo se lee la primera entrada que se encuentra.
BlueMap. En una definición de región, activa bluemapSettings.enabled para dibujar la región en BlueMap. Eliges el conjunto de marcadores, los colores de la línea y del relleno, la etiqueta ({name}, {id}, {priority}) y si el marcador es extruido o plano. Las regiones se sincronizan cuando BlueMap se inicia y siempre que cambia una región.
Propietarios y miembros. owners y members contienen UUID de jugadores. Los comandos addowner y addmember aceptan un nombre de jugador y almacenan el UUID cuando el servidor conoce al jugador.
Flags
Los flags se añaden a la lista flags de una definición de región. Cada flag tiene una clave y un valor tipado. La mayoría de los flags son booleanos: un valor en falso deniega la acción. Las claves de flags siguientes son las que se usan en el panel web y en los comandos.
Construcción e interacción
| Flag | Qué hace un valor en falso |
|---|---|
build | Cancela romper y colocar bloques. Se comprueba antes que block-break y block-place. |
block-break, block-place | Cancela romper o colocar bloques. |
use | Cancela los clics derechos en puertas, botones, palancas, portones, trampillas, carteles, cofres, barriles, shulker boxes, hornos, yunques, mesas de crafteo y otras estaciones, componentes de redstone y bloques similares. |
interact | Cancela toda interacción del jugador, incluidos los clics en el aire. Úsalo con cuidado. |
chest-access | Cancela la apertura de contenedores (cofres, barriles, shulker boxes, tolvas, dispensadores, soltadores, hornos, soportes de pociones). |
sleep | Cancela el uso de camas. |
lighter | Cancela el pedernal y el acero y las cargas de fuego. |
vehicle-place, vehicle-destroy | Cancela colocar vagonetas y barcos, o que un jugador destruya un vehículo. |
entity-painting-destroy | Cancela que un jugador rompa cuadros y marcos de objetos. |
crop-trampling | Cancela que se pisotee la tierra de cultivo. |
pistons | Cancela que los pistones muevan bloques hacia dentro o fuera de la región. |
item-pickup, item-drop | Cancela recoger o soltar objetos. |
Combate y mobs
| Flag | Qué hace un valor en falso |
|---|---|
pvp | Cancela el daño entre jugadores. |
mob-damage | Cancela el daño a un jugador causado por una entidad que no es un jugador. |
damage-animals | Cancela que un jugador golpee animales. |
tnt-damage, firework-damage | Cancela el daño de TNT y vagonetas explosivas, o de fuegos artificiales. |
mob-spawning | Cancela la aparición de criaturas, sea cual sea el motivo. También se aplica a MythicMobs cuando MythicMobs está instalado. |
btcmob-spawning, btcmob-damage | Lo mismo para las criaturas de BTC Mobs, cuando BTC Mobs está instalado. |
exp-drops | Los mobs muertos en la región no sueltan experiencia. |
potion-splash | Cancela las pociones arrojadizas que caen en la región. |
Explosiones y entorno
| Flag | Qué hace un valor en falso |
|---|---|
creeper-explosion, tnt | Cancela las explosiones de creepers, o de TNT, vagonetas con TNT y ancla de reaparición. |
ghast-fireball | Cancela las explosiones de bolas de fuego, cráneos de wither, bolas de fuego del dragón y cargas de viento. |
fire-spread | Cancela la propagación del fuego, los bloques que se queman y la ignición que no sea de lava o rayo. |
lava-fire, lightning | Cancela la ignición por lava, y los rayos y su ignición. |
lava-flow, water-flow | Cancela que la lava o el agua fluyan hacia la región. |
ice-melt, snow-melt | Cancela que el hielo o la nieve se derritan. |
ice-form, snow-fall | Cancela que se forme hielo o nieve. |
frostwalker | Cancela el hielo de Frost Walker. |
leaf-decay, grass-growth, vine-growth | Cancela que las hojas se desintegren, que se extiendan la hierba, el micelio, los caminos y los hongos, y que crezcan las enredaderas. |
enderman-grief, ravager-grief | Cancela que los endermen y los devastadores cambien bloques. |
chunk-unload | Un valor en verdadero mantiene los chunks de la región cargados a la fuerza. |
Movimiento
| Flag | Valor | Efecto |
|---|---|---|
entry, exit | booleano | Un valor en falso impide entrar en la región o salir de ella. Los jugadores bloqueados reciben el mensaje deniedEntry. |
entry-deny-action, exit-deny-action | acciones | Acciones de TypeWriter que se ejecutan para el jugador cuando entra o sale, y cuando se deniega una entrada o salida. Usa las entradas de evento de entrada y salida para la lógica normal. |
ender-pearl | booleano | Un valor en falso cancela los teletransportes con perlas de ender hacia la región. |
fall-damage | booleano | Un valor en falso cancela el daño por caída. |
fly | booleano | Un valor en falso desactiva el vuelo para los jugadores de la región. |
walk-speed, fly-speed | número | Establece la velocidad de caminar o volar de los jugadores dentro, entre 0 y 1. Escala de Bukkit: 0.2 es la velocidad normal de caminar y 0.1 la velocidad normal de vuelo. Fuera se restaura el valor por defecto. |
glide | texto | deny impide planear con elytra y alternar el vuelo. allow y default no hacen nada. |
join-location | posición | Los jugadores que inician sesión o reaparecen dentro de la región se mueven a esta posición. |
Estado del jugador, chat y comandos
| Flag | Valor | Efecto |
|---|---|---|
hunger | booleano | Un valor en falso detiene la pérdida de hambre. |
heal-amount, heal-min-health, heal-max-health | número | Cura a los jugadores de la región heal-amount puntos de salud cada segundo, entre la salud mínima y máxima. La curación se pausa 5 segundos tras cualquier daño. |
item-durability | booleano | Un valor en verdadero impide que herramientas, armas y armaduras pierdan durabilidad. |
send-chat, receive-chat | booleano | Un valor en falso bloquea los mensajes enviados desde la región o recibidos dentro de ella. |
chat-prefix, chat-suffix | texto | Añade texto antes o después de los mensajes de chat enviados desde la región. |
blocked-cmds, allowed-cmds | lista | Nombres de comandos (sin la barra) que se bloquean o que siempre se permiten. * bloquea todos los comandos. allowed-cmds prevalece. |
worldedit | booleano | Un valor en verdadero bloquea los comandos de WorldEdit para los jugadores de la región. |
No aplicados por esta extensión
Los siguientes flags se pueden añadir a una región, pero nada en Protection actúa sobre ellos: passthrough, teleport, godmode, nether-portals, entry-min-level, entry-max-level, permit-completely, mobtrap-use, blocked-effects, heal-delay, biome (el bioma no se cambia) y los flags de 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 y resin.
keep-inventory, keep-exp e invincible tampoco tienen efecto para los jugadores normales: solo actúan para propietarios, miembros y jugadores con el permiso bypass.
Comandos
Todos los comandos son subcomandos de /typewriter (alias /tw), por ejemplo /typewriter protection list. Solo pueden usarlos los jugadores y requieren typewriter.protection. Los comandos marcados como admin requieren typewriter.protection.admin.
| Comando | Descripción |
|---|---|
/typewriter protection list | Lista las regiones cargadas, de mayor a menor prioridad. |
/typewriter protection edit <definition> | Empieza a dibujar la región en el juego con la barra de herramientas de la barra rápida. Para un artefacto global, aplica los valores del artefacto de inmediato. |
/typewriter protection apply | Guarda la selección actual. |
/typewriter protection cancel | Cancela la selección actual. |
/typewriter protection remove <1-16> | Elimina un punto de la selección actual. |
/typewriter protection import-we <definition> | Importa tu selección de WorldEdit como los puntos de la región. |
/typewriter protection info <region> | Muestra la forma, prioridad, propietarios, miembros y flags de una región. |
/typewriter protection flags <region> | Muestra qué flags son efectivos, heredados, sobrescritos o bloqueados por herencia. |
/typewriter protection inspect | Activa o desactiva una vista en vivo de las regiones y flags donde estás, en la action bar y en boss bars. |
/typewriter protection teleport <region> | Te teletransporta al centro de una región (o al spawn del mundo para una región global). |
/typewriter protection wand | Da un palo llamado Protection Wand. En esta versión, nada reacciona a él. |
/typewriter protection setflag <region> <flag> <value> (admin) | Cambia un flag en memoria. |
/typewriter protection clearflag <region> <flag> (admin) | Borra un flag en memoria. |
/typewriter protection addowner|removeowner|addmember|removemember <region> <player> (admin) | Cambia propietarios o miembros en memoria. |
/typewriter protection delete <region> (admin) | Elimina una región de la memoria. |
/typewriter protection reload (admin) | Recarga las regiones a partir de las entradas publicadas. |
/typewriter protection migrate-from-worldguard (admin) | Importación experimental de los límites cuboides de las regiones de WorldGuard. Consulta la página sobre la identidad de artefactos y la migración. |
setflag, clearflag, addowner, removeowner, addmember, removemember y delete no escriben en tus entradas. Cambian la copia cargada, y los cambios se pierden al recargar o reiniciar. La mayoría de los flags se aplican desde la entrada de definición de la región, así que un setflag no cambia cómo se comportan build, pvp ni la mayoría de los demás flags. Edita los flags en el panel web y publica.
Permisos
| Permiso | Concede |
|---|---|
typewriter.protection | Los comandos /typewriter protection que no son solo de admin. |
typewriter.protection.admin | Los comandos de admin: flags, propietarios, miembros, eliminar, recargar y migración desde WorldGuard. |
typewriter.protection.bypass | Ignorar todos los flags, en todas las regiones. |
Placeholders
Los placeholders de PlaceholderAPI usan la forma %typewriter_regions:<path>%. Leen las regiones en la posición del jugador, ordenadas por prioridad; primary es la primera.
| Placeholder | Devuelve |
|---|---|
%typewriter_regions:count% | Cuántas regiones contienen al jugador. |
%typewriter_regions:list%, %typewriter_regions:list_names% | Los ids, o los nombres, de esas regiones, separados por comas. |
%typewriter_regions:stack% | Prioridad y nombre de cada región, separados por |. |
%typewriter_regions:has:<id1>,<id2>% | true si el jugador está en una de las regiones indicadas. |
%typewriter_regions:primary% | El nombre de la región de mayor prioridad. Añade :id, :name, :priority, :overlap_count, :parent, :parent_name, :owner_count, :member_count, :is_global, :depth o :path para otros campos. |
%typewriter_regions:active:<n>% | Los mismos campos para la n-ésima región de la pila, empezando en 1, por ejemplo %typewriter_regions:active:2:id%. |
%typewriter_regions:flag:<flag>% | El valor de un flag en la región principal. Añade :state, :source o :source_name para saber de dónde procede. |
%typewriter_regions:by_id:<region>:<field>% | Un campo de una región concreta, por ejemplo %typewriter_regions:by_id:spawn:priority%. |
%typewriter_regions:exists:<region>% | true si la región existe. |
%typewriter_regions:nearest% | La región cuya esquina mínima está más cerca del jugador. Están disponibles los mismos campos. |
%typewriter_regions:can_build%, %typewriter_regions:can_interact% | false cuando la primera región, por prioridad, que establece build (o interact) lo tiene en falso; en caso contrario, true. |
Migrar a Region
Protection no recibirá nuevas funciones, así que planifica el paso a la extensión Region oficial de TypeWriter, documentada en docs.typewritermc.com. Esta página no describe Region: sigue su propia documentación.
Protection no contiene ninguna herramienta para convertir sus regiones a Region. El enfoque general es:
- Lista tus regiones con
/typewriter protection listy anota, de cada una, su forma, prioridad, padre, propietarios y miembros, y flags (/typewriter protection info <region>). - Recrea cada región en la nueva extensión y asigna cada flag al ajuste equivalente de allí. Algunos flags de Protection no se aplican (ver arriba), así que puede que no los necesites.
- Prueba en una copia de tu servidor, con jugadores que no sean propietarios, miembros ni poseedores de bypass.
- Elimina las entradas de Protection y el JAR cuando las nuevas regiones se comporten como se espera. Haz antes una copia de seguridad de tus páginas y assets de TypeWriter.
Entradas
9 entradas, generadas a partir del código fuente de la extensión.
Eventos2
- On Enter Protection RegionWhen a player enters a protection region
- On Exit Protection RegionWhen a player exits a protection region
Hechos1
- In Protection Region FactIf the player is in a protection region
Audiencias1
- Protection Region AudienceFilter players based on if they are in a protection region
Grupos1
- Protection Region GroupAll players grouped by protection regions
Artefactos2
- Global Protection Region ArtifactPersistent data for a world-wide protection region
- Protection Region ArtifactPersistent data for a TypeWriter-managed protection region
Manifiestos2
- Protection SettingsConfiguration for protection tooling
- Region DefinitionProtection region definition
Solución de problemas
Un flag no hace nada. Revisa el flag en Flags: algunas claves no se aplican. Comprueba también que la región está guardada y publicada, que el jugador no es propietario, miembro ni poseedor de typewriter.protection.bypass, y que el valor es un booleano en falso para los flags de denegación.
La región existe pero los jugadores no están dentro. La forma proviene del artefacto. Una definición sin artefacto, o un artefacto en el que nunca aplicaste una selección, no cubre nada. Ejecuta /typewriter protection edit <definition> y aplica una selección, y luego comprueba con /typewriter protection info <region>. Todos los puntos deben estar en el mismo mundo, y un cuboide necesita 2 puntos y un polígono 3.
La barra de herramientas de selección no aparece. edit necesita una definición de región publicada y enlazada a un artefacto. Si el mensaje dice que la definición no está enlazada a ningún artefacto, enlaza uno. Para un artefacto global no hay barra de herramientas: establece worlds, minY y maxY en el artefacto.
/typewriter protection import-we dice que no hay selección o no hay adaptador. WorldEdit o FastAsyncWorldEdit debe estar instalado y debes haber hecho una selección en el mundo en el que estás.
Un cambio de setflag desaparece. El comando solo cambia la memoria. Pon el flag en la definición de la región y publica.
Una migración desde WorldGuard no creó regiones. La migración no crea definiciones de región, flags, propietarios ni miembros: solo gestiona los límites cuboides de cada región y lee las regiones de WorldGuard a través del primer mundo cargado. Crea las definiciones en el panel web.
Los jugadores no son teletransportados ni bloqueados por entry. La comprobación se hace cuando un jugador se mueve a otro bloque o se teletransporta. No se detecta la entrada mediante un plugin que mueve al jugador sin un evento de movimiento o teletransporte.
Extensiones relacionadas
- MythicMobs —
mob-spawningtambién se aplica a los mobs de Mythic.