-
Notifications
You must be signed in to change notification settings - Fork 0
Home
| Paper 1.21.x |
- 1. 简介
- 2. 安装与配置
- 3. 命令系统
- 4. 权限系统
- 5. 物品创建
- 6. 属性系统
- 7. 元素系统
- 8. 伤害系统
- 拓展1 技能系统(ItemCoreMythic)
- 附录1 PlaceholderAPI 占位符
- 附录2 开发者 API
- 常见问题
ItemCore 是一个功能简洁且集中的物品库插件,特色是可以自由添加拓展插件以丰富插件功能。
下方是已经或准备开发的拓展插件
| 插件 | 用途 |
|---|---|
| ItemCoreMythic | MythicMobs 拓展 |
| ItemCoreForge | RPG 拓展 |
| ItemCoreRPG | 锻造拓展 |
| ItemCoreTrinkets | 饰品拓展 |
核心特性:
- 充分的可配置性
- 独特的元素系统(元素积累/异常机制)
- 实时更新玩家物品Lore与属性
- 将
ItemCore.jar放入plugins/目录 - 重启服务器
- 插件首次启动会自动生成配置文件结构:
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 # 属性显示格式
| 子命令 | 用途 | 权限 |
|---|---|---|
open |
打开物品库 GUI | itemcore.command.gui |
gui |
同上(兼容) | itemcore.command.gui |
give <玩家> <物品> [数量] |
给予物品 | itemcore.command.give |
list [分类] |
列出已加载的物品 | itemcore.command.list |
reload |
热重载所有配置 | itemcore.command.reload |
info <物品> |
查看物品详情 | itemcore.command.info |
help |
显示帮助 | itemcore.command.help |
示例:
/ic open # 打开物品库
/ic give Is_Lianhua iron_sword # 给予物品
/ic reload # 重载配置
| 权限节点 | 默认 | 说明 |
|---|---|---|
itemcore.admin |
OP | 管理权限(包含以下全部) |
itemcore.command.give |
OP | 给予物品 |
itemcore.command.reload |
OP | 重载配置 |
itemcore.gui.obtain |
OP | 从 GUI 获取物品 |
itemcore.command.help |
所有人 | 查看帮助 |
itemcore.command.gui |
所有人 | 打开物品库 |
itemcore.command.list |
所有人 | 列出物品 |
itemcore.command.info |
所有人 | 查看物品信息 |
在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攻击类:
| 配置键 | 显示名 | 百分比 | 说明 |
|---|---|---|---|
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%| 元素 ID | 显示名 | 图标 | 颜色 | 异常效果 |
|---|---|---|---|---|
LIUHUO |
流火 | 🔟 |
&c |
灼烧:持续 8 秒,每秒 2% 当前生命伤害 |
HANSHUANG |
寒霜 | ❄️ |
&b |
虚弱:持续 4 秒,物理/法术抗性 -30% |
LEIZHE |
雷蛰 | ⚡ |
&e |
易伤:持续 6 秒,元素抗性 -25% |
# 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
# 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— 附加药水效果
代码中注册:
ItemCore.getInstance().getElementRegistry()
.register(new ElementType("ARCANE", "奥术"));在 elements.yml 和 ailments.yml 中配置对应的积累/异常规则。
| 类型 | 标签 | 说明 |
|---|---|---|
| 物理 | PHYSICAL |
普攻默认类型,吃物理加成/物抗 |
| 法术 | SPELL |
技能默认类型,吃法术加成/法抗 |
| 射弹 | PROJECTILE |
射弹伤害,吃射弹加成 |
原始伤害
→ 攻击类型标签(PHYSICAL/SPELL/PROJECTILE)
→ 暴击判定(CRIT_CHANCE → CRIT_DAMAGE)
→ 伤害类型百分比加成(PHYSICAL_DAMAGE% 等)
→ 穿透计算(百分比先或固定值先)
→ 抗性减免(仅非元素伤害生效物理/法术抗性)
→ 元素抗性减免(仅元素伤害生效)
→ 伤害减免 DAMAGE_REDUCTION%(最终减伤)
→ 元素积累
→ 最终伤害
- 含有元素类型的伤害跳过物理/法术抗性计算
- 只受元素抗性和DAMAGE_REDUCTION影响
- 元素抗性为负数时变为易伤加成
DAMAGE_REDUCTION 为最终减伤,对所有伤害生生效(包括元素伤害),与物抗/法抗/元素抗性叠加计算。
# 物品配置中
skills:
Right_Click:
skill: fireball
provider: mythicmobs
Left_Click:
skill: slash
provider: mythicmobs
Timer:
skill: regen
provider: mythicmobs
duration: 20| 触发类型 | 说明 |
|---|---|
Right_Click |
右键触发 |
Left_Click |
左键触发 |
Timer |
定时器,duration = 间隔刻数 |
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% 攻击力
active-slots 配置同时控制:
- 属性:装备位决定是否生效
- 技能:主手/副手配置决定技能触发
- 药水效果:装备位决定是否给予药水效果
| 占位符 | 说明 |
|---|---|
%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% |
伤害减免 |
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);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 创造模式物品栏的机制问题,生存模式或指令获取正常。
123