资源图标

转载 闭源 工具 ItemGuard LITE — 物品记录器、历史追踪器与重复检测 1.0.0

没有下载权限
版权类型
转载
插件中文名
ItemGuard LITE — 物品记录器、历史追踪器与重复检测
插件英文名
ItemGuard LITE
原帖地址
https://www.spigotmc.org/resources/itemguard-lite-%E2%80%94-item-logger-history-tracker-duplicate-detection.138834/
支持的核心 [服务端]
  1. Folia
语言支持
  1. 中文(简体)
适配Minecraft版本 [Java]
  1. 1.21
[MD]
## 简介

一名玩家带着第二把重锤登录。它是复制品、交易所得,还是原本就属于他?
以前你只能猜测;现在,使用 ItemGuard 执行一条命令即可查明。

# ItemGuard LITE:物品记录、历史追踪与重复检测

*一名玩家带着第二把重锤登录。它是复制品、交易所得,还是原本就属于他?*
*以前你只能猜测;现在,使用 ItemGuard 执行一条命令即可查明。*

每件有价值的物品在首次进入玩家手中时,都会获得一个永久 ID,并开始记录其流转历史。无论物品被丢弃、存入箱子、服务器重启,还是跨世界转移,其 ID 都会保留。当同一个 ID 同时出现在多个位置时,管理人员会收到警报,其中包含物品编号及发现位置的数量;随后可通过 **/ig history** 查看完整流转记录。

## 与 CoreProtect 的区别

**已经在使用 CoreProtect?请继续使用。**

CoreProtect 按地点和时间记录*操作行为*,例如谁在何时打开了哪个箱子;但它无法判断当前存在的两把剑是否为同一件实体物品。ItemGuard 专门回答这一问题,两者可以同时运行,功能互不重叠。

## 60 秒快速上手

1. 将 JAR 文件放入 `/plugins*and`,然后重启服务器。无需配置数据库,也没有前置依赖。
2. 手持任意工具、武器或盔甲,执行 **/ig check**。
3. 立即查看该物品的 ID 与完整流转轨迹,无需预先配置。

## 功能一览

- **减少与玩家的争议**:完整记录物品曾由谁持有、去过哪里。封禁决定基于记录,而非猜测。
- **发现藏在仓储中的重复物品**:扫描会读取无人开启过的箱子,但仅处理服务器已经加载的区块。插件不会自行加载区块,也不会读取运输矿车或驴子的背包。
- **一条命令判断物品是否合法**:对可疑掉落物执行 **/ig check**。

## 命令

```text
/ig check 查看这是什么物品,以及它曾属于谁
/ig history 查看单件物品的完整流转记录
/ig search 按物品编号搜索
/ig stats 查看追踪统计
/ig gui 通过图形界面浏览记录
```

玩家只能查看自己的物品。工作人员如需查看其他玩家的物品,需要权限:

```text
itemguard.history.others
```

## 限制说明

ItemGuard LITE 负责记录和报告,**不会删除物品,也不会执行回滚**。

- 仅追踪不可堆叠物品,例如工具、武器、盔甲和潜影盒。
- 不追踪可堆叠材料。
- 不扫描末影箱。
- 如需自动删除额外堆叠物品,应选择其他更适合的插件。

另有两点需要提前了解:

1. **历史记录不会自动删除。**数据库超过 500 MB 后,插件会在控制台输出警告,而不是丢弃证据。
2. **物品 ID 保存在物品自身的数据中。**即使卸载插件,这些 ID 仍会保留在物品数据内。

以下配置与说明会进一步解释这两点。

## 运行环境

支持:

- Paper、Purpur 或 Spigot `1.21.4` 及以上版本,包括 26.x
- Java 21
- 26.x 版本需要 Java 25
- 不支持 Folia

## Premium 规划

LITE 用于回答“这件物品从哪里来”;Premium 则着重于“如何把它还回去”。

以下功能目前尚未发布,仅用于说明后续方向,不承诺发布日期。LITE 将始终免费,并保留现有全部功能。

- **/ig restore**:为因崩溃、漏洞或诈骗而丢失物品的玩家重新发放物品,并保留原始身份。恢复后的物品仍可追踪,不会成为隐蔽的复制品。
- **/ig transfer**:将物品返还给合法所有者,并留下记录。
- **管理员审计日志**:每次恢复与转移操作都会记录执行该操作的工作人员。能够创建物品的工具,只有同时审计管理员才是安全的。
- **发放行为监控**:LITE 能告诉你一件物品的历史,但无法判断某位管理员是否在暗中大量发放装备。Premium 将按工作人员账户监控带标签物品进入世界的频率,并标记真正值得关注的模式:同一人反复发放高价值物品,或某个刚获得 OP 权限的账户突然开始这样做。系统将优先进行检测与记录;是否拦截由你自行开启,因为在活动期间误冻结正常管理员的影响,可能比仅报告问题更严重。
- **Discord 警报**与**WorldGuard 区域规则**。

之所以区分免费版与付费版,是因为:即使检测到重复物品,若无法帮助真正失去物品的玩家,检测本身的价值也有限。物品恢复能力将作为付费功能提供。

## 兼容性测试

