Skip to content

NextForge-Development/NextCore

Repository files navigation

NextForge Core

A modular core framework for NextForge projects, combining:

  • Data Package – annotation-driven, pluggable persistence with multiple backends.
  • Plugin Framework – annotation-based plugin bootstrap system for NextForge.
  • Dependency Loader – runtime dependency resolution and downloading.

Features

📦 Data Package

  • Backends: MySQL, H2, MongoDB, JSON file storage.
  • Annotation-driven mapping: @DataClass, @PrimaryKey, @Index, @Unique, @Transient.
  • Unified Storage API – same CRUD methods across all backends.
  • Schema management: automatic table creation, schema diffs, index enforcement.
  • Auto UUID generation for entities without IDs on insert.
  • Transactions (JDBC), optional transactions in MongoDB.
  • Parallel I/O for high-throughput batch operations.
  • Atomic JSON writes for file-based persistence.

Full details: 📄 Data Package Documentation


🔌 Plugin Framework

  • @NextForgePlugin annotation for plugin entrypoints.
  • ForgedPlugin base class for easy lifecycle management.
  • Integrated dependency resolution via DependencyLoader & DependencyResolver.
  • Supports runtime dependency downloading from Maven repositories.

📥 Dependency Loader

  • Declarative dependency list via DependencyArtifact and DependencyRepository.
  • Downloads JARs at runtime and loads them into the classpath.
  • Maven-style repository layout supported.
  • Extensible for authentication or alternative storage backends.

Project Structure

src/main/java/gg/nextforge/core
├── data                # Data Package (annotations, model, storage, utils)
│   ├── annotations     # @DataClass, @PrimaryKey, @Index, @Unique, ...
│   ├── model           # BaseEntity
│   ├── storage         # Storage API + backends: JDBC, MySQL, H2, MongoDB, JSON
│   └── util            # Reflection, UUID, Index utilities
├── plugin              # Plugin base and annotation
│   ├── annotation      # @NextForgePlugin and related annotations
│   ├── inject          # Dependency injection framework
│   └── dependency      # Dependency loader and resolver
├── i18n                # Internationalization (i18n) support
└── NextCore.java       # Entry point

Getting Started

Requirements

  • Java 17+
  • Gradle 8.x

Build

./gradlew build

Run Tests

./gradlew test

Documentation

For a detailed guide to the Data Package, including all annotations, backends, schema generation, and index handling, see:
📄 Data Package Documentation
For the Dependency Injection Framework, including how to manage dependencies, and use them, see:
📄 Dependency Injection Documentation
For the language support and i18n system, including how to use the I18n service, see:
📄 I18n Documentation
For our very own sync/async task scheduling system, see:
📄 Task Scheduling Documentation
For the event bus system, including how to register and listen to events, see:
📄 Event Bus Documentation
For the command system, including how to register commands and handle arguments, see:
📄 Command System Documentation


License

MIT – see LICENSE for details.

About

Core library & plugin for nextforge.gg products with the implemented NextLicenses-Client project.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages