【问题标题】:How to make a discord.js bot dm all members in my server如何在我的服务器中创建一个 discord.js bot dm 所有成员
【发布时间】:2019-10-11 10:57:40
【问题描述】:

我正在尝试让我的机器人 DM 成为所有人(不仅仅是新成员),但我不知道我将如何去做。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:
    // Async context (within async function), 'message' being the command message.
    
    const members = message.guild.members.filter(m => !m.user.bot).array(); // Filter out bots.
    
    let undelivered = 0;
    
    for (let i = 0; i < members.length; i++) {  // Using an array and a for loop rather than
      const member = members[i];                // Collection.forEach() due to the fact that
      await member.send('Hello there.')         // the latter will move onto the proceeding
        .catch(() => undelivered++);            // code before waiting for the promises to
    }                                           // fulfill. https://stackoverflow.com/a/37576787
    
    message.channel.send(`Messages sent. ${undelivered} members couldn't receive it.`)
      .catch(console.error);
    

    【讨论】:

    • 以上代码必须在异步函数中(声明为async function(...) {async (...) =&gt; {)。
    • 回调必须是异步的。该行应如下所示:bot.on('ready', async () =&gt; {。您还需要将message.guild 更改为您要使用的公会(即client.guilds.get('id'))。
    • 有没有没有id的办法
    • 您可以使用Collection.find()搜索具有特定属性的公会,即client.guilds.find(g =&gt; g.name === 'test')
    • 你可以用message.guild.members.filter(...).forEach(async member =&gt; { // code })代替for循环
    猜你喜欢
    • 2020-10-29
    • 2021-12-02
    • 2022-01-18
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多