【问题标题】:Discord.js Akairo Bot this.client.setInterval is not a functionDiscord.js Akairo Bot this.client.setInterval 不是函数
【发布时间】:2021-09-03 00:14:57
【问题描述】:

我正在通过Akairo documents tutorial 使用该框架启动一个机器人。我正在使用“dotenv”为客户端加载我的令牌。

require('dotenv').config();
const { AkairoClient, CommandHandler } = require('discord-akairo');

class MyClient extends AkairoClient {
  constructor() {
    super({
        ownerID: '123992700587343872', // not a real id
    }, {
        disableMentions: 'everyone',
        intents: ['GUILD_MESSAGES']
    });
    this.commandHandler = new CommandHandler(this, {
      directory: './commands/',
      prefix: '<3',
    });
    this.commandHandler.loadAll();
  }
}

const client = new MyClient();
client.login(process.env.TOKEN);

每次我尝试使用node bot.js 命令运行机器人时,都会收到以下错误

我已尝试确保我的依赖项符合要求,甚至尝试完全干净的 npm install 安装所有内容,但我不确定出了什么问题。我目前也在通过 nvm 使用节点 16.8.0。

我的代码发布在here,但本质上只是上面提到的添加了“dotenv”包的教程。

如下所述,问题源于 discord.js v13 不再允许可扩展结构。有没有办法可以修改本教程代码以使用 discord.js v13 运行,而不是仅仅弃用到 v12?

【问题讨论】:

  • This 应该是您的问题。所以我猜你需要在该框架旁边使用 discord.js v12。
  • 降级到 discord.js 12.1.0 并且可以正常工作,谢谢!
  • Discord-Akairo 似乎正在升级到 discord.js v13,正如您在他们的Github 上看到的那样。要将该框架与 discord.js v13 一起使用,您只需等待他们发​​布下一次更新即可。

标签: javascript node.js discord.js


【解决方案1】:

Discord-Akairo 目前似乎正在升级到 discord.js v13,您可以在他们的Github 上看到。要将该框架与 discord.js v13.x 一起使用,您只需等待他们发​​布下一次更新即可。

除非您有足够的信心和知识来分叉他们的存储库,并自己编辑框架以使用 v13。这将具有额外的优势,即能够根据您的需要进一步定制框架。

您收到 "client.setInterval is not a function" 错误的原因是 Discord.js 在 v13 中删除了该方法。最重要的是,可扩展结构已被删除,并且还有数百个其他重大更改使当前版本的 Discord-Akairo 无法与 djs v13 一起使用。

目前,除非您选择分叉 Akairo,否则您需要降级到 discord.js v12.x,就像您已经完成的那样。它现在应该可以工作,但你当然会错过许多新的 Discord 功能,例如线程、按钮、选择菜单和斜线命令。

您可能还想考虑使用目前已经支持 v13 的不同框架,也许是某种类似的框架,以便您以后可以轻松转移回 Akairo(如果您愿意的话)。

【讨论】:

    猜你喜欢
    • 2020-07-24
    • 2020-11-06
    • 2020-09-17
    • 2020-12-31
    • 2020-12-07
    • 2020-08-23
    • 2020-01-22
    • 2020-11-13
    • 2017-11-28
    相关资源
    最近更新 更多