Pular para o conteúdo principal

Enchantment Creator

Encantamentos personalizados com mais de 70 efeitos prontos, livros, saques e trocas. Nenhum plugin extra necessário.

Gratuitasv0.11RPG e progressão
RequerTypeWriter0.9Paper1.21+Basic extension

Visão geral​

O Enchantment Creator adiciona encantamentos reais ao seu servidor, definidos inteiramente pelo painel web do TypeWriter. Eles são registrados no próprio registro de encantamentos do Minecraft, sob o namespace typewriter, então aparecem em itens, em bigornas e na mesa de encantamentos como os vanilla, sem resource pack nem plugin extra.

Você descreve o encantamento em uma entry de definição (nome, cor, itens compatíveis, nível máximo, custos, slots ativos) e depois lhe dá comportamento. Há duas formas: uma definição padrão executa triggers do TypeWriter enquanto o item encantado está vestido ou na mão, e uma definição personalizada lista mecânicas, cada uma reagindo a um evento do jogo (ataque, quebra de bloco, disparo de arco, dano de queda...) e executando ações. A extensão traz mais de 70 entries de ação prontas (roubo de vida, mineração de veios, flechas teleguiadas, armadura congelada...) que você conecta às mecânicas.

Recursos​

  • Encantamentos reais — registrados no registro de encantamentos do servidor, com nome colorido, nível máximo, custo na bigorna, peso e custos na mesa de encantamentos.
  • Dois tipos de definição — baseada em triggers (enchantment_definition) ou baseada em mecânicas (custom_enchantment_definition).
  • 16 eventos do jogo — ataque, defesa, quebra de bloco, disparo de arco, acerto de projétil, dano de queda, dano ao item, equipar armadura, movimento, agachar, correr e mais.
  • Mais de 70 efeitos prontos — ações de armadura, arco, combate, ferramentas e especiais, cada uma com seus próprios campos.
  • Livros encantados — entregue livros por uma ação ou por um comando, com nome e lore personalizados.
  • Integração com o mundo — os livros aparecem em baús de loot gerados (treasureChance) e em trocas com bibliotecários (tradeChance).
  • Mesa de encantamentos e bigorna — os encantamentos personalizados podem ser oferecidos pela mesa de encantamentos, restritos aos itens compatíveis e tornados mutuamente exclusivos na bigorna.
  • Lista negra vanilla — remova da mesa de encantamentos os encantamentos vanilla escolhidos.
  • Chance e nível por mecânica — execute uma mecânica apenas em uma porcentagem das vezes, ou apenas em um nível do encantamento.
  • Partículas no cliente — uma ação de partículas exibida apenas para o jogador.

Instalação​

  1. Use um servidor Paper 1.21 ou posterior, com Java 21. A extensão cria os encantamentos pelo registro do servidor, portanto não funciona em versões mais antigas.
  2. Certifique-se de que a extensão Basic do TypeWriter está instalada (veja a documentação do TypeWriter).
  3. Coloque o JAR do Enchantment Creator em plugins/Typewriter/extensions/ e reinicie o servidor.

Nenhum outro plugin é necessário.

Primeiros passos​

Crie um encantamento de espada "Vampiric Strike" que cura quem a empunha a cada golpe:

  1. No painel web do TypeWriter, abra uma page manifest e adicione uma Custom Enchantment Definition.
  2. Defina name como Vampiric Strike, displayName como Vampiric Strike, nameColor como dark_red, maxLevel como 3 e adicione os materiais de espada em supportedItems.
  3. Adicione uma entry de ação Lifesteal em uma page sequence e defina healPercentage como 0.2.
  4. De volta à definição, adicione uma mecânica em mechanics. Defina event como PLAYER_ATTACK e selecione a entry Lifesteal em actions.
  5. Adicione uma ação Give Enchantment Book, selecione sua definição em customEnchantment e defina level. Publique.
  6. Dispare a ação para obter o livro, ou execute /enchantcreator give <player> Vampiric_Strike 2 depois de adicionar um Enchantment Command Manifest. Combine o livro com uma espada em uma bigorna e golpeie um mob.
