Sueta

QuesitoKit

3.6

Permite crear, editar y gestionar kits mediante una interfaz gráfica o comandos.

·Plugin

kits.png
✨ QSkits - Plugin de Kits para Spigot ✨

Versión actual: v3.4 | Compatibilidad: Spigot / Paper 1.21.1+
Autor: QUESITO_ECU | Requiere: Vault + PlaceholderAPI

QSkits es un plugin de kits totalmente configurable para servidores Spigot.
Permite crear, editar y administrar kits fácilmente mediante comandos o una interfaz gráfica intuitiva.
Compatible con Java Edition y Bedrock (Geyser / Floodgate).

---

Últimas Mejoras (v2.0.0)

  • ✔ Compatibilidad con jugadores Bedrock:
    Los menús y submenús ahora son totalmente visibles para usuarios que ingresan desde Bedrock (Geyser / Floodgate), adaptando colores y textos para una visualización correcta.
  • ✔ Submenú dinámico y accesible:
    El sistema de menús se optimizó para mostrar correctamente los kits, su previsualización, y las acciones disponibles según permisos, cooldown y requisitos.
  • ✔ Corrección del kit inicial duplicado:
    El kit de primer ingreso ahora se entrega solo una vez por jugador, incluso tras reinicios del servidor.
  • ✔ Retroalimentación sonora y visual:
    Sonidos y mensajes configurables para cada situación: sin permisos, cooldown, requisitos no cumplidos o éxito al reclamar el kit.
  • ✔ Acciones automáticas en los kits:
    Los kits pueden ejecutar comandos, mostrar títulos, reproducir sonidos y enviar mensajes al ser reclamados.

✨ Una experiencia fluida, personalizable y compatible con todas las plataformas. ✨

---

️ 1. Comandos

  • /qskit - Abre el menú principal de kits.
  • /qskit create <nombre> - Crea un kit con tu inventario actual.
  • /qskit give <nombre> - Reclama un kit.
  • /qskit give <nombre> <jugador> - Da un kit a otro jugador.
  • /qskit delete <nombre> - Elimina un kit existente.
  • /qskit resetcooldown <kit> <jugador> - Resetea el cooldown de un kit.
  • /qskit list - Lista los kits disponibles.
  • /qskit reload - Recarga la configuración.
  • /qskit help - Muestra esta ayuda.

---

2. Permisos

  • qskit.use: Permite abrir el menú principal.
  • qskit.create: Crear kits.
  • qskit.edit: Editar kits desde la GUI.
  • qskit.give: Reclamar kits.
  • qskit.give.others: Dar kits a otros jugadores.
  • qskit.resetcooldown: Resetear cooldowns.
  • qskit.list: Listar kits.
  • qskit.help: Ver ayuda.
  • qskit.nocooldown: Ignorar cooldowns.
  • qskit.reload: Recargar el plugin.
  • qskit.delete: Eliminar kits.

---

⚙️ 3. Ejemplo de Configuración de Kit (normal.yml)

Ejemplo básico de kit
cooldown: 3600 # tiempo en segundos
permission_required: false
price: 20.0
display:
  can_use:
    material: CHEST
    name: '&anormal Kit (Disponible)'
    lore:
    - '&fPuedes reclamar este kit.'
  no_permission:
    material: BARRIER
    name: '&cnormal Kit (Sin permiso)'
    lore:
    - '&fNo tienes permiso para usar este kit.'
  on_cooldown:
    material: TNT
    name: '&enormal Kit (En cooldown)'
    lore:
    - '&fDebes esperar %time% para reclamar este kit nuevamente.'
items:
  '2':
    type: NETHERITE_SWORD
    amount: 1
    enchants:
      sharpness: 10
  '3':
    type: REDSTONE_BLOCK
    amount: 64

---

⚡ 3.1 Ejemplo Avanzado de Kit (vip.yml)
Este ejemplo muestra cómo configurar un kit con requisitos, acciones automáticas y visualización avanzada.

Ejemplo completo de vip.yml
cooldown: 2592000 # 30 días
permission_required: true
requirements:
  '%player_level%':
    value: 6
    name: '&e➤ &a&lNivel'

display:
  can_use:
    material: CHEST
    name: '&aVip Kit (Disponible)'
    lore:
    - '&fPuedes reclamar este kit.'
  no_permission:
    material: BARRIER
    name: '&cVip Kit (Sin permiso)'
    lore:
    - '&fNo tienes permiso para usar este kit.'
  on_cooldown:
    material: TNT
    name: '&eVip Kit (En espera)'
    lore:
    - '&c&lDebes esperar %time%'
    - '&c&lpara reclamar este kit nuevamente.'
  on_requirements:
    material: REDSTONE
    name: '&6&lKit Vip'
    lore:
    - '&cRequerimientos:'
    - '&7Nivel mínimo requerido: &e6'

