Skip to content
Gulu edited this page Jun 7, 2026 · 11 revisions

ItemCore Wiki

版本: v1.0.0 | Paper 1.21.x | 依赖: PlaceholderAPI(可选)


📑 目录


1. 简介

ItemCore 是一套面向 Paper 1.21.x 的自定义物品系统插件,包含三个子插件:

插件 用途
ItemCore 核心插件:物品管理、属性计算、伤害系统、元素系统、GUI
ItemCoreRPG RPG 拓展:玩家信息 GUI、伤害飘字显示
ItemCoreMythic MythicMobs 桥接:技能触发、ICDamageMechanic

核心特性:

  • 22 种自定义属性(攻击、防御、暴击、穿透等)
  • 3 种默认元素类型(流火/寒霜/雷蛰),框架级可扩展
  • 自定义伤害计算系统(物理/法术/射弹 + 元素混合伤害)
  • 元素积累/异常机制(灼烧 DOT、寒霜减双抗、雷蛰增伤)
  • 自动 Lore 生成(可配置布局 + 白/橙色配色)
  • 物品库 GUI(分类浏览、获取物品)
  • PlaceholderAPI 集成(23 个占位符)
  • MythicMobs 技能桥接(ICDamageMechanic)
  • 热重载:修改配置后 /ic reload 即可生效

2. 安装与配置

2.1 安装步骤

  1. ItemCore.jarItemCoreRPG.jarItemCoreMythic.jar 放入 plugins/ 目录
  2. (可选)安装 PlaceholderAPI
  3. 重启服务器
  4. 插件首次启动会自动生成配置文件结构:
plugins/ItemCore/
├── config.yml              # 主配置
├── attributes.yml          # 属性全局参数
├── messages.yml            # 消息配置
├── categories.yml          # 分类配置
├── elements.yml            # 元素配置
├── ailments.yml            # 异常配置
├── items/                  # 物品配置目录
│   ├── weapons.yml
│   ├── armors.yml
│   └── ...
├── tooltip/
│   ├── lore.yml            # Lore 布局
│   └── stats.yml           # 属性显示格式

2.2 重载配置

/ic reload

3. 命令系统

3.1 主命令 /ic

子命令 用途 权限
open 打开物品库 GUI itemcore.command.gui
gui 同上(兼容) itemcore.command.gui
give <玩家> <物品> [数量] 给予物品 itemcore.command.give
reload 热重载所有配置 itemcore.command.reload
help 显示帮助 itemcore.command.help

示例:

/ic open                       # 打开物品库
/ic give Is_Lianhua iron_sword # 给予物品
/ic reload                     # 重载配置

4. 权限系统

权限节点 默认 说明
itemcore.admin OP 管理权限(包含以下全部)
itemcore.command.help 所有人 查看帮助
itemcore.command.gui 所有人 打开物品库
itemcore.command.give OP 给予物品
itemcore.command.list 所有人 列出物品
itemcore.command.reload OP 重载配置
itemcore.command.info 所有人 查看物品信息
itemcore.gui.obtain OP 从 GUI 获取物品

5. 物品创建

5.1 基本格式

items/ 目录下的 .yml 文件中定义:

legendary_blade:
  material: NETHERITE_SWORD
  type: weapons
  display-name: "&4&l传说之刃"
  lore:
    - "&7传说中的神秘武器"
  attributes:
    ATTACK_DAMAGE: 15
    CRIT_CHANCE: 25
  active-slots:
    - main-hand

5.2 完整配置项

配置项 类型 默认值 说明
material 材质名 必填 物品材质
type 字符串 misc 分类 ID(对应 categories.yml)
display-name 字符串 显示名称(支持 & 颜色码)
lore 列表 物品描述
attributes Map 属性配置(见下方)
enchantments Map 附魔:sharpness: 5
item-flags 列表 ItemFlag:HIDE_ATTRIBUTES
unbreakable 布尔 false 是否不可破坏
max-stack 整数 64 最大堆叠数
custom-model-data 整数 自定义模型数据
active-slots 列表 生效装备位:main-hand, off-hand, chest, feet, legs, head
skills 列表 技能配置(需 ItemCoreMythic)
effects 列表 药水效果
keep-on-death 布尔 false 死亡是否保留

示例 - 完整物品:

fire_sword:
  material: DIAMOND_SWORD
  type: weapons
  display-name: "&c烈焰之剑"
  lore:
    - "&7燃烧一切的烈焰之剑"
  enchantments:
    sharpness: 3
    fire_aspect: 2
  item-flags:
    - HIDE_ATTRIBUTES
  unbreakable: true
  active-slots:
    - main-hand
  attributes:
    ATTACK_DAMAGE: 12
    ATTACK_SPEED: 1.6
    CRIT_CHANCE: 15
    CRIT_DAMAGE: 30
    PHYSICAL_PENETRATION: 5
  skills:
    Right_Click:
      skill: fireball
      provider: mythicmobs

