Saltar al contenido principal

Tienda de Muebles de FreeMinecraftModels

FreeMinecraftModels incluye una tienda opcional respaldada por Vault que permite a los jugadores comprar props fabricables con moneda del juego. La tienda está deshabilitada por defecto — solo se registra a sí misma cuando se habilita explícitamente y hay un proveedor de economía Vault disponible.

Configuración Rápida

  1. Instala Vault y un proveedor de economía compatible con Vault (EssentialsX, CMI, etc.).
  2. Inicia el servidor una vez para que se genere plugins/FreeMinecraftModels/shop_config.yml.
  3. Establece enabled: true en shop_config.yml.
  4. Reinicia el servidor (la tienda se registra durante el inicio).
  5. Ejecuta /fmm shop en el juego para confirmar que el menú se abre.

Si falta alguna de esas precondiciones, el comando /fmm shop queda sin registrar y los jugadores ven un error de "no existe tal comando" en lugar del mensaje configurable de deshabilitada.

Cómo Funciona

  • La tienda lee las recetas de plugins/FreeMinecraftModels/recipes/.
  • Cada receta con isEnabled: true y shopEnabled: true se lista en la tienda.
  • Cada entrada muestra el objeto resultante de la receta (el objeto de papel de colocación del prop) con dos líneas de lore añadidas: una línea Price: y un aviso Click to purchase.
  • Hacer clic en una entrada llama a PurchaseHandler, que comprueba el saldo del jugador a través de Vault, retira el precio y le entrega al jugador el objeto de colocación. Los objetos que no caben en el inventario se sueltan a los pies del jugador.

Permisos

PermisoPredeterminadoDescripción
freeminecraftmodels.shoptrueRequerido para abrir la tienda. El predeterminado es true para que todo jugador pueda explorar

El permiso por sí solo no habilita la tienda — enabled: true en shop_config.yml y un proveedor de economía en funcionamiento siguen siendo necesarios.

shop_config.yml

Consulta la página de Configuración para la referencia completa de claves. Las claves principales son:

  • enabled — interruptor maestro (predeterminado false)
  • defaultPrice — escrito en archivos de receta que no establezcan su propio shopPrice
  • menuTitle, priceLoreFormat, clickToBuyLoreFormat — estilo visual
  • messages.* — cinco mensajes de retroalimentación personalizables

Todos los strings de mensaje soportan códigos de color & y los marcadores de posición listados en la referencia de configuración.

Campos por Receta

Cada receta en plugins/FreeMinecraftModels/recipes/<model_id>.yml lleva dos campos específicos de tienda:

isEnabled: true
model_id: "wooden_chair"
shape:
- "L L"
- "LLL"
- "L L"
ingredients:
L: OAK_LOG
shopEnabled: true
shopPrice: 250.0
CampoPredeterminadoComportamiento
shopEnabledtrueCuando es false, la receta sigue siendo fabricable pero nunca aparece en /fmm shop
shopPricedefaultPrice de shop_config.ymlCoste en moneda Vault cuando el jugador hace clic en el objeto

El constructor /fmm craftify escribe ambos campos al guardar, así que ajustar el precio es solo una edición de texto en el archivo de receta seguida de /fmm reload.

Resultados de Compra

El PurchaseHandler reconoce cinco resultados. Cada uno se asocia a un mensaje configurable en shop_config.yml:

ResultadoSe desencadena cuandoClave de mensaje
SUCCESSLa retirada tuvo éxito y el objeto cupo en el inventariomessages.purchaseSuccess
SUCCESS_WITH_OVERFLOWLa retirada tuvo éxito pero el objeto tuvo que soltarse a los pies del jugadormessages.purchaseSuccess + messages.inventoryFull
INSUFFICIENT_FUNDSSaldo del jugador por debajo del precio, o el proveedor de economía subyacente rechazó la retiradamessages.insufficientFunds
NOT_FOR_SALELa receta está deshabilitada o shopEnabled: falsemessages.itemNotForSale
SHOP_DISABLEDForzada a deshabilitarse en runtime (p. ej. el proveedor de economía desapareció)messages.shopDisabled

Solución de Problemas

/fmm shop no existe. La tienda no está registrada. Verifica los tres:

  • Vault está instalado
  • Hay un proveedor de economía registrado (ejecuta /balance o /eco para confirmar que uno responde)
  • enabled: true en shop_config.yml

Luego reinicia el servidor. El comando se registra solo al iniciar.

Faltan objetos que espero ver en el menú. Abre el archivo de receta en plugins/FreeMinecraftModels/recipes/. Comprueba que tanto isEnabled como shopEnabled son true. Ejecuta /fmm reload tras editar.

A los jugadores se les cobra pero no reciben el objeto. Comprueba la consola del servidor en busca de errores de Vault. El handler solo consume moneda tras una comprobación de saldo exitosa, pero un proveedor de economía aguas abajo aún puede fallar la retirada real — el handler captura eso y devuelve INSUFFICIENT_FUNDS. Si la retirada tuvo éxito y el objeto falló al generarse, abre un reporte de bug con el log completo de consola alrededor del clic.