Pular para o conteúdo principal

Loja de Mobília do FreeMinecraftModels

O FreeMinecraftModels vem com uma loja opcional baseada em Vault que permite jogadores comprarem props craftáveis com moeda do jogo. A loja está desabilitada por padrão — ela só se registra quando explicitamente habilitada e um provedor de economia Vault estiver disponível.

Configuração Rápida

  1. Instale o Vault e um provedor de economia compatível com Vault (EssentialsX, CMI, etc.).
  2. Inicie o servidor uma vez para que plugins/FreeMinecraftModels/shop_config.yml seja gerado.
  3. Defina enabled: true em shop_config.yml.
  4. Reinicie o servidor (a loja se registra durante a inicialização).
  5. Execute /fmm shop no jogo para confirmar que o menu abre.

Se qualquer uma dessas pré-condições estiver faltando, o comando /fmm shop permanece não registrado e jogadores veem um erro de "comando não encontrado" em vez da mensagem configurável de desabilitação.

Como Funciona

  • A loja lê receitas de plugins/FreeMinecraftModels/recipes/.
  • Toda receita com isEnabled: true e shopEnabled: true é listada na loja.
  • Cada entrada mostra o item de saída da receita (o item de papel de colocação do prop) com duas linhas de lore adicionadas: uma linha Price: e um prompt Click to purchase.
  • Clicar em uma entrada chama PurchaseHandler, que verifica o saldo do jogador via Vault, retira o preço e dá o item de colocação ao jogador. Itens que não cabem no inventário são dropados aos pés do jogador.

Permissões

PermissãoPadrãoDescrição
freeminecraftmodels.shoptrueNecessária para abrir a loja. O padrão é true para que todos os jogadores possam navegar

A permissão sozinha não habilita a loja — enabled: true em shop_config.yml e um provedor de economia funcional ainda são necessários.

shop_config.yml

Veja a página de Configuração para a referência completa de chaves. As chaves principais são:

  • enabled — toggle mestre (padrão false)
  • defaultPrice — escrito em arquivos de receita que não definem seu próprio shopPrice
  • menuTitle, priceLoreFormat, clickToBuyLoreFormat — estilo visual
  • messages.* — cinco mensagens de feedback customizáveis

Todas as strings de mensagem suportam códigos de cor & e os placeholders listados na referência de configuração.

Campos por Receita

Cada receita em plugins/FreeMinecraftModels/recipes/<model_id>.yml carrega dois campos específicos de loja:

isEnabled: true
model_id: "wooden_chair"
shape:
- "L L"
- "LLL"
- "L L"
ingredients:
L: OAK_LOG
shopEnabled: true
shopPrice: 250.0
CampoPadrãoComportamento
shopEnabledtrueQuando false, a receita ainda é craftável mas nunca aparece em /fmm shop
shopPricedefaultPrice de shop_config.ymlCusto em moeda Vault quando o jogador clica no item

O construtor /fmm craftify escreve ambos os campos ao salvar, então ajustar o preço é apenas uma edição de texto no arquivo de receita seguido de /fmm reload.

Resultados de Compra

O PurchaseHandler reconhece cinco resultados. Cada um mapeia para uma mensagem configurável em shop_config.yml:

ResultadoDisparado quandoChave de mensagem
SUCCESSRetirada bem-sucedida e o item coube no inventáriomessages.purchaseSuccess
SUCCESS_WITH_OVERFLOWRetirada bem-sucedida mas o item teve de ser dropado aos pés do jogadormessages.purchaseSuccess + messages.inventoryFull
INSUFFICIENT_FUNDSSaldo do jogador abaixo do preço, ou o provedor de economia subjacente rejeitou a retiradamessages.insufficientFunds
NOT_FOR_SALEReceita está desabilitada ou shopEnabled: falsemessages.itemNotForSale
SHOP_DISABLEDForçadamente desabilitada em runtime (ex.: provedor de economia foi embora)messages.shopDisabled

Solução de Problemas

/fmm shop não existe. A loja não está registrada. Verifique todos os três:

  • Vault está instalado
  • Um provedor de economia está registrado (rode /balance ou /eco para confirmar que algum está respondendo)
  • enabled: true em shop_config.yml

Então reinicie o servidor. O comando só se registra na inicialização.

Itens que eu espero ver estão faltando no menu. Abra o arquivo de receita em plugins/FreeMinecraftModels/recipes/. Verifique que tanto isEnabled quanto shopEnabled estão como true. Execute /fmm reload após editar.

Jogadores são cobrados mas não recebem item. Verifique o console do servidor por erros do Vault. O handler só consome moeda após uma verificação de saldo bem-sucedida, mas um provedor de economia downstream ainda pode falhar a retirada real — o handler captura isso e retorna INSUFFICIENT_FUNDS. Se a retirada teve sucesso e o item falhou ao spawnar, abra um bug report com o log de console completo em torno do clique.