actions:
  - '[console] xp take %player% 6l'
  - '[player] me ha reclamado el kit %kit%'
  - '[message] &aHas recibido el kit &e%kit%!'
  - '[title] &6¡Kit %kit%!;&eDisfrútalo!'
  - '[sound] ENTITY_PLAYER_LEVELUP,1,1'

items:
  '0':
    type: IRON_INGOT
    amount: 64
  '1':
    type: GOLD_INGOT
    amount: 64
  '2':
    type: ENCHANTED_GOLDEN_APPLE
    amount: 4
  • cooldown: Tiempo que debe esperar el jugador antes de volver a reclamar el kit.
  • requirements: Requisitos personalizados usando PlaceholderAPI (por ejemplo, nivel del jugador).
  • display: Define la apariencia del kit en el menú según el estado del jugador.
  • actions: Permite ejecutar comandos, sonidos, mensajes o títulos al reclamar el kit.
  • items: Lista de objetos que el kit entrega.

---

4. Menús Configurables (menu.yml)

El archivo menu.yml permite personalizar completamente cómo se mostrarán los menús de kits.
Cada menú puede tener su propio título, tamaño, botones de navegación, decoraciones (fillers) y los kits que aparecerán en él.
Puedes crear diferentes menús para categorías como “Kits Normales”, “Kits VIP” o “Kits Especiales”.

  • buttons: Botones que permiten navegar entre menús (usa `opens_menu` para vincularlos).
  • fillers: Decoraciones visuales que rellenan espacios vacíos del inventario.
  • kits: Asigna kits a slots específicos dentro del menú.

Recomendaciones:
- Usa nombres de menú en formato menu_nombre para mantenerlos organizados.
- No dejes espacios vacíos entre secciones ni alteres la indentación YAML.
- Los menús se actualizan automáticamente al recargar el plugin con `/qskit reload`.
- Puedes editar visualmente la posición de los kits con `/kit edit <nombre>`.

---

Ejemplo: Crear un nuevo menú legendario
menu_legendario:
  title: '            &6Menú de Kits Legendario'
  size: 54
  buttons:
    - material: DIAMOND
      name: '&bIr a Menú VIP'
      slot: 50
      opens_menu: menu_vip
    - material: GOLD_INGOT
      name: '&6Ir a Menú Especial'
      slot: 51
      opens_menu: menu_especial

  fillers:
    - material: BLACK_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
    - material: BLUE_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 9
        - 17
        - 18
        - 26
        - 27
    - material: RED_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 35
        - 36
        - 44
        - 45
        - 46
        - 47
        - 48
        - 49
        - 50
        - 51
        - 52
        - 53

  kits:
    normal: 10

---

Ejemplo completo del menu.yml
menu:
  title: '            &6Menú de Kits'
  size: 54
  buttons:
    - material: DIAMOND
      name: '&bIr a Menú VIP'
      slot: 50
      opens_menu: menu_vip
    - material: GOLD_INGOT
      name: '&6Ir a Menú Especial'
      slot: 51
      opens_menu: menu_especial

  fillers:
    - material: BLACK_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
    - material: BLUE_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 9
        - 17
        - 18
        - 26
        - 27
    - material: RED_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 35
        - 36
        - 44
        - 45
        - 46
        - 47
        - 48
        - 49
        - 50
        - 51
        - 52
        - 53

  kits:
    normal: 10

# Menú de Kits VIP
menu_vip:
  title: '         &bMenú de Kits VIP'
  size: 54
  buttons:
    - material: DIAMOND
      name: '&bIr a Menú Especial'
      slot: 50
      opens_menu: menu_especial
    - material: GOLD_INGOT
      name: '&6Ir a Menú Normal'
      slot: 51
      opens_menu: menu

  fillers:
    - material: BLACK_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
    - material: BLUE_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 9
        - 17
        - 18
        - 26
        - 27
    - material: RED_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 35
        - 36
        - 44
        - 45
        - 46
        - 47
        - 48
        - 49
        - 50
        - 51
        - 52
        - 53

  kits:
    vip: 10

# Menú de Kits Especiales
menu_especial:
  title: '         &bMenú de Kits Especial'
  size: 54
  buttons:
    - material: DIAMOND
      name: '&bIr a Menú VIP'
      slot: 50
      opens_menu: menu_vip
    - material: GOLD_INGOT
      name: '&6Ir a Menú Normal'
      slot: 51
      opens_menu: menu

  fillers:
    - material: BLACK_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
    - material: BLUE_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 9
        - 17
        - 18
        - 26
        - 27
    - material: RED_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 35
        - 36
        - 44
        - 45
        - 46
        - 47
        - 48
        - 49
        - 50
        - 51
        - 52
        - 53

  kits:
    campesino: 10

# Previsualización de kits
preview:
  title: '&aPrevisualización de Kit: &e%kit%'
  size: 54
  fillers:
    - material: GRAY_STAINED_GLASS_PANE
      name: ' '
      slots:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 45
        - 46
        - 47
        - 48
        - 49
        - 50
        - 51
        - 52
  close_button:
    material: BARRIER
    name: '&cCerrar Previsualización'
    slot: 53

