Elysium (BattleWorld Core)

Elysium es el plugin principal (Core) diseñado específicamente para el servidor BattleWorld RPG. Este plugin centraliza mecánicas esenciales, utilidades de moderación, sistemas de teletransporte y personalización de chat bajo una misma arquitectura eficiente y conectada a MySQL.

Características Principales

1. Sistema de Sanciones (Bans) Avanzado

2. Modo Mantenimiento

3. Control de Chat

4. Teletransportes y Warps

5. Economía (Soporte Vault)

6. Sistema de Kits (FacelessMenus)

7. Mensajería Privada y Auto-Anuncios

8. Utilidades Básicas y MOTD


Comandos y Permisos

Comando Descripción Permiso
/ban <jugador> [motivo] Banea permanentemente. elysium.command.ban
/tempban <jugador> <tiempo> [motivo] Banea temporalmente (ej. 1d, 12h). elysium.command.tempban
/unban <jugador> Levanta cualquier sanción. elysium.command.unban
/maintenance <on/off> Activa/Desactiva el mantenimiento. elysium.maintenance.admin
(Entrada) Entrar durante mantenimiento. elysium.maintenance.bypass
/spawn Viajar al punto de aparición. elysium.command.spawn
/setspawn Establecer el punto de aparición. elysium.command.setspawn
/warp <nombre> Viajar a un warp. elysium.command.warp
/setwarp <nombre> Crear un warp. elysium.command.setwarp
/tpa <jugador> Enviar petición de teletransporte. elysium.command.tpa
/tpaccept Aceptar petición de teletransporte. elysium.command.tpaccept
/tpdeny Denegar petición de teletransporte. elysium.command.tpdeny
/fly Alternar vuelo. elysium.command.fly
/heal Curar vida y estado. elysium.command.heal
/feed Llenar barra de hambre. elysium.command.feed
/gm <modo> Cambiar modo de juego (0, 1, 2, 3). elysium.command.gamemode
/money Ver tu dinero o el de otro. elysium.command.money
/money <pay/give/take/set> Gestionar dinero. elysium.command.money.admin
/money top Ver los jugadores más ricos. elysium.command.money
/msg <jugador> <mensaje> Enviar mensaje privado. elysium.command.msg
/reply <mensaje> Responder mensaje privado. elysium.command.reply
/kit Abrir menú de kits. elysium.command.kit
/kitadmin Comando base de admin kits. elysium.command.kitadmin

Dependencias

Configuración Base de Datos

El plugin requiere obligatoriamente estar conectado a una base de datos MySQL mediante un pool de conexiones optimizado (HikariCP). Revisa tu config.yml para introducir tus credenciales (host, port, user, password, database).

Optimización de Arranque: El plugin creará y gestionará las tablas necesarias utilizando transacciones en lote (executeBatch()), reduciendo la latencia de inicio al mínimo.

Tablas Generadas Automáticamente

  1. elysium_spawn: Almacena las coordenadas del spawn principal (world, x, y, z, yaw, pitch).
  2. elysium_homes: Almacena los hogares (/home) de los jugadores por UUID.
  3. elysium_economy: Tabla base para el sistema de economía asíncrona.
  4. elysium_kits: Almacena los tiempos de reutilización (cooldowns) de los kits por UUID.

📝 Creación de Menús (Tutorial Fácil)

¡Crear menús nunca fue tan sencillo! El sistema de menús de Elysium (basado en FacelessMenus) está diseñado para ser 100% compatible con los menús de Axioma. Es decir, si ya tenías menús hechos en Axioma, solo pégalos en la nueva carpeta y funcionarán sin tocar absolutamente nada.

Si quieres crear un menú nuevo, sigue estos pasos explicados para principiantes:

Paso 1: Crea el archivo

Ve a la carpeta plugins/Elysium/menus/. Crea un archivo de texto nuevo y ponle el nombre que quieras, por ejemplo tienda.yml. El comando para abrirlo dentro del juego será el nombre del archivo: /menu tienda.

Paso 2: Configura la ventana

