- 版权类型
- 原创
- 插件中文名称
- 好用的LORE提取插件
- 插件英文名称
- LoreTransfer
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- Purpur
- 语言支持
- 中文(简体)
- 前置组件
- 无
- 适配版本(Java)
- 1.21
LoreTransfer
将一件极品装备的 Lore、自定义名称、AdvancedEnchantments 附魔数据 提取到「转移纸」上,再把转移纸应用到另一件物品,实现装备属性迁移。支持铁砧操作与背包拖拽两种交互方式。
特性一览
- 拖拽即用 — 把转移纸拖到带关键词的物品上即可提取,再拖到目标物品上即可应用
- 铁砧支持 — 也能在铁砧中放入转移纸 + 物品完成提取/应用,修复成本仅 1 级
- AE 附魔兼容 — 自动复制 AdvancedEnchantments 的完整 PDC namespace 数据,转移后附魔正常生效
- CraftEngine 兼容 — 支持使用 CE 自定义物品作为转移纸材质
- NBT 防篡改 — SHA-256 签名校验,用 NBT 编辑器伪造的转移纸会被直接拒绝
- 安全时序 — 先写入 PDC → 读取校验签名 → 通过后才清空源物品,服务器卡顿/崩溃不会丢失装备
- 不可堆叠 — 转移纸
maxStackSize = 1,杜绝堆叠操作导致的数据丢失/污染 - 复制模式 — 配置
clear-source-item: false可保留源物品(仅复制不销毁) - 三种 Lore 模式 —
append(追加)/replace(替换)/prepend(前置) - 全文本可定制 — 所有显示文字均从
lang.yml读取,支持&颜色代码 - PlaceholderAPI 支持 — 指令中的玩家名支持 PAPI 占位符解析
环境要求
[TABLE=md-table][TR]
[th]依赖[/th][th]版本[/th][th]必需[/th]
[/TR]
[TR]
[td]Paper (服务端)[/td][td]1.21.4[/td][td]是[/td]
[/TR]
[TR]
[td]Java[/td][td]21+[/td][td]是[/td]
[/TR]
[TR]
[td]AdvancedEnchantments[/td][td]任意[/td][td]否 (软依赖)[/td]
[/TR]
[TR]
[td]CraftEngine[/td][td]任意[/td][td]否 (软依赖)[/td]
[/TR]
[TR]
[td]PlaceholderAPI[/td][td]2.11.6+[/td][td]否 (软依赖)[/td]
[/TR]
[/TABLE]
安装
- 下载 LoreTransfer-1.2.1.jar
- 放入服务器的
plugins/目录 - 启动/重启服务器,插件会自动生成
config.yml和lang.yml - 根据需要修改配置后执行
/lt reload
使用方法
获取转移纸
/loretransfer <玩家名>管理员执行后,目标玩家会收到一张 Lore 转移纸。
提取(拖拽方式)
- 手持转移纸
- 把转移纸 拖到 Lore 中包含触发关键词(默认
&e神品)的物品上 - 提取成功后,源物品的 Lore/Name 被清空(可配置),转移纸变为已存储状态
提取(铁砧方式)
- 打开铁砧
- 槽位 0 放入转移纸
- 槽位 1 放入带关键词的物品
- 取出结果即可(消耗 1 级经验)
应用(拖拽方式)
- 手持已存储数据的转移纸
- 把转移纸 拖到 目标物品上
- Lore/Name/AE 附魔数据应用到目标物品,转移纸消失
应用(铁砧方式)
- 打开铁砧
- 槽位 0 放入目标物品
- 槽位 1 放入已存储数据的转移纸
- 取出结果即可(消耗 1 级经验)
指令与权限
[TABLE=md-table][TR]
[th]指令[/th][th]权限[/th][th]说明[/th]
[/TR]
[TR]
[td]
/loretransfer <player>[/td][td]loretransfer.admin[/td][td]给指定玩家发放一张转移纸[/td][/TR]
[TR]
[td]
/loretransfer reload[/td][td]loretransfer.admin[/td][td]热重载 config.yml 和 lang.yml[/td][/TR]
[TR]
[td]
/lt <player>[/td][td]loretransfer.admin[/td][td]简写别名[/td][/TR]
[TR]
[td]
/ltp reload[/td][td]loretransfer.admin[/td][td]简写别名[/td][/TR]
[/TABLE]
配置文件
config.yml
# 转移纸的物品配置paper-item:
material: PAPER # 物品材质 (Paper原生材质名)
custom-model-data: 1 # 自定义模型数据 (设为0则不使用)
# 提取/转移的触发关键词配置
trigger:
keyword: "&e神品" # Lore 中包含此关键词的物品才可提取
match-mode: contains # contains(包含匹配) | exact(精确匹配)
ignore-color: false # true=脱色后比较纯文本
# CraftEngine 兼容配置
craft-engine:
enabled: true # 是否启用 CE 材质兼容
paper-item-id: "" # CE 物品 ID (留空则使用 Paper 原生物品)
keep-ce-texture: true # 是否保留 CE 物品原始材质
# Lore 应用模式
# append — 保留目标物品原有 Lore,提取的 Lore 追加在下方
# replace — 用提取的 Lore 完全替换目标物品的 Lore
# prepend — 提取的 Lore 放在上方,目标物品原有 Lore 在下方
lore-mode: append
# 是否在提取后清空源物品
# true — 提取后源物品 Lore/Name/AE 被清空 (转移模式)
# false — 源物品保持不变,仅复制数据到转移纸 (复制模式)
clear-source-item: true
lang.yml
所有用户可见的文本(前缀、提示消息、转移纸物品名/Lore、铁砧预览文字等)均可在此文件中自由修改,支持 & 颜色代码。安全机制详解
1. 提取时序保护
克隆转移纸 → 写入全部 PDC 数据 → 计算 SHA-256 签名 → 读取校验签名↓ 校验通过 ↓ 校验失败
消费原纸 1 张 → 按 clear-source-item 清空源物品 → 不修改任何物品 → 返回 null
服务器卡顿、GC 停顿、插件异常崩溃的极端情况下,转移纸 PDC 数据已完成写入并通过校验,源物品才会被清空。即使清空步骤中断,转移纸上的数据已完整可用。
2. NBT 篡改防护
提取时计算SHA-256(salt + lore + name + aeKeyCount + dataVersion) 签名并写入 lt_signature PDC key。应用前重新计算签名并比对,不匹配则拒绝执行。玩家无法通过 NBT 编辑器伪造转移纸。3. 不可堆叠
转移纸maxStackSize = 1,永远不会出现堆叠导致 PDC 数据丢失或污染的问题。4. AE API 调用防护
每次调用 AdvancedEnchantments API 前检测插件是否启用,所有反射调用包裹在try-catch 中。AE 不可用时自动跳过附魔拷贝,只处理 Name/Lore,插件不会崩溃。兼容性
[TABLE=md-table][TR]
[th]插件[/th][th]兼容方式[/th][th]说明[/th]
[/TR]
[TR]
[td]AdvancedEnchantments[/td][td]PDC namespace 复制[/td][td]完整复制 AE 附魔数据,应用后调用
AEAPI.organizeEnchants() 刷新 Lore 显示[/td][/TR]
[TR]
[td]CraftEngine[/td][td]反射调用[/td][td]支持使用 CE 自定义物品作为转移纸材质[/td]
[/TR]
[TR]
[td]PlaceholderAPI[/td][td]变量解析[/td][td]指令中玩家名支持 PAPI 占位符[/td]
[/TR]
[/TABLE]
开发信息
[TABLE=md-table][TR]
[th]项目[/th][th]值[/th]
[/TR]
[TR]
[td]版本[/td][td]1.2.1[/td]
[/TR]
[TR]
[td]构建[/td][td]Java 21 / Paper API 1.21.4[/td]
[/TR]
[TR]
[td]构建[/td][td]
mvn clean package[/td][/TR]
[TR]
[td]源码[/td][td]见
src/main/java/[/td][/TR]
[/TABLE]
项目结构
src/main/java/com/loretransfer/├── LoreTransfer.java — 主类,工具方法
├── command/
│ └── GivePaperCommand.java — 指令处理
├── config/
│ ├── ConfigManager.java — config.yml 管理
│ └── LangManager.java — lang.yml 管理
├── listener/
│ ├── InventoryClickListener.java — 背包拖拽/点击监听
│ └── AnvilListener.java — 铁砧交互监听
└── util/
├── PaperItemManager.java — 转移纸核心逻辑
├── AEHook.java — AdvancedEnchantments 兼容
└── CEHook.java — CraftEngine 兼容
更新日志
v1.2.1
- 修复:自定义物品名称/Lore 默认显示为斜体的问题(17处全部关闭
ITALIC装饰) - 新增:转移纸不可堆叠(
maxStackSize = 1),彻底消除堆叠导致的数据异常
v1.2.0
- 修复:源物品清空时序问题 — 先写入 PDC + 校验签名,通过后才清空源物品
- 修复:转移纸堆叠 BUG — 所有操作在克隆上执行,不直接修改堆叠物品 Meta
- 新增:NBT 篡改防护 — SHA-256 签名校验,伪造转移纸直接拒绝执行
- 新增:AE API 调用防护 — 运行时检测插件状态 + try-catch,AE 不可用时降级运行
- 新增:
clear-source-item配置项,支持复制模式(不清空源物品)
v1.1.0
- 新增铁砧提取/应用支持
- 新增
lang.yml语言文件,所有文字可自定义 - 新增三种 Lore 应用模式(append/replace/prepend)
- 新增触发关键词匹配模式(contains/exact)和颜色忽略选项
- 新增 CraftEngine 材质兼容
v1.0.0
- 初始版本
- 拖拽提取/应用 Lore 和 Name
- AdvancedEnchantments 附魔数据兼容
- PlaceholderAPI 占位符支持