Identificadores com espaço de nomes[1] (também conhecidos como sequência de caracteres com espaço de nomes,[1] localizações de recursos,[2] ou identificadores de recursos[3]) é uma maneira de declarar e identificar objetos de jogo internos e definidos pelo usuário no Minecraft sem potencial ambiguidade ou conflitos.
Usos[]
Os identificadores com espaço de nomes são usados como sequências de caracteres (ou strings) para referenciar blocos, items, tipos de entidades, receitas, funções, progressos, tags, e vários outros objetos no Minecraft vanilla. Curiosamente, os estados dos blocos não aparecem no espaço de nomes.
Um identificador com espaço de nomes tem o formato de namespace:name
, onde apenas certos caracteres podem ser utilizados.
Esta é uma lista de todos os lugares que possuem IDs com espaço de nomes:
- Registros incorporados
-
- Biomas
- Blocos
- Dimensões[Edição Java apenas]
- Efeitos de estado
- Encantamentos
- Entidades
- Entidades de bloco[Edição Java apenas]
- Estatísticas[Edição Java apenas]
- Eventos sonoros
- Fluidos[Edição Java apenas]
- Itens
- Memórias de criaturas[Edição Java apenas]
- Motivos de pintura[Edição Java apenas]
- Partículas
- Profissões de aldeões[Edição Java apenas]
- Serializadores de receita[Edição Java apenas]
- Tipos de aldeões[Edição Java apenas]
- Tipos de poções[Edição Java apenas]
- Tipos de receita[Edição Java apenas]
- Conteúdo do pacote de dados[Edição Java apenas]
-
- Arquivos de estrutura
- Funções
- Progressos
- Receitas
- Tabelas de itens
- Tags de tipo/Função de Bloco/Fluido/Item/Entidade
- Conteúdos adicionais[Edição Bedrock apenas]
-
- Funções
- Tabelas de itens
- Conteúdo do pacote de recursos[Edição Java apenas]
-
- Arquivos de estado de bloco
- Modelos
- Texturas
- Sons
- Outros conteúdos customizáveis[Edição Java apenas]
-
- Armazenamento de comandos
- Barras de chefes (criaturas)
- Outros conteúdos não personalizáveis (sem mods)
-
- Condições de itens
- Funções de itens
- Tipos de argumento de comando
- Tipos de itens
Caracteres válidos[]
Edição Java[]
O espaço de nomes e o nome de um ID devem conter apenas os seguintes símbolos:
0123456789
Númerosabcdefghijklmnopqrstuvwxyz
Letras minúsculas_
Sublinhado-
Hífen / menos
Os seguintes caracteres são inválidos para o namespace, mas aceitáveis no nome:
/
Barra para a frente- Separador de diretório
.
Ponto- Separador de sufixo de arquivo
A convenção de nomenclatura preferida para o namespace ou nome é letra_minuscula_com_sublinhado
.
Edição Bedrock[]
O espaço de nomes e o nome de um ID podem conter todos os símbolos, com exceção de barras e dois pontos..
Os seguintes caracteres são inválidos no espaço de nomes, mas aceitáveis no nome de tabelas de itens e funções.
/
Barra para trás- Separador de diretório
A convenção de nomenclatura preferida para o espaço de nomes ou nome é letras_minusculas_com_sublinhado
.
Conversão para sequência de caracteres[]
Um ID de espaço de nomes pode ser convertido em uma sequência de caracteres (ou string) anexando seu espaço de nomes com :
(dois pontos) e seu nome.
Exemplos:
Espaço de nomes | Nome | Reprodução em string |
---|---|---|
minecraft |
diamond |
minecraft:diamond
|
foo |
bar.baz |
foo:bar.baz
|
minecraftwiki |
commands/minecraft_wiki |
minecraftwiki:commands/minecraft_wiki
|
Conversão a partir de uma sequências de caracteres[]
Diferentemente dos IDs com espaços de nomes que podem sempre ser convertidos para sequências de caracteres (strings), algumas sequências (strings) não podem ser convertidos em IDs com espaços de nomes.
Algumas restrições:
- A sequência pode ter no máximo um caractere
:
(dois pontos) - O restante da sequência deve atender ao requisito de caracteres válidos
- Se
:
estiver presente, a parta da sequência antes de:
(o espaço de nomes) não deve conter/
ou.
Quando :
está presente, a parte da sequência anterior a :
se torna o espaço de nomes e o posterior a :
torna-se o nome.
Quando :
está ausente, o minecraft
torna-se o espaço de nomes e a sequência de caracteres inteira torna-se o nome.[Edição Java apenas]
É recomendável sempre incluir um :
no formato de sequência dos identificadores de espaço de nomes.
- Exemplos
Sequência | Espaço de nomes resolvido | Nome resolvido | Que o jogo converte novamente em |
---|---|---|---|
bar:code |
bar |
code |
bar:code
|
minecraft:zombie |
minecraft |
zombie |
minecraft:zombie
|
diamond |
minecraft [Edição Java apenas]Nenhum[Edição Bedrock apenas] |
diamond |
minecraft:diamond [Edição Java apenas]diamond [Edição Bedrock apenas]
|
foo/bar:coal |
Caractere inválido / |
||
minecraft/villager |
minecraft [Edição Java apenas]Nenhum[Edição Bedrock apenas] |
minecraft/villager |
minecraft:minecraft/villager [Edição Java apenas]minecraft/villager [Edição Bedrock apenas]
|
mypack_recipe |
minecraft [Edição Java apenas]Nenhum[Edição Bedrock apenas] |
mypack_recipe |
minecraft:mypack_recipe [Edição Java apenas]mypack_recipe [Edição Bedrock apenas]
|
mymap:schrödingers_var |
mymap |
Caractere inválido ö [Edição Java apenas]schrödingers_var [Edição Bedrock apenas] |
mymap:schrödingers_var [Edição Bedrock apenas]
|
custom_pack:Capital |
custom_pack |
Caractere inválido C [Edição Java apenas]Capital [Edição Bedrock apenas] |
custom_pack:Capital [Edição Bedrock apenas]
|
Localizando conteúdo em pacotes[Edição Java apenas][]
Como os objetos dos pacote de recursos e pacote de dados são arquivos, o ID de espaço de nomes também pode ser usado para encontrar arquivos correspondentes que declararam objetos do ID.
Embora os locais variem por tipo de objeto e o tipo de pacote ao qual o tipo de objeto pertence, existe um padrão a seguir. Em geral, a localização está na forma pack_type/namespace/object_type/name.suffix
, onde todos os símbolos /
(barra para frente) (pode fazer parte de object_type
ou name
) é substituído pelo separador de diretório dependente do sistema operacional.
Variáveis de mapeamentos de tipo de objeto de pack_type
, object_type
, e suffix
Tipo de Objeto | Pacote do Objeto | pack_type substituição |
object_type substituição |
suffix substituição
|
---|---|---|---|---|
Estado de Blocos | Pacote de Recursos | assets |
blockstates |
json
|
Modelos | Pacote de Recursos | assets |
models |
json
|
Partículas | Pacote de Recursos | assets |
particles |
json
|
Texturas | Pacote de Recursos | assets |
textures |
png
|
Progressos | Pacote de dados | data |
advancements |
json
|
Funções | Pacote de dados | data |
functions |
mcfunction
|
Tabelas de itens | Pacote de dados | data |
loot_tables |
json
|
Receitas | Pacote de dados | data |
recipes |
json
|
Estruturas | Pacote de dados | data |
structures |
nbt
|
Tags de blocos | Pacote de dados | data |
tags/blocks |
json
|
Tags de tipos de entidade | Pacote de dados | data |
tags/entity_types |
json
|
Tags de itens | Pacote de dados | data |
tags/items |
json
|
Tags de fluidos | Pacote de dados | data |
tags/fluids |
json
|
Tags de funções | Pacote de dados | data |
tags/functions |
json
|
Nota: Certos elementos no pacote de recursos não é necessariamente suportado por um objeto com ID de espaço de nomes, como as texturas da interface do usuário (GUI).
Dado o tipo de conteúdo que desejamos localizar, podemos encontrar os correspondentes pack_type
, object_type
, e suffix
. Em seguida, podemos substituir e descobrir o local final do arquivo do conteúdo.
Exemplos
ID do Espaço de Nomes | Tipo de Conteúdo | pack_type |
object_type |
suffix |
Localização Final |
---|---|---|---|---|---|
my_texture_pack:diamonds |
Textura | assets |
textures |
png |
assets/my_texture_pack/textures/diamonds.png
|
abc:run_game |
Função | data |
functions |
mcfunction |
data/abc/functions/run_game.mcfunction
|
block/torch (o mesmo que minecraft:block/torch ) |
Model | assets |
models |
json |
assets/minecraft/models/block/torch.json
|
load (o mesmo que minecraft:load ) |
Tag de Função | data |
tags/functions |
json |
data/minecraft/tags/functions/load.json
|
rocket_pack:industry/start_of_story |
Progresso | data |
advancements |
json |
data/rocket_pack/advancements/industry/start_of_story.json
|
Espaço de Nomes[]
“ |
|
„ | |
— Dinnerbone em Twitter sobre espaços de nomes[4] |
Um espaço de nomes é um domínio para conteúdos. é para evitar possíveis conflitos de conteúdo ou substituições não intencionais de objetos com um mesmo nome.
Por exemplo, dois pacotes de dados adicionam dois mecanismos de minijogo ao Minecraft; ambos têm uma função chamada start
. Sem espaços de nomes, estas duas funções iriam conflitar e os minijogos seriam quebrados. Quando eles têm espaços de nomes diferentes de minijogo_um
e minijogo_dois
, as funções se tornam minijogo_um:start
E minijogo_dois:start
, que não conflitam mais.
Espaço de Nomes personalizado[]
O espaço de nomes deve ser distinto para diferentes projetos ou criações de conteúdo (por exemplo, um pacote de dados, um pacote de recursos, um mod, pacotes de dados / recursos de suporte para um mapa personalizado, etc.)
Para evitar possíveis conflitos, o espaço de nomes deve ser o mais particular possível.
- Evite sopas de alfabeto. Por exemplo, um projeto chamado "nave nuclear" não deve usar o espaço de nomes
nc
, pois é muito ambíguo. - Evite palavras muito vagas.
battle_royale
também não seria muito informativo, masplayer_name_battle_royale
seria muito melhor.
Em ambos os casos, esses espaços de nomes mal escolhidos reduzem a exposição de um projeto e traz dificuldade para depuração quando há várias criações de conteúdo aplicadas ao jogo.
Espaço de nomes minecraft
[]
O Minecraft reserva o espaço de nomes minecraft
; quando um espaço de nomes não for especificado, um identificador de espaço de nomes irá retornar a minecraft
[Edição Java apenas]. Como resultado, o espaço de nomes deve ser usado apenas pelos criadores de conteúdo quando este último necessitar sobrescrever ou modificar os dados existentes do Minecraft, como adiciona uma função à tag de função minecraft:load
.
Outros espaços de nomes internos[]
O pacote de recursos padrão do Minecraft declara arquivos de idioma direcionado aos Realms no espaço de nomes realms
(localizado em assets/realms/lang/<language-code>.json
) e arquivos de linguagem relacionados ao jogo no espaço de nomes minecraft
, mesmo que as chaves de tradução não sejam IDs com espaços de nomes. O jar realms por si só também declara seu arquivo de linguagem en_us.json
e suas várias texturas no espaço de nomes realms
.
Nas IDs dos tipos de argumento de comando, um espaço de nomes brigadier
também aparece para os tipos de argumento de comando que são nativos ao Brigadier.[5]
Histórico[]
Edição Java | |||||
---|---|---|---|---|---|
? | ? | Adicionado IDs com espaço de nomes ao lado do prefixo minecraft . | |||
1.7.2 | ? | Os comandos agora aceitam IDs de nome além de IDs numéricos. | |||
1.11 | 16w32a | IDs com espaço de nomes agora têm um restrição de caracteres. | |||
Caracteres maiúsculos desabilitados nos IDs com espaços de nomes. | |||||
1.13 | 17w47a | Depois da planificação, IDs com espaço de nomes são a única forma aceita de ID. | |||
pre4 | IDs com espaço de nomes agora são usadas para identificar os canais de mensagem do plug-in.[6] | ||||
1.14.4 | pre1 | O espaço de nomes do realms é adicionado ao pacote de recursos interno do cliente jar. | |||
Edição Pocket Alpha | |||||
0.16.0 | build 1 | Adicionado comandos, que suportam IDs de sequências de caracteres. No entanto, estas IDs não têm espaços de nomes ainda. | |||
Edição Bedrock | |||||
1.12.0 | beta 1.12.0.2 | As IDs agora têm espaços de nomes usando o prefixo minecraft para suportar itens adicionados por meio de add-ons. |
Ver também[]
- Valores de dados da Edição Java
- Pacote de Recursos
- Pacote de Dados
Referências[]
- ↑ DataFixerUpper/NamespacedStringType.java at 8b5f82ab78b30ff5813b3a7f3906cd3f4f732acf · Mojang/DataFixerUpper – GitHub
- ↑ Minecraft Java Edition 1.13 changes – GitHub Gist
- ↑ "Minecraft Snapshot 19w39a" – Minecraft.net, 27 de setembro de 2019
- ↑ "Minecraft Snapshot 17w43a" – Minecraft.net
- ↑ Minecraft Java Edition 1.13 changes – GitHub Gist
- ↑ Protocol History – wiki.vg
Links externos[]
- Espaços de nomes, como explicados na "Minecraft Snapshot 17w43a" – Minecraft.net.
- Artigo da Wikipédia sobre o que são espaços de nomes.
Versões |
| ||||
---|---|---|---|---|---|
Desenvolvimento |
| ||||
Técnico |
| ||||
Multijogador | |||||
Personalização do jogo |
Edições |
| ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Desenvolvimento |
| ||||||||||
Técnico |
| ||||||||||
Multijogador | |||||||||||
Características exclusivas |
| ||||||||||
Removido |
|