- 版权类型
- 原创
- 插件中文名称
- 喵呜物品收集器
- 插件英文名称
- ItemsCollectorAwA
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Folia
- Leaves
- 其他核心
- 语言支持
- English
- 前置组件
- Protocolib
(可选)Dominonhttps://www.minebbs.com/resources/dominion-res-folia.7933/
(可选)Residence
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
[MD]
# Item Collecter AwA - 物品收集器插件
## 插件简介
Item Collecter AwA 是一个为 Minecraft Java 版服务器设计的高性能物品收集器插件,能够自动收集掉落物品并整理到箱子中,支持 Folia 多线程服务器。
## 主要功能
- **自动收集**:收集器会自动收集同一区块内的掉落物品
- **智能分类**:支持箱子物品分类管理(白名单/黑名单模式)
- **高性能**:采用异步处理、缓存机制和优化算法
- **Folia 兼容**:针对多线程服务器进行了专门优化
- **高度可配置**:支持多种自定义选项
- **丰富的命令**:提供多种管理命令
- **土地保护**:支持 Dominion 和 Residence 土地保护插件
- **语言支持**:内置语言包系统,支持消息自定义
- **容器支持**:支持箱子、潜影盒、木桶和铜箱子
## 命令介绍
| 命令 | 描述 | 权限 |
|------|------|------|
| `/icl help` | 显示帮助信息 | 所有玩家 |
| `/icl get` | 获取一个物品收集器 | `icolla.use` |
| `/icl useblock <name>` | 使用手中的方块作为物品收集器 | `icolla.use` |
| `/icl set` | 打开收集器配置GUI | `icolla.use` |
| `/icl listall` | 列出所有收集器状态 | `icolla.admin` |
| `/icl limit <number>` | 设置每个区块的收集器数量限制 | `icolla.admin` |
| `/icl setcategory <blacklist/whitelist>` | 拿着需要允许/禁止此箱子收集的物品,准星对准箱子,设置箱子是否收集 | `icolla.use` |
| `/icl clearcategory` | 清空箱子的分类配置 | `icolla.use` |
| `/icl reload` | 重新加载插件配置 | `icolla.admin` |
## 配置选项
插件的配置文件位于 `plugins/ItemCollecterAwA/config.yml`,包含以下选项:
```yaml
# NBT tag to identify the item collector
collecter-nbt: '{"ItemCollecter":true}'
# Collection area (in blocks) for item collection
collection-area: 5
# Collection interval (in ticks, 20 ticks = 1 second)
collection-interval: 20
# Whether the collector should glow
collecter-glow: true
# Color of the collector's glow (use Bukkit ChatColor names)
collecter-glow-color: GREEN
# Whether chests in the same chunk should glow
chest-glow: true
# Color of the chests' glow (use Bukkit ChatColor names)
chest-glow-color: BLUE
# Whether to show particles when collecting items
particles: true
# Type of particles to show (use Bukkit Particle names)
particle-type: ITEM_CRACK
# Whether to play sound when collecting items
sound: true
# Range (in blocks) for sound to be heard
sound-range: 20
# Type of sound to play (use Bukkit Sound names)
sound-type: ENTITY_ITEM_PICKUP
# What to do with excess items that don't fit in containers
# Options: CLEAR (remove items), IGNORE (leave items on ground)
excess-items: CLEAR
# Item collector display name (supports color codes with &)
collecter-name: "&aItem Collecter"
# Item collector lore (supports color codes with &)
collecter-lore:
- "&7Collects items in the same chunk"
- "&7Right-click to configure"
# Maximum number of collectors per chunk
max-collectors-per-chunk: 5
```
## 语言文件
因为用了vibecoding,ai帮我写的提示信息,所以语言文件全是英文的TwT
在此给出中文翻译
gui:
[CODE=yaml]# Item Collecter AwA - 界面配置
# 菜单标题
titles:
main: "收集器设置"
# 界面物品名称
items:
excess_items:
name: "多余物品处理方式"
lore:
- "当前模式: {mode}"
- "点击切换 CLEAR(清除)和 IGNORE(忽略)"
collector_status:
name: "收集器状态"
lore:
- "当前状态: {status}"
- "点击切换"
collection_area:
name: "收集范围"
lore:
- "当前范围: {range} 格"
- "可在 config.yml 中修改"
# 界面消息
messages:
status_toggled: "收集器状态已切换为: {status}"
excess_mode_changed: "多余物品处理模式已切换为: {mode}"[/CODE]
message:
[CODE=yaml]# Item Collecter AwA - 消息配置
# 通用消息
general:
no_permission: "你没有使用该命令的权限!"
only_players: "只有玩家才能使用该命令!"
target_not_found: "请指向一个方块!"
not_collector: "这个方块不是物品收集器!"
not_chest: "目标方块不是箱子或潜影盒!"
no_item: "你手中必须持有物品!"
land_protection: "由于领地保护,你无法在此放置物品收集器!"
collector_limit: "你无法在该区块放置超过 {limit} 个收集器!"
collector_placed: "物品收集器已放置在 {location}"
collector_received: "你获得了一个物品收集器!"
block_converted: "这个方块现已成为物品收集器!"
category_set: "已将 {item} 设置为该箱子的 {type} 类别!"
category_cleared: "已清空该箱子的所有类别设置!"
limit_set: "每区块最大收集器数量已设置为:{limit}"
invalid_number: "无效数字!请输入有效的整数。"
invalid_type: "无效类型!请使用 blacklist(黑名单)或 whitelist(白名单)。"
# 帮助消息
help:
header: "=== 物品收集器 AwA 帮助 ==="
help: "/icl help - 显示此帮助信息"
get: "/icl get - 获取一个物品收集器"
useblock: "/icl useblock <名称> - 将你手中的方块用作物品收集器"
set: "/icl set - 配置你正指向的收集器"
listall: "/icl listall - 列出所有收集器(仅管理员)"
limit: "/icl limit <数字> - 设置每区块最大收集器数量(仅管理员)"
setcategory: "/icl setcategory <blacklist|whitelist> - 为箱子设置物品类别"
clearcategory: "/icl clearcategory - 清空箱子的所有类别设置"
# 列出所有收集器消息
listall:
header: "=== 所有物品收集器列表 ==="
collector_info: "收集器位于区块 ({chunk_x}, {chunk_z}) 的坐标 {x}, {y}, {z}:{status}"
chest_info: " 箱子数量:{chests},潜影盒数量:{shulkers}"[/CODE]
## 权限设置
| 权限 | 描述 | 默认值 |
|------|------|--------|
| `icolla.use` | 允许使用物品收集器 | `true` (所有玩家) |
| `icolla.admin` | 允许使用管理员命令 | `op` (仅操作员) |
## 前置插件
- **ProtocolLib**:用于GUI功能
- **LuckPerms**:用于权限管理
- **NBT API**:用于NBT标签处理
## 软依赖
- **Dominion**:用于土地保护检查
- **Residence**:用于土地保护检查
## 安装方法
1. 确保服务器安装了所需的前置插件
2. 将 `ItemCollecterAwA-1.0-SNAPSHOT.jar` 文件放入 `plugins` 文件夹
3. 重启服务器
4. 插件会自动生成配置文件
## 使用示例
### 创建收集器
1. **方法一**:执行 `/icl get` 获取一个默认的收集器
2. **方法二**:手持任意方块,执行 `/icl useblock <name>` 将其设置为收集器
### 配置箱子分类
1. **白名单模式**:对准箱子,手持物品,执行 `/icl setcategory whitelist` - 只让这个箱子接受该类型物品
2. **黑名单模式**:对准箱子,手持物品,执行 `/icl setcategory blacklist` - 不让这个箱子接受该类型物品
3. **清空配置**:对准箱子,执行 `/icl clearcategory` - 清空箱子的所有分类配置
### 管理收集器
- 对准收集器执行 `/icl set` 命令打开配置GUI
- 执行 `/icl listall` 查看所有收集器状态
- 执行 `/icl limit <number>` 设置每个区块的收集器数量限制
- 执行 `/icl reload` 重新加载插件配置
## 性能优化
1. **异步处理**:使用异步任务处理物品扫描,避免主线程阻塞
2. **智能缓存**:缓存区块内的箱子信息,减少重复扫描
3. **快速排序**:对箱子按可用空间排序,优先使用空间大的箱子
4. **二分匹配**:使用二分查找快速找到最合适的箱子
5. **Folia 兼容**:针对多线程服务器进行了专门优化
6. **反射优化**:缓存反射类和方法,减少类加载开销
## 兼容性
- **Minecraft 版本**:1.14+ (支持木桶),1.21+ (支持铜箱子)
- **服务器类型**:支持 Spigot、Paper、Folia 等基于 Bukkit 的服务器
- **Java 版本**:需要 Java 21 或更高版本
## 常见问题
### 收集器不工作?
- 检查收集器是否正确放置
- 检查收集器周围是否有箱子
- 检查配置文件中的收集区域设置
- 检查是否有土地保护插件阻止了操作
### 箱子分类不生效?
- 确保正确执行了 `/icl setcategory` 命令
- 确保手持物品并对准箱子
- 检查箱子是否在收集器的同一区块内
### 性能问题?
- 调整配置文件中的 `collection-interval` 值
- 减少每个区块的收集器数量
- 确保服务器硬件满足要求
## 开发者信息
- **作者**:Miaowuawa
- **版本**:1.0-SNAPSHOT
- **支持**:https://www.minebbs.com/members/miaowuawa.167903/
## 许可证
本插件采用 MIT 许可证,可自由使用和修改。
## 作者的话
使用Trae 豆包大模型辅助开发,收取的30金粒作为本人测试/调整的时间成本的小收费
以前有一位作者做过类似的插件,用盔甲架的那个
但是收费贵,还常年不更新,不支持folia,因此制作此插件,顺带体验一下ai开发
有些版本可能存在bug,请及时反馈,我会改~
[/MD]