Skip to content

๐ŸŽฎ NDCore v3.0.2

Latest
Compare
Choose a tag to compare
@mtctx mtctx released this 18 Apr 01:18
· 15 commits to master since this release
ed57a27

๐ŸŽฏ Release Overview

Version 3.0.2 refactors SimpleMenu to be an abstract class, improves title handling with Component support, and updates project configuration.

๐Ÿš€ Key Changes

  • Menu System Improvements:

    • Refactored SimpleMenu to be an abstract class, ensuring onSetItems() must be implemented by subclasses.
    • Added overloaded constructors to handle both String and Component titles.
    • Integrated TextBuilder for string colorization in title handling.
    • Improved type safety and null checking in menu implementations.
  • Build Configuration Updates:

    • Updated project version to 3.0.2.
    • Moved finalName from plugin configuration to build settings for better Maven compatibility.
  • Enhanced Logging System (Merged from Lumina):

    • Integrated the Lumina logging project directly into NDCore for streamlined dependency management.
    • Introduced NDLogger with multiple logging levels (INFO, WARN, ERROR, FATAL).
    • Implemented LoggingStrategy interface for customizable logging behavior.
    • Added DefaultLoggingStrategy with color-coded console output and organized log files.
    • Deprecated standard getLogger() method in favor of the new logger() method.
  • Command Registration System:

    • Added new commands package with CommandRegistrar and NDCommand classes.
    • Implemented reflection-based command registration without requiring plugin.yml entries.
    • Integrated command registration into the NDPlugin lifecycle.
    • Added fluent API for registering multiple commands.
  • JSON Configuration Support:

    • Added JSONConfiguration class for JSON-based configuration files.
    • Implemented full compatibility with Bukkit's configuration API.
    • Added pretty printing options for human-readable JSON output.
  • Improved Plugin Instance Retrieval:

    • Added getNDPlugin(Class<T> clazz) method for more convenient NDPlugin instance retrieval.
    • Enhanced type safety with proper casting to NDPlugin.
  • Null Safety Enhancements:

    • Added JetBrains annotations (@NotNull) throughout the codebase.
    • Improved null checking with Objects.requireNonNull() in constructors.
    • Enhanced parameter validation for better error handling.

๐Ÿ“ฆ Installation

  1. Download NDCore-3.0.2.jar
  2. Place the JAR file in your server's plugins folder
  3. Restart your server
  4. The plugin will load automatically as a dependency

๐Ÿ’ป For Developers

For comprehensive documentation on how to use NDCore, please refer to the Introduction in the
usage directory.

To use NDCore as a dependency, add the following to your plugin.yml:

depend: [NDCore]

and import it via maven central:

Gradle
implementation 'dev.nelmin.minecraft:core-paper:3.0.2'
Gradle (Kotlin)
implementation("dev.nelmin.minecraft:core-paper:3.0.2")
Maven
<dependency>
    <groupId>dev.nelmin.minecraft</groupId>
    <artifactId>core-paper</artifactId>
    <version>3.0.2</version>
</dependency>

๐Ÿ“Œ System Requirements

  • Java 21 or higher
  • Compatible with PaperMC 1.21.4 or higher