Pular para o conteúdo principal

Itens Minecraft — guia para autores

Os componentes exibem dados versionados, sem executar comandos nem consultar inventários de jogadores. Veja a vitrine da Caixa Colapso Infernal.

Item vanilla, inline e personalizado​

Importe os componentes em um arquivo .mdx:

import {
MinecraftItem,
MinecraftLabel,
MinecraftItemSlot,
MinecraftInventory,
MinecraftChest,
CraftingTable,
BrewingStand,
} from '@site/src/components/Minecraft';

<MinecraftItem itemId="minecraft:diamond" amount={32} />
<MinecraftItem itemId="armamc:colapso_infernal_picareta_1" framed />
Diamante
Ver detalhes em texto

Quantidade: 32

Eficiência VI. Fortuna III. Remendo I. Inquebrável IV. Coração de Magma III. ❙ Escava as profundezas do nether em chamas. ❙ COLAPSO INFERNAL 2026. ❙ Dono: ThiagoROX. . Chance de: 3%diabo PICARETA DO COLAPSO INFERNAL diabo
Ver detalhes em texto

Quantidade: 1

Eficiência VI
Fortuna III
Remendo I
Inquebrável IV
Coração de Magma III
❙ Escava as profundezas do nether em chamas
❙ COLAPSO INFERNAL 2026
❙ Dono: ThiagoROX
 
Chance de: 3%

Para inserir um item no meio de uma frase, use inline: este Diamante mantém seu nome acessível. O catálogo reúne os materiais vanilla usados na documentação, as caixas e os kits VIP do Survival. Outros IDs precisam ser cadastrados.

Texto Minecraft​

MinecraftLabel exibe texto inline com fonte e sombra Minecraft. Passe o texto como conteúdo do componente. Ele aceita as mesmas cores, estilos e tokens seguros dos nomes e lores dos itens; gradient recebe uma lista de cores para aplicar um gradiente estático ao texto. O conteúdo continua sendo texto acessível; tags desconhecidas aparecem literalmente.

<MinecraftLabel gradient={['#fb8800', '#ffe000']}>[Premium]</MinecraftLabel>
<MinecraftLabel>&bTexto &lcom destaque&r</MinecraftLabel>
[Premium]

Personalizar uma instância​

Overrides não alteram o cadastro compartilhado. Nome, lore, encantamentos, quantidade, durabilidade, glint, indisponibilidade e propriedades adicionais podem variar por instância. Lore e encantamentos substituem integralmente as listas originais. Os caminhos de imagem pertencem ao catálogo visual.

<MinecraftItem
itemId="minecraft:paper"
displayName="<gold><bold>Exemplo de autoria</bold></gold>"
lore={['<gray>Uma linha de descrição', '', '<#55ffff>Uma linha colorida']}
properties={[{ label: 'Usos restantes', value: '10' }]}
/>
Uma linha de descrição. . Uma linha colorida. Usos restantes: 10Exemplo de autoria
Ver detalhes em texto

Quantidade: 1

Uma linha de descrição
 
Uma linha colorida
Usos restantes: 10

Também é possível fornecer tokens estruturados, como displayName={[{ text: 'Exemplo seguro', style: { color: '#ffaa00', bold: true } }]}. Somente cores e estilos conhecidos são aceitos.

Formatação suportada​

  • Cores Minecraft, <#RRGGBB> e <color:#RRGGBB>.
  • <bold>, <italic>, <underlined>, <strikethrough> e os aliases b, i, em, u, st; :false desativa uma decoração.
  • <reset>, <newline> e <br>; cada entrada de lore é uma linha, inclusive entradas vazias.
  • <gradient:#750000:#ff0000:#750000> estático, com duas ou mais cores, sem parâmetro de fase ou animação.
  • Legacy & e §: cores, l, o, n, m, r, &#RRGGBB e &x&R&R&G&G&B&B.
  • Escape com barra invertida antes de <, &, § ou outra barra invertida.

Tags não suportadas aparecem literalmente. HTML, eventos Adventure, comandos, fontes arbitrárias e ofuscação não são executados. Cada texto aceita no máximo 8.192 caracteres e o parser limita o aninhamento a 32 tags.

Este exemplo permite conferir que conteúdo parecido com HTML continua sendo texto:

<img src=x onerror=alert(1)>. <script>alert(1)</script>Exemplo seguro
Ver detalhes em texto

Quantidade: 1

<img src=x onerror=alert(1)>
<script>alert(1)</script>

O token conhecido %oraxen_emoji_diabo% usa a imagem local do pack. Os placeholders de jogador foram fixados em ThiagoROX, datas completas em 11/10/2026 e anos em 2026 no snapshot; o site não os atualiza automaticamente. O nome ThiagoROX recebe um degradê do vermelho ao roxo nos textos Minecraft, inclusive quando vem dividido em componentes JSON. A lista textual e a exportação preservam o nome sem códigos de formatação.

Inventário de nove slots​

Use rows entre 1 e 6 e índices zero-based. Slots ausentes ficam vazios. O número da linha visual não altera o índice.

<MinecraftInventory
title="Exemplo de nove slots"
rows={1}
slots={[
{ index: 0, itemId: 'minecraft:diamond', amount: 32 },
{ index: 8, itemId: 'minecraft:paper', unavailable: true },
]}
/>
Exemplo de nove slots
  1. Indisponível
Ver itens em texto
  1. Slot 0 — Diamante

    Quantidade: 32

  2. Slot 8 — Papel

    Quantidade: 1

    Indisponível

Baú simples — 27 slots​

type="single" fixa três linhas e aceita índices de 0 a 26. A organização deste exemplo é ilustrativa.

Baú simples — exemplo
  1. Aspecto Flamejante II. Saque III. Remendo I. Afiação VI. Alcance III. Inquebrável IV. Sede de Sangue III. ❙ Uma lâmina banhada em lava vulcânica. ❙ COLAPSO INFERNAL 2026. ❙ Dono: ThiagoROX. . Chance de: 3%
  2. Aspecto Flamejante II. Saque III. Remendo I. Julgamento VI. Alcance III. Inquebrável IV. Sede de Sangue III. ❙ Uma lâmina banhada em lava vulcânica. ❙ COLAPSO INFERNAL 2026. ❙ Dono: ThiagoROX. . Chance de: 3%
Ver itens em texto
  1. Slot 0 — diabo LÂMINA DO COLAPSO INFERNAL diabo

    Quantidade: 1

    Aspecto Flamejante II
    Saque III
    Remendo I
    Afiação VI
    Alcance III
    Inquebrável IV
    Sede de Sangue III
    ❙ Uma lâmina banhada em lava vulcânica
    ❙ COLAPSO INFERNAL 2026
    ❙ Dono: ThiagoROX
     
    Chance de: 3%
  2. Slot 13 — diabo LÂMINA DO COLAPSO INFERNAL diabo

    Quantidade: 1

    Aspecto Flamejante II
    Saque III
    Remendo I
    Julgamento VI
    Alcance III
    Inquebrável IV
    Sede de Sangue III
    ❙ Uma lâmina banhada em lava vulcânica
    ❙ COLAPSO INFERNAL 2026
    ❙ Dono: ThiagoROX
     
    Chance de: 3%
  3. Slot 26 — Diamante

    Quantidade: 64

Baú duplo — 54 slots​

type="double" fixa seis linhas e aceita índices de 0 a 53. O inventário do jogador não faz parte desses slots. O exemplo demonstra durabilidade e nome personalizados; não representa uma recompensa diferente do servidor.

