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

ItemCore Wiki

| Paper 1.21.x |


📑 目录


1. 简介

ItemCore 是一个功能简洁且集中的物品库插件,特色是可以自由添加拓展插件以丰富插件功能。

下方是已经或准备开发的拓展插件

插件 用途
ItemCoreMythic MythicMobs 拓展
ItemCoreForge RPG 拓展
ItemCoreRPG 锻造拓展
ItemCoreTrinkets 饰品拓展

核心特性:

  • 充分的可配置性
  • 独特的元素系统(元素积累/异常机制)
  • 实时更新玩家物品Lore与属性

2. 安装与配置

2.1 安装步骤

  1. ItemCore.jar 放入 plugins/ 目录
  2. 重启服务器
  3. 插件首次启动会自动生成配置文件结构:
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           # 属性显示格式

3. 命令系统

3.1 主命令 /ic

子命令 用途 权限
open 打开物品库 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.give OP 给予物品
itemcore.command.reload OP 重载配置
itemcore.gui.obtain OP 从 GUI 获取物品
itemcore.command.gui OP 打开物品库
itemcore.command.help 所有人 查看帮助

5. 物品创建

在items/ 文件夹下的分类文件内创建物品,如 weapons.yml。

完整的可配置项:

配置项 类型 默认值 说明
material 材质名 必填 物品材质
type 字符串 - 暂时无用
display-name 字符串 显示名称(支持 & 颜色码)
lore 列表 物品描述
attributes Map 属性配置
enchantments Map 附魔
item-flags 列表 物品标志
unbreakable 布尔 false 是否不可破坏
max-stack 整数 原版规则 最大堆叠数
custom-model-data 整数 自定义模型数据
active-slots 列表 any 生效装备位
effects 列表 药水效果
keep-on-death 布尔 false 死亡是否保留
skills 列表 技能配置(需 ItemCoreMythic)

配置项补充

active-slots:
  - main-hand  #主手
  - off-hand   #副手
  - head       #头部
  - chest      #胸部
  - legs       #腿部
  - feet       #脚部
  - any        #所有
item-flags:
  - HIDE_ATTRIBUTES   #隐藏属性(会直接去除原版属性)
  - HIDE_ENCHANTS    #隐藏附魔
  - HIDE_UNBREAKABLE  #隐藏不可破坏
  - HIDE_POTION_EFFECTS  #隐藏药水效果

示例 - 完整物品:

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 幸运值 幸运加成

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

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 — 按百分比造成 该元素 伤害
  • DAMAGE_FIXED — 固定值 该元素 伤害
  • 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 为最终减伤,对所有伤害生生效(包括元素伤害),与物抗/法抗/元素抗性叠加计算。


拓展1 技能系统(ItemCoreMythic)

1.1 技能配置

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

1.2 技能触发类型

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

1.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% 攻击力

1.4 active-slots 影响范围

active-slots 配置同时控制:

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

附录1 PlaceholderAPI 占位符

占位符 说明
%itemcore_attack_damage% 攻击伤害
%itemcore_attack_speed% 攻击速度
%itemcore_attack_range% 攻击范围
%itemcore_health% 当前生命值
%itemcore_max_health% 最大生命值
%itemcore_movement_speed% 总移速
%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% 伤害减免

附录2 开发者 API

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);

2.注册自定义元素

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

常见问题

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