【问题标题】:Using the discord.js module outside of commands在命令之外使用 discord.js 模块
【发布时间】:2020-01-10 11:24:36
【问题描述】:

我正在尝试制作一个不和谐的机器人。但是,我被困在我必须每小时检查一次不和谐用户名是否等于数组内容的部分。如果是,我必须让机器人删除一个角色。但是,这样做需要使用 discord.js 模块,我不知道如何将其添加到代码中(我已经在 index.js 中设置了机器人)。

我尝试要求 discord.js-commando 但它返回:

“错误:必须指定客户端”

这就是问题所在:

class checkDet extends commando.Command {

这是我要使用discord.js module的地方:


    var guild = bot.guilds.get("GUILD ID HERE"); 
    for (let [k, v] in Object.entries(guild.members)) {
    if (v.user.username == userName) 
    {                            
   v.removeRoles(v.roles).then(console.log).catch(console.error); 
    }
   }

【问题讨论】:

  • 如果你正在使用 commando,你为什么要使用 discord.js 模块
  • v.roles.remove(v.roles).then(console.log).catch(console.error) 如果你用 roles.remove(...) 做到这一点,它将适用于突击队
  • @Cursed 我想在命令之外的 setInterval() 循环中使用机器人。另外,我发现我可以将整个内容粘贴到 index.js 中。无论如何感谢您的帮助!

标签: javascript node.js discord.js


【解决方案1】:

多种解决方案。解决方案 1:如果您只是使用 Discord.JS 而不是整个 Commando 模块,请尝试在该文件顶部使用 const Discord = require('discord.js'); 并使用 正常!

另一种方法是让整个突击队模块通过。有很多方法可以做到这一点,但最简单的可能是在文件顶部添加let commando;,然后创建一个module.exports.define 函数来将 commando 设置为第一个参数。然后在主 bot 文件中,运行 require('path/to/my/command.js').define(commando);

或者更简单,如果您只需要递归检查,为什么不将它放在主bot.js 文件中,甚至是另一个文件中呢?要么调用包含 commando 对象的文件,要么在原始文件中使用普通代码运行 setInterval

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 2014-09-14
    • 1970-01-01
    • 2023-02-08
    • 2021-05-02
    • 1970-01-01
    • 2021-08-07
    • 2021-06-03
    • 2021-03-08
    相关资源
    最近更新 更多