---

✨ Los menús son completamente personalizables: cambia materiales, colores, títulos y organiza tus kits de la manera que prefieras. ✨

---

5. Mensajes Personalizables (mensajes.yml)

Todos los mensajes de QSkits se pueden traducir y personalizar libremente desde el archivo mensajes.yml.
Puedes usar códigos de color de Minecraft (& o §) y placeholders especiales para mostrar información dinámica.

  • Archivo: plugins/QSkits/mensajes.yml
  • Colores soportados: usa los códigos &a, &b, &c, etc. (ver sección de colores más arriba)
  • ️ Placeholders disponibles:
    %kit%, %time%, %player%, %required%, %free%, %price%, %slot%, %menu%

Consejo:
Usa un estilo coherente con el tema de tu servidor. Puedes añadir íconos, emojis y colores para hacerlo más visual.

---

Ejemplo completo de mensajes.yml
#  Mensajes Personalizables de QSkits
# Placeholders disponibles: %kit%, %time%, %player%, %required%, %free%, %price%, %slot%, %menu%

kit_cooldown_sender: "&cEl jugador %player% debe esperar %time% antes de recibir este kit."
kit_cooldown_target: "&cDebes esperar %time% para volver a usar este kit."
kit_no_space_sender: "&cEl jugador %player% no tiene suficiente espacio para el kit."
kit_no_space_target: "&cNo tienes suficiente espacio en tu inventario."
kit_given_sender: "&aLe diste el kit &6%kit% &aa &e%player%."
kit_given_target: "&aHas recibido el kit &6%kit%!"
no_permission: "&c❌ No tienes permiso para usar este kit."
cooldown: "&e⏳ Este kit está en cooldown, debes esperar %time%."
kit_given: "&a✅ Has recibido el kit &e%kit% &acorresctamente."
kit_not_found: "&c❌ Kit no encontrado: &e%kit%"
no_inventory_space: "&cNo tienes suficiente espacio en tu inventario. Requiere %required% espacios, tienes %free%."
no_money: "&c❌ No tienes suficiente dinero para reclamar este kit. Precio: $%price%"
paid_kit: "&a Has pagado $%price% por el kit."
slot_occupied: "&c❌ El slot %slot% ya está ocupado por el kit '%kit%' en '%menu%'."
kit_updated: "&a✅ Kit '%kit%' actualizado al slot %slot% en '%menu%'."
slot_out_of_range: "&c❌ El slot debe estar entre 0 y 53."
slot_occupie: "&c❌ El slot %slot% ya está ocupado por el kit '%kit%'."
prompt_enter_slot: "&e✏ Escribe el nuevo slot para el kit (0-53):"
no_free_slots: "&c❌ No hay slots libres disponibles en el menú."
ask_use_next_free: "&e¿Quieres usar el siguiente slot libre: %slot%? (&aSí✅&e / &cNo❌)"
slot_updated: "&a✅ Slot actualizado a: %slot%."
operation_cancelled: "&c❌ Operación cancelada."
invalid_number: "&c❌ Eso no es un número válido."
kit_saved: "&a Kit %kit% guardado correctamente."
prompt_enter_price: "&e Escribe el nuevo precio para el kit:"
invalid_price: "&c❌ Precio inválido. Debe ser un número positivo."
price_updated: "&a✅ Precio actualizado a %price%."
prompt_enter_cooldown: "&e⏱ Escribe el nuevo cooldown para el kit (ejemplo: 1d, 1h, 10s):"
invalid_cooldown_format: "&c❌ Formato inválido. Intenta de nuevo (ejemplo: 1d, 1h, 10s)"
cooldown_updated: "&a✅ Cooldown actualizado a &e%cooldown% &asegundos."

---

Recomendaciones de uso:

  • No elimines variables entre “%” (por ejemplo, %kit% o %time%), ya que el plugin las reemplaza dinámicamente.
  • Puedes agregar emojis o caracteres unicode para hacerlo más vistoso.
  • Todos los mensajes se pueden recargar sin reiniciar el servidor usando `/qskit reload`.
  • Usa `mensajes.yml` para mantener una comunicación coherente y temática con tu servidor.

✨ Personaliza los mensajes para crear una experiencia única adaptada al estilo de tu comunidad. ✨

---

6. Notas
- Usa `/qskit edit` para configurar kits desde una interfaz visual.
- Compatible con PlaceholderAPI, Vault y Geyser.
- Todos los menús son 100% personalizables.
- Incluye soporte para acciones automáticas, sonidos y títulos.

---

Soporte y Comunidad
¿Tienes dudas o sugerencias? Únete a nuestro Discord oficial:
➡ ¡Unirse al servidor de soporte! ⬅

⭐ No olvides dejar tu reseña en SpigotMC si disfrutas de QSkits. ¡Tu apoyo ayuda al desarrollo! ⭐

Similar projects

Plugin →