截图
介绍
**它的运作方式、原因和创意均由人类完成
编码与实现由 AI 完成**
🧹 智能物品清理器 v2
一个轻量、智能的物品清理系统,适用于 NeoForge 1.21.1
📘 概述
智能物品清理器 v2 是一个服务端优化模组,用于在掉落物品实体数量超过设定阈值时自动清理它们。
它会逐个追踪物品,以确保公平、高效且安全地移除——只删除多余的、陈旧的、不重要的掉落物,不干扰正常游戏。
✅ 支持 NeoForge 21.1.215、Youer 1.21.1、AsyncYouer-1.21.1
⚙️ 专为机械动力整合包和重度模组生存服务器设计
💾 低开销、确定性的清理周期
⚙️ 配置(面向服主)
配置文件:
config/smart_item_deleter_v2-common.toml
| 选项 | 类型 | 默认值 | 描述 |
|——–|——|———-|————-|
| entityCountThreshold | int | 200 | 清理激活所需的掉落物品实体数量。 |
| minItemAgeMs | long | 15000 | 物品可被删除前的最小存在时间(毫秒)。防止新掉落物被立即移除。 |
| scanIntervalTicks | int | 20 | 系统扫描世界中物品的频率(刻,20 刻 = 1 秒)。 |
| scanJitterEnabled | boolean | true | 为间隔添加小幅随机偏移(±scanJitterTicks),以减少多个模组同时运行时的服务器刻峰值。 |
| scanJitterTicks | int | 2 | 每个清理周期时间上添加/减去的最大抖动。 |
| consoleDebugLogging | boolean | true | 当为 false 时,抑制服务器控制台中的清理摘要消息。 |
| deletePercentage | int | 90 | 每个周期删除符合条件物品的百分比(0–100)。即使超过阈值,也会保护最新的物品。 |
| whitelistMode | boolean | false | 切换白名单(true)或黑名单(false)过滤行为。 |
| filteredItems | list | [] | 接受精确物品 ID(minecraft:stone)、标签引用(#forge:ingots)或使用 */? 的通配符模式(例如 minecraft:*、minecraft:oak*),用于定义哪些物品受保护(黑名单)或被针对(白名单)。 |
示例:
entityCountThreshold = 250
minItemAgeMs = 15000
scanIntervalTicks = 20
deletePercentage = 80
whitelistMode = false
filteredItems = ["minecraft:nether_star", "minecraft:diamond"]
通配符示例
filteredItems = ["minecraft:oak*"]
此配置的含义是:
- 清理大约每秒运行一次。
- 仅在存在超过 250 个掉落物品时开始。
- 删除所有存在时间超过 15 秒的物品中的 80%(优先删除最旧的)。
- 钻石和下界之星永远不会被删除。
🧠 技术细节(面向开发者和维护者)
核心行为
- 物品在
TrackedItemsData中追踪,使用按维度持久化存储。 - 每个物品存储:
UUIDdimensionfirstSeenMs(首次检测到的时间)lastSeenMs(最后确认的时间)- 仅当物品总数超过配置阈值时才会执行清理。
- 物品符合条件需满足:
- 其存在时间 ≥
minItemAgeMs - 通过当前策略过滤器(黑名单/白名单模式)
- 当启用
protectNamedItems时,带自定义名称的物品会被完全忽略——它们不计入阈值,也永远不会被删除。
删除逻辑
- 所有符合条件的物品都会按最旧优先排序(按
firstSeenMs升序)。 - 每个周期的删除数量为:
deletions = min(excess_items, eligible_items * (deletePercentage / 100))
- 这可以确保:
- 服务器维持稳定的 tick 时间。
- 玩家最近掉落的物品会被保留。
- 持续溢出物品的自动化机器会被清理干净。
抖动(扫描不同步)
- 系统使用随机间隔:
nextInterval = scanIntervalTicks ± scanJitterTicks
以避免多个模组或系统运行周期性更新时同时出现高 tick 峰值。
代码结构
| 包 | 用途 |
|———-|———-|
| core/ | 清理逻辑、tick、过滤和执行 |
| persist/ | 用于按世界存储的持久跟踪数据(SavedData) |
| config/ | 配置规范与加载 |
| command/ | 可选的 /cleanup 管理员命令,用于手动触发 |
命令
| 命令 | 描述 |
|———-|————-|
| /cleanup run | 手动强制执行一次清理周期。 |
| /cleanup status | (计划中)显示已跟踪物品数量、符合条件的物品以及当前阈值。 |
| /cleanup config | 即时更改配置中的值。 |
💡 未来计划
- 仅通过动作栏或服务器控制台提供游戏内反馈
- 将指标暴露给
/cleanup status或与计分板兼容的数据点
📜 许可证
MIT 许可证——可自由使用和修改。
重新分发时请注明 Metl_Play。
如果在整合包中提及我会很感激,但不是必须的。
🧩 致谢
- 开发者: Metl_Play
- Minecraft: 1.21.1 (NeoForge)
- 映射: Parchment mappings
- 库: NeoForge API、标准 Java 集合
“它不只是一个清理模组——它是一个更聪明的清洁工。” 🧠🧹
常见问题
Smart item deleter V2 支持哪些 Minecraft 版本?
Smart item deleter V2 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。
Smart item deleter V2 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。
评论
登录后评论和评分