AdventureEMC
一、简介
AdventureEMC 是面向生存服的 EMC 自动化机器插件。玩家通过三层机器结构自动吸收指定掉落物,将其转换并存储为 EMC,再按计划生产羊毛、陶瓦、混凝土、玻璃等建材。
二、运行要求
| 项目 | 要求 |
|---|---|
| 服务端 | Paper 1.21.4+ |
| Java | 21+ |
| 数据 | SQLite(驱动随插件打包) |
| 可选插件 | PacketEvents、Dominion、WorldGuard、CoreProtect、HuskSync、LuckPerms、CraftEngine |
安装与目录
安装步骤
- 将
AdventureEMC-1.3.0.jar放入plugins/。 - 首次启动生成配置并创建机器数据库。
- 检查
settings.yml的服务器端口、世界与游戏模式限制。 - 按需修改机器物品、GUI 和 EMC 数值。
- 执行
/aemc reload并检查加载统计。
目录结构
plugins/AdventureEMC/
├── config.yml # 旧版兼容配置
├── config/
│ ├── settings.yml # 限制、机器、品质、磨损、性能
│ ├── items.yml # 机器物品与 CraftEngine ID
│ ├── gui.yml # GUI 标题、按钮、音效和反馈
│ ├── messages.yml # 玩家消息
│ └── emc-values.yml # 输入/输出材料 EMC 表
└── machines.db # SQLite 机器数据默认只允许服务器端口 30003 普通使用。端口不匹配时插件仍可启动和执行管理命令,但玩家不能正常放置或使用机器。
机器结构
完整机器必须垂直搭建三层,顺序不能颠倒。
上层 EMC输出器 ← 选择建材和数量,向周围容器输出
中层 EMC储存器 ← 保存 EMC,并提供整机容量
下层 EMC吸收器 ← 扫描附近掉落物,转换为 EMC放置规则
- 储存器必须放在吸收器正上方。
- 输出器必须放在储存器正上方。
- 放置者需要
adventureemc.use。 - 世界、端口和游戏模式必须满足 restrictions。
- 机器物品材质和插件 PDC 标识必须有效。
拆除规则
| 设备 | 默认策略 |
|---|---|
| 吸收器 | 缓存物品按 break-policy.collector-items: DROP 掉落 |
| 储存器 | EMC 按 break-policy.condenser-emc: CLEAR 清空 |
| 全部机器 | 仅所有者或管理员可以操作 |
EMC 吸收器
工作流程
- 按照扫描间隔检查附近掉落物。
- 只接收
collector.materials白名单内容。 - 每种材料根据
emc-values.yml计算 EMC。 - 先进入吸收器缓存,再向正上方储存器结算。
关键设置
| 配置 | 默认 | 说明 |
|---|---|---|
range | 1 | 扫描半径 |
storage-capacity | 512 | 缓存容量 |
scan-interval-ticks | 1 | 工作扫描间隔 |
idle-scan-interval-ticks | 20 | 空闲扫描间隔 |
品质决定可同时选择的吸收材料槽位:普通 1、金 2、钻石 3、合金 4。
EMC 储存器
储存器保存整套机器的 EMC,并通过 GUI 以玻璃面板显示当前值与最大容量。
容量与重量
| 设置 | 默认 |
|---|---|
| 普通容量 | 100,000 EMC |
| 重载阈值 | 50,000 EMC |
| 重量步进 | 每 50,000 EMC |
| 每级速度惩罚 | 20% |
| 最大惩罚 | 80% |
达到重载阈值的储存器不能放入任何容器,防止通过容器移动高 EMC 状态机器。
EMC 输出器
使用方法
- 右键输出器打开输出槽 GUI。
- 选择目标建材,可使用搜索按钮过滤。
- 输入生产数量并确认任务。
- 插件从下方储存器扣除 EMC。
- 成品输出到相邻可用容器。
暂停原因
- 下方没有储存器
- 周围没有可输出容器
- 所有输出容器已满
- EMC 不足或任务达到品质并发上限
默认输出范围
支持 16 色羊毛、陶瓦、混凝土、混凝土粉末、染色玻璃和带釉陶瓦。可在 output.materials 调整。
机器品质
| 品质 | 吸收槽/速度 | 储存容量/速度 | 输出并发/速度/上限 |
|---|---|---|---|
| 普通 | 1 / 1.0× | 100,000 / 1.0× | 1 / 1.0× / 400 |
| 金 | 2 / 1.1× | 500,000 / 1.2× | 2 / 1.2× / 864 |
| 钻石 | 3 / 1.2× | 800,000 / 1.4× | 3 / 1.3× / 1,728 |
| 合金 | 4 / 1.3× | 1,000,000 / 1.6× | 4 / 1.5× / 3,456 |
发放语法
/aemc give <collector|condenser|output> [normal|gold|diamond|alloy] [玩家] [数量]每个品质可在 items.yml 设置独立显示名、Lore 与 CraftEngine ID。
磨损与维修
启用 wear.enabled 后,机器每次有效操作都会损失耐久状态。
状态阈值
| 状态 | 阈值 | 默认效率惩罚 |
|---|---|---|
| 良好 | > 70% | 0% |
| 轻微生锈 | ≤ 70% | 5% |
| 磨损 | ≤ 35% | 15% |
| 严重破旧 | ≤ 10% | 35% |
维修材料
- 铜锭:恢复 15%
- 铁锭:恢复 35%
GUI 和机器物品 Lore 会显示状态名称及百分比。
EMC 数值
emc-values.yml 是输入掉落物和输出建材的统一换算表。
默认示例
| 材料 | EMC |
|---|---|
| ROTTEN_FLESH | 0.5 |
| BONE | 0.8 |
| SPIDER_EYE / GUNPOWDER / ENDER_PEARL | 1 |
| 羊毛 | 1 |
| 陶瓦 | 2 |
| 混凝土 / 混凝土粉末 | 3 |
| 染色玻璃 | 4 |
| 带釉陶瓦 | 5 |
values:
ROTTEN_FLESH: 0.5
BONE: 0.8
GUNPOWDER: 1
WHITE_WOOL: 1
WHITE_CONCRETE: 3
WHITE_STAINED_GLASS: 4材料只有同时出现在 settings.yml 的输入/输出白名单和 emc-values.yml 中才可使用。
settings.yml
限制配置
restrictions:
enabled-server-ports: [30003]
allowed-worlds:
- survival
- survival_nether
- survival_the_end
allowed-game-modes: [SURVIVAL]
admin-bypass: true性能与存储
| 配置 | 默认 | 说明 |
|---|---|---|
limits.max-machines | 2000 | 服务器机器上限 |
limits.machines-per-tick | 80 | 每 tick 最大处理机器数 |
storage.save-delay-ticks | 40 | 延迟合并保存 |
storage.auto-save-ticks | 1200 | 自动保存周期 |
GUI 与物品
items.yml
分别配置 collector、condenser、output 的基础物品及 normal/gold/diamond/alloy 四档覆盖项。支持原版材质、显示名、Lore、CustomModelData 和 craftengine-id。
gui.yml
| 区域 | 用途 |
|---|---|
feedback | 点击、成功、错误音效与冷却 |
collector | 材料选择界面和 EMC Lore |
condenser | 品质行数、EMC 面板和容量显示 |
output | 材料分页、搜索和数量输入 |
wear | 磨损状态名称和维修反馈 |
命令与权限
命令
| 命令 | 说明 |
|---|---|
/aemc help | 显示帮助 |
/aemc version | 显示版本和当前端口 |
/aemc status | 显示机器与材料加载状态 |
/aemc reload | 重读配置并重建定时任务 |
/aemc give ... | 向玩家发放指定类型、品质和数量的机器 |
权限
| 节点 | 默认 | 说明 |
|---|---|---|
adventureemc.use | true | 放置和使用机器 |
adventureemc.admin | OP | 重载、发放、管理他人机器并绕过限制 |
主命令别名:/adventureemc、/aemc、/emcauto。
插件联动
| 插件 | 用途 |
|---|---|
| CraftEngine | 读取自定义机器物品 ID |
| Dominion / WorldGuard | 领地和区域使用检查 |
| CoreProtect | 方块操作记录环境 |
| HuskSync | 跨服玩家数据环境兼容 |
| LuckPerms | 权限管理 |
| PacketEvents | 包级能力预留 |
全部为软依赖;未安装时核心三层机器与 SQLite 持久化仍可工作。
排错指南
无法放置机器
- 检查端口、世界、游戏模式和
adventureemc.use - 确认使用的是带插件标识的机器物品,而非普通同材质方块
- 检查机器数量是否达到
max-machines
机器停止工作
- 吸收器:缓存或储存器已满
- 储存器:上下层结构不完整
- 输出器:没有容器、容器已满或 EMC 不足
- 严重磨损会降低效率,及时使用维修材料
配置重载
执行 /aemc reload 后确认返回的吸收材料、输出建材和 EMC 值数量。更换 JAR 后应重启。