<MinecraftChest
type="double"
title="<gold>Baú duplo — exemplo"
slots={[
{ index: 0, itemId: 'minecraft:diamond', amount: 32 },
{ index: 27, itemId: 'armamc:colapso_infernal_picareta_1', durability: { current: 80, max: 100 } },
{ index: 53, itemId: 'minecraft:paper', displayName: '<light_purple>Último slot' },
]}
/>
Baú duplo — exemplo
  1. Eficiência VI. Fortuna III. Remendo I. Inquebrável IV. Coração de Magma III. ❙ Escava as profundezas do nether em chamas. ❙ COLAPSO INFERNAL 2026. ❙ Dono: ThiagoROX. . Chance de: 3%. Durabilidade: 80/100
Ver itens em texto
  1. Slot 0 — Diamante

    Quantidade: 32

  2. Slot 27 — diabo PICARETA DO COLAPSO INFERNAL diabo

    Quantidade: 1

    Eficiência VI
    Fortuna III
    Remendo I
    Inquebrável IV
    Coração de Magma III
    ❙ Escava as profundezas do nether em chamas
    ❙ COLAPSO INFERNAL 2026
    ❙ Dono: ThiagoROX
     
    Chance de: 3%
    Durabilidade: 80/100
  3. Slot 53 — Último slot

    Quantidade: 1

Bancada de fabricação​

CraftingTable recebe title, slots com índices de 0 a 8 (três colunas, da esquerda para a direita) e result com o item produzido. Slots ausentes ficam vazios. Ingredientes e resultado aceitam os mesmos overrides dos itens; a bancada compartilha um tooltip ativo e mantém a receita em texto no HTML inicial.

<CraftingTable
title="Exemplo de fabricação"
slots={[
{ index: 0, itemId: 'minecraft:potion' },
{ index: 1, itemId: 'minecraft:potion' },
{ index: 3, itemId: 'minecraft:potion' },
{ index: 4, itemId: 'minecraft:potion' },
]}
result={{ itemId: 'minecraft:potion', amount: 4 }}
/>
Exemplo de fabricação
Ver receita em texto
  1. Ingrediente 0 — Poção

    Quantidade: 1

  2. Ingrediente 1 — Poção

    Quantidade: 1

  3. Ingrediente 3 — Poção

    Quantidade: 1

  4. Ingrediente 4 — Poção

    Quantidade: 1

Resultado — Poção

Quantidade: 4

Para compartilhar receitas com llms-full.txt, salve uma lista em collections/<colecao>/crafting.json e registre a coleção e a URL em src/data/minecraft/crafting.json, como nos exemplos de poções empilháveis.

Para mostrar bancadas lado a lado, envolva os componentes em <div className={styles.recipeGallery} role="region" aria-label="Receitas" tabIndex={0}>. Importe styles de @site/src/components/Minecraft/styles.module.css. A região permite rolagem horizontal em telas estreitas sem reduzir os slots.

Suporte de poções​

BrewingStand recebe title, ingredient, fuel, slots (frascos de entrada) e results (frascos produzidos). As posições vão de 0 a 2, da esquerda para a direita. Entradas e resultados devem ocupar as mesmas posições e preservar as quantidades; posições ausentes ficam vazias. Cada suporte compartilha um tooltip e inclui o preparo completo em texto no HTML inicial.

<BrewingStand
title="Pressa"
ingredient={{ itemId: 'minecraft:carrot' }}
fuel={{ itemId: 'minecraft:blaze_powder' }}
slots={[{ index: 0, itemId: 'minecraft:awkward_potion' }]}
results={[{ index: 0, itemId: 'armamc:mcmmo_haste' }]}
/>
Pressa
Combustível
Ingrediente
Base
  1. Nenhum efeito
Resultado
  1. Pressa (3:00)
Ver preparo em textoIngrediente — Cenoura

Quantidade: 1

Combustível — Pó de Blaze

Quantidade: 1

Base
  1. Frasco 0 — Poção Estranha

    Quantidade: 1

    Nenhum efeito
Resultado
  1. Frasco 0 — Poção de Pressa

    Quantidade: 1

    Pressa (3:00)

