javascript - 当赠品结束时如何向赠品主持人发送私信

标签 javascript node.js discord.js

我正在使用Discord Giveaways模块。

我想知道当赠品结束后如何向赠品主持人发送私信。我还不知道该怎么做。

这是我所知道的:

manager.on('giveawayEnded', (giveaway, winners) => {
     winners.forEach((member) => {
         member.send('Congratulations, '+member.user.username+', you won: '+giveaway.prize);
     });
});

上面的代码显示了如何向赠品获胜者发送私信,我在 the docs 中找到了该代码但没有关于如何与所有者私信的代码。

 bot.giveawaysManager.giveaways.filter((g) => g.ended);

上面的代码展示了如何过滤结束的赠品

bot.giveawaysManager.start(message.channel, {
                time: ms(giveawayDuration),
                prize: giveawayPrize,
                winnerCount: giveawayWinners,
                hostedBy: message.author,
            })

上面的代码展示了如何制作赠品。

最佳答案

您似乎收到了 giveaway对象时giveawayEnded被解雇了。如果它有 prize属性,我很确定它还有一个 hostedBy属性。

hostedBy是一个“提及字符串”(例如 <@335657562220537971> ),您可以使用 .slice 从中获取用户的 ID ,然后获取用户。获取它们后,您可以简单地通过 DM 发送它们:

manager.on('giveawayEnded', async (giveaway, winners) => {
  const hostID = giveaway.hostedBy.slice(2, -1);
  const host = await client.users.fetch(hostID);

  if (host) {
    host.send('Giveaway ended');
  }

  winners.forEach((member) => {
    member.send(
      'Congratulations, ' +
        member.user.username +
        ', you won: ' +
        giveaway.prize,
    );
  });
});

关于javascript - 当赠品结束时如何向赠品主持人发送私信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66040535/

相关文章:

javascript - 将场景分成几张 Canvas 还是继续重画一张?

javascript - 在多个端口上运行 node.js http 服务器

javascript - 当 gulpfile 中不存在用户要求的任务时运行特定任务

node.js - 在 ID 为 String 的 Angular 4 中使用路由参数

javascript - THIS 如何引用存储在变量中的值

javascript - node.js socket.io 脚本在 1-2 天后被 SIGSEGV 杀死

javascript - 为什么对 html 属性使用变量?

javascript - 如何正确定义我的机器人的前缀,使其不响应任何单字母前缀?

javascript - 将 mongodb 集合项添加到不和谐嵌入中

javascript - 如何通过 DM 向具有特定角色的所有成员发送消息?