Skip to content
AeroCraftNetworkPublic

About

Sistema de quests modular para Paper/Purpur 1.20.5+

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

QuestCore

Sistema de quests modular y escalable para servidores de Minecraft Java Edition (Paper / Purpur 1.20.5+), diseñado desde cero para networks multi-servidor y administración profesional.

Características principales

  • Arquitectura desacoplada: motor basado en triggers genéricos. Los listeners de Bukkit y de plugins externos solo traducen eventos; el core no conoce a Bukkit directamente.
  • Storage dual: soporte nativo para MySQL/MariaDB (con HikariCP) y SQLite. Switch en una línea de config.
  • Sync cross-server opcional vía Redis pub/sub para networks multi-instancia.
  • Editor in-game completo: crea y modifica quests desde una GUI sin tocar YAMLs. Stages, objetivos, recompensas y condiciones — todo editable visualmente.
  • HUD lateral en tiempo real: cada jugador ve sus quests activas y el progreso de cada objetivo.
  • Notificación de completado: título grande en pantalla + sonido. Editable por quest desde la GUI admin.
  • Integraciones oficiales:
    • MythicMobs 5.x: kill, damage, spawn, interact, loot — todos los eventos cubiertos.
    • Citizens 2.x: objetivos por click en NPC, búsqueda por ID o nombre.
    • Vault: recompensas de dinero.
    • PlaceholderAPI y WorldGuard: preparado para integraciones futuras.
  • 15 tipos de objetivos y 8 tipos de recompensas disponibles de fábrica, todos extensibles.
  • Categorías, stages, chains, daily, weekly, repeatable, cooldowns: el modelo de quests cubre prácticamente cualquier caso.
  • GUI para jugadores con navegación completa: categorías, daily/weekly, quests activas, paginación, indicadores de progreso.
  • API pública estable para que otros plugins reporten triggers custom.

Versión actual

v1.2.0 — Editor in-game completo, integración Citizens, HUD lateral, notificación de completado, mejoras de navegación.

Consulta CHANGELOG.md para el historial completo.

Requisitos del servidor

Componente Versión
Servidor PaperMC 1.20.5+ o Purpur 1.20.5+
Java 21 LTS
Base de datos MySQL 5.7+ / MariaDB 10.3+ / SQLite (incluido)
Redis (opcional) 6.0+
MythicMobs (opcional) 5.x
Citizens (opcional) 2.x
Vault (opcional) cualquier versión moderna

Instalación rápida

  1. Descarga el .jar desde la sección Releases o compílalo con Gradle.
  2. Copia QuestCore-X.X.X-all.jar a la carpeta plugins/ del servidor.
  3. Inicia el servidor para que genere la configuración.
  4. Configura el storage en plugins/QuestCore/config.yml. Por defecto usa SQLite (sin requisitos adicionales).
  5. Reinicia el servidor.
  6. Verifica con /plugins que QuestCore aparezca en verde.

Compilación desde código fuente

git clone https://github.com/TU_USUARIO/QuestCore.git
cd QuestCore
./gradlew shadowJar

El .jar final aparece en build/libs/QuestCore-X.X.X-all.jar.

Comandos principales

Comando Función Permiso
/quests Abre la GUI principal de quests questcore.use
/quests start <id> Inicia una quest específica questcore.use
/quests abandon <id> Abandona una quest activa questcore.use
/quests hud Activa/desactiva el HUD lateral questcore.use
/quests reload Recarga config y quests questcore.admin
/qcadmin Abre el editor in-game de quests questcore.admin

Estructura del proyecto

src/main/java/com/questcore/
 ├── api/             Interfaces públicas para integraciones externas
 ├── core/            Plugin main, registry, trigger bus, service
 ├── storage/         MySQL + SQLite + HikariCP
 ├── cache/           Cache Caffeine de progreso por jugador
 ├── sync/            Redis pub/sub para cross-server
 ├── network/         Identificación de nodo
 ├── listeners/       Bridges Bukkit → TriggerBus
 ├── quests/          Modelos Quest, Stage, Category, loader, daily mgr
 ├── objectives/      Interface + 15 implementaciones
 ├── rewards/         Interface + 8 implementaciones
 ├── conditions/      Interface + implementaciones (world, permission)
 ├── gui/             GUI de jugador (categorías, daily, activas)
 ├── editor/          Editor in-game admin (drafts + GUIs anidadas)
 ├── hud/             Scoreboard sidebar con quests activas
 ├── events/          Eventos custom Bukkit
 ├── integrations/    MythicMobs + Citizens hooks
 ├── commands/        /quests + /qcadmin
 └── util/            Adventure helpers, ItemBuilder, ResourceUpdater, CompletionNotifier

Ejemplo de quest (YAML)

quests:
  boss_lich:
    display: "El Lich Resurge"
    lore:
      - "<gray>Detén su despertar antes que sea tarde."
    category: bosses
    type: WEEKLY
    auto-claim: true
    completion-title: "<rainbow><b>VICTORIA ÉPICA!</b>"
    completion-subtitle: "<gold>Derrotaste al Lich"
    stages:
      main:
        display: "Mata al Lich"
        objectives:
          kill:
            type: mythic_kill
            mob_id: LichBoss
            min_level: 50
            required: 1
            worlds: [dungeon_world]
    rewards:
      - type: mythic_item
        item_id: ExcaliburMythic
        amount: 1
      - type: money
        amount: 5000
    conditions:
      - type: permission
        permission: vip.dungeon

API pública (para desarrolladores)

import com.questcore.api.NetworkQuestsAPI;
import com.questcore.api.QuestService;

QuestService quests = NetworkQuestsAPI.getService();
quests.pushCustomTrigger(player.getUniqueId(), "dungeon_completed",
        Map.of("dungeon_id", "lich_castle", "difficulty", "hard"));

Eso dispara cualquier quest cuyo objetivo sea type: custom, key: "dungeon_completed".

Licencia

Este proyecto está bajo licencia MIT. Consulta LICENSE para los detalles.

Contribuciones

Pull requests bienvenidos. Para cambios mayores, abre primero un issue describiendo qué quieres cambiar.

Soporte

  • Issues: usa el sistema de Issues de GitHub.
  • Releases: descarga la última versión estable desde la sección Releases.

About

Sistema de quests modular para Paper/Purpur 1.20.5+

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages