1.0.0
Compatibility
Changes
NorrionProject Plugin Core - Changelog v1.0.0
π Initial Release
This is the first stable release of NPPluginCore, the shared PaperMC plugin framework for the NorrionProject MMO ecosystem. It provides core infrastructure used by NPDiscord, NPEnderChest, and NPParties.
β¨ Features
Core Framework
- AbstractProjectPlugin β Base plugin class with unified lifecycle (
onEnableβenable()), NBT API preloading, and language registration - DependencyManager β Declarative soft-dependency checks for other plugins (Vault, MMOCore, MMOItems, etc.)
Data Persistence (data/)
- DataManager β Central registry for all data managers with async save support via
CustomFuture - AbstractManager β Base classes for YAML-based persistence (single-file or directory-per-entity modes)
- YamlBackend β Default YAML storage implementation
- SqlBackend + IDataBackend β NEW: MariaDB/MySQL support with connection pooling (HikariCP)
- CoreConfigManager / CoreConfigData / CoreSqlConfig β Central configuration with SQL toggle
Internationalization (i18n)
- LanguageUtils β Loads JSON translation files from JAR β plugin data folder on first run, registers with NPCore's
I18nHelper - Editable language files β
messages_en.json,messages_fr.json,languages.jsoncopied toplugins/NorrionProject/for server admins to customize - Unified key structure β
norrion-project.plugin-core.<category>.<key>
Command System (command/)
- MainCommand β Advanced command router with:
- Sub-command support with required/optional arguments
- Tab completion for arguments and sub-commands
- Permission handling per command
- Paginated
/helpwithDefaultFontInfo/FontUtilsfor aligned output
- AbstractCommand β Base class declaring main command, sub-commands, arguments, permission, and allowed sender (
AllowSender: PLAYER, CONSOLE, BOTH) - CommandRegister β Central registration utility
Plugin Messaging Channels (pluginchannel/)
- ChannelManager β Registry for pluginβmod (Fabric) communication channels
- ChannelData / ChannelEnum β Type-safe channel definitions with custom
AbstractChannelDataserialization - ModModule β Built-in module handling
norrion:modchannel (player mod presence tracking, quit listener)
Economy Integration
- Vault Economy β Automatic detection and registration via
setupEconomy(), accessible viaNPPluginCore.getEconomy()
NBT Utilities
- NbtUtils β Safe NBT read/write helpers (shadow-relocated
de.tr7zw.nbtapiβfr.norrion.nbtapi) - ListenerUtils β Common event utilities
Inventory & Item Configuration (inventory/)
- InventoryItemConfig / InventoryItemConfigManager β Data-driven item definitions from YAML (material, name, lore, enchantments, NBT, custom model data)
- CoreItems β Registry for core plugin items
- IItemConfigType / AbstractInventory β Type-safe item configuration and paginated inventory base class (added to support
NPPartiesplugin split)
π Bug Fixes
- Fixed NPE in NbtUtils β Guard against null
ItemStackwhen reading NBT (commit4173371)
Made with β€οΈ for the NorrionProject community.
Questions? Open an issue on our Discord.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ZzzRh0Lv:5ZKElgAd"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ZzzRh0Lv:5ZKElgAd"
}

