Tags
Creators
Details
1.2.3
Compatibility
Changes
š SinceEnchantments - Changelog v1.2.3 (Official Release)
Full compilation of critical bug fixes, cross-plugin integrations, native multi-threading support, and a complete overhaul of the random book system.
ā” Critical Bug Fixes & Core Enhancements
š§© 1.21 Data Components & Cache Alignment
- Texture Overwrite Bug Fix: Resolved a critical cache collision bug in
ItemPacketListenercaused by Minecraft 1.21 Data Components (item_modelandcustom_model_data) failing to be uniquely identified by raw NBT hashing. The packet listener now perfectly identifies and renders independent custom item textures. - Packet Lore Cache Tuning: Added configurable packet lore cache settings directly in
settings.ymland enforced cache clearing during plugin shutdown to prevent stale memory references and memory leaks. - Enchantment Slots Lore Fix: Fixed an issue where the enchantment slots lore text would still erroneously display even if the remaining enchantment slot count was less than or equal to 0.
āļø Hardcode Extraction & Configuration Flexibility
- Configurable Command Aliases: Moved
List.of("se", "sinceenchant")out of core hardcoding. You can now cleanly define your own command aliases insettings.yml. - Dynamic Enchantable Material System: Moved
isEnchantableGearmaterial criteria entirely intosettings.ymlundersettings.enchantable-gear-suffixesandsettings.enchantable-gear-exact, unlocking complete sandbox customization for custom server gear. - Code Hardening: Shifted all inline Fully Qualified Class Names (FQCN) to standard top-file imports and documented previously obscured logic with clean, explanatory English Javadoc blocks.
š Native Folia & Performance Support
- Thread-Safe Scheduler Routing: Added full Folia support by safely routing player-bound delayed tasks through region-aware schedulers rather than the global server thread.
- Metadata Alignment: Added
folia-supported: trueflags to the Paper plugin boot metadata. - Task Guard Hardening: Eliminated stuck-state and infinite-loop edge-case risks within the
ExcavatorandThunderenchantment safety guards. - Constant Consolidation: Relocated distributed
PersistentDataContainernamespace keys into a centralized, static constants layout for fast indexing.
š¤ Ecosystem Extensions & Cross-Plugin Hooks
š Third-Party Custom Enchantments Compatibility
- AdvancedEnchantments & CrazyEnchantments Fixes: Resolved an issue where external custom enchantments from other active plugins failed to load, register, or apply correctly onto items.
- Unified Registry Ingestion: Remapped the backend loader to ensure third-party enchantments register correctly into the local engine, making them accessible to standard commands and packet listeners.
š Native ExcellentEnchants API Integration
- API Hooking: Implemented a non-reflective, native API hook for
ExcellentEnchants. Added explicit compile-time Gradle dependencies forsu.nightexpress.excellentenchants:Core:5.4.3andsu.nightexpress.nightcore:main:2.16.2. - Metadata Auto-Registration: Reads registered entries via
EnchantRegistry.getRegistered()to auto-injectexcellentenchants:<id>metadata for runtime book creation, lore mapping, tab completion, and random filtering. - Best-Effort Profile Parsing: Dynamically reads configuration files directly from
plugins/ExcellentEnchants/enchants, falling back safely to the native Bukkit enchantment registry for fallback max levels and item applicability limits. - Dynamic Description Overrides: Introduced a customizable description array for dynamic ExcellentEnchants listings inside
settings.yml:settings: ee-default-description: - "&7Special effect from" - "&7ExcellentEnchants."
š Complete Random Book System Overhaul
š² Advanced Filtered Generation Command
- New Command Structure: Introduced a dedicated random enchantment book generator command packed with combinable logic filters:
/se giverandombook <player> [options]
-
Engine Arguments & Filters:
-
-level:<number>- Forces the book to a specific level, ignoring enchantments whose maximum design level falls below this value. -
-rarity:<rarity>- Limits selections strictly to enchantments matching specific rarity metadata tags. -
-target:<target>- Filters items matching target types (e.g.,WEAPON). -
-type:<type>- Filters based on origin hooks. Supported source type aliases include: -
vanilla,minecraft,mc -
since,se,custom -
ae,advancedenchantments -
ce,crazyenchantments -
ee,excellentenchants -
-success:<number|range>- Assigns static or randomized success percentages (e.g.,-success:40to90). -
-failure:<number|range>- Assigns static or randomized failure/destroy percentages (e.g.,-failure:10to30). -
-amount:<number|range>- Dictates the given book bundle size (e.g.,-amount:1to2).
š Refactored Workflow Changes
/se givebookRealignment: Kept strictly focused on target-specific, uniform distribution and is fully backward-compatible:/se givebook <player> <enchant> <level> [success] [destroy]. It no longer accepts therandomargument; use/se giverandombookinstead.- Unified Accessor Pools: Random book selections now use shared metadata accessors, meaning vanilla Bukkit, SinceEnchantments, AdvancedEnchantments, CrazyEnchantments, and ExcellentEnchants all participate natively inside filtered pools.
- Proactive Constraint Checking: Book generation now cross-references and validates requested enchantment levels against native max-level capacities before generating items, avoiding corrupted index items.
- Enhanced Tab Completion: Added predictive tab completion for random filters, sub-values, range parameters, and silent mode flags.
- Tip: To trigger option tab-completion, type the option string, insert 1 space, then delete that space to activate the completion popup.
- Silent Mode execution: Added an
-ssilent modifier flag across both/se givebookand/se giverandombookto completely suppress executor console feedback, streamlining automated crate and vote rewards.
š” Example Usages
/se giverandombook Steve
/se giverandombook Steve -level:1 -target:WEAPON -type:ae
/se giverandombook Steve -rarity:LEGENDARY -type:ee -success:40to90 -failure:10to30 -amount:1to2 -s
/se givebook Steve "minecraft:sharpness" 5 60 40 -s
š Wiki & Open-Source Docs Migration
- GitHub Pages Transition: Abandoned old GitLab infrastructure and fully migrated the documentation network over to a high-speed, modern open-source hub.
- New Wiki URL: https://sincerpg.github.io/SinceEnchantments/
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:C8Aqsupg:e5kXx1Mb"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:C8Aqsupg:e5kXx1Mb"
}