下表中的每一行都对应一台真实服务器及一个人工放置的重复物品。检测结果直接读取自插件控制台,每项测试均有独立确认编号。所有测试均使用本页面发布的同一份 JAR 文件。

| 服务端 | 版本 | Java | 结果 |
|---|---:|---:|---|
| Paper `1.21.4` | 232 | 21 | PASS |
| Paper `1.21.5` | 114 | 21 | PASS |
| Paper `1.21.6` | 48 | 21 | PASS |
| Paper `1.21.7` | 32 | 21 | PASS |
| Paper `1.21.8` | 60 | 21 | PASS |
| Paper `1.21.9` | 59 | 21 | PASS |
| Paper `1.21.10` | 130 | 21 | PASS |
| Paper `1.21.11` | 132 | 21 | PASS |
| Paper `26.1.1` | 29 | 25 | PASS |
| Paper `26.1.2` | 74 | 25 | PASS |
| Paper `26.2` | 123 | 25 | PASS |
| Purpur `1.21.4` | 2416 | 21 | PASS |
| Purpur `1.21.11` | 2568 | 21 | PASS |
| Spigot `1.21.4` | 4458 | 21 | PASS |

Purpur 是基于相同 API 的 Paper 分支,因此测试了两个端点版本,而非其间的每一个版本。

Spigot 没有预构建下载文件,因此通过 BuildTools 编译。服务器报告的版本为:

```text
4458-Spigot-73860e0-fb3f2b6 (MC: 1.21.4)
```

仅测试了该 Spigot 版本。

由于 Spigot 缺少部分 Paper API,存在一项用户可见的差异:在 Spigot 上,物品会在玩家拾取、手持,或被容器扫描发现时才添加标签;而不是在物品生成到世界中的瞬间添加标签。

插件基于 `1.21.4` API 编译,因此最低版本由编译环境强制限制:旧版服务端会在加载时被拒绝,而不会在未经测试的环境中运行。更高版本尚未测试,可能可用,但不作保证。

## 性能测试

性能数据基于实测,而非估算。

测试共运行六台服务器:其中三台安装插件、三台未安装插件,交替执行相同负载。测试负载为 400 对漏斗持续转移受追踪物品,这是插件最繁忙的执行路径。每刻耗时通过服务端自身的计时器采样。

| 测试组 | 平均 ms/tick | 第 1 次 | 第 2 次 | 第 3 次 | 中位数 |
|---|---:|---:|---:|---:|---:|
| 未安装 ItemGuard | `0.87` | `0.79` | `0.87` | `0.87` | — |
| 安装 ItemGuard | `0.82` | `0.99` | `0.76` | `0.82` | — |

两组之间的差异为 0.05 ms,小于同一组重复测试之间的波动幅度,后者最高可达 0.23 ms。

这些测试使用的是当前版本前一个构建;此后新增的改动只会在玩家点击或交换物品时执行,不会影响本次测量的漏斗路径。因此,合理的结论不是给出一个看似精确的数字,而是给出上限:在该测试路径上,性能开销低于测试可分辨范围,约低于每个 50 ms 游戏刻预算中的 0.2 ms。基于这类数据宣称精确性能数值并不可靠。

本测试**不涵盖**以下情形:

- 一百名真实玩家同时使用命令和 GUI;
- 其他插件争抢同一刻的执行时间;
- 数周运行后的内存增长情况。

## 数据库与物品标签

### 历史记录不会自动删除

LITE 的数据库只会增长。这是有意为之:不完整的调查日志不值得信任。

数据库文件超过 **500 MB** 后,插件会向控制台输出警告,可通过 `database.warn-size-mb` 配置;设置为 `0` 可关闭警告。插件不会删除任何记录。如果数据库体积成为问题,请停止服务器后归档该文件;物品自身的 ID 不会受到影响。

### 物品 ID 保存在物品中

卸载插件后,物品标签仍会保留在物品数据内。它们在游戏中不可见且无害,但 LITE 没有移除标签的命令,因此需要明确说明这一点。

箱子扫描采用限速机制,默认每刻扫描 **8 个区块**,并且绝不会加载尚未驻留在内存中的区块,因此不会导致未加载地形被强制加载。

```yaml
anti-dupe:
sweep:
enabled: true
chunks-per-tick: 8
database:
warn-size-mb: 500 # 超过此大小时在控制台警告;0 = 关闭
```

## 数据与隐私

数据存储在插件目录内的本地 SQLite 文件中,不会上传任何数据。

唯一的外部连接为 bStats;如有需要,你可以将其关闭。

本页面 JAR 文件的 SHA-256:

```text
a952d16146082ffacfbcbf6032fdba0634c86e8099cbf6802685c2f76db71727
```

## 使用与分发许可

可在任何服务器上免费使用,包括向玩家收费的服务器。

禁止转售或重新上传。

## 问题反馈

如果发现插件漏检了重复物品,或遇到任何异常行为,请通过以下方式反馈:

[discord.gg/EnSNSNVV5G](https://discord.gg/EnSNSNVV5G)
[/MD]
作者
cacca
下载
0
查看
35
首次发布
最后更新
评分
0.00 星 0 星

来自cacca的更多资源

后退
顶部