MagicHeroes là plugin RPG/MMO cho Paper 1.21.x, viết bằng Kotlin.
Mục tiêu plugin: item custom data-driven, stat RPG, combat, class/level, skill, quest, party, waypoint, crafting/loot và API cho plugin khác.
Trạng thái hiện tại: source đang phát triển mạnh, chưa có xác nhận build/Paper smoke test cuối cùng. Không dùng production trước khi chạy
./gradlew.bat clean test shadowJarvà test trên server Paper local.
- Đổi tên item, custom lore, enchant, tooltip template.
- Dữ liệu item lưu PDC, không dùng lore làm data source.
- Đọc legacy PDC:
mh_health,mh_mana,mh_damage,mh_defensemh_health_regen,mh_mana_regenmh_name,mh_custom_loremh_durability,mh_max_durabilitymh_level_req,mh_class_req
- Item template YAML trong
plugins/MagicHeroes/items/**. - Item identity PDC:
item_iditem_typeitem_versiontemplate_hashupgrade_levelidentifiedsoulbound_owner
- Demo template:
firebrand. - Item registry validate ID/material/template, giữ snapshot cũ khi item reload lỗi.
- Custom durability riêng, không dùng vanilla durability làm dữ liệu thật.
- Infinite durability.
- Broken item:
- mất stat bonus
- chặn attack/interact/block break
- tooltip broken
- phát
ItemBreakEvent
- Tooltip refresh sau item mutation qua
ItemUtils.resetAndUpdateTooltip().
- Stat PDC typed + legacy fallback.
- Stat snapshot scan:
- helmet
- chestplate
- leggings
- boots
- main hand
- off hand
- Có source tracking cho
/mh stats. - Enforce level/class requirement khi attack và interact.
- Attribute cơ bản:
- Strength
- Dexterity
- Intelligence
- Vitality
- Wisdom
- Luck
- Bukkit health là health runtime source.
- Damage pipeline nền:
- pre-damage event
- attack damage
- crit
- armor/magic penetration
- defense
- elemental resistance
- final Bukkit damage
- post-damage event
- Damage type nền:
- melee
- projectile
- magic
- fire
- fall
- void
- explosion
- environmental
- true damage model
- Resource hiện có:
- health qua Bukkit
- mana profile-backed
- mana regen theo elapsed time
- Custom events:
MagicHeroesPreDamageEventMagicHeroesPostDamageEventMagicHeroesCriticalHitEventMagicHeroesHealEventMagicHeroesKillEventMagicHeroesDeathEvent
- Class YAML hiện có: warrior, mage, archer.
- Base HP/mana/defense theo class + level.
- EXP multi-level.
- Level cap mặc định 100.
- Level up cấp attribute point + skill point.
- Profile YAML persist:
- class/level/EXP
- mana
- kill/death
- attributes
- skill unlock/bind/tree
- quest progress
- completed quest
- discovered waypoint
- Skill YAML registry.
- Demo skills:
slashminor-heal
- Skill check:
- unlock
- class
- level
- mana
- cooldown
- target/range
- Skill binding slot 1–9.
- Skill tree YAML:
- parent requirement
- incompatible node
- point cost
- max level
- unlock skill
- Quit dọn cooldown state.
Nền P4 hiện có:
- Tier PDC.
- Upgrade level PDC.
- Socket count + gem ID PDC.
- Soulbound owner check.
- Set registry YAML.
- Recipe registry YAML.
- Loot table YAML:
- guaranteed entries
- weighted entry
- seeded random selection.
- Demo:
recipes/firebrand.ymlloot-tables/firebrand.yml
- Quest YAML registry.
- Objective hiện có: kill, collect, mine, reach, interact.
- Demo quest:
first-blood,reach-spawn. - Quest start, party-shared progress, complete, EXP/item reward.
- Cấu hình:
docs/quests.md. - Party:
- invite
- accept
- leave
- kick
- disband
- chat
- max size config
- leader transfer khi leader leave
- cấu hình:
docs/parties.md.
- Waypoint service:
- YAML location config
- register
- discover
- safe teleport sau discovery
- Paper async teleport
- cooldown config
- profile persistence
- cấu hình:
docs/waypoints.md.
Public API source-level qua MagicHeroes.api:
- đọc item identity
- đọc level
- cấp EXP
- đọc/trừ mana
- custom
DamageContext - register/unregister skill
Optional plugin detection:
- PlaceholderAPI
- Vault
- MythicMobs
- Citizens
- ItemsAdder
- Oraxen
- Nexo
Các plugin trên là softdepend; không cài không làm MagicHeroes disable.
| Command | Mục đích |
|---|---|
/mh help |
Xem command theo permission |
/mh stats |
Xem HP/mana/damage/defense |
/mh attributes show|add|reset |
Xem và phân điểm attribute |
/mh skills |
Xem skill lock/unlock |
/mh skill cast|bind|unbind|unlock|tree|reset |
Quản lý skill |
/mh quests |
Xem quest active |
/mh quest start <id> |
Nhận quest |
/mh party invite|accept|leave |
Party cơ bản |
/mh waypoint discover|teleport|list |
Waypoint cơ bản |
/mh item give <player> <id> [amount] |
Give custom item |
/mh item inspect |
Inspect held item |
/mh item validate|reload |
Validate/reload registry |
/mh item craft <recipe> |
Craft recipe cơ bản |
/mh item loot <table> |
Roll loot table cơ bản |
/mh class set|levelup |
Admin class/level |
/mh level addexp <player> <amount> |
Admin EXP |
/mh reload |
Reload config/registry |
| Permission | Mục đích |
|---|---|
magicheroes.user |
Player commands |
magicheroes.admin |
Tổng permission admin |
magicheroes.reload |
Reload |
magicheroes.item.create |
Item template admin |
magicheroes.item.give |
Give item |
magicheroes.item.edit |
GUI/item editor |
magicheroes.item.validate |
Validate item registry |
magicheroes.item.reload |
Reload item registry |
magicheroes.item.inspect |
Inspect custom item |
magicheroes.class.admin |
Quản lý class |
magicheroes.level.admin |
Quản lý level/EXP |
magicheroes.skill.admin |
Quản lý skill/tree |
magicheroes.debug |
Debug |
magicheroes.bypass.requirements |
Bypass item requirement |
magicheroes.bypass.cooldown |
Bypass cooldown |
magicheroes.bypass.soulbound |
Bypass soulbound |
plugins/MagicHeroes/
├── items/
├── skills/
├── skill-trees/
├── recipes/
├── loot-tables/
├── quests/
├── playerdata/
├── classes.yml
├── config.yml
├── lang/
└── tooltips/
Yêu cầu:
- Java 21
- Paper 1.21.x
- Gradle wrapper hoặc Gradle local
Windows:
./gradlew.bat clean test shadowJar
./gradlew.bat runServerPOSIX:
./gradlew clean test shadowJar
./gradlew runServerJAR output dự kiến trong build/libs/.
Các phần dưới đây không được xem là production-ready:
- Build/test/Paper runtime full chưa được xác minh sau toàn bộ thay đổi hiện tại.
- SQLite default, MySQL/MariaDB storage, connection pool.
- Guild, friend/ignore, guild bank/rank/upgrade.
- Economy ledger và Vault economy adapter.
- Quest GUI, bossbar, NPC integration, objective đầy đủ.
- Waypoint config loader, cooldown/cost/world validation hoàn chỉnh.
- Skill GUI, cast time/channel/interrupt, toàn bộ mechanic DSL.
- Set bonus/gem effect/reforge/random rolls/upgrade chance thật sự vào
StatSnapshot. - Crafting GUI/station transaction hoàn chỉnh.
- Personal/party loot, loot chest, protection.
- Adapter thật cho PlaceholderAPI/Vault/MythicMobs/Citizens/ItemsAdder/Oraxen/Nexo.
- API custom stat/item type/mechanic/trigger/condition/modifier đầy đủ.
Xem checklist chi tiết:
docs/acceptance.mddocs/p1-acceptance.mddocs/p2-acceptance.mddocs/p3-acceptance.mddocs/p4-acceptance.mddocs/p5-acceptance.mddocs/api.md