dica

O efeito não escala sozinho com o nível do encantamento. Para deixar o nível 3 mais forte, adicione várias mecânicas com runOnLevel definido como 1, 2 e 3, cada uma executando uma ação com valores diferentes. runOnLevel 0 significa todos os níveis.

Como funciona​

A extensão verifica todos os jogadores online a cada 5 ticks (um quarto de segundo) para saber quais dos seus encantamentos eles estão usando. Apenas a mão principal, a mão secundária e a armadura contam, e apenas itens cujo material esteja em supportedItems. O nível mais alto encontrado é o nível usado. Pode, portanto, passar um curto atraso entre equipar um item e seus efeitos começarem.

Os dois tipos de definição funcionam de maneira diferente:

  • Uma definição padrão (enchantment_definition) executa activeTriggers para o nível atual. Com cooldownEnabled ativado, eles são executados novamente a cada cooldown enquanto o encantamento estiver ativo; com ele desativado, são executados uma vez quando o encantamento fica ativo. inactiveTriggers são executados quando ele deixa de estar ativo. Os criteria devem passar.
  • Uma definição personalizada (custom_enchantment_definition) executa suas mecânicas quando o evento do jogo correspondente acontece.

As entries de ação leem o evento do jogo que as disparou. Uma ação só faz algo quando é usada em uma mecânica com o evento para o qual foi escrita (por exemplo, Vein Miner só funciona em BLOCK_BREAK).

Eventos de encantamento​

O event de uma mecânica é um destes:

EventoDispara quando
PLAYER_ATTACKO jogador acerta diretamente uma entidade.
PLAYER_DEFENDO jogador sofre dano de uma entidade.
SHIELD_BLOCKO jogador é atingido enquanto bloqueia com um escudo.
BLOCK_BREAKO jogador quebra um bloco.
BOW_SHOOTO jogador atira com um arco ou besta.
PROJECTILE_HITUm projétil atirado pelo jogador acerta algo.
ITEM_CONSUMEO jogador come ou bebe.
PLAYER_DEATHO jogador morre.
PLAYER_INTERACTO jogador clica com o botão direito ou esquerdo.
ARMOR_EQUIPO jogador equipa ou desequipa uma armadura.
ITEM_DAMAGEUm item perde durabilidade.
FALL_DAMAGEO jogador sofre dano de queda.
ENVIRONMENTAL_DAMAGEO jogador sofre dano não causado por uma entidade (também dispara em dano de queda).
PLAYER_MOVEO jogador se move para outro bloco (verificado a cada quarto tick).
SNEAKO jogador começa a agachar.
SPRINTO jogador começa a correr.
observação

PLAYER_ATTACK dispara quando o jogador é o causador direto do dano, ou seja, em golpes corpo a corpo. O dano causado por uma flecha é causado pela flecha, então não dispara PLAYER_ATTACK na versão atual. As ações de flecha que leem um evento de dano (marcadas abaixo) só agem, portanto, em acertos diretos.

Ações prontas​

Todas as entries de ação são usadas dentro de uma mecânica (actions) ou a partir de qualquer sequence. Cada uma tem os campos padrão criteria, modifiers e triggers, além de seus próprios campos: veja as páginas das entries. A coluna de evento indica qual event da mecânica a ação exige.

