Saltar para o conteúdo principal

Guia de Ficheiros de Configuração

O carregador partilhado do MagmaCore rejeita YAML ilegível ou inválido antes de aplicar os valores predefinidos, incluindo configurações herdadas. A gravação partilhada escreve e sincroniza um ficheiro temporário antes de substituir o destino, usando uma substituição atómica quando suportada. As falhas são comunicadas ao código que pediu a gravação; resolva o erro do ficheiro antes de tentar novamente.

Esta página ajuda-o a compreender como editar corretamente um ficheiro .yml (.yaml). Os plugins Nightbreak usam ficheiros de configuração .yml. YAML inválido ou valores não suportados podem impedir o carregamento de um ficheiro; algumas configurações voltam aos valores predefinidos. Guarde uma cópia de segurança e leia a consola depois de recarregar.

Abaixo, encontrará todos os tipos de entrada de configuração e como devem ser formatados se estiver a modificar algum valor.

Como editar ficheiros .yml​

Os ficheiros são armazenados no formato .yml e o Notepad++ é o software de edição de ficheiros recomendado para o trabalho de configuração. Claro que pode usar qualquer outro editor de texto à sua escolha.

Ficheiros de configuração descontinuados​

Quando uma atualização do plugin descontinua um formato de configuração, o MagmaCore move os ficheiros correspondentes para plugins/MagmaCore/outdated files/<PluginName>/<archive batch>/, preservando o conteúdo e os caminhos relativos. A consola indica o local do arquivo. Este processo também ocorre antes e depois das importações de conteúdo, impedindo que um pacote antigo restaure silenciosamente um ficheiro descontinuado como configuração ativa.

O plugin regenera os seus ficheiros predefinidos quando existem substitutos. Os ficheiros DLC descontinuados precisam de um pacote de conteúdo atualizado. Os ficheiros personalizados têm de ser reescritos no formato atual; compare o ficheiro arquivado com a referência correspondente e transponha as definições pretendidas. Restaurar um ficheiro arquivado sem o modificar pode fazer com que volte a ser arquivado.

O arquivamento usa regras específicas fornecidas pelo plugin responsável. Uma configuração desconhecida ou um ficheiro malformado não prova, por si só, que o formato foi descontinuado. Continue a verificar também os erros comuns de carregamento na consola.

Algumas regras retiram uma predefinição antiga incluída no plugin, e não um formato. Uma regra pode indicar um valor exato que só uma predefinição mais antiga contém, como uma posição de menu ou uma lista de missões antigas, e o ficheiro inteiro é arquivado quando esse valor ainda está presente. Uma regra para um script Lua incluído compara a soma de verificação SHA-256 do ficheiro, ignorando os retornos de carro, com versões anteriores desse script incluído. Só uma cópia não editada corresponde, pelo que um script que tenha alterado permanece no lugar, e o plugin escreve então a sua predefinição atual.

Por exemplo, o BetterStructures substitui a configuração antiga Valid worlds por Valid worlds v2. O EliteMobs arquiva determinados itens predefinidos obsoletos, a antiga missão de boas-vindas da guilda e cópias não editadas de versões anteriores dos poderes Lua e scripts de encantamentos incluídos. O FreeMinecraftModels também arquiva scripts Lua de itens equipados reconhecidos como descontinuados; os scripts atuais de props e os efeitos de encantamentos usam os seus próprios contratos suportados.

Nomes de ficheiros duplicados​

Os plugins que carregam conteúdo através do MagmaCore identificam cada ficheiro de conteúdo pelo seu nome, incluindo os ficheiros em subpastas. Quando dois ficheiros na mesma pasta de conteúdo têm o mesmo nome, só é carregado aquele cujo caminho completo surge primeiro na ordenação, sem distinguir maiúsculas de minúsculas. A consola apresenta um aviso com os caminhos carregado e ignorado. Não apresenta aviso quando as cópias são idênticas, ou quando são ficheiros YAML e todos os valores da cópia ignorada coincidem com os da carregada, o que acontece quando dois pacotes de conteúdo incluem o mesmo ficheiro partilhado. Dê nomes únicos aos ficheiros que devam ser carregados separadamente. Algumas pastas são mais restritas: nomes de schematics duplicados na pasta modules do BetterStructures interrompem o carregamento de módulos.

Boolean​

Os valores Boolean são true ou false. É assim que se apresentam:

value1: true
value2: false

Os Booleans só aceitam valores true ou false. Normalmente são usados para ativar ou desativar funcionalidades específicas.

String​

Os valores String são normalmente apenas texto normal. Recomenda-se vivamente que coloque os valores String entre aspas, seguindo este formato:

value: "String"

Coloque entre aspas as strings que contenham códigos de cor, especialmente quando o primeiro caráter for &. Num campo de texto compatível, "&aTest" produz texto verde. O suporte a texto colorido depende da configuração. Consulte os códigos de cor nesta página.

Details

Porquê? As strings de configuração podem aceitar caracteres especiais como &. Quando esse caráter aparece no início, como em value: "&aString", mas a String não está entre aspas, o YAML pode interpretar & como uma âncora em vez de texto comum. Coloque a string inteira entre aspas para evitar um erro de análise ou um valor inesperado.

Serialized Location​

Serialized Location é um tipo específico de String que se parece com isto:

location: world,1.0,2.0,3.0,4.0,5.0

Estes são usados para armazenar e configurar localizações. Seguem este formato: worldName,X,Y,Z,YAW,PITCH. O yaw e o pitch determinam a direção para a qual o jogador está a olhar, usando os mesmos valores que as localizações do Minecraft.

Multiplier​

Os valores Multiplier multiplicam os valores do plugin por esse número. Estes valores nunca devem estar entre aspas. Aqui está um exemplo:

damageMultiplier: 1.0

Neste caso, o multiplicador de dano seria multiplicado por 1, o que significa que não há alteração em relação ao valor predefinido. Se o Multiplier fosse 2.0, o valor seria multiplicado por 2.0. Se fosse 0.5, seria multiplicado por 0.5.

Multiplicar por 0.5 é o mesmo que dividir por 2. O intervalo permitido depende da configuração específica; consulte a respetiva referência antes de usar zero, um valor negativo ou um multiplicador alto.

Integer​

Os valores Integer são apenas números inteiros. Exemplo:

value: 10

Apenas os campos cuja documentação de scripts suporte explicitamente intervalos numéricos aceitam ~. Trata-se de uma string interpretada por essa funcionalidade, não de um número YAML ou uma opção geral de configuração. Exemplo:

value: 1~10

O principal a saber sobre os valores Integer é que têm de ser números inteiros. Isto significa que 10.1 não é válido.

Double​

Os Doubles são números decimais que podem ter uma parte fracionária. Exemplo:

value: 10.01

Apenas os campos cuja documentação de scripts suporte explicitamente intervalos numéricos aceitam ~. Trata-se de uma string interpretada por essa funcionalidade, não de um número YAML ou uma opção geral de configuração. Exemplo:

value: 1.0~10.01

Os Doubles também podem ser números inteiros como integers, como 10.0 ou até representados como 10.

Float​

Os Floats são números decimais de 32 bits com menos precisão do que Doubles. Exemplo:

value: 10.42452

Apenas os campos cuja documentação de scripts suporte explicitamente intervalos numéricos aceitam ~. Trata-se de uma string interpretada por essa funcionalidade, não de um número YAML ou uma opção geral de configuração. Exemplo:

value: 1.0~10.42452

Os Floats também podem ser números inteiros, como 10.0 ou até representados como 10.

String List​

Os String Lists são listas de valores String. Estes tendem a ser os valores mais difíceis de configurar, pois exigem um formato de configuração muito específico:

valuesList:
- "value,1"
- "value,2"
- "value,3"

Tal como com os Strings, recomenda-se manter os valores entre aspas. Cada String List tem o seu próprio formato, pelo que terá de encontrar o formato específico exigido pelo que está a editar; no entanto, globalmente, é este o aspeto que o formato geral deve ter.

Map List​

Uma lista de mapas contém várias entradas de mapeamento. Este exemplo YAML aninha cada valor sob um mapa nomeado; as chaves reais dependem da configuração:

parentMap:
- Map1:
key: value
- Map2:
key: value
keyForList:
- "value1"
- "value2"

Como pode ver, as Map Lists podem conter qualquer tipo de formato dentro delas, mas se as estiver a usar em scripting, terá de consultar a documentação para ver quais são as chaves e os valores válidos para os diferentes mapas.

Color Codes​

Também pode atribuir cores ou colocar o texto em negrito usando os seguintes modificadores:

CódigoCorExemplo
&4Vermelho escuro
&4Exemplo vermelho escuro.
&cVermelho
&cExemplo vermelho.
&6Laranja
&6Exemplo laranja.
&eAmarelo
&eExemplo amarelo.
&2Verde escuro
&2Exemplo verde escuro.
&aVerde
&aExemplo verde.
&bAqua
&bExemplo aqua.
&3Aqua escuro
&3Exemplo aqua escuro.
&1Azul escuro
&1Exemplo azul escuro.
&9Azul
&9Exemplo azul.
&dRoxo claro
&dExemplo roxo claro.
&5Roxo escuro
&5Exemplo roxo escuro.
&fBranco
&fExemplo branco.
&7Cinza
&7Exemplo cinza.
&8Cinza escuro
&8Exemplo cinza escuro.
&0Preto
&0Exemplo preto.
&rRedefinir cor&rExemplo de redefinição.
&lNegrito&lExemplo negrito.
&oItálico&oExemplo itálico.
&nSublinhado&nExemplo sublinhado.
&mTachado&mExemplo tachado.
&kAleatório&k
&fexemplo.

