⚡ 超级附魔

Super Enchantment Mod — 自定义附魔书《面板》
Minecraft 1.21.11 Fabric Loader 0.18.4 Fabric API 0.141.4 Java 21
下载模组 JAR (v1.0.0) 📦下载源代码
📋 模组概述

📖 附魔书《面板》

模组自带的自定义附魔书。将面板书与任意物品在副手中组合(主手拿书,副手拿物品,右键),即可为该物品添加属性面板。

🚫 不可放置

被面板附魔的方块物品将无法被放置。通过Mixin拦截BlockItem的放置行为,同时防止发射器等非玩家放置。

🖱️ 右键开面板

右键点击面板物品可打开属性面板GUI,选择当前要使用的能力。面板显示所有15种能力及其描述。

⚔️ 攻击触发能力

左键攻击生物时触发当前选中的能力。每种能力有不同效果:闪电、击退、仇恨、传送等。

🎮 使用方法
1

获取面板附魔书

在创造模式物品栏(工具/战斗分类)中找到 附魔书:面板,或使用指令 /give @s superenchantment:panel_book

2

给物品附魔

将目标物品放在副手,面板书放在主手,然后右键。面板书会被消耗,副手物品获得面板属性。

3

打开属性面板

手持面板物品右键,打开GUI面板。鼠标悬停可查看能力描述,点击选择要使用的能力。

4

触发能力

选定能力后,左键攻击任意生物即可触发该能力。不同能力有不同的触发方式和效果。

全部能力 (15种)
😡
仇恨棒
hatred_rod
依次攻击两个生物,使其互相产生仇恨。怪物会持续追击对方。多人游戏中攻击玩家+生物,生物仇恨转移到该玩家身上。
多段攻击
😇
解除仇恨
remove_hatred
解除你创建的所有仇恨链接(不属于当前物品的也在内)。攻击任意生物即可触发。
即时
💥
击退棒
knockback_rod
与PVP中的击退棒相同效果,将目标强力击退。附带击退音效。
攻击型
天雷
heavenly_lightning
被攻击者将被10道闪电劈中!闪电在目标周围4格范围内随机降落,附带雷声效果。
攻击型
❄️
冰封万里
ice_age
冻结目标,施加减速V、虚弱III、挖掘疲劳III持续20秒,并设置冻结状态400tick。附带雪花粒子。
攻击型
🩸
生命窃取
life_steal
对目标造成6点伤害,并将等量生命值恢复给攻击者。伤害指示器粒子效果。
攻击型
🌀
黑洞引力
black_hole
在目标位置制造黑洞,将8格范围内的所有生物吸向目标。传送门粒子环绕效果。
范围
🚀
升天
ascension
将目标强力弹射到高空,Y轴速度+4.0,重置摔落距离。云朵粒子+末影龙翅膀音效。
攻击型
💀
凋零之触
wither_touch
对目标施加凋零II、中毒II、反胃I持续15秒。凋灵音效+可疑沙子粒子。
攻击型
🔥
爆破
detonation
在目标位置引发威力5的爆炸,但不会破坏方块。对生物造成伤害。爆炸音效。
攻击型
🔗
连锁闪电
chain_lightning
闪电从目标开始连锁到10格范围内最多6个附近生物。主目标受8点伤害,连锁目标受5点伤害。
范围
🛡️
金身护体
golden_body
攻击任意生物时为自身施加抗性提升IV、生命恢复III、火焰抗性、力量I持续20秒。信标激活音效。
自身增益
🌌
虚空裂隙
void_rift
目标获得失明、漂浮II、黑暗效果持续10-15秒。龙息粒子+传送门音效。
攻击型
👻
灵魂燃烧
soul_burn
点燃目标的灵魂:凋零III持续20秒 + 着火8秒。灵魂火焰粒子+灵魂逃脱音效。
攻击型
🔄
位面交换
exchange
与目标交换位置!攻击者和目标瞬间互换坐标。反向传送门粒子+末影人传送音效。
攻击型
🏗️ 架构设计
// 模组架构流程图 ┌─────────────────────────────────────────────────────────────┐ │ 超级附魔模组架构 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ PanelBookItem (附魔书物品) │ │ │ │ │ ▼ 主手拿书 + 副手拿物品 → 右键 │ │ ┌─────────────────┐ │ │ │ ModComponents │ 添加 PANEL_MARK + PANEL_ABILITY │ │ │ (数据组件) │ 到目标物品的DataComponent │ │ └────────┬────────┘ │ │ │ │ │ ┌─────┴──────┐ │ │ ▼ ▼ │ │ 右键事件 攻击事件 │ │ UseItemCallback AttackEntityCallback │ │ │ │ │ │ ▼ ▼ │ │ ┌──────────┐ ┌──────────────────┐ │ │ │PanelScreen│ │ 读取 PANEL_ABILITY │ │ │ │ (GUI面板) │ │ 获取 Ability 对象 │ │ │ │ 选择能力 │ │ 调用 onAttack() │ │ │ └─────┬────┘ └────────┬─────────┘ │ │ │ │ │ │ ▼ ▼ │ │ ┌──────────────┐ ┌──────────────────┐ │ │ │ModNetworking│ │ Abilities (15种能力) │ │ │ │ C2S Payload │ │ 仇恨棒/天雷/击退... │ │ │ │ 更新物品组件 │ │ 各自实现onAttack │ │ │ └──────────────┘ └────────┬─────────┘ │ │ │ │ │ ┌───────┴────────┐ │ │ ▼ ▼ │ │ HatredManager BlockItemMixin │ │ (仇恨链接管理) (阻止方块放置) │ │ ServerTick维持 useOnBlock拦截 │ │ │ └─────────────────────────────────────────────────────────────┘
📁 项目文件结构
super-enchantment/ ├── build.gradle # Gradle构建配置 ├── settings.gradle # Gradle设置 ├── gradle.properties # 版本号配置 ├── gradle/wrapper/ │ └── gradle-wrapper.properties └── src/main/ ├── java/com/superenchantment/ │ ├── SuperEnchantment.java # 主初始化类 │ ├── SuperEnchantmentClient.java # 客户端初始化 │ ├── ability/ │ │ ├── Ability.java # 能力接口 │ │ └── Abilities.java # 15种能力实现 │ ├── component/ │ │ └── ModComponents.java # 数据组件注册 │ ├── event/ │ │ └── ModEvents.java # 事件处理器 │ ├── item/ │ │ ├── ModItems.java # 物品注册 │ │ └── PanelBookItem.java # 面板书物品 │ ├── manager/ │ │ └── HatredManager.java # 仇恨系统管理 │ ├── mixin/ │ │ └── BlockItemMixin.java # 阻止方块放置 │ ├── network/ │ │ ├── AbilitySelectPayload.java # C2S数据包 │ │ └── ModNetworking.java # 网络通信注册 │ └── screen/ │ └── PanelScreen.java # GUI面板界面 └── resources/ ├── fabric.mod.json # 模组元数据 ├── superenchantment.mixins.json # Mixin配置 └── assets/superenchantment/ ├── lang/ │ ├── zh_cn.json # 中文语言文件 │ └── en_us.json # 英文语言文件 └── models/item/ └── panel_book.json # 物品模型
🔨 构建说明
# 方式1: 使用IntelliJ IDEA (推荐) # 导入项目 → 选择build.gradle → 等待Gradle同步 → 运行runClient # 方式2: 使用命令行 # 需要先安装Gradle 8.x 和 JDK 21 cd super-enchantment gradle wrapper # 生成Gradle Wrapper ./gradlew build # 构建模组JAR ./gradlew runClient # 启动测试客户端 # 构建产物位置 # build/libs/super-enchantment-1.0.0.jar

