Update History
Changelog
Complete version history for OmniEnchant (formerly SLMMOEnchant) — from v1.0.0 to v3.0.0.
Version Timeline
v3.0.0 — OmniEnchant Rebrand, Lore Orchestrator, External Adapters
v1.2.7 — Anvil Merge, Dust GUI, Rarity Fix
v1.2.6 — Extraction Scroll, Enchant Preview
v1.2.5 — Broadcast, Soul System, Auto-Update
v1.2.4 — Mechanic Pipeline Fix, Durability
v1.2.3 — Rates Fix, EXP Mode, Placeholders
v1.2.2 — Mechanic Engine, Conditions, Browser GUI
v1.2.1 — Protection Stone, Random Rates
v1.2.0 — Enchant Table, Grindstone, Failure Rate
v1.1.5 — Stat Stacking Fix, Perm Effects
v1.1.4 — New YAML Format, 8 Abilities
v1.1.3 — Souls, Sets, Trak, Slots
v1.1.2 — Lucky Dust on Books, /sle giveall
v1.1.1 — Lore Position, Enchant Upgrade
v1.1.0 — Custom Rates, Messages, Skills
v1.0.8 — Code Review, DRY Refactoring
v1.0.7 — Per-file Enchants, Better CLI
v1.0.6 — Memory Leak Fix, Async I/O
v1.0.5 — Thread Safety, Security
v1.0.4 — Activity/Achievement System
v1.0.3 — Color Codes, Debug Logging
v1.0.2 — Paper Command Registration
v1.0.1 — FoliaLib ClassNotFound Fix
v1.0.0 — Initial Release
v3.0.02026-04-06LATEST
REBRANDING Plugin Rename
- Renamed from SLMMOEnchant / OminiEnchant to OmniEnchant
- JAR output is now
OmniEnchant.jar(no version suffix) - Plugin folder:
plugins/OmniEnchant/ - Lore placeholder changed to
#omnienchant#(legacy#ominienchant#and#slenchant#still accepted) - Modifier placeholder changed to
#omnimodifier#(legacy tokens still accepted) - All in-game GUI branding updated to OmniEnchant
ADDED New Systems
- OmniModifier runtime hook for unified lore management
- Lore Orchestrator core (
LoreOrchestrator,LoreSectionParser) — non-destructive lore synchronization - External Adapter Framework (EcoEnchants, AdvancedEnchant interop)
CHANGED Improvements
- Version bumped from 1.2.7 to 2.0.0
- Paper API target: 1.21.11
- Config defaults now prefer OmniEnchant naming
- Lore writes skip no-op updates to reduce meta churn
COMPAT Backward Compatibility
- All legacy placeholder tokens (
#slenchant#,#ominienchant#) still supported - Permission nodes (
slenchant.*) unchanged for backward compatibility - NBT keys (
SLENCHANT_*) unchanged — existing item data is preserved
v1.2.72026-03-05
ADDED
- Dust Crafting GUI —
/sle dustmở GUI ép sách enchant thành Dust. Mỗi tier có tỷ lệ boost riêng (Common 1-5%, Legendary 12-25%). Dust dùng để tăng tỷ lệ apply enchant/sle dustopens GUI to craft enchant books into Dust. Per-tier boost rates (Common 1-5%, Legendary 12-25%). Dust increases enchant apply success rate - Anvil Combining — Đặt 2 item vào đe → gộp enchant (same level → level+1, khác level → level cao thắng), kiểm tra conflict, full durabilityPut 2 items in anvil → merge enchants (same level → level+1, different → higher wins), conflict check, full durability
- Trigger Enchants — Enchant dạng trigger (ON_DEFEND, HEALTH_BELOW) với duration/cooldown: Regeneration (hồi HP 5s, cd 50s), Absorption (+HP/ARM 10s, cd 30s), Battle Hardened (+ATK/ARM 5s, cd 20s)Trigger-based enchants (ON_DEFEND, HEALTH_BELOW) with duration/cooldown: Regeneration (heal 5s, cd 50s), Absorption (+HP/ARM 10s, cd 30s), Battle Hardened (+ATK/ARM 5s, cd 20s)
- DeluxeMenus-style GUI Config — Tất cả GUI (dust, tier-shop, fusion, enchant-browser) giờ dùng config YAML tùy chỉnh: slots, materials, names, lore, backgroundAll GUIs (dust, tier-shop, fusion, enchant-browser) now use customizable YAML config: slots, materials, names, lore, background
FIXED
- [CRITICAL] Rarity Distribution —
rollTier()có bug: duplicate LEGENDARY (phải là EPIC), thiếu UNCOMMON hoàn toàn. Giờ đúng 5 tier với % per cost bracketrollTier()had bug: duplicate LEGENDARY (should be EPIC), UNCOMMON missing entirely. Now correct 5-tier distribution per cost bracket - [CRITICAL] Telekinesis Chest Bug — Telekinesis + rương/barrel/shulker → đồ trong container bị mất. Giờ container items được move vào inventory trước khi phá blockTelekinesis + chest/barrel/shulker → container items destroyed. Now container items moved to inventory before block break
- Telekinesis Cross-Mode — BREAK_BLOCK telekinesis cũng kích hoạt khi giết mob. Giờ TELEKINESIS chỉ hoạt động theo mode đã configBREAK_BLOCK telekinesis also triggered on mob kills. Now TELEKINESIS only activates per configured mode
CHANGED
- Tier Shop GUI dùng config-driven background/info/per-tier slots thay vì hardcodeTier Shop GUI uses config-driven background/info/per-tier slots instead of hardcoded layout
- Fusion GUI thêm filler-name, recipe-start-slot, 3 fusion recipes mới (lightning, arcane, soul)Fusion GUI adds filler-name, recipe-start-slot, 3 new fusion recipes (lightning, arcane, soul)
v1.2.62026-03-04
ADDED
- Extraction Scroll (3-Outcome) — Cuộn tách enchant với 3 kết
quả: Thành công (gỡ enchant), Thất bại (không gỡ), Phá hủy (mất cả enchant và sách).
/sle givescrollvới rate tùy chỉnh hoặc randomExtraction scroll with 3 outcomes: Success (remove enchant), Fail (keep), Destroy (lose both)./sle givescrollwith custom or random rates - Enchant Preview Rewrite — Enchant browser hiện max level
trong tên (
✦ Executioner IV), hiện chỉ số theo cấp tối đa, layout mới đẹp hơnEnchant browser shows max level in title (✦ Executioner IV), stats at max level, beautiful new layout - Decimal Format (MythicLib) — Đọc decimal format trực tiếp từ
MythicLib API. Không còn hardcode
0.0Reads decimal format directly from MythicLib API. No more hardcoded0.0
CHANGED
- 35+ enchant configs được rewrite: thêm
conflicts-with,chancekích hoạt,cooldown/durationcho trigger enchants, rarity-based rates35+ enchant configs rewritten: addedconflicts-with, activationchance,cooldown/durationfor trigger enchants, rarity-based rates - Memory leak fix — dọn
lastConditionRecalcmap khi player quitMemory leak fix — cleanuplastConditionRecalcmap on player quit
v1.2.52026-03-04
ADDED
- /sle broadcast — Phát enchant book cho toàn bộ server:
/sle broadcast <enchant_id> [level] [amount]. Random rate, thông báo + soundDistribute enchant books to all online players:/sle broadcast <enchant_id> [level] [amount]. Randomized rates, server announcement + sound - Protection Stone Stacking — Đá bảo vệ giờ stack charges (integer). Sử dụng nhiều đá → cộng dồn (🛡 Bảo Vệ: 3 lần). Mỗi lần thất bại trừ 1 chargeProtection stones now stack charges (integer counter). Multiple stones add up (🛡 Protection: 3 charges). Each failure consumes 1 charge
- Extra Slot Limit — Config
extra-slot-limittrong application.yml. Đặt = 20 → tối đa +20 slot enchant. 0 = vô hạn (mặc định)Configextra-slot-limitin application.yml. Set to 20 → max +20 enchant slots. 0 = infinite (default) - Soul Cost in Mechanics — SLEMechanicEngine giờ check và trừ
soul-costtrước khi kích hoạt mechanic (break_block). Thiếu soul → mechanic bỏ quaSLEMechanicEngine now checks and consumessoul-costbefore mechanic activation (break_block). Not enough souls → mechanic skipped - Config Auto-Updater — Plugin tự cập nhật configs khi nâng
version. Track version trong
.config-version. Backup config cũ → overwrite mới. Không cần xóa folder nữa!Plugin auto-updates configs on version upgrade. Tracks version in.config-version. Backs up old configs → overwrites with new defaults. No more manual folder deletion!
FIXED
- Stats Not Working — Stats có
mode:(ATTACK, DAMAGED) hoàn toàn không hoạt động vì PassiveSkill handler lỗi. Stats giờ luôn permanent (always-on khi equipped).mode:trên stats bị bỏ quaStats withmode:(ATTACK, DAMAGED) were completely broken due to PassiveSkill handler failure. Stats are now always permanent (always-on when equipped).mode:on stats ignored - Soul Stone vs Booster — Soul stones giờ chỉ bật tracking (1 lần). Soul boosters cần tracking được bật trước mới add soul đượcSoul stones now only enable tracking (one-time). Soul boosters require tracking to be enabled first before adding souls
- Protection Lore — Lore giờ hiện đúng số charges: 🛡 Bảo Vệ: 3 lần thay vì luôn 1 lầnLore now shows correct charge count: 🛡 Protection: 3 charges instead of always 1
CHANGED
- 11 enchant configs dọn dẹp: xóa
mode:/duration:/cooldown:khỏi stats. Stats giờ chỉ dùngformula:,key:,type:(FLAT/RELATIVE)11 enchant configs cleaned: removedmode:/duration:/cooldown:from stats. Stats now only useformula:,key:,type:(FLAT/RELATIVE) - Soul boosters yêu cầu bật soul tracking trước (phải dùng Soul Stone → rồi Soul Booster)Soul boosters require soul tracking to be enabled first (must apply Soul Stone → then Soul Booster)
v1.2.42026-03-04
FIXED
- Mechanic Conflicts — Rewrite SLEMechanicEngine: MULTIPLY → SMELT → TELEKINESIS chạy đúng thứ tự, không conflictRewrote SLEMechanicEngine: MULTIPLY → SMELT → TELEKINESIS runs in correct order, no conflicts
- Blast Mine Filter — 3x3/5x5/7x7 chỉ phá stone, ore, deepslate... Không phá dirt, grass, wood3x3/5x5/7x7 only breaks stone, ore, deepslate... No longer breaks dirt, grass, wood
- Placeholder Display — Mechanics hiện chance, params, conditions. Abilities hiện damageMechanics show chance, params, conditions. Abilities show damage
ADDED
- Durability Cost — Multi-block mechanics tốn độ bền tương ứng (đào 9 blocks = -9 durability). Respect UnbreakingMulti-block mechanics cost proportional durability (9 blocks = -9 durability). Respects Unbreaking
CHANGED
- SLEMechanicEngine v2 — Coordinated pipeline thay vì mỗi mechanic xử lý riêng. Extra blocks dùng chung pipelineCoordinated pipeline replaces per-mechanic processing. Extra blocks share same pipeline
v1.2.32026-03-04
FIXED
- Placeholder Display —
/sle enchantGUI và MMOItems editor giờ hiện giá trị thật (lv1) thay vì formula raw/sle enchantGUI and MMOItems editor now show resolved values (lv1) instead of raw formulas - Success Rate 0 — Cho phép đặt tỷ lệ thành công = 0% (trước đây bị chặn ở 1%)Allows success rate of 0% (was blocked at 1%)
- Tier Shop EXP — Giá EXP dùng vanilla formula (10 levels = 160 EXP), trừ đúng EXP và recalculate level/progressEXP pricing uses vanilla formula (10 levels = 160 EXP), correct deduction with level/progress recalculation
- Orb Failure Rate — Orb reveal giờ luôn random tỷ lệ vỡ đồ (kể cả khi base = 0)Orb reveal now always randomizes failure rate (even when base = 0, random 0-5%)
ADDED
- Tier Shop LEVEL Mode —
currency: LEVELtrong tier-shop.yml → trừ trực tiếp levelcurrency: LEVELin tier-shop.yml → direct level deduction - Give Command Random —
/sle givekhông chỉ định rate → tự random giống orb reveal/sle givewithout rate args → auto-randomize like orb reveal
REMOVED
- Dust Consolation — Không còn nhận dust khi ép enchant thất bại (dành cho GUI ép sách sau)No longer receive dust on enchant failure (reserved for future tier crafting GUI)
v1.2.22026-03-04
ADDED Tính Năng MớiNew Features
- SLE Mechanic Engine — Hệ thống scripting tùy chỉnh cho
enchant effects không có trong MMOItems/MythicLib. 12 mechanic types:
MULTIPLY_DROPS,AUTO_SMELT,BLAST_MINE,VEIN_MINE,TREE_FELLER,HARVEST_AREA,TELEKINESIS,REPLANT,MULTIPLY_MOB_DROPS,MULTIPLY_EXP,HEAD_DROP,BONUS_MONEYCustom scripting system for enchant effects not in MMOItems/MythicLib. 12 mechanic types including drop multipliers, blast mining, vein mining, tree felling, and more - Condition System — 15+ điều kiện môi trường:
IN_DAY,IN_NIGHT,IN_WATER,ON_GROUND,IN_BIOME_xxx,HEALTH_BELOW/ABOVE,SNEAKING,SPRINTING15+ environment conditions:IN_DAY,IN_NIGHT,IN_WATER,ON_GROUND,IN_BIOME_xxx,HEALTH_BELOW/ABOVE,SNEAKING,SPRINTING - Stat Mode Unification (deprecated in v1.2.5 — stats are now always permanent)
— Stats hỗ trợ
mode:— đã xóa trong v1.2.5, stats giờ luôn permanentStats supportedmode:— removed in v1.2.5, stats are now always permanent - Enchant Browser GUI —
/sle enchantmở GUI duyệt tất cả enchants. Phân trang, sắp xếp (tên/rarity/level/loại), lọc (All/Sword/Axe/Pickaxe/Bow/Armor/Hoe), hiện chi tiết stats/abilities/mechanics/sle enchantopens paginated GUI to browse all enchants. Sort by name/rarity/level/type, filter by weapon category, detailed stats/abilities/mechanics view - 8 New Enchants —
blast_mine,vein_miner,tree_feller,auto_smelt,telekinesis,harvest_area,extra_mob_drops,exp_multiplier
FIXED
- Tier Shop EXP — Trừ XP level thay vì total EXP → giờ
dùng
player.totalExperienceWas deducting XP levels instead of total EXP → now usesplayer.totalExperience - Orb Failure Rate — Orb reveal dùng global default (0.0) thay
vì per-enchant
failure-rateOrb reveals used global default (0.0) instead of per-enchantfailure-rate - Item Destruction — Item không bị xóa khi failure rate kích
hoạt → dùng
clickedInventory.setItem(slot, null)Items not destroyed when failure rate triggered → usesclickedInventory.setItem(slot, null) - Build Error — Fix
biome.namecompilation error trong KotlinFixedbiome.namecompilation error in Kotlin
CHANGED
- 11 enchants legacy
trigger:chuyển sangstats:vớimode:11 legacytrigger:enchants converted tostats:withmode: double_ore— Đổi từ fake LUCK stat sangMULTIPLY_DROPSmechanic thậtChanged from fake LUCK stat to realMULTIPLY_DROPSmechanicexecutioner— Thêm điều kiệnIN_NIGHT(stats chỉ active ban đêm)AddedIN_NIGHTcondition (stats only active at night)
v1.2.12026-03-04
ADDED Tính Năng MớiNew Features
- Protection Stone — Item mới (TOTEM_OF_UNDYING) bảo vệ vật phẩm khỏi phá hủy khi ép enchant thất bại. Kéo thả lên item, lore hiện trạng thái bảo vệ, tiêu hao khi roll vỡ trúngNew item (TOTEM_OF_UNDYING) protects items from destruction on enchant failure. Drag onto item, lore shows protection status, consumed when destroy roll hits
- Random Failure Rate (Tier Shop) — Orb reveal giờ random cả success rate (base ±15%) và failure rate (0 đến 2x base)Orb reveals now randomize both success rate (base ±15%) and failure rate (0 to 2x base)
- Comprehensive Messages — 15+ message keys mới: protection, orb reveal, shop, grindstone, vanilla book, lore format15+ new message keys: protection, orb reveal, shop, grindstone, vanilla book, lore format
- Failure Rate Tab Complete — Brigadier tab completion cho
failureRatearg trong lệnh/sle giveBrigadier tab completion forfailureRatearg in/sle givecommand
CHANGED
DragDropListener— Thêm handlerprotection_stone+ kiểm tra protection trước khi phá itemAddedprotection_stonehandler + protection check before item destroyOrbRevealListener— DùngApplicationConfigLoadercho base rates, random cả success và failureUsesApplicationConfigLoaderfor base rates, randomizes both success and failureEnchantDataUtil— Render lore protection khi item có tagSLENCHANT_PROTECTEDRenders protection lore when item hasSLENCHANT_PROTECTEDtagEnchantBookBuilder— Luôn lưu failure rate vào PDC (trước đây chỉ lưu khi > 0)Always stores failure rate in PDC (previously only when > 0)messages.yml— Tái cấu trúc toàn bộ với sections cho mọi tính năngFully restructured with sections for all featuresitems.yml— Thêmprotection_stonedefinitionAddedprotection_stonedefinition
FIXED
- Grindstone không gỡ được enchant khi item chỉ có custom enchant (không có vanilla) — giờ force result khi input có SLE dataGrindstone couldn't remove enchants when item only had custom enchants (no vanilla) — now forces result when input has SLE data
- Grindstone click handler kiểm tra input slots thay vì result đã cleanGrindstone click handler checks input slots instead of already-cleaned result
v1.2.02026-03-03
ADDED
- Enchant Table Integration — Enchant tại bàn vanilla có cơ hội
nhận thêm SLEnchant. Config:
enchant-table.ymlEnchanting at vanilla table has a chance to add SLEnchant. Config:enchant-table.yml - Grindstone Support — Grindstone xóa tất cả SLEnchant, render lại lore, tính lại statsGrindstone removes all SLEnchants, re-renders lore, recalculates stats
- Failure Rate System —
failure-rateper-enchant. Thất bại → roll vỡ → phá itemfailure-rateper-enchant. Fail → roll destroy → break item - Inventory Scan Interval —
inventory-interval(default 200 ticks = 10s) - Give Command — Thêm arg
[successRate] [failureRate]Added[successRate] [failureRate]args - Enchant Editor GUI — GUI paginated thay cho text dumpPaginated GUI replaces text dump
- List Pagination — 10/trang, nút Prev/Next clickable10/page with clickable Prev/Next buttons
- Vanilla Enchant Lore — Vanilla enchants hiện custom display name + description + rarityVanilla enchants show custom display name + description + rarity
- Book Lore Format — Success + destroy rate hiện cùng dòng:
§a85% §8| §c10%Success + destroy rate shown on same line:§a85% §8| §c10% - Vanilla Book Drag-Drop — Sách vanilla kéo thả lên MMOItem (configurable)Vanilla books can be dragged onto MMOItems (configurable)
FIXED
- Vanilla enchants giờ tính vào giới hạn
max-enchants-per-itemVanilla enchants now count towardmax-enchants-per-itemlimit - File enchant mặc định chỉ tạo nếu folder chưa tồn tạiDefault enchant files only generated if folder doesn't exist
- MythicLib Abilities register đúng với
PassiveSkillAPIMythicLib Abilities properly register withPassiveSkillAPI
v1.1.52026-03-03
FIXED Critical
- [CRITICAL] Stats Stacking — UUID root cause:
StatModifier.unregister()dùng UUID, nhưng code cũ tạo instance mới → UUID khác → không bao giờ xóa. Giờ lưu actual instancesUUID root cause:StatModifier.unregister()uses UUID, but old code created new instances → wrong UUID → never removed. Now stores actual instances - [CRITICAL] Set Bonus Stacking — Bug UUID tương tự trong
SetBonusManagerSame UUID bug inSetBonusManager - [CRITICAL] Safety Sweep — Thêm backup key-based removal mỗi lần recalculateAdded backup key-based removal on every recalculate
- [HIGH] Fusion GUI Crash — triumph-gui crash trên Paper 1.21.8, đổi sang Paper native APItriumph-gui crash on Paper 1.21.8, switched to Paper native API
- [MEDIUM] Armor Change Event — Thêm
PlayerArmorChangeEventhandlerAddedPlayerArmorChangeEventhandler
ADDED
- Permanent Effects —
perm-effects:potion effects active khi đeo item. Auto-refresh, auto-removeperm-effects:potion effects active while item equipped. Auto-refresh, auto-remove - Particle Effects —
particles:FLAME, DUST (custom color/size)particles:FLAME, DUST (custom color/size) - 6-Piece Set Bonus — King enchant hỗ trợ full 6pc setKing enchant supports full 6pc set
v1.1.42026-03-03
FIXED Critical
- [CRITICAL] Set Bonus statId — Mapping sai statId khi
unregister. Giờ lưu
modKey → statIdWrong statId mapping on unregister. Now storesmodKey → statId - [CRITICAL] Stat Modifier —
activeStats:Set→Map<modKey, statId>activeStats:Set→Map<modKey, statId> - [HIGH] Trak Persistence — Counter + NBT write trong cùng operationCounter + NBT write in single operation
ADDED
- New YAML Format — 63 enchants chuyển sang
name/lore/formulaformat63 enchants converted toname/lore/formulaformat - 8 MythicLib Abilities — Void Slash, Earthquake, Chain Lightning, Shockwave, Vampiric Touch, Frenzy, Arcane Barrier, Earth Spike
- Set Bonus Formulas — Per-tier stats + abilities với formula enginePer-tier stats + abilities with formula engine
- Skill → Ability Migration — 14 legacy enchants chuyển đổi14 legacy enchants converted
v1.1.32026-03-02
ADDED Major Features
- Souls System — Kill mob/player → +soul trên vũ khí.
PAPI:
%slenchant_soul_pvp%,%slenchant_soul_pve%,%slenchant_soul%Kill mob/player → +soul on weapon. PAPI:%slenchant_soul_pvp%,%slenchant_soul_pve%,%slenchant_soul% - Set Enchants — 2pc/4pc/6pc bonus: King, Warlord, Phantom2pc/4pc/6pc bonus: King, Warlord, Phantom
- BlockTrak/StatTrak/MobTrak — Đếm blocks mined, player kills, mob kills per itemTrack blocks mined, player kills, mob kills per item
- Slot Increaser — Kéo thả lên item để tăng max enchant slotsDrag onto item to increase max enchant slots
- /sle show — Toggle detailed/compact displayToggle detailed/compact display
- Vanilla Enchant Hooks —
vanilla-enchants.yml - 50+ Sample Enchants — 8 categories8 categories
- PlaceholderAPI Expansion — Auto-register khi PAPI có mặtAuto-registers when PAPI present
v1.1.22026-03-02
ADDED
- Lucky Dust on Books — Kéo Lucky Dust lên sách enchant để tăng tỷ lệ (+1%/dust, max 100%)Drag Lucky Dust onto enchant book to increase rate (+1%/dust, max 100%)
- /sle giveall — Give 1 book mỗi enchant cho playerGive one book of every enchant to player
FIXED
- Lore spacing thừa giữa enchant lore và item loreExtra lore spacing between enchant lore and item lore
- MMOItems Editor GUI workflowMMOItems Editor GUI workflow
v1.1.12026-03-02
FIXED
- [CRITICAL] Lore Position — Enchant lore giờ hiện trên đầu (như vanilla), không phải cuốiEnchant lore now displays at top (like vanilla), not bottom
- [CRITICAL] Visible Markers — Xóa
[SLE_START]/[SLE_END]khỏi lore, thay bằng invisible codesRemoved visible[SLE_START]/[SLE_END]from lore, replaced with invisible codes
ADDED
- Enchant Upgrade on Apply — Cùng enchant + cùng level → auto upgrade level+1Same enchant + same level → auto upgrade to level+1
- Block Lower Level — Không cho ép sách level thấp hơnPrevents applying lower-level books
v1.1.02026-03-02
ADDED
- Custom Success Rate —
success-rateper-enchant trong YAML, hiện trên book loresuccess-rateper-enchant in YAML, shown on book lore - Named Placeholders —
keyfield cho stats:{ATK},{SPD},{CRIT}keyfield for stats:{ATK},{SPD},{CRIT} - messages.yml — File messages tùy chỉnh mớiNew customizable messages file
- Skill Fallback — Native Bukkit effects khi MythicMobs không cóNative Bukkit effects when MythicMobs unavailable
- Character Wrapping —
chars-per-linethayenchants-per-linereplacesenchants-per-line
FIXED
- [CRITICAL] Lore Wiping — Enchants không còn ghi đè MMOItems loreEnchants no longer overwrite MMOItems lore
- [CRITICAL] Vault ClassNotFoundError — Dùng isolated bridge objectsUses isolated bridge objects
- Duplicate
/sle fusecommand đã xóaRemoved duplicate/sle fusecommand
v1.0.82026-03-01
FIXED Code Review
- [CRITICAL] EnchantRegistry atomic swap — volatile reference swap
- [CRITICAL] matchesMetadata ENCHANT_LEVEL — dùng
metadataFilter.min-levelusesmetadataFilter.min-level - [CRITICAL] ExtractionHandler lore update + stale NBT cleanup
- [PERF] trackActivity không ghi YAML mỗi lần gọi, dùng dirty-flagtrackActivity no longer writes YAML on every call, uses dirty-flag
CHANGED DRY Refactoring
- Tách
EnchantDataUtil— shared writeEnchantData + lore updateExtractedEnchantDataUtil— shared writeEnchantData + lore update - Tách
CommandRegistrartừ main plugin (218 → 83 dòng)ExtractedCommandRegistrarfrom main plugin (218 → 83 lines) - Cached
TypeToken,NamespacedKeyCachedTypeToken,NamespacedKey
REMOVED
- Xóa
SLEnchantTabCompleter(Brigadier xử lý)DeletedSLEnchantTabCompleter(Brigadier handles this)
v1.0.72026-03-01
ADDED
- Per-file Enchant System — Mỗi enchant = 1 file YAML trong
enchants/. Auto-generate mặc định lần đầuEach enchant = 1 YAML file inenchants/. Auto-generates defaults on first run - Improved Help — Clickable commands với hover tooltipsClickable commands with hover tooltips
- Better /sle list — Sorted by rarity, clickable, type tagsSorted by rarity, clickable, type tags
- Better /sle info — Formatted stats, [Give Book] buttonFormatted stats, [Give Book] button
FIXED
- Gson singleton thay thế tất cả
Gson()instancesGson singleton replaces allGson()instances - Missing imports: FoliaCompat, ModifierTrackerMissing imports: FoliaCompat, ModifierTracker
v1.0.62026-03-01
ADDED
- Memory Leak Prevention — Cleanup task mỗi 5 phút, xóa data sau 30 phút inactiveCleanup task every 5 min, removes data after 30 min inactive
- ModifierTracker — Cleanup StatModifier khi player quitCleans up StatModifiers on player quit
- Async File I/O — Activity saves không còn gây lagActivity saves no longer cause lag
- GsonUtil — Singleton giảm object allocationSingleton reduces object allocation
v1.0.52026-03-01
FIXED Security & Thread Safety
- [CRITICAL] Thread safety:
ConcurrentHashMapcho ActivityManager, EnchantRegistryThread safety:ConcurrentHashMapfor ActivityManager, EnchantRegistry - [CRITICAL] Thêm
EconomyWrapper.deposit()(build-breaking bug)AddedEconomyWrapper.deposit()(build-breaking bug) - [HIGH] Command injection protection trong activity rewardsCommand injection protection in activity rewards
v1.0.42026-03-01
ADDED
- Activity/Achievement System — 11 activities, progress tracking, reward system (money, points, books, commands), GUI, broadcast11 activities, progress tracking, reward system (money, points, books, commands), GUI, broadcast
/sle activity— Xem tiến trình và achievementsView progress and achievements
FIXED
- Drag-drop enchant: permission checks, item type validation, dust bonusDrag-drop enchant: permission checks, item type validation, dust bonus
v1.0.32026-03-01
FIXED
- Color codes: thêm hex colors (
&#RRGGBB) + MiniMessage supportColor codes: added hex colors (&#RRGGBB) + MiniMessage support - Drag-drop enchant application + dust bonus calculationDrag-drop enchant application + dust bonus calculation
TECHNICAL
- Xóa
minimize()khỏi Shadow JAR (gây lỗi FoliaLib reflection)Removedminimize()from Shadow JAR (broke FoliaLib reflection) - Chuyển từ YAML sang Paper Lifecycle API + BrigadierMigrated from YAML to Paper Lifecycle API + Brigadier
v1.0.22026-03-01
FIXED
- Paper plugin command registration — xóa YAML
commands:, dùng Lifecycle APIPaper plugin command registration — removed YAMLcommands:, uses Lifecycle API
v1.0.12026-03-01
FIXED
ClassNotFoundExceptioncho FoliaLib — xóaminimize()khỏi Shadow JARfor FoliaLib — removedminimize()from Shadow JAR
v1.0.02026-02-28
ADDED Initial Release
- Hệ thống enchant tùy chỉnh cho MMOItemsCustom enchantment system for MMOItems
- Drag-drop enchant book application
- Book combining (cùng enchant + cùng level = level up)Book combining (same enchant + same level = level up)
- Lucky Dust system, Enchant extraction, Fusion GUI
- Rarity system (Common, Uncommon, Rare, Epic, Legendary)Rarity system (Common, Uncommon, Rare, Epic, Legendary)
- Conflict detection, Permission-based usage, Item type restrictionsConflict detection, Permission-based usage, Item type restrictions
- Stat modifiers (FLAT, RELATIVE, MULTIPLY)
- Trigger system, Buff system, Skill system (MythicMobs)
- Economy integration (Vault, PlayerPoints)Economy integration (Vault, PlayerPoints)
- Folia compatibility via FoliaLib