Saltar para o conteúdo principal

Loja de mobília do FreeMinecraftModels

Para uma economia baseada apenas em compras, defina registerCraftingRecipes: false em config.yml e reinicie. As entradas válidas e ativadas continuam no catálogo da loja, mas são removidas do fabrico Bukkit e do menu de itens fabricáveis /fmm dos jogadores. A opção tem a predefinição true.

O FreeMinecraftModels inclui uma loja opcional integrada com o Vault, onde os jogadores podem comprar elementos decorativos fabricáveis com moeda do jogo. A loja está desativada por predefinição. Só é registada quando está explicitamente ativada e existe um fornecedor de economia compatível com o Vault.

Instalação rápida​

  1. Instale o Vault e um fornecedor de economia compatível, como EssentialsX ou CMI.
  2. Inicie o servidor uma vez para gerar plugins/FreeMinecraftModels/shop_config.yml.
  3. Defina enabled: true em shop_config.yml.
  4. Reinicie o servidor ou conclua /fmm reload com sucesso; a loja é registada durante a inicialização completa.
  5. Execute /fmm shop no jogo e confirme que o menu abre.

Se faltar algum requisito, o subcomando da loja não é registado, pelo que a mensagem configurável de desativação não é usada através desse processamento. Se a loja estiver ativada mas faltar Vault ou o seu fornecedor de economia, o FMM regista um aviso específico.

Funcionamento​

  • A loja lê as receitas de plugins/FreeMinecraftModels/recipes/.
  • Apresenta as receitas carregadas com isEnabled: true e shopEnabled: true. As receitas são carregadas como um único catálogo: um erro de sintaxe YAML, dois ficheiros de receita ativos para o mesmo model_id ou uma receita rejeitada pelo servidor fazem falhar o catálogo inteiro, em vez de descartar uma só entrada, por isso consulte a consola após /fmm reload. O registo continua a construir e validar a receita quando o fabrico está desativado.
  • Cada entrada usa um item de papel com o aspeto do modelo quando disponível, uma linha de preço, uma indicação de compra e o ID do modelo. As compras entregam o item de papel para colocar o modelo; este caminho não cria uma arma definida pelo seu material: e encantamentos.
  • Ao clicar, PurchaseHandler consulta o saldo através do Vault, desconta o preço e entrega o item de colocação. Os itens que não couberem no inventário caem aos pés do jogador.

Permissões​

PermissãoPredefiniçãoDescrição
freeminecraftmodels.shoptrueNecessária para abrir a loja. O valor true permite o acesso a todos os jogadores

A permissão, por si só, não ativa a loja. Continua a ser necessário definir enabled: true em shop_config.yml e ter um fornecedor de economia funcional.

shop_config.yml​

Consulte a página de configuração para conhecer todas as opções. As principais são:

  • enabled: ativa ou desativa a loja; predefinição false.
  • defaultPrice: valor usado nas receitas sem shopPrice; um valor nulo ou negativo passa a 100.0. Alterá-lo não substitui os preços já guardados nas receitas.
  • menuTitle, priceLoreFormat, clickToBuyLoreFormat: apresentação visual.
  • messages.*: cinco mensagens de resposta personalizáveis.

Todas as mensagens aceitam códigos de cor & e os marcadores indicados na referência de configuração.

Campos de cada receita​

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

isEnabled: true
model_id: "wooden_chair"
shape:
- "L L"
- "LLL"
- "L L"
ingredients:
L: OAK_LOG
shopEnabled: true
shopPrice: 250.0
CampoPredefiniçãoComportamento
shopEnabledtrueCom false, a receita fica oculta nas compras. O fabrico continua a depender da ativação da receita e de registerCraftingRecipes
shopPricedefaultPrice de shop_config.ymlPreço em moeda do Vault cobrado ao clicar no item

O editor /fmm craftify escreve ambos os campos ao guardar. Para ajustar o preço, edite o ficheiro da receita e execute /fmm reload.

Resultados das compras​

PurchaseHandler reconhece sete resultados. Os cinco primeiros estão associados a mensagens configuráveis em shop_config.yml; as duas mensagens de falha na entrega são fixas:

ResultadoQuando ocorreChave da mensagem
SUCCESSO débito foi aceite e o item coube no inventáriomessages.purchaseSuccess
SUCCESS_WITH_OVERFLOWO débito foi aceite, mas o item teve de cair aos pés do jogadormessages.purchaseSuccess + messages.inventoryFull
INSUFFICIENT_FUNDSO saldo é inferior ao preço ou o fornecedor de economia recusou o débitomessages.insufficientFunds
NOT_FOR_SALEA receita está desativada, tem shopEnabled: false ou o seu modelo não está carregadomessages.itemNotForSale
SHOP_DISABLEDA configuração da loja ou a ligação Vault em cache indica que está desativadamessages.shopDisabled
DELIVERY_FAILED_REFUNDEDO débito foi aceite, a entrega falhou e o montante não entregue foi reembolsadoFixa: The item could not be delivered. The undelivered amount was refunded.
DELIVERY_FAILED_REFUND_PENDINGO débito foi aceite, a entrega falhou e o reembolso falhou ou não foi possível determinar a quantidade entregueFixa: The purchase could not be settled. The shop has been disabled; contact an administrator to review your payment.

Use valores shopPrice finitos e não negativos. O processamento da compra não os valida antes de chamar o Vault. Uma resposta de débito recusado devolve INSUFFICIENT_FUNDS, mas as exceções do fornecedor durante o débito não são capturadas aqui. A ligação guarda o fornecedor na inicialização e não deteta continuamente a sua remoção.

Se a entrega lançar uma exceção depois do débito, o FMM conta a parte da compra que chegou ao inventário ou ao chão e deposita de volta o preço do restante. Se esse reembolso falhar, ou se não for possível determinar a quantidade entregue, o FMM desativa a loja e regista [FMM Shop] Disabled after unresolved purchase com o UUID do jogador e o montante a rever. A loja permanece desativada até regularizar o pagamento e executar /fmm reload.

Resolução de problemas​

/fmm shop não existe. A loja não foi registada. Confirme os três pontos seguintes:

  • O Vault está instalado.
  • Existe um fornecedor de economia registado; execute /balance ou /eco para confirmar que responde.
  • shop_config.yml contém enabled: true.

Depois reinicie o servidor ou conclua /fmm reload. Um recarregamento apenas de conteúdo iniciado pelo importador não reinicializa a configuração da loja nem regista o comando.

Faltam itens no menu. Abra o ficheiro da receita em plugins/FreeMinecraftModels/recipes/ e confirme que isEnabled e shopEnabled estão ambos em true. Execute /fmm reload após editar.

Os jogadores pagam, mas não recebem o item. Procure um item que tenha caído aos pés do jogador por falta de espaço e consulte a consola no momento do clique. Uma resposta de débito recusado devolve INSUFFICIENT_FUNDS; uma exceção do fornecedor durante o débito não é convertida nesse resultado. Uma entrega falhada regista [FMM Shop] Item delivery failed com a quantidade entregue e o reembolso. Se a consola mostrar [FMM Shop] Disabled after unresolved purchase, o reembolso não foi efetuado: regularize esse pagamento manualmente, conserve o registo da consola e a prova da transação do fornecedor e execute /fmm reload para voltar a ativar a loja.