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

discord.js中{ split: true }无法拆分超2000字符消息问题求助

问题根因

你使用的是discord.js v13及更高版本,该版本对channel.send()方法的传参规则做了不兼容更新:不再支持「第一个参数传消息文本、第二个参数传配置项」的旧写法,所有参数都需要统一放在同一个配置对象中,你之前写的{ split: true }参数根本没有被SDK正确识别,自然不会生效。

修复方案

只需要修改文件监听回调内的消息发送逻辑即可,修改后的代码如下:

fs.watchFile(playlist, (eventType, filename) => {
  readLastLines.read(playlist, 255)
    .then((lines) => bot.channels.cache.get(settings.discord_channel).send({
      content: lines,
      split: true
    }))
    .catch(err => console.error('消息发送失败:', err)); // 新增错误捕获方便后续排查问题
});

额外优化建议

  • 若你的文件更新频率较高,fs.watchFile会重复触发回调导致重复发送消息,建议添加防抖逻辑限制短时间内只触发一次发送
  • 若读取的文本存在大量连续无换行的超长内容,可以额外配置split的拆分规则,指定按固定字符、固定长度拆分,避免截断半行内容
  • 请提前确认机器人已获得对应频道的发送消息权限,避免权限问题导致消息发送失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:06:05