• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
LoreTransfer 一款好用的LORE提取插件

原创 开源 工具 LoreTransfer 一款好用的LORE提取插件 1.2.1

请登录后获取
版权类型
原创
插件中文名称
好用的LORE提取插件
插件英文名称
LoreTransfer
原帖地址
#
支持的核心(服务端)
  1. Paper
  2. Purpur
语言支持
中文(简体)
前置组件
适配版本(Java)
  1. 1.21

LoreTransfer

RPG物品 Lore 与 Name 提取/转移插件 | Paper 1.21.4
将一件极品装备的 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]

未安装软依赖插件时,对应功能自动跳过,不影响核心 Lore/Name 转移。



安装


  1. 下载 LoreTransfer-1.2.1.jar
  2. 放入服务器的 plugins/ 目录
  3. 启动/重启服务器,插件会自动生成 config.ymllang.yml
  4. 根据需要修改配置后执行 /lt reload



使用方法

获取转移纸

/loretransfer <玩家名>
管理员执行后,目标玩家会收到一张 Lore 转移纸。

提取(拖拽方式)


  1. 手持转移纸
  2. 把转移纸 拖到 Lore 中包含触发关键词(默认 &e神品)的物品上
  3. 提取成功后,源物品的 Lore/Name 被清空(可配置),转移纸变为已存储状态

提取(铁砧方式)


  1. 打开铁砧
  2. 槽位 0 放入转移纸
  3. 槽位 1 放入带关键词的物品
  4. 取出结果即可(消耗 1 级经验)

应用(拖拽方式)


  1. 手持已存储数据的转移纸
  2. 把转移纸 拖到 目标物品上
  3. Lore/Name/AE 附魔数据应用到目标物品,转移纸消失

应用(铁砧方式)


  1. 打开铁砧
  2. 槽位 0 放入目标物品
  3. 槽位 1 放入已存储数据的转移纸
  4. 取出结果即可(消耗 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.ymllang.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]

权限 loretransfer.admin 默认仅 OP 拥有。指令支持控制台执行,支持 PAPI 占位符。



配置文件

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 占位符支持


License

MIT License — 自由使用、修改、分发。
作者
yzmt cd
价格
10.00金粒
下载
0
查看
73
首次发布
最后更新

评分

0.00 星 0 次评分

yzmt cd 的其他资源

后退
顶部 底部