Abre tu archivo tienda.yml y empieza escribiendo el título de la ventana y su tamaño:

menu_title: "<#0097D8>Mi Tienda Genial" # El texto que sale arriba del cofre (Acepta colores HEX)
size: 27 # Tamaño del menú. Debe ser múltiplo de 9 (9, 18, 27, 36, 45, o 54)

Paso 3: Agrega los ítems

A continuación, escribe items: y debajo puedes ir poniendo todos los objetos que quieras. Aquí tienes una plantilla para que la copies, pegues y modifiques a tu gusto:

items:
  boton_comprar: # Esto es solo un nombre interno, ponle como quieras
    slot: 13 # El espacio en el que va a ir (del 0 al tamaño que pusiste menos 1)
    material: "DIAMOND" # ¿Qué objeto es? (Ej: DIAMOND, STONE, IRON_SWORD)
    display_name: "<#83CA16>¡Comprar 1 Diamante!" # Nombre visible del ítem
    lore: # La descripción que sale al pasar el ratón por encima
      - "&7Pulsa aquí para recibir"
      - "&7tu diamante gratis."
      - ""
      - "&e¡Hola %player_name%!" # ¡Puedes usar variables de PlaceholderAPI!
      
    # Acciones que ocurren cuando el jugador le da click al ítem:
    click_commands:
      - "[console] eco give %player% 100" # Ejecuta un comando desde la consola
      - "[player] spawn" # Hace que el jugador ejecute un comando
      - "[message] <#83CA16>¡Toma tu regalo!" # Le manda un mensaje al chat
      - "[sound] ENTITY_PLAYER_LEVELUP" # Suena un sonido (nombres de sonido de Minecraft)
      - "[close]" # Cierra el menú al terminar

🧠 Trucos y Posibilidades Extra

  1. Cabezas de Jugadores: Si en material: pones "HEAD-%PLAYER_NAME%", el ítem será la cabeza real del jugador que esté mirando el menú.

  2. Cabezas Personalizadas (Custom Heads): Si tienes el código Base64 de una cabeza de internet (como las de Minecraft-Heads), puedes ponerlo así: material: "BASEHEAD-eyJ0ZXh0dXJlcyI6... (todo el código)"

  3. Copiar el mismo ítem en varios huecos (Slots): Si quieres hacer un borde de cristal, en lugar de copiar el ítem 20 veces, usa slots (en plural) y pon los números entre corchetes: slots: [0, 1, 2, 3, 4, 5, 6, 7, 8]

  4. Botón para abrir otro menú: En tus click_commands, pon [openmenu] nombre_del_archivo. Ejemplo: [openmenu] reglas (cerrará el actual y abrirá el archivo reglas.yml).

  5. Cobrar dinero por dar click: Si quieres que el botón cueste dinero real del juego, añade este bloque justo encima de click_commands:

     click_requirement:
       type: "has_money"
       amount: 500.0 # Precio en dinero
       deny_commands: # Qué pasa si el jugador NO tiene esos 500
         - "[message] <#D92625>No tienes dinero suficiente, ¡pobre!"
         - "[sound] ENTITY_VILLAGER_NO"
    

PlaceholderAPI (PAPI)

Elysium cuenta con su propio módulo integrado de PlaceholderAPI (elysium). A continuación se detallan las variables que puedes usar en menús, hologramas, Scoreboards, etc.

Placeholder Descripción Ejemplo de Salida
%elysium_balance% Muestra el dinero en número puro (sin símbolo). 1500.50
%elysium_balance_formatted% Muestra el dinero incluyendo el símbolo ($). $1500.50
%elysium_baltop_name_<N>% Nombre del jugador en el Top <N>. fac3l
%elysium_baltop_balance_<N>% Saldo (puro) del jugador en el Top <N>. 1500.50
%elysium_baltop_balance_formatted_<N>% Saldo (formateado) del jugador en el Top <N>. $1500.50

Nota: Reemplaza <N> por un número del 1 al 10 (ej. %elysium_baltop_name_1%).