Update History

Changelog

Complete version history for OmniEnchant (formerly SLMMOEnchant) — from v1.0.0 to v3.0.0.

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 dust mở 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 dust opens 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 EnchantsEnchant 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 ConfigTấ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 DistributionrollTier() 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 BugTelekinesis + 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-ModeBREAK_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 givescroll với rate tùy chỉnh hoặc randomExtraction scroll with 3 outcomes: Success (remove enchant), Fail (keep), Destroy (lose both). /sle givescroll with custom or random rates
  • Enchant Preview RewriteEnchant 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 hardcoded 0.0

CHANGED

  • 35+ enchant configs được rewrite: thêm conflicts-with, chance kích hoạt, cooldown/duration cho trigger enchants, rarity-based rates35+ enchant configs rewritten: added conflicts-with, activation chance, cooldown/duration for trigger enchants, rarity-based rates
  • Memory leak fix — dọn lastConditionRecalc map khi player quitMemory leak fix — cleanup lastConditionRecalc map on player quit
v1.2.52026-03-04

ADDED

  • /sle broadcastPhá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 LimitConfig extra-slot-limit trong application.yml. Đặt = 20 → tối đa +20 slot enchant. 0 = vô hạn (mặc định)Config extra-slot-limit in application.yml. Set to 20 → max +20 enchant slots. 0 = infinite (default)
  • Soul Cost in MechanicsSLEMechanicEngine giờ check và trừ soul-cost trước khi kích hoạt mechanic (break_block). Thiếu soul → mechanic bỏ quaSLEMechanicEngine now checks and consumes soul-cost before mechanic activation (break_block). Not enough souls → mechanic skipped
  • Config Auto-UpdaterPlugin 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 WorkingStats 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 with mode: (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 BoosterSoul 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 LoreLore 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ùng formula:, key:, type: (FLAT/RELATIVE)11 enchant configs cleaned: removed mode:/duration:/cooldown: from stats. Stats now only use formula:, 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 ConflictsRewrite SLEMechanicEngine: MULTIPLY → SMELT → TELEKINESIS chạy đúng thứ tự, không conflictRewrote SLEMechanicEngine: MULTIPLY → SMELT → TELEKINESIS runs in correct order, no conflicts
  • Blast Mine Filter3x3/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 DisplayMechanics hiện chance, params, conditions. Abilities hiện damageMechanics show chance, params, conditions. Abilities show damage

ADDED

  • Durability CostMulti-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 v2Coordinated 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 enchant GUI và MMOItems editor giờ hiện giá trị thật (lv1) thay vì formula raw/sle enchant GUI and MMOItems editor now show resolved values (lv1) instead of raw formulas
  • Success Rate 0Cho 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 EXPGiá 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 RateOrb 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 Modecurrency: LEVEL trong tier-shop.yml → trừ trực tiếp levelcurrency: LEVEL in tier-shop.yml → direct level deduction
  • Give Command Random/sle give không chỉ định rate → tự random giống orb reveal/sle give without rate args → auto-randomize like orb reveal

REMOVED

  • Dust ConsolationKhô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 EngineHệ 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 System15+ đ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 supported mode:removed in v1.2.5, stats are now always permanent
  • Enchant Browser GUI/sle enchant mở 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 enchant opens paginated GUI to browse all enchants. Sort by name/rarity/level/type, filter by weapon category, detailed stats/abilities/mechanics view
  • 8 New Enchantsblast_mine, vein_miner, tree_feller, auto_smelt, telekinesis, harvest_area, extra_mob_drops, exp_multiplier

FIXED

  • Tier Shop EXPTrừ XP level thay vì total EXP → giờ dùng player.totalExperienceWas deducting XP levels instead of total EXP → now uses player.totalExperience
  • Orb Failure RateOrb reveal dùng global default (0.0) thay vì per-enchant failure-rateOrb reveals used global default (0.0) instead of per-enchant failure-rate
  • Item DestructionItem 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 → uses clickedInventory.setItem(slot, null)
  • Build ErrorFix biome.name compilation error trong KotlinFixed biome.name compilation error in Kotlin

CHANGED

  • 11 enchants legacy trigger: chuyển sang stats: với mode:11 legacy trigger: enchants converted to stats: with mode:
  • double_oreĐổi từ fake LUCK stat sang MULTIPLY_DROPS mechanic thậtChanged from fake LUCK stat to real MULTIPLY_DROPS mechanic
  • executionerThêm điều kiện IN_NIGHT (stats chỉ active ban đêm)Added IN_NIGHT condition (stats only active at night)
v1.2.12026-03-04

ADDED Tính Năng MớiNew Features

  • Protection StoneItem 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 Messages15+ 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 CompleteBrigadier tab completion cho failureRate arg trong lệnh /sle giveBrigadier tab completion for failureRate arg in /sle give command

CHANGED

  • DragDropListenerThêm handler protection_stone + kiểm tra protection trước khi phá itemAdded protection_stone handler + protection check before item destroy
  • OrbRevealListenerDùng ApplicationConfigLoader cho base rates, random cả success và failureUses ApplicationConfigLoader for base rates, randomizes both success and failure
  • EnchantDataUtilRender lore protection khi item có tag SLENCHANT_PROTECTEDRenders protection lore when item has SLENCHANT_PROTECTED tag
  • EnchantBookBuilderLuô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.ymlTái cấu trúc toàn bộ với sections cho mọi tính năngFully restructured with sections for all features
  • items.ymlThêm protection_stone definitionAdded protection_stone definition

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 IntegrationEnchant 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 SupportGrindstone 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 Systemfailure-rate per-enchant. Thất bại → roll vỡ → phá itemfailure-rate per-enchant. Fail → roll destroy → break item
  • Inventory Scan Intervalinventory-interval (default 200 ticks = 10s)
  • Give CommandThêm arg [successRate] [failureRate]Added [successRate] [failureRate] args
  • Enchant Editor GUIGUI paginated thay cho text dumpPaginated GUI replaces text dump
  • List Pagination10/trang, nút Prev/Next clickable10/page with clickable Prev/Next buttons
  • Vanilla Enchant LoreVanilla enchants hiện custom display name + description + rarityVanilla enchants show custom display name + description + rarity
  • Book Lore FormatSuccess + destroy rate hiện cùng dòng: §a85% §8| §c10%Success + destroy rate shown on same line: §a85% §8| §c10%
  • Vanilla Book Drag-DropSá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 toward max-enchants-per-item limit
  • 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 PassiveSkill APIMythicLib Abilities properly register with PassiveSkill API
v1.1.52026-03-03

FIXED Critical

  • [CRITICAL] Stats StackingUUID 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 StackingBug UUID tương tự trong SetBonusManagerSame UUID bug in SetBonusManager
  • [CRITICAL] Safety SweepThêm backup key-based removal mỗi lần recalculateAdded backup key-based removal on every recalculate
  • [HIGH] Fusion GUI Crashtriumph-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 EventThêm PlayerArmorChangeEvent handlerAdded PlayerArmorChangeEvent handler

ADDED

  • Permanent Effectsperm-effects: potion effects active khi đeo item. Auto-refresh, auto-removeperm-effects: potion effects active while item equipped. Auto-refresh, auto-remove
  • Particle Effectsparticles: FLAME, DUST (custom color/size)particles: FLAME, DUST (custom color/size)
  • 6-Piece Set BonusKing enchant hỗ trợ full 6pc setKing enchant supports full 6pc set
v1.1.42026-03-03

FIXED Critical

  • [CRITICAL] Set Bonus statIdMapping sai statId khi unregister. Giờ lưu modKey → statIdWrong statId mapping on unregister. Now stores modKey → statId
  • [CRITICAL] Stat ModifieractiveStats: SetMap<modKey, statId>activeStats: SetMap<modKey, statId>
  • [HIGH] Trak PersistenceCounter + NBT write trong cùng operationCounter + NBT write in single operation

ADDED

  • New YAML Format63 enchants chuyển sang name/lore/formula format63 enchants converted to name/lore/formula format
  • 8 MythicLib Abilities — Void Slash, Earthquake, Chain Lightning, Shockwave, Vampiric Touch, Frenzy, Arcane Barrier, Earth Spike
  • Set Bonus FormulasPer-tier stats + abilities với formula enginePer-tier stats + abilities with formula engine
  • Skill → Ability Migration14 legacy enchants chuyển đổi14 legacy enchants converted
v1.1.32026-03-02

ADDED Major Features

  • Souls SystemKill 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 Enchants2pc/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 IncreaserKéo thả lên item để tăng max enchant slotsDrag onto item to increase max enchant slots
  • /sle showToggle detailed/compact displayToggle detailed/compact display
  • Vanilla Enchant Hooksvanilla-enchants.yml
  • 50+ Sample Enchants8 categories8 categories
  • PlaceholderAPI ExpansionAuto-register khi PAPI có mặtAuto-registers when PAPI present
v1.1.22026-03-02

ADDED

  • Lucky Dust on BooksKé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 giveallGive 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 PositionEnchant 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 MarkersXó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 ApplyCùng enchant + cùng level → auto upgrade level+1Same enchant + same level → auto upgrade to level+1
  • Block Lower LevelKhông cho ép sách level thấp hơnPrevents applying lower-level books
v1.1.02026-03-02

ADDED

  • Custom Success Ratesuccess-rate per-enchant trong YAML, hiện trên book loresuccess-rate per-enchant in YAML, shown on book lore
  • Named Placeholderskey field cho stats: {ATK}, {SPD}, {CRIT}key field for stats: {ATK}, {SPD}, {CRIT}
  • messages.ymlFile messages tùy chỉnh mớiNew customizable messages file
  • Skill FallbackNative Bukkit effects khi MythicMobs không cóNative Bukkit effects when MythicMobs unavailable
  • Character Wrappingchars-per-line thay enchants-per-linereplaces enchants-per-line

FIXED

  • [CRITICAL] Lore WipingEnchants không còn ghi đè MMOItems loreEnchants no longer overwrite MMOItems lore
  • [CRITICAL] Vault ClassNotFoundErrorDùng isolated bridge objectsUses isolated bridge objects
  • Duplicate /sle fuse command đã xóaRemoved duplicate /sle fuse command
v1.0.82026-03-01

FIXED Code Review

  • [CRITICAL] EnchantRegistry atomic swap — volatile reference swap
  • [CRITICAL] matchesMetadata ENCHANT_LEVEL — dùng metadataFilter.min-leveluses metadataFilter.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 updateExtracted EnchantDataUtil — shared writeEnchantData + lore update
  • Tách CommandRegistrar từ main plugin (218 → 83 dòng)Extracted CommandRegistrar from main plugin (218 → 83 lines)
  • Cached TypeToken, NamespacedKeyCached TypeToken, NamespacedKey

REMOVED

  • Xóa SLEnchantTabCompleter (Brigadier xử lý)Deleted SLEnchantTabCompleter (Brigadier handles this)
v1.0.72026-03-01

ADDED

  • Per-file Enchant SystemMỗi enchant = 1 file YAML trong enchants/. Auto-generate mặc định lần đầuEach enchant = 1 YAML file in enchants/. Auto-generates defaults on first run
  • Improved HelpClickable commands với hover tooltipsClickable commands with hover tooltips
  • Better /sle listSorted by rarity, clickable, type tagsSorted by rarity, clickable, type tags
  • Better /sle infoFormatted stats, [Give Book] buttonFormatted stats, [Give Book] button

FIXED

  • Gson singleton thay thế tất cả Gson() instancesGson singleton replaces all Gson() instances
  • Missing imports: FoliaCompat, ModifierTrackerMissing imports: FoliaCompat, ModifierTracker
v1.0.62026-03-01

ADDED

  • Memory Leak PreventionCleanup task mỗi 5 phút, xóa data sau 30 phút inactiveCleanup task every 5 min, removes data after 30 min inactive
  • ModifierTrackerCleanup StatModifier khi player quitCleans up StatModifiers on player quit
  • Async File I/OActivity saves không còn gây lagActivity saves no longer cause lag
  • GsonUtilSingleton giảm object allocationSingleton reduces object allocation
v1.0.52026-03-01

FIXED Security & Thread Safety

  • [CRITICAL] Thread safety: ConcurrentHashMap cho ActivityManager, EnchantRegistryThread safety: ConcurrentHashMap for ActivityManager, EnchantRegistry
  • [CRITICAL] Thêm EconomyWrapper.deposit() (build-breaking bug)Added EconomyWrapper.deposit() (build-breaking bug)
  • [HIGH] Command injection protection trong activity rewardsCommand injection protection in activity rewards
v1.0.42026-03-01

ADDED

  • Activity/Achievement System11 activities, progress tracking, reward system (money, points, books, commands), GUI, broadcast11 activities, progress tracking, reward system (money, points, books, commands), GUI, broadcast
  • /sle activityXem 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)Removed minimize() 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 YAML commands:, uses Lifecycle API
v1.0.12026-03-01

FIXED

  • ClassNotFoundException cho FoliaLib — xóa minimize() khỏi Shadow JARfor FoliaLib — removed minimize() 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