Tags
Creators
Details
1.1.0
Compatibility
Changes
π§ Architecture & Design
-
Centralized Utility APIs β MessageUtils, ColorUtils, ItemBuilder provide DRY, reusable patterns.
-
Singleton-safe plugin access β consistent use of getInstance() for global plugin reference.
-
Separation of concerns β clearly segmented managers (HeartManager, BanManager, etc.) avoid bloated main class.
-
Graceful failover & shutdown β plugin disables on fatal error; database and recipes properly closed.
-
Dynamic command delegation β uses executor-permission binding; fallback warnings for missing entries.
βοΈ Code Quality & Safety
-
Null safety added β guards against null messages, lists, strings, ItemMeta, etc.
-
Cloning of mutable objects β avoids returning internal ItemStack references directly.
-
Input validation β amount clamped (1β64), tier limited (1β5), keys checked.
-
Regex matching via Matcher.appendReplacement() β safe and efficient HEX color parsing.
-
Safe config fallback β missing lang keys gracefully return default with warning.
π Performance Improvements
-
Efficient string coloring β reused helper for batch lore coloring reduces overhead.
-
Deferred meta setting β avoids redundant operations on ItemMeta.
-
Command tab completer registered conditionally β avoids NPE if command is missing.
π Documentation & Readability
-
Full JavaDocs added β method-level docs explain parameters, return values, and side effects.
-
Consistent naming and formatting β fluent, descriptive method and variable names.
-
Simplified logging interface β log(String) method wraps colored console output.
π¨ Error Handling & Logging
-
Fallback logs for lang keys β warns when translation keys are missing.
-
Structured exception logging β prints full stack trace on startup failure.
-
Invalid hex codes skipped silently β prevents plugin crash from user config errors.
π§© Extensibility Support
-
Lore overloads and builder extensibility β builder pattern allows for chaining, expansion (e.g., enchantments).
-
Formatted string retrieval in LangManager β supports runtime placeholders with String.format(...).
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:pZ4D6mrk:dTeSSUul"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:pZ4D6mrk:dTeSSUul"
}

