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

Discord.js音乐机器人nowplaying命令报错createBar is not a function求助

报错原因
  • 核心报错逻辑为createBar函数在nowplaying.js的执行上下文内未被正确导入或定义,你未修改过该命令文件的前提下,常见触发场景如下:
    • 项目依赖的第三方音乐机器人库(如discord-player等常用框架)触发了自动更新,新版本弃用、移除了原有的createBar方法,或修改了该方法的导出规则
    • 项目内存放公共工具函数的文件被误修改,createBar函数被删除、改名,或导出方式发生变动
    • nowplaying.js文件顶部的createBar导入语句因文件路径变动、拼写错误失效,无法正常引入目标函数
解决方法
  • 第一步:检查nowplaying.js文件开头的导入代码段,确认createBar的导入来源:
    • 若从第三方库导入,核对当前使用的库版本官方文档,确认createBar是否被更名,例如部分discord-player版本中该方法已更名为createProgressBar,直接替换代码中的调用方法名即可
    • 若从项目本地工具文件导入,核对导入路径对应的文件是否存在,文件内是否保留了createBar函数的导出,修正路径或拼写错误即可
  • 第二步:如果确认createBar函数已完全丢失,可手动实现进度条逻辑替代原有调用,将以下代码放在nowplaying.js文件开头即可:
// 手动实现进度条生成函数,参数与返回值适配原调用逻辑
function createBar(totalDuration, currentTime, barLength = 25, lineChar = "▬", dotChar = "🔘") {
  const progress = Math.min(currentTime / totalDuration, 1);
  const filledLength = Math.round(barLength * progress);
  const bar = lineChar.repeat(Math.max(0, filledLength - 1)) + dotChar + lineChar.repeat(Math.max(0, barLength - filledLength));
  return [bar, progress];
}
  • 第三步:修改完成后重启机器人,执行nowplaying命令验证功能恢复情况即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:39:04