6. 属性系统

6.1 全部属性列表

攻击类:

配置键 显示名 百分比 说明
ATTACK_DAMAGE 攻击伤害 基础攻击力,直接加到伤害上
ATTACK_SPEED 攻击速度 最终攻速值(如 1.6 = 铁剑速度)
ATTACK_RANGE 攻击范围 攻击距离加成
KNOCKBACK 击退 击退加成
CRIT_CHANCE 暴击几率 % 暴击概率
CRIT_DAMAGE 暴击伤害 % 额外暴击倍率(总暴击 = 默认150% + 此值)

法术/伤害类型:

配置键 显示名 百分比 说明
SPELL_POWER 法术强度 法术伤害基础值
PHYSICAL_DAMAGE 物理加成 % 物理伤害百分比加成
SPELL_DAMAGE 法术加成 % 法术伤害百分比加成
PROJECTILE_DAMAGE 射弹加成 % 射弹伤害百分比加成
ADAPTIVE_FORCE 适应之力 自动转为攻击或法强(二者取高者加成)

防御类:

配置键 显示名 百分比 说明
PHYSICAL_RESIST 物理抗性 物理减伤(可配置公式)
SPELL_RESIST 法术抗性 法术减伤(可配置公式)
ARMOR 护甲 原版护甲值
DAMAGE_REDUCTION 伤害减免 % 最终百分比减伤(对所有伤害生效)

穿透类:

配置键 显示名 百分比 说明
PHYSICAL_PENETRATION 物理穿透 固定值物理穿透
PHYSICAL_PENETRATION_PERCENT 物理穿透 % 百分比物理穿透
SPELL_PENETRATION 法术穿透 固定值法术穿透
SPELL_PENETRATION_PERCENT 法术穿透 % 百分比法术穿透

生存类:

配置键 显示名 百分比 说明
HEALTH 生命值 额外生命(基础20点)
MOVEMENT_SPEED 移动速度 额外移速(基础0.1)
REGENERATION 生命恢复 每秒恢复生命值
LUCK 幸运值 幸运加成

6.2 适应之力

# attributes.yml
adaptive-force:
  attack_conversion: 0.5   # 每1点适应之力 → 0.5攻击
  spell_conversion: 1.0    # 每1点适应之力 → 1.0法强

工作方式:比较玩家当前 ATTACK_DAMAGESPELL_POWER,数值高的那一方获得适应之力加成。

6.3 暴击机制

  • CRIT_DAMAGE额外加成
  • 总暴击伤害 = attributes.ymlcrit.default_crit_damage(默认 150%)+ CRIT_DAMAGE
  • 例:CRIT_DAMAGE: 50 → 暴击时造成 200% 伤害

6.4 攻击速度

  • 直接配置为最终值
  • ATTACK_SPEED: 1.6 = 攻速 1.6(与原版铁剑相同)
  • ATTACK_SPEED: 4.0 = 极快
  • 未配置时不影响原版攻速
  • 非 IC 武器保持原版 4.0 基准值

6.5 防御公式

# 默认公式:百分比减伤(类似英雄联盟护甲公式)
defense_formulas:
  physical_resist: '{damage} * (1 - {armor} / ({armor} + 100))'
  spell_resist: '{damage} * (1 - {armor} / ({armor} + 100))'

# 也可用固定值减伤
# physical_resist: '{damage} - {armor}'

# 穿甲顺序
penetration_order: percent_first  # 百分比先算 / flat_first 固定值先算

可用变量:{damage} 原始伤害、{armor} 护甲/法抗值

6.6 百分比属性书写规则

所有百分比属性直接填写整数:

CRIT_CHANCE: 30    # ✅ 正确 = 30%
CRIT_DAMAGE: 50    # ✅ 正确 = 50%
PHYSICAL_DAMAGE: 10  # ✅ 正确 = 10%

7. 元素系统

7.1 默认元素

元素 ID 显示名 图标 颜色 异常效果
LIUHUO 流火 🔟 &c 灼烧:持续 8 秒,每秒 2% 当前生命伤害
HANSHUANG 寒霜 ❄️ &b 虚弱:持续 4 秒,物理/法术抗性 -30%
LEIZHE 雷蛰 &e 易伤:持续 6 秒,元素抗性 -25%

7.2 元素积累

# elements.yml
LIUHUO:
  display: "&c流火"
  icon: '🔟'
  color: '&c'
  threshold: 30           # 积累阈值,达到后触发异常
  decay-per-second: 1     # 无元素伤害时每秒衰减
  accumulation:
    mode: DAMAGE_PERCENT  # DAMAGE_PERCENT / FIXED / ATTRIBUTE
    value: 0.5            # 每次伤害 = 伤害值 × 50% 积累
    allow-sources:
      - ATTACK
      - SKILL
  ailment: LIUHUO_DOT     # 关联异常 ID(见 ailments.yml)

