Changelog
Navigation: Documentation Home · Contents · FAQ · Item Source References · Glossary
This project follows Semantic Versioning (SemVer): the version number format is MAJOR.MINOR.PATCH. Increment the MINOR version when adding backward-compatible features, and the PATCH version for backward-compatible fixes.
Current version: 1.3.0, about 150 Kotlin files.
[1.3.0] - 2026-06-28
Compatibility extended to Minecraft 1.21.11 ~ 26.2.x (api-version stays 1.21, forward-compatible, no config changes needed).
Added — Combat pipeline (major backbone upgrade)
- Slot / source-aware modifiers: attribute modifiers can be tagged with an active slot (main hand / off hand / armor / accessory) and are filtered per hand in combat. Untagged modifiers behave exactly as before.
- Pluggable attack sources: new
AttackHandlerregistry lets other plugins register custom damage sources so non-vanilla causes also flow through the packet pipeline. DamagePacketis now a computation substrate: damage components can be appended / scaled by type or element / recomputed inside the event (event.addPacket / scaleType / scaleElement / scaleAll) — consumers are no longer limited to the final scalar.- Timed-modifier fold cache: pure performance; combat reads no longer re-fold every timed buff each hit (byte-identical output).
Added — Activated combat attributes
crit_resist: lowers the chance of being crit (subtracted from the attacker's crit rate).reflection: reflects a portion of incoming damage back to the attacker. Driven by the editablescripts/attributes/reflection.js.spell_vampirism: heal a portion when dealing magic/skill damage — symmetric to physical lifesteal. Driven by the editablescripts/attributes/spell_vampirism.js, fired by the newon_magic_damage_dealthook event.- Skill-damage isolation: if MM skill damage lands as
ENTITY_ATTACK, MythicLib's damage type is used to isolate it from the physical melee pipeline so it isn't wrongly given physical bonus/crit (togglecombat.isolate-mythiclib-skill-damage). Requires MythicLib; best practice is still to configure skill damage asMAGICcause.
Added — Modern 1.21 vanilla attributes
- 18 vanilla 1.21 attributes (
vanillaKey-backed):scale,jump_strength,gravity,step_height,safe_fall_distance,fall_damage_multiplier,burning_time,explosion_knockback_resistance,movement_efficiency,water_movement_efficiency,oxygen_bonus,block_interaction_range,entity_interaction_range,block_break_speed,mining_efficiency,submerged_mining_speed,sneaking_speed,sweeping_damage_ratio. - Items / classes can declare them directly, e.g. an item
providers.ap.valuewith"scale":1.2. Attributes absent on older servers are skipped silently, no errors.
Added — PAPI placeholders (cooldown reduction / generic mitigation)
%qinhcorelib_cdr%: cooldown reduction value (0~0.9).%qinhcorelib_cdrmult%: the1 - cooldown_reductionmultiplier.%qinhcorelib_cdrapply_<baseCooldown>%: the already-reduced cooldown. MythicMobs skills can useCooldown: "%qinhcorelib_cdrapply_100%"directly — no QinhSkills required, works with plain MM + CoreLib.%qinhcorelib_reduceapply_<attr>_<base>%: generic "reduce a base value by a mitigation-type attribute", reusable for any 0~1 mitigation attribute.
Fixed — Forward-compatibility gate
- Startup version check is now forward fail-open: the old logic, when it couldn't parse the server version string (new format / non-standard fork), treated it as "unrecognized" and disabled the plugin, making newer servers wrongly report incompatibility and taking down the whole suite (QI/QC/QS/QR depend on this library). Now: unparseable / unknown / newer versions are all allowed through; only versions definitively older than 1.21.11 are rejected.
- When newer than the tested version it only logs a warning and starts normally; for strict behavior set
compatibility.strict-version-check: trueinconfig.yml(default off), which rejects versions newer than tested.
Other
- Custom-attribute hooks now accept
on_magic_damage_dealt(bindable to custom attributes inattributes.yml).
[1.2.0] - 2026-06-20
- Native attribute backend (
native) refined; added the Attribute System docs (with a custom-attribute tutorial).
[1.1.0] - 2026-06-14
Added
- ItemsAdder item source: reference format
ia-namespace_idoritemsadder:namespace:id. - Nexo item source: reference format
nexo-idornexo:id. - Both of the above sources are reflection bridges, automatically skipped when the corresponding plugin is not installed (graceful degradation, no error).
- The
ItemSourceTypeenum gains two new values:ITEMSADDER/NEXO. - All callers that go through
ItemSourceManager.parseItemReferenceautomatically support these two new sources; sub-plugins need no code changes. plugin.yml'ssoftdependaddsItemsAdder/Nexo.
[1.0.8] - First public release
Added
- Unified item sources: Vanilla, CraftEngine, MMOItems, NeigeItems, QinhItems, MythicMobs, CustomFishing, MagicGem.
- Unified attribute pipeline: unified handling of cross-source attributes.
- Custom block bridge (CraftEngine).
- ModelEngine model bridge.
- Script engine (GraalVM).
- Economy bridge / placeholder bridge and other external integration capabilities.
Continue Reading
- FAQ — Frequently asked questions (including ItemsAdder / Nexo reference syntax)
- Item Source References — Reference format for each item source
- Item Plugins — Per-plugin bridging guide
- Glossary — Term definitions
- Documentation Home · Contents