掉落物扫地姬

掉落物扫地姬

一个清晰且可收集的掉落物模组

性能

DropSweeper


一款适用于 Minecraft 服务器的智能掉落物清扫器。

有了友好的“扫地姬”相伴,告别成堆的圆石、沙子和箭矢。ฅ^•ﻌ•^ฅ


这是什么?

DropSweeper 是一个 Fabric 服务端模组,能够自动将地面上的掉落物收集到垃圾箱(每个拥有 54 个槽位的虚拟大箱子)中,为你提供:

  • 🧹 自动清扫 — 按照可配置的时间间隔运行(默认:每 10 分钟)
  • 📦 多个垃圾箱 — 默认为 1 个,最多可配置 N 个;跨垃圾箱进行先进先出(FIFO)淘汰
  • 🚫 白/黑名单 — 白名单物品永不被清扫;黑名单物品会被移除但不存储
  • 🎯 额外实体清理 — 箭矢、经验球等
  • ⚠️ 过载警告 — 当某个区块堆积过多物品时向 OP 发出警报
  • 💬 友好公告 — 清扫前倒计时(ActionBar/聊天栏),完成后提供可点击的垃圾箱链接
  • 🔧 配置热重载 — 无需重启服务器
  • 🔐 细粒度权限 — 控制谁可以打开垃圾箱,谁可以触发清扫

命令

所有命令均以 /dropsweeper 为前缀。

清扫

命令 权限 描述
/dropsweeper items OP 清扫当前维度
/dropsweeper items all OP 清扫所有维度
/dropsweeper items <世界ID> OP 清扫指定维度(支持 Tab 补全)

打开垃圾箱

命令 权限 描述
/dropsweeper dustbin 所有人 打开垃圾箱 0
/dropsweeper dustbin <索引> 所有人 按索引打开垃圾箱

清扫完成后,结果消息会将所有非空垃圾箱列为可点击链接。

白/黑名单管理

/dropsweeper whitelist add <物品ID>     # 添加到白名单(永不清扫)
/dropsweeper whitelist remove <物品ID>  # 从白名单移除
/dropsweeper whitelist list              # 显示白名单

/dropsweeper blacklist add <物品ID>     # 添加到黑名单(清扫但不存储)
/dropsweeper blacklist remove <物品ID>  # 从黑名单移除
/dropsweeper blacklist list              # 显示黑名单

支持通配符 modid:*,例如 minecraft:* 匹配所有原版物品。

配置

/dropsweeper config reload    # 热重载 config/dropsweeper.json

配置

位置:config/dropsweeper.json(首次运行时自动生成)。

常用字段

{
  "sweepIntervalSeconds": 600,           // 自动清扫间隔(秒)(0 = 禁用)
  "dustbinCount": 1,                     // 垃圾箱数量(每个 54 个槽位)
  "itemWhitelist": [                     // 白名单:永不清扫
    "minecraft:nether_star",
    "minecraft:heavy_core"
  ],
  "itemBlacklist": [                     // 黑名单:清扫但不存储
    "minecraft:cobblestone",
    "minecraft:sand",
    "minecraft:gravel"
  ],
  "extraEntityTypes": [                  // 额外清理的实体
    "minecraft:arrow",
    "minecraft:spectral_arrow",
    "minecraft:experience_orb"
  ],
  "itemOverloadThreshold": 640,          // 每个区块触发警告的物品数量(0 = 禁用)
  "permissionLevelDustbin": 0,           // 打开垃圾箱的最低权限(0 = 任何玩家)
  "permissionLevelClean": 2,             // 手动清扫的最低权限
  "announcementChannel": {               // 公告频道
    "long": "actionbar",                 // 长时间倒计时(默认 120/60/30 秒)
    "short": "chat",                     // 短时间倒计时(≤3 秒)
    "complete": "chat"                   // 清扫完成
  }
}

公告频道

  • ActionBar — 快捷栏上方的小字,60 刻(3 秒)后自动淡出,不会刷屏
  • 聊天栏 — 聊天中的粗体消息,不会自动消失

默认:长时间倒计时使用 ActionBar(不显眼),短时间倒计时和完成消息使用聊天栏(醒目)。


垃圾箱能容纳多少物品?

  • 每个垃圾箱有 54 个槽位(6 行 × 9 列,相当于一个大箱子)
  • 默认 1 个 → 54 个槽位
  • 设置 dustbinCount: 8 → 8 × 54 = 432 个槽位
  • 已满时,最早的物品会被新物品替换(FIFO)

数据存储

  • 垃圾箱内容存储在存档中:world/data/dimensions/minecraft/overworld/data/dropsweeper/dustbin.dat
  • 自动保存,无需手动操作
  • 减少垃圾箱数量会截断多余部分,并可能丢弃非空垃圾箱中的物品
  • 增加垃圾箱数量会保留现有数据

常见问题

问:垃圾箱在哪里?如何打开? 答:运行 /dropsweeper dustbin(默认任何玩家都可以),或点击清扫完成消息中的链接。

问:如何将自定义物品添加到白/黑名单? 答:使用 /dropsweeper whitelist add <物品ID>(例如 minecraft:diamond)。你也可以直接编辑 config/dropsweeper.json,然后运行 /dropsweeper config reload。

问:修改配置后需要重启服务器吗? 答:不需要。运行 /dropsweeper config reload 即可立即生效。

问:客户端需要安装该模组吗? 答:在多人服务器上,不需要 — 所有清扫/命令/存储逻辑均在服务端运行。安装该模组的客户端只会获得一个空白的入口点。 对于单人游戏或局域网游戏,你也可以在客户端安装,不会影响游戏体验。

问:会与其他清扫模组冲突吗? 答:会。如果两个模组试图清理相同的掉落物,你可能会遇到重复移除的情况。请选择使用其中一个。