Skip to content

xmb505/Auto_Harvest

Repository files navigation

AutoHarvest

一个高性能的 Minecraft Paper 插件,用于自动收割农场作物。

灵感来源

本项目灵感来源于 Auto-Harvest Data Pack。原版数据包的效率较低,因此我开发了这个事件驱动的插件版本,极大地降低了性能消耗。

特性

  • 🚀 高性能:基于事件驱动架构,性能远优于原版数据包
  • 🔧 简单易用:只需放置含水箱子和物品展示框即可
  • 附魔支持:支持 Fortune、经验修补、耐久附魔
  • 🌍 多语言:支持中文、英文、繁体中文、日语
  • 💾 数据持久化:重启后自动恢复系统状态
  • ⚙️ 高度可配置:支持自定义收割范围、速度等参数

支持的作物

  • 小麦
  • 胡萝卜
  • 土豆
  • 甜菜根
  • 甜浆果

使用方法

基本搭建

  1. 放置一个含水箱子(箱子下方有水)
  2. 在箱子旁边放置一个物品展示框
  3. 将一把锄头放入物品展示框中
  4. 插件会自动扫描并标记周围 4 格范围内的所有耕地

当作物成熟时,会自动收割并放入箱子中!

命令

命令 别名 描述 权限
/autoharvest detect /ah detect 手动检测并标记所有自动收割系统 autoharvest.detect
/autoharvest reload /ah reload 重新加载配置文件 autoharvest.reload
/autoharvest clear /ah clear 清除所有标记的自动收割系统 autoharvest.clear
/autoharvest status /ah status 查看当前状态 autoharvest.status
/autoharvest help /ah help 显示帮助信息 autoharvest.use

配置

配置文件位于 plugins/AutoHarvest/config.yml

主要配置项

# 收割范围(箱子周围的水平距离)
harvest-range: 4

# 支持的作物类型
supported-crops:
  - WHEAT
  - CARROTS
  - POTATOES
  - BEETROOTS
  - SWEET_BERRY_BUSH

# 是否启用 Fortune 附魔效果
enable-fortune: true

# 是否启用箱子空间检测
check-chest-space: true

# 最大收割速度(每 tick)
max-harvest-per-tick: 10

# 是否启用经验修补附魔
enable-mending: true

# 是否启用耐久附魔
enable-unbreaking: true

详细配置说明请查看配置文件中的注释。

技术架构

核心模块

  • AutoHarvest - 主插件类
  • ConfigManager - 配置管理
  • MessageManager - 多语言消息管理
  • DataManager - 数据存储(箱子-耕地映射)
  • HarvestManager - 收割逻辑
  • FarmlandScanner - 耕地扫描(BFS 算法)
  • BlockListener - 事件监听器
  • CropType - 作物类型枚举

性能优化

  • 区块索引:按区块组织数据,减少查询范围
  • 距离优先分配:耕地被最近的箱子占用,避免重复扫描
  • 延迟检查:使用延迟任务确保方块状态更新
  • 定时保存:异步保存数据,避免阻塞主线程
  • 空间检测:收割前检查箱子空间,避免无效操作

安装

  1. 下载最新版本的 AutoHarvest-x.x.x.jar
  2. 将文件放入服务器的 plugins 文件夹
  3. 重启服务器或使用 /reload 命令
  4. 根据需要编辑 plugins/AutoHarvest/config.yml

技术栈

  • Java 21
  • Gradle 8.5+
  • Paper API 1.21.8+
  • Adventure API

构建

# 克隆仓库
git clone https://github.com/xmb505/Auto_Harvest.git
cd Auto_Harvest

# 构建
./gradlew build

# 编译后的文件位于 build/libs/

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

作者

xmb505

致谢

灵感来源于 Auto-Harvest Data Pack

贡献

欢迎提交 Issue 和 Pull Request!

链接

About

A Minecraft paper server plugin/

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages