【问题标题】:How to DM the host of the giveaway when their giveaway ended赠品结束时如何与赠品的主持人联系
【发布时间】:2021-05-08 10:52:16
【问题描述】:

我正在使用Discord Giveaways 模块。

我想知道在赠品结束后如何与赠品主持人联系。我还不知道该怎么做。

这是我所知道的:

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

上面的代码显示了如何 DM 赠品的获胜者,我在 the docs 找到了该代码,但没有关于如何 dm 所有者的代码。

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

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

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

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

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    giveawayEnded 被触发时,您似乎收到了一个giveaway 对象。如果它有一个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,
        );
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2021-05-25
      • 1970-01-01
      • 2020-03-17
      • 2021-03-20
      • 2021-04-02
      • 2021-04-18
      • 1970-01-01
      • 2021-05-05
      • 2021-07-20
      相关资源
      最近更新 更多