Pular para o conteúdo principal

Protection

Mecanismo de regiões obsoleto com flags e eventos de região. Use a extensão Region oficial em novos projetos.

GratuitasObsoletav1.3Mundo e construção
Esta extensão está obsoleta e não recebe mais novos recursos. Use Region (official TypeWriter extension) no lugar.

Visão geral​

Obsoleto

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, info e flags mostram 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​

  1. Instale o PacketEvents, que o TypeWriter já exige.
  2. Opcional: instale o WorldEdit ou o FastAsyncWorldEdit para importar seleções com /typewriter protection import-we.
  3. Opcional: instale o MythicMobs para que a flag mob-spawning também se aplique aos mobs do Mythic, e o BlueMap para mostrar as regiões no mapa.
  4. Opcional: PlaceholderAPI para os placeholders.
  5. 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:

  1. No painel web do TypeWriter, abra uma página de manifest e adicione um Protection Region Artifact. Deixe artifactId como gerado: ele armazena o formato da região.
  2. Adicione uma Protection Region Definition e vincule o artifact em artifact. Defina uma priority (por exemplo 10).
  3. Em flags, adicione uma flag com a chave build e um valor booleano falso. Adicione pvp da mesma forma. Uma flag booleana falsa nega a ação.
  4. Publique a página.
  5. 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.
  6. Entre na área e tente quebrar um bloco. Você pode verificar o que se aplica com /typewriter protection inspect.
Importe uma seleção do WorldEdit

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

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​

FlagO que um valor falso faz
buildCancela quebrar e colocar blocos. Verificada antes de block-break e block-place.
block-break, block-placeCancela quebrar ou colocar blocos.
useCancela 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.
interactCancela toda interação do jogador, incluindo cliques no ar. Use com cuidado.
chest-accessCancela a abertura de contêineres (baús, barris, shulker boxes, funis, dispensers, droppers, fornalhas, suportes de poções).
sleepCancela o uso de camas.
lighterCancela o isqueiro e as bolas de fogo.
vehicle-place, vehicle-destroyCancela colocar carrinhos de mina e barcos, ou um jogador destruir um veículo.
entity-painting-destroyCancela um jogador quebrar quadros e molduras de itens.
crop-tramplingCancela o pisoteio de terras agrícolas.
pistonsCancela pistões movendo blocos para dentro ou para fora da região.
item-pickup, item-dropCancela pegar ou soltar itens.

Combate e mobs​

FlagO que um valor falso faz
pvpCancela o dano entre jogadores.
mob-damageCancela o dano a um jogador causado por uma entidade que não é um jogador.
damage-animalsCancela um jogador atacar animais.
tnt-damage, firework-damageCancela o dano de TNT e carrinhos explosivos, ou de fogos de artifício.
mob-spawningCancela o surgimento de criaturas, seja qual for o motivo. Também se aplica ao MythicMobs quando ele está instalado.
btcmob-spawning, btcmob-damageO mesmo para criaturas do BTC Mobs, quando o BTC Mobs está instalado.
exp-dropsOs mobs mortos na região não soltam experiência.
potion-splashCancela poções arremessáveis que caem na região.

Explosões e ambiente​

FlagO que um valor falso faz
creeper-explosion, tntCancela explosões de creepers, ou de TNT, carrinhos com TNT e âncoras de respawn.
ghast-fireballCancela explosões de bolas de fogo, crânios de wither, bolas de fogo do dragão e wind charges.
fire-spreadCancela a propagação do fogo, blocos queimando e ignição que não seja de lava ou raio.
lava-fire, lightningCancela a ignição por lava, e a queda de raios e a ignição por eles.
lava-flow, water-flowCancela lava ou água fluindo para dentro da região.
ice-melt, snow-meltCancela o derretimento de gelo ou neve.
ice-form, snow-fallCancela a formação de gelo ou neve.
frostwalkerCancela o gelo do encantamento Passo Gelado.
leaf-decay, grass-growth, vine-growthCancela o apodrecimento de folhas, a propagação de grama, micélio, caminhos e cogumelos, e o crescimento de trepadeiras.
enderman-grief, ravager-griefCancela endermen e ravagers alterando blocos.
chunk-unloadUm valor verdadeiro mantém os chunks da região carregados à força.

Movimento​

FlagValorEfeito
entry, exitbooleanoUm valor falso bloqueia a entrada ou a saída da região. Os jogadores bloqueados recebem a mensagem deniedEntry.
entry-deny-action, exit-deny-actionactionsActions 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-pearlbooleanoUm valor falso cancela teleportes de pérolas do fim para a região.
fall-damagebooleanoUm valor falso cancela o dano de queda.
flybooleanoUm valor falso desativa o voo dos jogadores na região.
walk-speed, fly-speednúmeroDefine 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.
glidetextodeny impede o planeio com elytra e a alternância do voo. allow e default não fazem nada.
join-locationposiçãoOs jogadores que entram no servidor ou renascem dentro da região são movidos para esta posição.

Estado do jogador, chat e comandos​

FlagValorEfeito
hungerbooleanoUm valor falso impede a perda de fome.
heal-amount, heal-min-health, heal-max-healthnúmeroCura 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-durabilitybooleanoUm valor verdadeiro impede que ferramentas, armas e armaduras percam durabilidade.
send-chat, receive-chatbooleanoUm valor falso bloqueia as mensagens enviadas de dentro da região, ou recebidas dentro dela.
chat-prefix, chat-suffixtextoAdiciona texto antes ou depois das mensagens de chat enviadas da região.
blocked-cmds, allowed-cmdslistaNomes de comandos (sem a barra) que são bloqueados ou sempre permitidos. * bloqueia todos os comandos. allowed-cmds prevalece.
worldeditbooleanoUm 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.

ComandoDescrição
/typewriter protection listLista 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 applySalva a seleção atual.
/typewriter protection cancelCancela 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 inspectAlterna 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 wandEntrega 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.
Comandos em memória

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ãoConcede
typewriter.protectionOs comandos /typewriter protection que não são exclusivos de admin.
typewriter.protection.adminOs comandos de admin: flags, donos, membros, exclusão, recarga e migração do WorldGuard.
typewriter.protection.bypassIgnora 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.

PlaceholderRetorna
%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 é:

  1. Liste suas regiões com /typewriter protection list e anote, para cada uma, seu formato, prioridade, pai, donos e membros, e flags (/typewriter protection info <region>).
  2. 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.
  3. Teste em uma cópia do seu servidor, com jogadores que não sejam donos, membros nem detentores de bypass.
  4. 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
Fatos1
Audiências1
Grupos1
Artefatos2
Manifestos2

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-spawning também se aplica aos mobs do Mythic.