Skip to content

作用

ClearDroppedItems 用于按配置定时清理指定世界中的掉落物,并支持玩家或控制台通过命令主动触发清理。

它适合大厅、主城、生存服公共区域、活动地图、挂机区,以及任何担心地面掉落物堆积影响观感或性能的场景。

默认配置:GroovyConfig/ClearDroppedItems.yml

如果你在 config.yml -> feature-scripts.config-directory 中改过脚本配置目录,请以实际目录为准。

配置示例

yml
# 是否启用该脚本
enabled: true

# 生效世界列表
# 留空 [] 表示所有已加载世界都生效
worlds: []

# 周期清理配置
scheduled-cleanup:
  # 是否启用周期性清理
  enabled: true

  # 周期清理间隔(tick)
  # 20 tick = 1 秒,6000 tick = 5 分钟
  interval-ticks: 6000

# 主动清理命令配置
command:
  # 可触发主动清理的命令别名
  aliases:
    - 'cleardrops'
    - 'clearitems'
    - 'cleanupdrops'

  # 执行主动清理所需权限
  permission: 'hncore.scripts.cleardroppeditems.execute'

# 反馈消息
# 可用占位符:{count} {worldCount} {worlds} {trigger} {aliases} {permission}
messages:
  no-permission: '&c你没有权限执行该命令。'
  manual-success: '&a已清理 {count} 个掉落物。'
  scheduled-console: '&7[ClearDroppedItems] 周期清理完成,共清理 {count} 个掉落物。'

关键项说明

worlds

限定哪些世界参与清理。

  • []:所有已加载世界都生效
  • 指定列表:只清理命中的世界

如果你只想清大厅或活动图,建议明确写世界名,不要直接放空。

scheduled-cleanup.enabled

是否启用定时清理。

  • true:后台按固定间隔自动清理
  • false:关闭自动清理,只保留手动命令入口

scheduled-cleanup.interval-ticks

自动清理周期,单位 tick。

常见换算:

  • 20 tick = 1 秒
  • 1200 tick = 1 分钟
  • 6000 tick = 5 分钟

建议不要设得过低,否则会让地面掉落物还没来得及被玩家观察或拾取就被回收。

command.aliases

主动清理命令别名列表。

例如默认配置下,玩家可输入:

text
/cleardrops
/clearitems
/cleanupdrops

控制台执行时通常不需要写 /

command.permission

执行主动清理所需权限节点。

适合给管理组、值班组或控制台保留手动清理入口。

messages

这组消息支持以下占位符:

  • {count}:本次清理数量
  • {worldCount}:参与清理的世界数
  • {worlds}:参与清理的世界名列表
  • {trigger}:触发来源(手动 / 定时等)
  • {aliases}:当前命令别名列表
  • {permission}:执行所需权限

实际行为

脚本运行时会做两件事:

  1. scheduled-cleanup 配置启动周期清理任务
  2. 注册主动清理命令别名

也就是说,它既可以作为:

  • 定时保洁脚本
  • 管理命令入口

如果你只想保留手动清理,不想自动清理,只要把 scheduled-cleanup.enabled 关掉即可。

启用与重载

修改这个脚本的配置文件后,通常执行:

text
/hncore reload scripts

如果你改的是 config.yml 中脚本系统总开关、目录名等核心配置,则应执行:

text
/hncore reload

推荐使用场景

大厅 / 主城

建议:

  • 自动清理开启
  • 间隔偏短一些,例如 3~5 分钟
  • 同时搭配 NoDrop

这样可以同时减少新掉落物产生和旧掉落物堆积。

生存公共区

建议:

  • 自动清理开启
  • 间隔适中,例如 5~10 分钟
  • 只针对公共世界或公共资源区

这样可以降低公共区域掉落物压力,但不至于频繁影响正常拾取体验。

活动地图 / 挂机场景

建议:

  • 自动清理开启
  • 间隔按掉落量动态调整
  • 给管理保留手动命令

联动说明

注意事项

  • 这个脚本清理的是地上的掉落物实体,不是玩家背包物品
  • worlds: [] 表示所有已加载世界都参与清理,生产环境建议确认是否符合预期
  • 如果你把自动清理间隔设得太短,玩家可能会感觉掉落物“刚掉出来就没了”
  • 如果你主要是想防止玩家主动乱丢物品,核心还是优先看 NoDrop

HN 系列插件文档