GrupoAçõesEvento
CombateArmor Pierce, Beheading, Bleed, Blindness Strike, Cleave, Disarm, Executioner, Freeze Strike, Lifesteal, Lightning Strike, Poison Strike, Silence, Vampiric Aura, Wither StrikePLAYER_ATTACK
Armadura, ao ser atingidoDeflect, Enlightened Armor, Evasion, Frozen Armor, Molten Armor, Regeneration Aura, Resistance Aura, Thorns Advanced, Toxic Aura, Voodoo Armor, GearingPLAYER_DEFEND
Armadura, danoAngel WingsFALL_DAMAGE
Armadura, danoImplosion Armor, Curse of Vulnerabilityqualquer evento de dano (PLAYER_DEFEND, FALL_DAMAGE, ENVIRONMENTAL_DAMAGE)
Armadura, equiparAnti Knockback, Health BoostARMOR_EQUIP
Armadura, durabilidadeHardened ArmorITEM_DAMAGE
Arco, disparoHoming Arrow, Volley ArrowBOW_SHOOT
Arco, impactoExplosive Arrow, Teleport ArrowPROJECTILE_HIT
Arco, danoEnder Arrow, Healing Arrow, Lightning Arrow, Piercing Shot, Pull Arrow, Push Arrow, Sniper Arrow, Venom Arrow, Web Arrow, Wither ArrowPLAYER_ATTACK (somente acertos diretos, veja a nota)
FerramentasArea Miner, Auto Smelt, Experience Boost, Haste, Indestructible, Magnet, Oxygenate, Spawners Silk Touch, Telepathy, Timber, Treasure Hunter, Vein MinerBLOCK_BREAK
FerramentasBedrock Breaker, Green Thumb, Night VisionPLAYER_INTERACT
FerramentasAgricultural HarvestBLOCK_BREAK; colhe as plantações maduras ao redor do bloco quebrado (até radius 8)
EspeciaisAquatic Speed, Feeder, Lava WalkerPLAYER_MOVE
EspeciaisElytra Boost, LaunchPLAYER_INTERACT
EspeciaisCurse of SluggishnessPLAYER_ATTACK
EspeciaisElytra ShieldENVIRONMENTAL_DAMAGE
EspeciaisSoulboundPLAYER_DEATH
UtilitáriosClient Particle Effect, Give Enchantment Bookqualquer

Comandos​

O comando é uma entry Enchantment Command Manifest que você cria. O nome, a permissão e as mensagens dele são campos da entry; os padrões são mostrados.

ComandoDescrição
/enchantcreator give <player> <enchant> [level]Entrega um livro encantado a um jogador online. <enchant> é o name ou displayName da entry, com sublinhados no lugar dos espaços. O nível padrão é 1.

Permissões​

PermissãoConcede
enchantcreator.admin/enchantcreator give (o campo adminPermission da entry).

Entries​

75 entradas, geradas a partir do código-fonte da extensão.

Ações71
Comandos1
Manifestos3

Solução de problemas​

O efeito não faz nada. A ação deve corresponder ao event da mecânica (veja a tabela acima): uma ação que lê um evento de quebra de bloco não faz nada em PLAYER_ATTACK. O item deve estar em supportedItems, na mão ou vestido como armadura, e os criteria, chance e runOnLevel da mecânica devem passar. Uma mecânica com runOnLevel 2 só é executada quando o nível mais alto é exatamente 2.

O encantamento não existe no jogo. As definições são registradas quando a extensão inicia, quando um jogador entra e quando um livro é entregue. Verifique no console se há Failed to reflectively register ou Failed to register enchantments during pre-login e confirme que o servidor é Paper 1.21 ou posterior.

O livro não pode ser aplicado ao meu item. Na bigorna, um livro só pode ser aplicado a itens listados em supportedItems. Dois encantamentos listados no exclusiveWith um do outro não podem ser combinados: o resultado da bigorna é removido. Essa exclusividade só é aplicada na bigorna.

Os jogadores nunca veem meu encantamento na mesa de encantamentos. Na mesa, weight é usado como porcentagem: 1 significa cerca de 1% de chance por sorteio. Aumente-o, ou defina treasureChance e tradeChance para distribuir livros por meio de loot e bibliotecários. Um weight de 0 desativa a oferta na mesa.

/enchantcreator give diz que o encantamento é desconhecido. O nome é comparado com o name ou displayName da entry, em minúsculas e com os espaços trocados por sublinhados. Use o nome exato da entry e publique a page primeiro.

Um encantamento vanilla ainda aparece. A lista negra só remove ofertas da mesa de encantamentos; bigornas, loot e trocas não são afetados. O console informa Unable to resolve vanilla enchantments for blacklist se um nome for inválido.