Cadastre cada variante de poção com seu próprio nome, sprite e efeitos no catálogo. Os efeitos usam linhas seguras de lore, por exemplo &9Pressa (3:00) ou &cDano Instantâneo II; preserve o nível e a duração da fonte. Os exemplos do mcMMO traduzem os nomes das poções para pt-BR e usam os nomes de efeitos do idioma oficial do cliente. Os nomes originais da configuração ficam registrados na proveniência.

Salve os preparos em collections/<colecao>/brewing.json e registre a coleção e a URL em src/data/minecraft/brewing.json para validar as referências e exportar os mesmos dados para llms-full.txt. Veja os preparos da Alquimia.

Reutilizar um arquivo JSON​

{
"title": "Recompensas",
"rows": 3,
"slots": [{ "index": 10, "itemId": "minecraft:diamond", "amount": 32 }]
}
import menu from '@site/src/data/minecraft/collections/colapsoinfernal/inventory.json';

<MinecraftInventory {...menu} />
<MinecraftChest type="single" title={menu.title} slots={menu.slots} />

O JSON da vitrine é compartilhado com a exportação textual. Preserve os índices ao atualizar menus reais e identifique distribuições editoriais como exemplos.

Tooltip longo, fallback e slots vazios​

Linha 1: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 2: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 3: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 4: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 5: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 6: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 7: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 8: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 9: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 10: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 11: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 12: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 13: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 14: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 15: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 16: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 17: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 18: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 19: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 20: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 21: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 22: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 23: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.. Linha 24: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.Tooltip longo — exemplo
Ver detalhes em texto

Quantidade: 1

Linha 1: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 2: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 3: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 4: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 5: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 6: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 7: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 8: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 9: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 10: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 11: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 12: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 13: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 14: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 15: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 16: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 17: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 18: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 19: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 20: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 21: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 22: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 23: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
Linha 24: descrição longa para conferir a rolagem dos detalhes e o posicionamento nas bordas da tela.
ID desconhecido: armamc:item_desconhecido. Imagem indisponível.Item desconhecido
Ver detalhes em texto

Quantidade: 1

ID desconhecido: armamc:item_desconhecido

IDs desconhecidos mostram fallback e seu identificador; uma imagem indisponível mostra ?. Referências desconhecidas em menus JSON publicados e assets ausentes no catálogo impedem o build. Quantidades devem ser inteiras entre 1 e 99; a durabilidade deve ter 0 ≤ current ≤ max, com max > 0. Slots duplicados ou fora do intervalo são erros.

Hover ou foco abrem os detalhes; clique, Enter, Espaço ou toque mantêm o popover aberto. Feche com Escape, toque fora ou um novo clique no mesmo item. Tooltips longos permitem rolagem. No mobile, as nove colunas são preservadas e o inventário tem sua própria rolagem horizontal.

Ver itens em texto permanece disponível sem JavaScript. Nome, lore e encantamentos também são renderizados no HTML inicial para leitores de tela.

Para cadastrar um item:

  1. Confira nomes, lore, encantamentos, versão e visual na fonte responsável. Não infira propriedades pela imagem.
  2. Cadastre o PNG em static/items/armamc/<colecao>/<item>.png, sem repetir o nome da coleção no arquivo. Por exemplo: colapsoinfernal/helmet.png ou festa2025/helmet_azul.png. Cadastre o caminho público completo em visuals, como /items/armamc/colapsoinfernal/helmet.png; os slots recebem apenas o ID do item. Um mesmo visual pode servir a várias variantes.
  3. Registre origem, revisão, checksum e condições de uso em provenance.json e no README dos assets. Use somente PNGs locais; URLs externas e caminhos com .. não são aceitos.
  4. Atualize os menus JSON quando necessário. Não inclua comandos administrativos, configurações privadas ou placeholders pessoais reais.
  5. Execute pnpm test, pnpm run typecheck, pnpm run build e pnpm run test:e2e. Confira os tooltips, o texto e a exportação llms-full.txt.