⚠️ 注意事项

  • Yarn映射版本:gradle.properties中的 yarn_mappings 版本号需要根据实际发布的最新构建号调整。请到 FabricMC官网 查询对应版本的Yarn映射build号。
  • 爆炸API:Minecraft 1.21.x中 World.DestructionType 可能有变化。如果DetonationAbility编译报错,请尝试 Explosion.DestructionType.NONE 或查看实际API。
  • takeKnockback签名:如果KnockbackRodAbility编译报错,可能需要添加攻击者参数:target.takeKnockback(attacker, strength, x, z)
  • requestTeleport方法:ExchangeAbility中使用的 networkHandler.requestTeleport() 在不同版本中方法名可能不同,如果报错请检查ServerPlayNetworkHandler的实际方法名。
  • Gradle Wrapper:由于无法包含gradle-wrapper.jar二进制文件,需要先运行 gradle wrapper 生成。
🌐 多人游戏说明

仇恨棒 · 多人模式

在多人游戏中,攻击一个玩家和一个生物,该生物的仇恨会被吸引到该玩家身上。怪物会持续追击该玩家。

位面交换 · 多人模式

可以与其他玩家交换位置!攻击对方即可触发。玩家位置通过requestTeleport同步到客户端。

服务端安全

所有能力在服务端执行,客户端只负责GUI和发送选择请求。能力选择通过网络包验证,防止作弊。

仇恨系统 · 持久化

HatredManager通过ServerTick每20tick重新设置怪物目标,确保仇恨链接持续生效,直到目标死亡或被解除。