积累模式:

  • DAMAGE_PERCENT:积累值 = 伤害 × value
  • FIXED:每次固定积累 value
  • ATTRIBUTE:基于属性值 × multiplier

7.3 异常配置

# ailments.yml
LIUHUO_DOT:
  display: "&c流火"
  duration: 160           # 160 tick = 8 秒
  refresh-policy: RESET   # RESET / STACK / IGNORE / REPLACE
  triggers:
    - type: DAMAGE_PERCENT
      value: 0.02         # 2% 当前生命
      interval: 20        # 每秒触发一次

HANSHUANG_WEAKEN:
  display: "&b寒霜"
  duration: 80
  refresh-policy: RESET
  triggers:
    - type: ATTRIBUTE_MOD
      attribute: PHYSICAL_RESIST
      value: -0.3         # 物理抗性 -30%
    - type: ATTRIBUTE_MOD
      attribute: SPELL_RESIST
      value: -0.3         # 法术抗性 -30%

LEIZHE_BREAK:
  display: "&e雷蛰"
  duration: 120
  refresh-policy: RESET
  triggers:
    - type: RESISTANCE_REDUCTION
      value: -0.25        # 全元素抗性 -25%

触发类型:

  • DAMAGE_PERCENT — 按百分比造成 DOT 伤害
  • DAMAGE_FIXED — 固定值 DOT 伤害
  • ATTRIBUTE_MOD — 临时修改目标属性
  • RESISTANCE_REDUCTION — 降低元素抗性
  • POTION_EFFECT — 附加药水效果

7.4 拓展自定义元素

代码中注册:

ItemCore.getInstance().getElementRegistry()
    .register(new ElementType("ARCANE", "奥术"));

elements.ymlailments.yml 中配置对应的积累/异常规则。


8. 伤害系统

8.1 伤害类型

类型 标签 说明
物理 PHYSICAL 普攻默认类型,吃物理加成/物抗
法术 SPELL 技能默认类型,吃法术加成/法抗
射弹 PROJECTILE 射弹伤害,吃射弹加成

8.2 伤害计算流程

原始伤害
  → 攻击类型标签(PHYSICAL/SPELL/PROJECTILE)
  → 暴击判定(CRIT_CHANCE → CRIT_DAMAGE)
  → 伤害类型百分比加成(PHYSICAL_DAMAGE% 等)
  → 穿透计算(百分比先或固定值先)
  → 抗性减免(仅非元素伤害生效物理/法术抗性)
  → 元素抗性减免(仅元素伤害生效)
  → 伤害减免 DAMAGE_REDUCTION%(最终减伤)
  → 元素积累
  → 最终伤害

8.3 元素伤害规则

  • 含有元素类型的伤害跳过物理/法术抗性计算
  • 只受元素抗性DAMAGE_REDUCTION影响
  • 元素抗性为负数时变为易伤加成

8.4 伤害减免优先级

DAMAGE_REDUCTION 为最终减伤,对所有伤害生生效(包括元素伤害),与物抗/法抗/元素抗性叠加计算。


9. Lore 展示系统

9.1 布局配置

# tooltip/lore.yml
lore-format:
  - '#item-lore#'
  - '{bar}'
  - '#attack_damage#'
  - '#attack_speed#'
  - '#health#'
  - '#movement_speed#'
  ...

占位符说明:

  • #属性名# — 显示对应属性值(自动隐藏为0的属性)
  • #item-lore# — 物品配置中的描述文本
  • {bar} — 条件分隔线(上下有内容时才显示)
  • {sbar} — 始终显示的分隔线

9.2 属性显示格式

# tooltip/stats.yml
attack_damage: '&f攻击伤害: &6<plus>{value}'
crit_chance: '&f暴击几率: &6<plus>{value}%'

格式变量:

  • {value} — 属性数值
  • <plus> — 自动 +/- 符号
  • 配色:词条 &f(白),数值 &6(橙)

9.3 自动刷新

# config.yml
lore-refresh:
  enabled: true      # 启用自动刷新
  interval: 100      # 扫描间隔(tick),100 = 5秒

启用后,物品 Lore 会自动随配置更新,无需手动 /ic reload


11. 技能系统(ItemCoreMythic)

11.1 技能配置

# 物品配置中
skills:
  Right_Click:
    skill: fireball
    provider: mythicmobs
  Left_Click:
    skill: slash
    provider: mythicmobs
  Timer:
    skill: regen
    provider: mythicmobs
    duration: 20

11.2 技能触发类型

触发类型 说明
Right_Click 右键触发
Left_Click 左键触发
Timer 定时器,duration = 间隔刻数

11.3 ICDamageMechanic

