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 />
Ver detalhes em texto
Quantidade: 32
Ver detalhes em texto
Quantidade: 1
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>
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' }]}
/>
Ver detalhes em texto
Quantidade: 1
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 aliasesb,i,em,u,st;:falsedesativa uma decoração.<reset>,<newline>e<br>; cada entrada deloreé 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,&#RRGGBBe&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:
Ver detalhes em texto
Quantidade: 1
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 },
]}
/>
- Indisponível
Ver itens em texto
- Slot 0 — Diamante
Quantidade: 32
- 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.
- 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%
- 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
- Slot 0 — diabo LÂMINA DO COLAPSO INFERNAL diabo
Quantidade: 1
Aspecto Flamejante IISaque IIIRemendo IAfiação VIAlcance IIIInquebrável IVSede de Sangue III❙ Uma lâmina banhada em lava vulcânica❙ COLAPSO INFERNAL 2026❙ Dono: ThiagoROXChance de: 3% - Slot 13 — diabo LÂMINA DO COLAPSO INFERNAL diabo
Quantidade: 1
Aspecto Flamejante IISaque IIIRemendo IJulgamento VIAlcance IIIInquebrável IVSede de Sangue III❙ Uma lâmina banhada em lava vulcânica❙ COLAPSO INFERNAL 2026❙ Dono: ThiagoROXChance de: 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' },
]}
/>
- 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
- Slot 0 — Diamante
Quantidade: 32
- Slot 27 — diabo PICARETA DO COLAPSO INFERNAL diabo
Quantidade: 1
Eficiência VIFortuna IIIRemendo IInquebrável IVCoração de Magma III❙ Escava as profundezas do nether em chamas❙ COLAPSO INFERNAL 2026❙ Dono: ThiagoROXChance de: 3%Durabilidade: 80/100 - 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 }}
/>
Ver receita em texto
- Ingrediente 0 — Poção
Quantidade: 1
- Ingrediente 1 — Poção
Quantidade: 1
- Ingrediente 3 — Poção
Quantidade: 1
- Ingrediente 4 — Poção
Quantidade: 1
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' }]}
/>

- Nenhum efeito
- Pressa (3:00)
Ver preparo em texto
Ingrediente — CenouraQuantidade: 1
Quantidade: 1
- Frasco 0 — Poção Estranha
Quantidade: 1
Nenhum efeito
- 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
Ver detalhes em texto
Quantidade: 1
Ver detalhes em texto
Quantidade: 1
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.
Acessibilidade e atualização do catálogo
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:
- Confira nomes, lore, encantamentos, versão e visual na fonte responsável. Não infira propriedades pela imagem.
- Cadastre o PNG em
static/items/armamc/<colecao>/<item>.png, sem repetir o nome da coleção no arquivo. Por exemplo:colapsoinfernal/helmet.pngoufesta2025/helmet_azul.png. Cadastre o caminho público completo emvisuals, como/items/armamc/colapsoinfernal/helmet.png; os slots recebem apenas o ID do item. Um mesmo visual pode servir a várias variantes. - Registre origem, revisão, checksum e condições de uso em
provenance.jsone no README dos assets. Use somente PNGs locais; URLs externas e caminhos com..não são aceitos. - Atualize os menus JSON quando necessário. Não inclua comandos administrativos, configurações privadas ou placeholders pessoais reais.
- Execute
pnpm test,pnpm run typecheck,pnpm run buildepnpm run test:e2e. Confira os tooltips, o texto e a exportaçãollms-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.