O modelo de dados e o parser não dependem do Docusaurus. Na migração para Astro/Starlight, reutilize esses módulos e mantenha a interação limitada a cada item ou inventário.

Coleções e fontes dos dados​

Cada coleção mantém seu catalog.json e seus inventários em src/data/minecraft/collections/. O catálogo compartilhado reúne esses arquivos e rejeita IDs duplicados. Cadastre a relação entre inventário e página em inventories.json para validar o conteúdo e incluí-lo no llms-full.txt.

Para caixas, use o CrazyCrates para a seleção, ordem e quantidade dos prêmios. Resolva nome e lore separadamente: primeiro Oraxen, depois os dados do item entregue pela caixa e, por fim, sua apresentação. Referências ie: usam os metadados do ItemEdit. Encantamentos devem vir do item, nunca ser inferidos de frases na descrição. Para kits, use a configuração correspondente; itens dentro de shulkers preservam seus slots. Registre revisões, campos de origem e hashes em provenance.json.

Não copie comandos administrativos para a documentação. Benefícios que não são itens ficam em texto, e os inventários continuam sendo vitrines editoriais. Quantidades maiores que uma pilha são divididas entre slots, como 128 frascos em duas pilhas de 64. As listas em texto e a exportação para modelos de linguagem vêm do mesmo inventário, sem transcrever lore manualmente.

Assets vanilla e imagens ilustrativas​

Os sprites vanilla são obtidos do cliente oficial 1.21.11 pela API de versões da Mojang e servidos localmente em /items/minecraft/1.21.11/. Antes do build, execute pnpm run prepare:minecraft-assets se precisar restaurar arquivos. Com os arquivos e hashes corretos, esse comando funciona sem rede. A extração requer unzip; o cliente baixado fica somente no cache e não é distribuído.

O build apenas valida os assets preparados: não consulta servidores nem baixa imagens. Nomes personalizados são opcionais: sem displayName, o material usa names-pt-br.json, extraído da tradução oficial pt-BR pela API da Mojang e validado por hash. Nomes vazios ou contendo apenas formatação também usam esse fallback; não cadastre títulos editoriais como se fossem nomes customizados. Por exemplo, minecraft:experience_bottle usa Frasco d'Encantamento, conforme o idioma oficial da versão 1.21.11. O mesmo comando de preparação restaura esse snapshot quando necessário. Para atualizar a versão, revise os caminhos, traduções, hashes e condições de uso; não substitua a versão fixa por latest.

Use apenas ícones de inventário verificados. Se o pack fornecer somente um modelo 3D ou um mapa de textura, use o material base ou o fallback visual e registre a limitação na proveniência, sem acrescentar avisos à lore do item. Para blocos e entidades de bloco, prepare uma imagem da vista de inventário com pnpm run prepare:minecraft-models -- /caminho/cliente-1.21.11.jar /caminho/Config-Oraxen. O renderizador gera PNGs locais antes do build. Uma textura de bloco ou entidade não deve ser apresentada como um ícone completo.

Ao revisar sprites do Oraxen, confira a definição do item e seus modelos pai. Arcos e varas também usam item/bow e item/handheld_rod; itens com várias camadas, como a elytra Festa, precisam da composição completa. Registre as entradas e hashes em model-renders.json e provenance.json.

Nas caixas antigas, o material e o número de CustomModelData não bastam para identificar uma textura. Exija uma correspondência registrada no pack ou um oraxen:id persistido no ItemEdit. Sem essa evidência, registre a pendência na proveniência e use uma imagem ilustrativa do material base, preservando nome, lore e encantamentos da fonte.

Nos itens de caixas, mantenha a chance da configuração em uma linha &aChance de: 3%, após uma linha vazia no fim da lore. Preserve o valor da fonte; não transforme essa informação em encantamento.