๐ฏ 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, ensuringonSetItems()
must be implemented by subclasses. - Added overloaded constructors to handle both
String
andComponent
titles. - Integrated
TextBuilder
for string colorization in title handling. - Improved type safety and null checking in menu implementations.
- Refactored
-
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 newlogger()
method.
-
Command Registration System:
- Added new
commands
package withCommandRegistrar
andNDCommand
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.
- Added new
-
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.
- Added
-
Improved Plugin Instance Retrieval:
- Added
getNDPlugin(Class<T> clazz)
method for more convenient NDPlugin instance retrieval. - Enhanced type safety with proper casting to NDPlugin.
- Added
-
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
- Download NDCore-3.0.2.jar
- Place the JAR file in your server's
plugins
folder - Restart your server
- 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