Criar wormholes
O que são wormholes?
As Wormholes são um tipo de sistema de teletransporte portal-a-portal altamente eficiente. Os portais são assinalados com efeitos visuais.
Mecânicas das wormholes
As Wormholes podem fazer o seguinte:
- Atravessar um portal para chegar ao portal de destino, e ir do portal de destino de volta para o primeiro.
- Tocar um som quando os jogadores as atravessam
- Cegar temporariamente os jogadores ao atravessá-las para suavizar a transição
- Bloquear o teletransporte até terem passado mais de 5 segundos e o jogador se ter afastado mais de
1.5 × sizeMultiplier + 2blocos do portal de destino, para evitar ciclos - Desativar automaticamente o modo de voo quando os jogadores se teletransportam
- Reproduzir efeitos visuais elaborados
- Exigir permissões para usar a wormhole
- Exigir o uso de moeda para usar a wormhole
- Notificar os jogadores e administradores quando o portal de destino não está disponível
Os jogadores só são verificados a cada 5 ticks, um quarto de segundo, e dentro de um raio de 30 blocos da wormhole.
Mudar de mundo conta como sair do raio do portal de destino, pelo que, depois de uma mudança de mundo, só resta o requisito dos 5 segundos. Voltar a ligar ao servidor elimina o tempo de espera.
Criar uma wormhole
Adiciona os ficheiros de configuração a plugins/EliteMobs/wormholes. São permitidas subpastas, por exemplo plugins/EliteMobs/wormholes/dungeonName/dungeonName_identifier.yml.
Colocar uma wormhole no jogo
Em vez de escreveres as coordenadas à mão, podes ficar onde queres que o portal esteja e executar:
/em place wormhole <filename> <1/2>
1 define location1, 2 define location2. O comando exige a permissão elitemobs.place.admin, tem de ser executado por um jogador e escreve as novas coordenadas diretamente no ficheiro de configuração da wormhole. O portal fica ancorado um bloco (vezes sizeMultiplier) acima de onde estavas, por isso os jogadores que chegam por ele caem no bloco em que estavas.
Direção de chegada
O Yaw e o Pitch (os dois últimos números nas coordenadas) em location1 e location2 definem a direção para a qual o jogador fica virado ao chegar a esse lado da wormhole. Vejamos este exemplo:
location1: my_world,20,10,20,180,20
Com Yaw a 180, o jogador chega virado para norte. O Pitch segue a convenção do Minecraft: valores positivos fazem olhar para baixo e negativos para cima. Um Pitch de 20 faz o jogador chegar a olhar ligeiramente para baixo.
A wormhole não empurra o jogador. O destino são as coordenadas do outro portal, incluindo yaw e pitch.
Configuração da wormhole
Segue-se um exemplo de uma configuração de Wormhole válida:
isEnabled: true
location1: em_primis,1288.5,19,452.5,135,-23
location2: em_primis,1288.5,-39,451.5,180,-1
isEnabled
Define se a wormhole está ativada.
| Key | Values | Default |
|---|---|---|
isEnabled | Boolean | true |
Exemplo
isEnabled: true
location1
Especifica a primeira localização da wormhole. Ambos os campos aceitam world,x,y,z,yaw,pitch ou o nome de ficheiro de um pacote de masmorra, como adventurers_guild_hub.yml. A referência ao pacote usa a localização de teletransporte configurada. Instala o pacote e carrega o seu mundo antes de usares o portal. O teletransporte verifica a localização resolvida e o mundo carregado, sem exigir separadamente o indicador de instalação do pacote. Não cria uma nova instância da masmorra.
| Key | Values | Default |
|---|---|---|
location1 | String | nenhum |
Exemplo
location1: world_one,50,100,50,0,0
location2
Especifica a segunda localização da wormhole.
| Key | Values | Default |
|---|---|---|
location2 | String | nenhum |
Exemplo
location2: world_two,100,33,100,0,0
location1Text
Define o texto apresentado da primeira localização.
| Key | Values | Default |
|---|---|---|
location1Text | String | nenhum |
Exemplo
location1Text: Awesome Wormhole In World One

location2Text
Define o texto apresentado da segunda localização.
| Key | Values | Default |
|---|---|---|
location2Text | String | nenhum |
Exemplo
location2Text: Awesome Wormhole In World Two

permission
Define a permissão necessária para usar a wormhole nos dois sentidos. Os jogadores com /em quest bypass ativo ignoram esta verificação, mas continuam sujeitos ao custo e ao tempo de espera.
| Key | Values | Default |
|---|---|---|
permission | String | nenhum |
Exemplo
permission: elitemobs.mypermission
coinCost
Define o custo de usar a wormhole. Usa elite coins ou a moeda do servidor quando a integração económica com Vault está ativa.
O custo só é cobrado depois de passarem as verificações de permissão, tempo de espera e destino, e o mesmo custo aplica-se nos dois sentidos. Um jogador que não consegue pagar recebe insufficientCurrencyForWormholeMessage de Wormholes.yml e não é teletransportado. Se o teletransporte for cancelado ou não chegar ao destino, o valor é devolvido.
Se a economia não conseguir confirmar uma cobrança ou uma devolução, o EliteMobs diz ao jogador para contactar um administrador, regista o montante para reconciliação manual e impede esse jogador de usar qualquer wormhole até o servidor reiniciar. Um coinCost negativo ou não finito regista um aviso, e a wormhole não teletransporta ninguém.
| Key | Values | Default |
|---|---|---|
coinCost | Double | 0 |
Exemplo
coinCost: 0
style
Define a forma visual da wormhole.
A forma é uma estrutura de linhas giratória feita de entidades de exibição de blocos, com partículas adicionais a cada 5 ticks. style: NONE omite essa forma.
Estes efeitos podem causar lag em alguns clientes. Define noParticlesMode: true em Wormholes.yml para desativar a estrutura e as suas partículas. O texto, os modelos personalizados e o marcador independente de Bedrock mantêm-se.
| Key | Values | Default |
|---|---|---|
style | NONE / CRYSTAL / ICOSAHEDRON / CUBE | CUBE |
Exemplo
style: CRYSTAL

particleColor
Define a cor das partículas usadas em style. A estrutura de linhas não usa a cor exata. O EliteMobs escolhe o bloco de betão com a cor mais próxima.
A predefinição 0 é preto, por isso convém escolher a cor em cada wormhole que criares.
| Key | Values | Default |
|---|---|---|
particleColor | 0x seguido de um código hexadecimal | 0 |
Exemplo
particleColor: 0x9f5cdd

blindPlayer
Define se o portal aplica cegueira durante 40 ticks, cerca de 2 segundos, ao teletransportar.
| Key | Values | Default |
|---|---|---|
blindPlayer | Boolean | false |
Exemplo
blindPlayer: true

sizeMultiplier
Multiplica a forma definida por style e altera o raio de ativação para 1.5 × sizeMultiplier blocos. A distância inclui a altura, e a pesquisa separada de jogadores a 30 blocos continua a limitar a ativação. Usa um número positivo e finito. Também afeta a altura de colocação e do texto, mas não redimensiona um modelo de FreeMinecraftModels.
| Key | Values | Default |
|---|---|---|
sizeMultiplier | Multiplier | 1 |
Exemplo
sizeMultiplier: 3
Tem em conta que terás de ajustar as coordenadas Y da wormhole depois de aplicar o multiplicador de tamanho.

customModel1
Define um modelo personalizado a usar para a exibição da wormhole na primeira localização. Usa uma string identificadora de modelo. Isto substitui a forma definida em style para a localização 1.
Os modelos de wormholes só funcionam com FreeMinecraftModels. O modelo tem de existir, caso contrário o portal usa a estrutura definida por style. O modelo é decorativo e não reage a cliques. O teletransporte continua a depender da proximidade.
| Key | Values | Default |
|---|---|---|
customModel1 | String | nenhum |
Exemplo
customModel1: my_custom_wormhole_model
customModel2
Define um modelo personalizado para a segunda localização, através do seu identificador. Substitui a forma de style nessa localização. Aplica-se o mesmo requisito de FreeMinecraftModels indicado em customModel1.
| Key | Values | Default |
|---|---|---|
customModel2 | String | nenhum |
Exemplo
customModel2: my_custom_wormhole_model
Exemplo de Configuração de Wormhole
Neste exemplo vamos criar uma wormhole simples que nos leva de um mundo para outro. Não te esqueças de que as wormholes também podem simplesmente teletransportar os jogadores para uma localização diferente no mesmo mundo.
isEnabled: true #We enable the worm by setting this value to true
location1: my_world,1.5,11.0,1.5,108.0,5.0 #this is where the wormhole will appear in my_world
location2: my_other_world,766.5,29.0,517.5,-136.0,5.0 #this is where the wormhole will appear in my_other_world
location1Text: "&aGo to My World" #makes a nice display text above wormhole location1
location2Text: "&aGo to My Other World" #makes a nice display text above wormhole location2
permission: eliteperm.coolplayers #only players with this permission will be able to use the wormhole, both for location1 and location2
coinCost: 0 #free to use; a positive value charges elite coins, or Vault currency when Vault is enabled
style: CRYSTAL #this wormhole will be in the shape of a crystal
particleColor: 0x00ff00 #this will set the wormhole particles to green
blindPlayer: true #the wormhole teleport will blind the player for a short duration to make the transition less jarring
sizeMultiplier: 1.0 #sets how big the shape of the wormhole should be
Problemas de desempenho
Os efeitos podem causar problemas de desempenho em clientes Bedrock. Podes configurá-los em plugins/EliteMobs/Wormholes.yml:
reducedParticlesMode: true(predefinição) - Reduz o número de pontos traçados ao longo da formanoParticlesMode: false(predefinição) - Definir isto comotruedesativa completamente a forma e as partículas da wormhole
Com qualquer uma destas opções ativa, os jogadores Bedrock também podem ver um marcador simples quando a ligação do servidor a entidades personalizadas Bedrock está disponível. Usa particleColor e uma escala mínima de 0.5. Um modelo personalizado carregado com sucesso substitui o marcador. Os jogadores Java nunca o veem.
A estrutura de linhas só é atualizada enquanto um jogador num raio de 30 blocos tem linha de visão para o portal. Desaparece após cerca de 5 segundos sem linha de visão, ou quando já não há jogadores próximos. Isto não desativa o teletransporte por proximidade nem a exibição separada do modelo personalizado.