Como pode ver nos exemplos, os modificadores seguem a sintaxe regular do Minecraft, exceto que o § é substituído por um & quando usado com o EliteMobs. Pode usá-lo para modificar a maior parte do texto do EliteMobs, como nomes de mobs, texto de missões, nomes de masmorras, etc.

Note que, quando funcionam corretamente, os modificadores em si não aparecem no seu texto. São mostrados aqui apenas para fins de demonstração.

Também é possível combinar cores e outros modificadores de texto. Por exemplo, pode fazer:

&a&oPara obter texto verde em itálico.

Se quiséssemos que o nosso mob personalizado tivesse um nome colorido elegante, faríamos o seguinte:

name: "$normalBossLevel &aScary &dDragon"

A partir do EliteMobs 10, também pode usar gradientes de cor para qualquer texto do EliteMobs, como mostrado neste exemplo:

name: "&cNormal Red Text <gradient:#FF6B00:#FFD700:#FFFF00> Cool Gradient Text </gradient>"

Neste exemplo:

  • &c aplica a cor vermelha normal ao texto antes do gradiente.
  • <gradient:...> inicia a definição do gradiente.
  • #FF6B00, #FFD700 e #FFFF00 são as cores usadas no gradiente.
  • Cool Gradient Text é o texto afetado pelo gradiente.
  • </gradient> encerra a secção do gradiente.

Apenas o texto dentro das tags de gradiente é afetado; a formatação fora das tags permanece inalterada.

Os gradientes já não são exclusivos do EliteMobs. O parser de texto está no MagmaCore, pelo que a mesma sintaxe funciona nos campos de texto compatíveis de todos os plugins que o incluem, juntamente com as restantes tags do MiniMessage (<rainbow>, <#RRGGBB>, cores nomeadas como <red>, decorações como <bold> e assim por diante).

Material​

Os valores Material são apenas Materials que pode encontrar no Minecraft, como IRON_CHESTPLATE. Para uma lista de Materials válidos, consulte esta página.

helmet: IRON_HELMET

Os Materials são usados como valores em várias configurações, como equipamento para mobs, drops de itens, recompensas de missões, etc.

Filename​

Os valores Filename são apenas ficheiros de configuração .yml que são formatados para serem usados com os plugins do MagmaGuy. Estes podem ser qualquer coisa, desde itens até missões.

uniqueLootList:
- filename: magmaguys_toothpick.yml

Aparar Mundos​

Pode reduzir o tamanho de um mundo para distribuição cortando o terreno desnecessário com uma ferramenta compatível, como o WorldBorder. Verifique o suporte para a versão exata do servidor e trabalhe numa cópia de segurança; uma lista antiga de compatibilidade não comprova suporte para um formato de mundo mais recente.

Details

Dica Se está a fazer isto pela primeira vez, pode ser uma boa ideia criar um backup do seu mundo caso algo corra mal.

Depois de o plugin estar instalado, navegue até ao meio do mundo ou até à área específica que deseja aparar. Em seguida, execute o comando /wb set x, onde x representa o tamanho aproximado do raio que deseja para a sua área.

Details

Dica Se /wb não funcionar, experimente /worldborder:wb.

Depois de executar este comando, voe até aos limites do seu mundo para verificar se o limite do mundo foi definido corretamente e cobre o tamanho pretendido. Saberá que chegou ao limite do mundo quando for empurrado para trás, acompanhado de uma mensagem no chat.

trim_pic_1.jpg

Na imagem acima, o nosso objetivo é aparar o mundo à volta dos blocos roxos, deixando apenas alguns chunks à volta deles. Para o conseguir, ficámos no meio da área roxa nos quadrados vermelhos e executámos /wb set 50, definindo o limite do mundo logo além da área roxa.

Em seguida, use /wb trim [freq] [pad]. A margem é medida em blocos, e a frequência controla quantos chunks são verificados por segundo. /wb trim 200 20 verifica até 200 chunks por segundo, preservando 20 blocos além do limite. Verifique essa margem e aumente-a se necessário antes de confirmar com /wb trim confirm. Estas unidades são definidas no comando trim do WorldBorder.

Remova o limite do plugin deste mundo com /wb clear enquanto estiver nele, ou mantenha-o.

Aparar a pasta do mundo​

Pare o servidor e trabalhe numa cópia de segurança. Não elimine tudo exceto region, raids.dat e level.dat: os dados do terreno, entidades, pontos de interesse e dimensões podem ser necessários. Preserve a estrutura realmente utilizada pelo servidor e pelo plugin.

Em mundos Vanilla antigos, o Nether usa DIM-1 e o End usa DIM1. No Vanilla 26.1, as dimensões predefinidas passaram para dimensions/minecraft/overworld, dimensions/minecraft/the_nether e dimensions/minecraft/the_end, incluindo as pastas region, entities e poi. A estrutura necessária depende do software e da versão do servidor. Importe a cópia noutro servidor e verifique o mundo antes de o distribuir.

Minecraft 26.1 · Paper