You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mineflayer Bot遭生物击杀后报'digging aborted'并断开连接求助

解决Mineflayer Bot被击杀后出现'digging aborted'错误并断开连接的问题

核心问题原因

当Bot被生物击杀时,若它正处于挖掘状态,游戏服务器会强制终止当前挖掘操作,触发digging aborted错误;若未捕获该错误,会直接导致Bot进程崩溃并断开服务器连接。

解决方案步骤

  • 捕获挖掘操作错误:针对单个挖掘任务添加错误捕获,或监听Bot全局错误事件,过滤掉死亡导致的挖掘中断错误,避免进程退出。
  • 监听死亡事件清理状态:当Bot触发死亡事件时,主动终止所有正在执行的操作(挖掘、移动等),重置Bot状态。

代码修改示例

假设你的原有代码包含类似挖掘逻辑,可按如下方式修改:

// 方式1:针对单个挖掘任务捕获错误
bot.dig(targetBlock, (err) => {
  if (err && err.message.includes('digging aborted')) {
    console.log('Bot死亡,挖掘操作终止');
    return; // 忽略该错误,不触发崩溃
  }
  if (err) console.error('挖掘操作异常:', err);
});

// 方式2:监听全局错误,兜底防止进程崩溃
bot.on('error', (err) => {
  if (err.message.includes('digging aborted')) {
    console.log('因Bot死亡触发挖掘中断');
    return;
  }
  console.error('Bot全局错误:', err);
});

// 监听死亡事件,主动清理所有操作
bot.on('death', () => {
  console.log('Bot已死亡,清理当前任务');
  // 终止所有控制状态(移动、挖掘等)
  bot.clearControlStates();
  // 若有自定义任务队列,在此清空队列
  // taskQueue = [];
});

额外注意事项

  • Bot复活后需重新初始化操作逻辑,比如恢复自动寻路、资源采集任务。
  • 避免在Bot死亡状态下发送需要正常游戏状态的指令,需等待Bot复活并加载完游戏场景后再执行。

内容的提问来源于stack exchange,提问作者Mahmoud Mohamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 12:35:54