QSMarketPlus – Documentación
En esta sección encontrarás toda la información necesaria para utilizar el plugin de forma correcta.
Se explica cómo funcionan los comandos, interfaces, permisos, configuración y herramientas para administradores.
1. Sistema de Tienda – /shop
El menú principal de la tienda se abre con:
Dentro del menú, los jugadores verán categorías configuradas desde los archivos YML.
Cada categoría contiene ítems con precios de compra y/o venta.
Características del sistema de tienda:
- Interfaz gráfica intuitiva.
- Categorías e ítems totalmente personalizables.
- Compatibilidad completa con ítems personalizados (NBT, texturas, encantamientos especiales, etc.).
- Compra y venta instantánea.
- Los ítems se guardan sin perder información.
Acciones principales:
• Clic izquierdo → Comprar
• Clic derecho → Vender (si tiene precio de venta)
2. Sistema de Venta Rápida – /sell
Este comando permite vender rápidamente ítems del inventario.
Vende el ítem que el jugador tiene en la mano.
Code (Text):
/sell similar
Vende todos los ítems similares del inventario.
Vende todos los ítems vendibles del inventario.
Notas importantes:
• Solo se pueden vender ítems que existan en la tienda.
• Los ítems deben tener un precio de venta asignado.
• Se soportan ítems personalizados con NBT.
3. Casa de Subastas – /ah
El comando:
abre una interfaz visual con todas las subastas disponibles.
Funciones del menú:
- Ver ítems en venta por otros jugadores.
- Ver tus subastas activas.
- Ver y reclamar ítems expirados.
- Consultar historial completo.
Subcomandos de /ah:
Code (Text):
/ah sell <precio>
Subasta el ítem en la mano.
Code (Text):
/ah sellinv <precio>
Subasta todo el inventario.
Muestra el historial de subastas.
Muestra las subastas expiradas para reclamar.
4. Herramientas para Administradores
###
/additem
Añade el ítem actual en la tienda.
Code (Text):
/additem <categoria> <buy> <sell>
Ejemplo:
Code (Text):
/additem bloques 50 25
El ítem se guarda con:
• Precio de compra: 50
• Precio de venta: 25
Importante:
QSMarketPlus guarda todo el NBT del ítem, permitiendo ítems avanzados de:
• ItemsAdder
• Oraxen
• MythicMobs
• MMOItems
• EcoItems
• Otros plugins personalizados
###
/qsmarket reload
Recarga todos los archivos de configuración.
Code (Text):
/qsmarket reload
5. Permisos
Permisos principales:
Code (Text):
qsmarket.reload
Permite usar el comando de recarga.
Code (Text):
qsmarket.admin
Permite añadir ítems y usar herramientas administrativas.
Code (Text):
qsmarket.history
Permite usar el comando /ah history
Code (Text):
qsmarket.expired
Permite usar el comando /ah expired
Los jugadores pueden usar de forma predeterminada:
• /shop
• /sell
• /ah
A menos que un plugin de permisos los limite.
⚙ 6. Archivos de Configuración
El plugin crea la carpeta:
Code (Text):
QSMarketPlus/
Dentro encontrarás varios archivos YML configurables:
- config.yml – Configuración general del plugin.
- items-menu.yml – Lista de ítems con precios.
- categories.yml – Define categorías e íconos de la tienda.
- ah_menu.yml – Ajustes del sistema de subastas.
- action-menu.yml – Configuración de acciones en la tienda.
- messages_es.yml – Mensajes personalizados del plugin.
Aplica cambios con:
Code (Text):
/qsmarket reload
6.1 Ejemplos de Configuración (YML)
A continuación se muestran ejemplos claros y listos para usar:
---
config.yml
Code (yml (Unknown Language)):
discord:
webhook_enabled: true
webhook_url: "https://discord.com/api/webhooks/1431092741097521352/O52vGJbHpZ87v1dOJQX1waNs0t09h6XYeb25mz8KM4WcHXEYT4gTjjEeIp7uxoemTmwG"
# Este es el lore del artículo que se muestra en el menú de compra/venta
price-format:
buy: "<green>Compra: <white>$%buy%</white>"
sell: "<red>Venta: <white>$%sell%</white>"
auction:
# Tiempo que dura una subasta antes de expirar (en segundos)
# Ejemplos:
# 60 = 1 minuto
# 3600 = 1 hora
# 86400 = 24 horas
# 7 días = 7 × 24 × 3600 = 604800 segundos
# 14 días = 14 × 24 × 3600 = 1209600 segundos
# 30 × 24 × 3600 = 2592000 segundos
expiration_seconds: 604800
# Con qué frecuencia se revisan las subastas para ver si han expirado (en segundos)
# Ejemplos:
# 10 = cada 10 segundos (ideal para pruebas)
# 300 = cada 5 minutos (recomendado en producción)
expiration_check_interval: 10
auction-limits:
default: 5 # Jugadores sin permisos especiales
qsmarket.limit.premium: 10
qsmarket.limit.vip: 20
qsmarket.limit.staff: 999
database:
type: "mysql" # opciones: sqlite / mysql
mysql:
host: "localhost"
port: 3306
database: "qsmarket"
user: "root"
password: "root"
sqlite:
file: "data.db"
---
categories.yml
Code (yml (Unknown Language)):
menu:
title: "<green>QSMarketPlus</green>"
rows: 6
buttons:
close:
slot: 49
material: "BARRIER" # ← O puedes usar...
head: "http://textures.minecraft.net/texture/beb588b21a6f98ad1ff4e085c552dcb050efc9cab427f46048f18fc803475f7" # ← una textura de Minecraft-Heads
name: "<red>Cerrar</red>"
lore:
- "<gray>Cierra el menú"
sell-all:
slot: 51
material: "GOLD_BLOCK"
head: "" # si está vacío usa el material
name: "<yellow>Vender todo</yellow>"
head: "http://textures.minecraft.net/texture/9fd108383dfa5b02e86635609541520e4e158952d68c1c8f8f200ec7e88642d"
lore:
- "<gray>Vende todos tus items"
categories:
blocks:
name: "<c:#15A2DD>BLOQUES DE CONSTRUCCIÓN</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/f91209a21302f764b37060c86062a515f533b1a4f90593653ab23b33bfd7a068"
slot: 10
lore:
- "<gray>Todo tipo de bloques"
- "<gray>para construcción."
- ' '
- <c:#15A2DD>→ <b><u>CLICK</u></b> para explorar</c>
blockscolors:
name: "<c:#FF7222>BLOQUES DE COLORES</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/7a7d6c0accd2e9ccaefa96b9438d6e202fec795acf7072bcfd9cd9d4b5a32b0e"
slot: 11
lore:
- '<gray>Embellece tus construcciones con</gray>'
- '<gray>diferentes colores de bloques.</gray>'
- ' '
- <c:#FF7222>→ <b><u>CLICK</u></b> para explorar</c>
combat_tools:
name: "<c:#7FEFD0>COMBATE & HERRAMIENTAS</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/a8832c1466c841cc79d5f10295d464279967975a2451c7a533c7996897408bea"
slot: 12
lore:
- <gray>¿Necesitas equipo para PvP</gray>
- <gray>o algunas herramientas?</gray>
- ' '
- <c:#7FEFD0>→ <b><u>CLICK</u></b> para explorar</c>
decoration:
name: "<c:#E78A8A>DECORACIÓN</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/55c5a3338b9b2b17f0fcea34584b1370efc9b5b27923902294f03099155215fc"
slot: 13
lore:
- <gray>Decora tus construcciones con</gray>
- <gray>flores, hojas y más!</gray>
- ' '
- <c:#E78A8A>→ <b><u>CLICK</u></b> para explorar</c>
farming:
name: "<c:#FFD05A>AGRICULTURA</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/26459be09998e50abd2ccf4cd383e6b38ab5bc905facb66dce0e14e038ba1968"
slot: 14
lore:
- <gray>Crea tu propio jardín y<gray>
- <gray>comienza a ganar tu dinero.<gray>
- ' '
- <c:#FFD05A>→ <b><u>CLICK</u></b> para explorar</c>
food:
name: "<c:#ABE5A7>COMIDA</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/ca9c8753780ebc39c351da8efd91bce90bd8cca7b511f93e78df75f6615c79a6"
slot: 15
lore:
- "<gray>¡No tengas hambre! Compra"
- "<gray>comida deliciosa y aliméntate."
- ' '
- <c:#ABE5A7>→ <b><u>CLICK</u></b> para explorar</c>
minerales:
name: "<c:#FF5733>MINERALES</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/90bb41a9ed2a6b57464a7938a4ebaf89f3e2a3856da6bff86bb442efc6fe5de5"
slot: 16
lore:
- "<gray>Encuentra y compra minerales"
- "<gray>valiosos para tus proyectos."
- ' '
- <c:#FF5733>→ <b><u>CLICK</u></b> para explorar</c>
miscellaneous:
name: "<c:#DDA0DD>VARIOS</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/4bc355ef41bc9f819260a81e70a7bf2892b29523826ed4d0fa400c58334ccfe0"
slot: 19
lore:
- "<gray>Encuentra una variedad de"
- "<gray>artículos únicos aquí."
- ' '
- <c:#DDA0DD>→ <b><u>CLICK</u></b> para explorar</c>
mob_drops:
name: "<c:#FFA500>BOTÍN DE MOBS</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/6b2feb9f9d867f80ef4fa94136461919666b8d74230d149d5958355f362fe1f3"
slot: 20
lore:
- "<gray>Consigue botines dejados por"
- "<gray>criaturas y mobs."
- ' '
- <c:#FFA500>→ <b><u>CLICK</u></b> para explorar</c>
potions:
name: "<c:#8A2BE2>POCIONES</c>"
material: PLAYER_HEAD
head: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjJiMGExY2EzOTlmMzVkYzU0NTE5YzRjOTk2Zjk2MjlhNTEwYzQ5OTM4MTUxZjc1OWVjOGYwNzA0MWU3ODU2NiJ9fX0="
slot: 21
lore:
- "<gray>Compra pociones mágicas"
- "<gray>para mejorar tus habilidades."
- ' '
- <c:#8A2BE2>→ <b><u>CLICK</u></b> para explorar</c>
redstone:
name: "<c:#FF0000>REDSTONE & MECÁNICAS</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/aea9e885e93f964e0075a75e9ae25cdabda2ffa5d12feedfab0f889b3edbbe6b"
slot: 22
lore:
- "<gray>Explora componentes de"
- "<gray>Redstone y mecánicas."
- ' '
- <c:#FF0000>→ <b><u>CLICK</u></b> para explorar</c>
cabezas:
name: "<c:#FFD700>HEADS & DECORACIONES</c>"
material: PLAYER_HEAD
head: "http://textures.minecraft.net/texture/17661066e036453278d25bf75a305409579e4275e9a043075d5770c7f621f677"
requiredPermission: "qsmarketplus.category.heads"
requiredGroup: "vip_epico"
slot: 23
lore:
- "<gray>Encuentra cabezas decorativas"
- "<gray>y artículos únicos."
- ' '
- <c:#FFD700>→ <b><u>CLICK</u></b> para explorar</c>
---
confirm-menu.yml
Code (yml (Unknown Language)):
menu:
title-buy: "<green>Confirmar compra"
title-sell: "<red>Confirmar venta"
buttons:
back:
enabled: true
slot: 18
material: ARROW
name: "<yellow>Volver"
lore:
- "<gray>Regresar al menú anterior"
confirm:
enabled: true
slot: 11
material: LIME_DYE
name: "<green>aceptar"
head: "http://textures.minecraft.net/texture/a92e31ffb59c90ab08fc9dc1fe26802035a3a47c42fee63423bcdb4262ecb9b6"
lore:
- "<gray>Haz clic para confirmar la acción"
cancel:
enabled: true
slot: 15
material: BARRIER
name: "<red>stop"
head: "http://textures.minecraft.net/texture/beb588b21a6f98ad1ff4e085c552dcb050efc9cab427f46048f18fc803475f7"
lore:
- "<gray>Cerrar el menú sin realizar acción"
---
items-menu.yml
Code (yml (Unknown Language)):
menu:
title: "<gold>{category}</gold> <gray>[{page}/{max}]</gray>"
rows: 6
default-sort: "name" # opciones: name / price_asc / price_desc / none
buttons:
prev-page:
slot: 45
name: "<yellow>Anterior"
head: "http://textures.minecraft.net/texture/de1dfc11a837111d22b001a14461f9a7fc093522f88c58faefd6adeffcd4e9ab" # opcional
material: ARROW # si no hay head
lore:
- "<gray>Página anterior"
next-page:
slot: 53
name: "<yellow>Siguiente"
head: "http://textures.minecraft.net/texture/7c69d41076a8dea4f06d3f1a9ac47cc996988b74a0913ab2ac1a74caf7081918" # vacío → usa material
material: ARROW
lore:
- "<gray>Página siguiente"
sort-asc:
slot: 46
name: "<green>Ordenar Precio ↑"
head: "http://textures.minecraft.net/texture/76a5734eaed02907408dff3e3f2c6efcd35a546c8f0af6c5e952d8cb8a516e82"
material: EMERALD
sort-desc:
slot: 47
name: "<red>Ordenar Precio ↓"
head: "http://textures.minecraft.net/texture/4e8ba7863b15a5e40fa7da9629bb866aa22699553e931df1f693cbb1c9f3b6"
material: REDSTONE
sort-name:
slot: 48
name: "<aqua>Ordenar A-Z"
head: "http://textures.minecraft.net/texture/e815317c936ff01b1fb4fd92ede3b3a0e034379a65edee8a504b202173260aee"
material: BOOK
back:
slot: 49
name: "<red>Volver"
head: ""
material: BARRIER
---
ah_menu.yml
Code (yml (Unknown Language)):
ah:
title: "<gold>Casa de Subasta"
size: 54
background:
material: GRAY_STAINED_GLASS_PANE
name: "<gray> "
grid_slots:
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 37
- 38
- 39
- 40
- 41
- 42
- 43
navigation:
prev:
material: ARROW
name: "<yellow>Página Anterior"
lore: []
slot: 45
close:
material: BARRIER
name: "<red>Cerrar"
lore: []
slot: 49
next:
material: ARROW
name: "<yellow>Página Siguiente"
lore: []
slot: 53
filters:
price_asc:
material: LIGHT_BLUE_DYE
name: "<aqua>Precio Ascendente"
lore: []
slot: 0
tag: "PRICE_ASC"
price_desc:
material: BLUE_DYE
name: "<blue>Precio Descendente"
lore: []
slot: 1
tag: "PRICE_DESC"
only_items:
material: PAPER
name: "<yellow>Solo Items"
lore: []
slot: 2
tag: "ONLY_ITEMS"
only_bulk:
material: CHEST_MINECART
name: "<gold>Solo Cofres"
lore: []
slot: 3
tag: "ONLY_BULK"
none:
material: BARRIER
name: "<red>Quitar Filtros"
lore: []
slot: 4
tag: "NONE"
---
action-menu.yml
Code (yml (Unknown Language)):
menu:
title: "<yellow>Selecciona una acción"
rows: 3
fill-background: true # Rellenar con cristal o no
buttons:
buy:
enabled: true
slot: 11
material: LIME_WOOL
name: "<green>Comprar"
head: "http://textures.minecraft.net/texture/bd005ebbf9817d6928de8bc5f7d1c389276020ac87647d28ab8f99eb39ffde76"
lore:
- "<gray>Comprar este ítem"
# head: "" # opcional
sell:
enabled: true
slot: 15
material: RED_WOOL
name: "<red>Vender"
head: "http://textures.minecraft.net/texture/9fd108383dfa5b02e86635609541520e4e158952d68c1c8f8f200ec7e88642d"
lore:
- "<gray>Vender este ítem"
back:
enabled: true
slot: 22
material: ARROW
name: "<yellow>Volver"
lore: []
---
messages_es.yml
Code (yml (Unknown Language)):
prefix: "<yellow>[QSMarket]</yellow> "
no_money: "<red>No tienes suficiente dinero.</red>"
no_items: "<red>No tienes suficientes ítems.</red>"
not_enough_space: "<red>No tienes espacio en el inventario.</red>"
sell_success: "<green>✔ Vendiste <yellow><amount>x <item></yellow> por <gold>$<money></gold>"
buy_success: "<green>✔ Compraste <yellow><amount>x <item></yellow> por <gold>$<money></gold>"
sell_all_empty: "<yellow>No tienes nada para vender.</yellow>"
sell_all_success: "<green>Vendiste todo por <gold>$<money></gold>"
menu_select_amount: "<green>Selecciona una cantidad</green>"
swapped_no_items: "<red>No tienes items para vender.</red>"
cant_sell: "<red>Este ítem no se puede vender.</red>"
not_stackable: "<yellow>Este ítem no es apilable.</yellow>"
reload_success: "<green>✔ Configuraciones recargadas correctamente.</green>"
#subastas (auction house)
# Auction House Messages
ah_bought: "<green>✔ Compraste <yellow><item></yellow> por <gold>$<money></gold>"
ah_cancelled: "<red>Has cancelado tu subasta.</red>"
ah_no_items: "<yellow>No tienes subastas activas.</yellow>"
ah_title: "<green>Casa de Subastas</green>"
ah_invalid_price: "<red>El precio ingresado no es válido.</red>"
ah_created_single: "<green>✔ Subasta creada:</green> <yellow><item></yellow> por <gold>$<price></gold>"
ah_created_bulk: "<green>✔ Creaste <yellow><count></yellow> subastas por <gold>$<price></gold> cada una.</green>"
ah_price_error: "<red>Debes ingresar un precio válido.</red>"
ah_no_item: "<red>Debes tener un ítem en la mano para subastarlo.</red>"
ah_confirm_title: "<green>Confirmar Subasta</green>"
# ======================================================
# ️ Casa de Subastas — Mensajes (MiniMessage)
# ======================================================
ah_not_your_auction: "<red>¡Esta subasta no te pertenece!</red>"
ah_empty_preview: "<red>Esta subasta no contiene ítems para mostrar.</red>"
ah_error: "<red>Hubo un error al procesar la subasta.</red>"
# ======================================================
# ️ Filtros
# ======================================================
ah_filter_price_asc: "<aqua>Filtro aplicado:</aqua> <yellow>Precio ascendente</yellow>"
ah_filter_price_desc: "<blue>Filtro aplicado:</blue> <yellow>Precio descendente</yellow>"
ah_filter_only_items: "<yellow>Filtro aplicado:</yellow> <white>Solo ítems individuales</white>"
ah_filter_only_bulk: "<gold>Filtro aplicado:</gold> <yellow>Solo subastas masivas</yellow>"
ah_filter_reset: "<red>Se han eliminado todos los filtros.</red>"
# ======================================================
# Navegación
# ======================================================
ah_page_next: "<yellow>Cambiaste a la página siguiente.</yellow>"
ah_page_prev: "<yellow>Cambiaste a la página anterior.</yellow>"
ah_page_invalid: "<red>No hay más páginas para mostrar.</red>"
ah_cannot_buy_own: "<red>No puedes comprar tu propia subasta."
ah_not_found: "<red>Esta subasta ya no existe."
ah_broadcast_header: "<dark_gray><st>-----------------------------</st>"
ah_broadcast_title: "<gold><bold>NUEVA SUBASTA"
ah_broadcast_player: "<yellow>Jugador:</yellow> <white><player>"
ah_broadcast_price: "<yellow>Precio:</yellow> <green><price>"
ah_broadcast_type: "<yellow>Tipo:</yellow> <aqua>Subasta <type>"
ah_broadcast_footer: "<dark_gray><st>-----------------------------</st>"
ah_expired: "<yellow>Tu subasta ha expirado:</yellow> <white><item></white>"
no_permission: "<red>No tienes permiso para hacer esto.</red>"
---
7. Compatibilidad con Ítems Personalizados
QSMarketPlus es 100% compatible con cualquier ítem que contenga datos NBT.
Esto incluye ítems de plugins como:
• ItemsAdder
• Oraxen
• MMOItems
• MythicMobs
• ModelEngine
• Plugins RPG o de texturas personalizadas
El plugin guarda el ítem **exactamente** como es, sin perder propiedades.
8. Integración con Vault
Vault es obligatorio para manejar la economía.
QSMarketPlus funciona con:
• EssentialsX Economy
• CMI Economy
• iConomy (forks)
• PlayerPoints (si está integrado)
• Cualquier economía ligada a Vault
Si Vault no está instalado, el plugin se desactiva automáticamente.
9. Solución de Problemas
• La tienda aparece vacía
→ Añade ítems con /additem o edita items.yml.
• /sell no funciona
→ El ítem debe existir en la tienda y tener un precio de venta.
• No se abre /ah
→ Revisa la consola por errores de configuración.
• Ítems pierden NBT
→ Asegúrate de estar usando Minecraft 1.20+ y que ningún otro plugin modifique ítems al recogerlos.
10. Características en Desarrollo (Beta)
Próximas mejoras planeadas:
- API para desarrolladores.
- Filtros avanzados en /ah.
- Estadísticas por jugador.
- Herramientas de edición masiva para admins.
- Mejoras en la interfaz gráfica.
Soporte
Si necesitas ayuda o quieres sugerir nuevas funciones, puedes contactar al desarrollador.
¡Gracias por usar QSMarketPlus!