Protection
Visão geral
O Protection está obsoleto. Ele não recebe novos recursos, e a v1.3 é a versão final de compatibilidade. Novos projetos devem usar a extensão oficial Region do TypeWriter, documentada em docs.typewritermc.com. Esta página permanece para servidores que já executam o Protection.
O Protection permite definir regiões no painel web do TypeWriter e dar a elas regras, chamadas flags. Uma região é um cuboide ou um prisma poligonal armazenado em um artifact, com uma prioridade, donos, membros, uma região pai opcional e uma lista de flags como build, pvp ou mob-spawning. Quando os jogadores agem dentro de uma região, a extensão cancela ou altera a ação de acordo com as flags.
As regiões também são objetos do TypeWriter. Você pode iniciar uma sequence quando um jogador entra ou sai de uma região, filtrar uma audience por região, agrupar jogadores por região, ler um fact que indica se um jogador está dentro e exibir regiões em um mapa do BlueMap.
Recursos
- Regiões cuboides e poligonais — desenhe uma região no jogo com uma barra de ferramentas ou importe uma seleção do WorldEdit.
- Regiões de mundo inteiro — um artifact global cobre mundos inteiros entre duas alturas.
- Sobreposição e prioridade — as regiões podem se sobrepor; elas são avaliadas da maior prioridade para a menor.
- Regiões pai — uma região filha herda as flags, os donos e os membros de seu pai.
- Muitas flags — 99 chaves de flags cobrindo construção, combate, explosões, ambiente, movimento e chat.
- Donos e membros — esses jogadores nunca são restringidos dentro de sua região.
- Eventos de região — eventos de entrada e saída, um filtro de audience, um grupo e um fact.
- Ferramentas de inspeção —
/typewriter protection inspect,infoeflagsmostram quais flags se aplicam onde você está. - Marcadores do BlueMap — exiba uma região no BlueMap com suas próprias cores.
- PlaceholderAPI — leia as regiões ao redor de um jogador e os valores de suas flags.
Instalação
- Instale o PacketEvents, que o TypeWriter já exige.
- Opcional: instale o WorldEdit ou o FastAsyncWorldEdit para importar seleções com
/typewriter protection import-we. - Opcional: instale o MythicMobs para que a flag
mob-spawningtambém se aplique aos mobs do Mythic, e o BlueMap para mostrar as regiões no mapa. - Opcional: PlaceholderAPI para os placeholders.
- Coloque o JAR do Protection em
plugins/Typewriter/extensions/e reinicie o servidor.
Primeiros passos
Proteja uma área de spawn contra construção e PvP:
- No painel web do TypeWriter, abra uma página de manifest e adicione um Protection Region Artifact. Deixe
artifactIdcomo gerado: ele armazena o formato da região. - Adicione uma Protection Region Definition e vincule o artifact em
artifact. Defina umapriority(por exemplo10). - Em
flags, adicione uma flag com a chavebuilde um valor booleano falso. Adicionepvpda mesma forma. Uma flag booleana falsa nega a ação. - Publique a página.
- No jogo, execute
/typewriter protection edit <definition>. Uma barra de ferramentas aparece na sua hotbar: a vara de blaze adiciona um ponto no bloco para o qual você olha, a redstone remove o último ponto, a bússola alterna entre o modo cuboide e o poligonal, o corante verde-limão aplica a seleção e a barreira cancela. Para um cuboide, adicione dois cantos opostos e aplique. - Entre na área e tente quebrar um bloco. Você pode verificar o que se aplica com
/typewriter protection inspect.
Faça uma seleção com o WorldEdit e depois execute /typewriter protection import-we <definition>. Sua seleção é convertida em pontos que você pode então aplicar.
Donos e membros de uma região, e jogadores com typewriter.protection.bypass, ignoram todas as flags dessa região. Teste com um jogador que não esteja na lista e que não seja um operador com a permissão de bypass.
Como funciona
Uma região só existe enquanto sua entry de definição existir e estiver publicada. Seu formato é armazenado no artifact, e a definição guarda todo o resto.
Sobreposição. Várias regiões podem conter o mesmo ponto. Elas são verificadas da maior priority para a menor. Para flags booleanas, uma única flag falsa basta para negar a ação: uma região com build verdadeiro não cancela a negação de uma região de prioridade menor. As flags que alteram algo (mensagens, actions, teleportes) são aplicadas pela primeira região que as define.
Herança. Uma região com um parentRegion também avalia as flags de seus pais. Os donos e membros dos pais são adicionados ao filho. O filho usa sua própria priority, ou a do pai quando a sua é 0.
Bordas de região. A entrada e a saída são detectadas quando um jogador se move para outro bloco ou se teletransporta. Um jogador que entra no servidor dentro de uma região dispara o evento de entrada no primeiro bloco de movimento.
Configuração
Mensagens e inspeção. Adicione uma entry Protection Settings para alterar como as ações negadas são exibidas: chat, action bar ou boss bar, templates MiniMessage ({reason}, {reason_line}, {region}, {flag}), a taxa de atualização do modo de inspeção (inspectRefreshTicks, no mínimo 5 ticks) e o texto das mensagens dos comandos em messages. Sem essa entry, os padrões são usados. Apenas a primeira entry encontrada é lida.
BlueMap. Em uma definição de região, ative bluemapSettings.enabled para desenhar a região no BlueMap. Você escolhe o conjunto de marcadores, as cores da linha e do preenchimento, o rótulo ({name}, {id}, {priority}) e se o marcador é extrudado ou plano. As regiões são sincronizadas quando o BlueMap inicia e sempre que uma região muda.
Donos e membros. owners e members guardam UUIDs de jogadores. Os comandos addowner e addmember aceitam um nome de jogador e armazenam o UUID quando o jogador é conhecido pelo servidor.
Flags
As flags são adicionadas à lista flags de uma definição de região. Cada flag tem uma chave e um valor tipado. A maioria das flags são booleanas: um valor falso nega a ação. As chaves de flags abaixo são as usadas no painel web e nos comandos.
Construção e interação
| Flag | O que um valor falso faz |
|---|---|
build | Cancela quebrar e colocar blocos. Verificada antes de block-break e block-place. |
block-break, block-place | Cancela quebrar ou colocar blocos. |
use | Cancela cliques direitos em portas, botões, alavancas, portões, alçapões, placas, baús, barris, shulker boxes, fornalhas, bigornas, mesas de criação e outras bancadas, componentes de redstone e blocos semelhantes. |
interact | Cancela toda interação do jogador, incluindo cliques no ar. Use com cuidado. |
chest-access | Cancela a abertura de contêineres (baús, barris, shulker boxes, funis, dispensers, droppers, fornalhas, suportes de poções). |
sleep | Cancela o uso de camas. |
lighter | Cancela o isqueiro e as bolas de fogo. |
vehicle-place, vehicle-destroy | Cancela colocar carrinhos de mina e barcos, ou um jogador destruir um veículo. |
entity-painting-destroy | Cancela um jogador quebrar quadros e molduras de itens. |
crop-trampling | Cancela o pisoteio de terras agrícolas. |
pistons | Cancela pistões movendo blocos para dentro ou para fora da região. |
item-pickup, item-drop | Cancela pegar ou soltar itens. |
Combate e mobs
| Flag | O que um valor falso faz |
|---|---|
pvp | Cancela o dano entre jogadores. |
mob-damage | Cancela o dano a um jogador causado por uma entidade que não é um jogador. |
damage-animals | Cancela um jogador atacar animais. |
tnt-damage, firework-damage | Cancela o dano de TNT e carrinhos explosivos, ou de fogos de artifício. |
mob-spawning | Cancela o surgimento de criaturas, seja qual for o motivo. Também se aplica ao MythicMobs quando ele está instalado. |
btcmob-spawning, btcmob-damage | O mesmo para criaturas do BTC Mobs, quando o BTC Mobs está instalado. |
exp-drops | Os mobs mortos na região não soltam experiência. |
potion-splash | Cancela poções arremessáveis que caem na região. |
Explosões e ambiente
| Flag | O que um valor falso faz |
|---|---|
creeper-explosion, tnt | Cancela explosões de creepers, ou de TNT, carrinhos com TNT e âncoras de respawn. |
ghast-fireball | Cancela explosões de bolas de fogo, crânios de wither, bolas de fogo do dragão e wind charges. |
fire-spread | Cancela a propagação do fogo, blocos queimando e ignição que não seja de lava ou raio. |
lava-fire, lightning | Cancela a ignição por lava, e a queda de raios e a ignição por eles. |
lava-flow, water-flow | Cancela lava ou água fluindo para dentro da região. |
ice-melt, snow-melt | Cancela o derretimento de gelo ou neve. |
ice-form, snow-fall | Cancela a formação de gelo ou neve. |
frostwalker | Cancela o gelo do encantamento Passo Gelado. |
leaf-decay, grass-growth, vine-growth | Cancela o apodrecimento de folhas, a propagação de grama, micélio, caminhos e cogumelos, e o crescimento de trepadeiras. |
enderman-grief, ravager-grief | Cancela endermen e ravagers alterando blocos. |
chunk-unload | Um valor verdadeiro mantém os chunks da região carregados à força. |
Movimento
| Flag | Valor | Efeito |
|---|---|---|
entry, exit | booleano | Um valor falso bloqueia a entrada ou a saída da região. Os jogadores bloqueados recebem a mensagem deniedEntry. |
entry-deny-action, exit-deny-action | actions | Actions do TypeWriter executadas para o jogador quando ele entra ou sai, e quando uma entrada ou saída é negada. Use as entries de evento de entrada e saída para a lógica comum. |
ender-pearl | booleano | Um valor falso cancela teleportes de pérolas do fim para a região. |
fall-damage | booleano | Um valor falso cancela o dano de queda. |
fly | booleano | Um valor falso desativa o voo dos jogadores na região. |
walk-speed, fly-speed | número | Define a velocidade de caminhada ou de voo dos jogadores dentro, entre 0 e 1. Escala do Bukkit: 0.2 é a velocidade normal de caminhada e 0.1 a velocidade normal de voo. O padrão é restaurado fora da região. |
glide | texto | deny impede o planeio com elytra e a alternância do voo. allow e default não fazem nada. |
join-location | posição | Os jogadores que entram no servidor ou renascem dentro da região são movidos para esta posição. |
Estado do jogador, chat e comandos
| Flag | Valor | Efeito |
|---|---|---|
hunger | booleano | Um valor falso impede a perda de fome. |
heal-amount, heal-min-health, heal-max-health | número | Cura os jogadores na região em heal-amount pontos de vida por segundo, entre a vida mínima e a máxima. A cura é pausada por 5 segundos após qualquer dano. |
item-durability | booleano | Um valor verdadeiro impede que ferramentas, armas e armaduras percam durabilidade. |
send-chat, receive-chat | booleano | Um valor falso bloqueia as mensagens enviadas de dentro da região, ou recebidas dentro dela. |
chat-prefix, chat-suffix | texto | Adiciona texto antes ou depois das mensagens de chat enviadas da região. |
blocked-cmds, allowed-cmds | lista | Nomes de comandos (sem a barra) que são bloqueados ou sempre permitidos. * bloqueia todos os comandos. allowed-cmds prevalece. |
worldedit | booleano | Um valor verdadeiro bloqueia os comandos do WorldEdit para jogadores na região. |
Não aplicadas por esta extensão
As flags a seguir podem ser adicionadas a uma região, mas nada no Protection age sobre elas: passthrough, teleport, godmode, nether-portals, entry-min-level, entry-max-level, permit-completely, mobtrap-use, blocked-effects, heal-delay, biome (o bioma não é alterado) e as 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 e resin.
keep-inventory, keep-exp e invincible também não têm efeito para jogadores comuns: elas só agem para donos, membros e jogadores com a permissão de bypass.
Comandos
Todos os comandos são subcomandos de /typewriter (alias /tw), por exemplo /typewriter protection list. Eles só podem ser usados por jogadores e exigem typewriter.protection. Os comandos marcados como admin exigem typewriter.protection.admin.
| Comando | Descrição |
|---|---|
/typewriter protection list | Lista as regiões carregadas, da maior prioridade para a menor. |
/typewriter protection edit <definition> | Começa a desenhar a região no jogo com a barra de ferramentas da hotbar. Para um artifact global, aplica os valores do artifact imediatamente. |
/typewriter protection apply | Salva a seleção atual. |
/typewriter protection cancel | Cancela a seleção atual. |
/typewriter protection remove <1-16> | Remove um ponto da seleção atual. |
/typewriter protection import-we <definition> | Importa sua seleção do WorldEdit como os pontos da região. |
/typewriter protection info <region> | Mostra o formato, a prioridade, os donos, os membros e as flags de uma região. |
/typewriter protection flags <region> | Mostra quais flags são efetivas, herdadas, sobrescritas ou bloqueadas pela herança. |
/typewriter protection inspect | Alterna uma visão ao vivo das regiões e flags onde você está, na action bar e em boss bars. |
/typewriter protection teleport <region> | Teletransporta para o centro de uma região (ou para o spawn do mundo, no caso de uma região global). |
/typewriter protection wand | Entrega um graveto chamado Protection Wand. Nesta versão, nada reage a ele. |
/typewriter protection setflag <region> <flag> <value> (admin) | Altera uma flag na memória. |
/typewriter protection clearflag <region> <flag> (admin) | Limpa uma flag na memória. |
/typewriter protection addowner|removeowner|addmember|removemember <region> <player> (admin) | Altera donos ou membros na memória. |
/typewriter protection delete <region> (admin) | Remove uma região da memória. |
/typewriter protection reload (admin) | Recarrega as regiões a partir das entries publicadas. |
/typewriter protection migrate-from-worldguard (admin) | Importação experimental dos limites cuboides das regiões do WorldGuard. Veja a página sobre identidade de artifact e migração. |
setflag, clearflag, addowner, removeowner, addmember, removemember e delete não gravam em suas entries. Eles alteram a cópia carregada, e as mudanças são perdidas ao recarregar ou reiniciar. A maioria das flags é aplicada a partir da entry de definição da região, então um setflag não altera o comportamento de build, pvp ou da maioria das outras flags. Edite as flags no painel web e publique.
Permissões
| Permissão | Concede |
|---|---|
typewriter.protection | Os comandos /typewriter protection que não são exclusivos de admin. |
typewriter.protection.admin | Os comandos de admin: flags, donos, membros, exclusão, recarga e migração do WorldGuard. |
typewriter.protection.bypass | Ignora todas as flags, em todas as regiões. |
Placeholders
Os placeholders do PlaceholderAPI usam o formato %typewriter_regions:<path>%. Eles leem as regiões na posição do jogador, ordenadas por prioridade; primary é a primeira.
| Placeholder | Retorna |
|---|---|
%typewriter_regions:count% | Quantas regiões contêm o jogador. |
%typewriter_regions:list%, %typewriter_regions:list_names% | Os ids, ou os nomes, dessas regiões, separados por vírgulas. |
%typewriter_regions:stack% | Prioridade e nome de cada região, separados por |. |
%typewriter_regions:has:<id1>,<id2>% | true se o jogador está em uma das regiões listadas. |
%typewriter_regions:primary% | O nome da região de maior prioridade. Adicione :id, :name, :priority, :overlap_count, :parent, :parent_name, :owner_count, :member_count, :is_global, :depth ou :path para outros campos. |
%typewriter_regions:active:<n>% | Os mesmos campos da n-ésima região da pilha, começando em 1, por exemplo %typewriter_regions:active:2:id%. |
%typewriter_regions:flag:<flag>% | O valor de uma flag na região principal. Adicione :state, :source ou :source_name para saber de onde ela vem. |
%typewriter_regions:by_id:<region>:<field>% | Um campo de uma região específica, por exemplo %typewriter_regions:by_id:spawn:priority%. |
%typewriter_regions:exists:<region>% | true se a região existe. |
%typewriter_regions:nearest% | A região cujo canto mínimo está mais próximo do jogador. Os mesmos campos estão disponíveis. |
%typewriter_regions:can_build%, %typewriter_regions:can_interact% | false quando a primeira região, por prioridade, que define build (ou interact) o tem como falso; caso contrário, true. |
Migrando para o Region
O Protection não receberá novos recursos, então planeje migrar para a extensão oficial Region do TypeWriter, documentada em docs.typewritermc.com. Esta página não descreve o Region: siga a documentação própria dele.
O Protection não traz nenhuma ferramenta para converter suas regiões para o Region. A abordagem geral é:
- Liste suas regiões com
/typewriter protection liste anote, para cada uma, seu formato, prioridade, pai, donos e membros, e flags (/typewriter protection info <region>). - Recrie cada região na nova extensão e mapeie cada flag para a configuração equivalente de lá. Algumas flags do Protection não são aplicadas (veja acima), então talvez você não precise delas.
- Teste em uma cópia do seu servidor, com jogadores que não sejam donos, membros nem detentores de bypass.
- Remova as entries e o JAR do Protection quando as novas regiões se comportarem como esperado. Faça antes um backup das suas páginas e assets do TypeWriter.
Entries
9 entradas, geradas a partir do código-fonte da extensão.
Eventos2
- On Enter Protection RegionWhen a player enters a protection region
- On Exit Protection RegionWhen a player exits a protection region
Fatos1
- In Protection Region FactIf the player is in a protection region
Audiências1
- Protection Region AudienceFilter players based on if they are in a protection region
Grupos1
- Protection Region GroupAll players grouped by protection regions
Artefatos2
- Global Protection Region ArtifactPersistent data for a world-wide protection region
- Protection Region ArtifactPersistent data for a TypeWriter-managed protection region
Manifestos2
- Protection SettingsConfiguration for protection tooling
- Region DefinitionProtection region definition
Solução de problemas
Uma flag não faz nada. Verifique a flag em Flags: algumas chaves não são aplicadas. Verifique também se a região está salva e publicada, se o jogador não é dono, membro nem detentor de typewriter.protection.bypass, e se o valor é um booleano falso nas flags de negação.
A região existe, mas os jogadores não estão dentro dela. O formato vem do artifact. Uma definição sem artifact, ou um artifact em que você nunca aplicou uma seleção, não cobre nada. Execute /typewriter protection edit <definition> e aplique uma seleção; depois verifique com /typewriter protection info <region>. Todos os pontos devem estar no mesmo mundo, e um cuboide precisa de 2 pontos e um polígono de 3.
A barra de ferramentas de seleção não aparece. O edit precisa de uma definição de região publicada vinculada a um artifact. Se a mensagem disser que a definição não está vinculada a nenhum artifact, vincule um. Para um artifact global não há barra de ferramentas: defina worlds, minY e maxY no artifact.
/typewriter protection import-we diz que não há seleção ou adaptador. O WorldEdit ou o FastAsyncWorldEdit deve estar instalado e você deve ter feito uma seleção no mundo em que está.
Uma alteração de setflag desaparece. O comando altera apenas a memória. Coloque a flag na definição da região e publique.
Uma migração do WorldGuard não criou regiões. A migração não cria definições de região, flags, donos nem membros: ela trata apenas dos limites cuboides de cada região e lê as regiões do WorldGuard por meio do primeiro mundo carregado. Crie as definições no painel web.
Os jogadores não são teletransportados nem bloqueados por entry. A verificação acontece quando um jogador se move para outro bloco ou se teletransporta. A entrada por um plugin que move o jogador sem um evento de movimento ou de teleporte não é percebida.
Extensões relacionadas
- MythicMobs —
mob-spawningtambém se aplica aos mobs do Mythic.