MythicMobs 技能中可使用自定义伤害:

Skills:
- icdamage{amount="<ic.attack_damage> * 2",type=physical,element=LIUHUO,penetration=5,crit=true} @EIR{r=5}

参数:

参数 别名 默认值 说明
amount a 1 伤害公式,支持 <ic.xxx> 占位符和数学运算
type t physical 伤害类型:physical / spell / projectile
element e none 元素类型:LIUHUO / HANSHUANG / LEIZHE
crit c true 是否可暴击
attacktype at skill 攻击类型:skill / attack
penetration p 0 额外穿透值
lifesteal ls 0 吸血比例

数学运算支持:

<ic.spell_power> * 0.5        # 50% 法术强度
<ic.attack_damage> * 2 + 10  # 攻击力 × 2 + 10
<ic.attack_damage> * 50%     # 50% 攻击力

11.4 active-slots 影响范围

active-slots 配置同时控制:

  • 属性:装备位决定是否生效
  • 技能:主手/副手配置决定技能触发
  • 药水效果:装备位决定是否给予药水效果

12. PlaceholderAPI 占位符

标识符:itemcore

占位符 说明
%itemcore_attack_damage% 攻击伤害
%itemcore_attack_speed% 攻击速度
%itemcore_attack_range% 攻击范围
%itemcore_health% 总生命值(含基础20)
%itemcore_movement_speed% 总移速(含基础0.1)
%itemcore_regeneration% 生命恢复
%itemcore_knockback% 击退
%itemcore_luck% 幸运值
%itemcore_spell_damage% 法术加成
%itemcore_physical_damage% 物理加成
%itemcore_projectile_damage% 射弹加成
%itemcore_spell_power% 法术强度
%itemcore_adaptive_force% 适应之力
%itemcore_crit_chance% 暴击几率
%itemcore_crit_damage% 暴击伤害(额外)
%itemcore_physical_resist% 物理抗性
%itemcore_spell_resist% 法术抗性
%itemcore_physical_penetration% 物理穿透
%itemcore_physical_penetration_percent% 物理穿透%
%itemcore_spell_penetration% 法术穿透
%itemcore_spell_penetration_percent% 法术穿透%
%itemcore_damage_reduction% 伤害减免
%itemcore_max_health% 总生命值(同health)

13. 开发者 API

13.1 获取 API 实例

import com.minemart.itemcore.api.ItemCoreAPI;

// 获取玩家属性
AttributeContainer attrs = ItemCoreAPI.getPlayerAttributes(player);
double attackDamage = attrs.getAttribute(CustomAttribute.ATTACK_DAMAGE);

// 获取物品
CustomItem item = ItemCoreAPI.getCustomItem("legendary_blade");

// 获取分类
Collection<ItemCategory> categories = ItemCoreAPI.getCategories();

// 处理自定义伤害
DamageRequest request = DamageRequest.builder()
    .attacker(attacker)
    .victim(victim)
    .baseDamage(100)
    .damageType(DamageTag.SPELL)
    .element(ElementType.LIUHUO)
    .canCrit(true)
    .attackType(AttackType.SKILL)
    .build();
ItemCoreAPI.processDamage(request);

13.2 注册自定义元素

ItemCore.getInstance().getElementRegistry()
    .register(new ElementType("ARCANE", "奥术"));

14. 常见问题

Q: 修改配置后需要重启服务器吗? A: /ic reload 即可热重载,无需重启。

Q: 属性为什么不生效? A: 检查 active-slots 配置。物品必须在指定的装备位才生效。

Q: 多个装备的属性如何计算? A: 同名属性自动累加。如两件装备都有 ATTACK_DAMAGE: 10,最终 +20。

Q: 暴击伤害显示 200%? A: CRIT_DAMAGE 是额外加成。总暴击 = 默认值(150%)+ CRIT_DAMAGE。默认值可在 attributes.yml 中修改。

Q: 攻击速度怎么配置? A: 直接写最终值。ATTACK_SPEED: 1.6 = 铁剑速度。ATTACK_SPEED: 4.0 = 极快。

Q: 百分比属性怎么写? A: 直接填整数。CRIT_CHANCE: 30 = 30%,不是 0.3。

Q: 适应之力有什么用? A: 自动根据攻击/法强较高者转化为对应加成。转化率在 attributes.yml 配置。

Q: 元素伤害是怎么计算的? A: 带元素的伤害跳过物理/法术抗性,只受元素抗性和伤害减免影响。

Q: 如何让物品技能触发? A: 安装 ItemCoreMythic,在物品配置的 skills 节点配置技能,确保 active-slots 包含 main-hand

Q: 为什么创建模式拿出来的物品攻速不对? A: 这是 Minecraft 创造模式物品栏的机制问题,生存模式或指令获取正常。


Clone this wiki locally