首页 > 解决方案 > 赠品结束时如何与赠品的主持人联系

问题描述

我正在使用Discord Giveaways模块。

我想知道当他们的赠品结束时如何与赠品的主人联系。我还不知道该怎么做。

这是我所知道的:

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

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

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

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

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

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

标签: javascriptnode.jsdiscord.js

解决方案


似乎您在触发giveaway时收到了一个对象。giveawayEnded如果它有一个prize属性,我很确定它也有一个hostedBy属性。

hostedBy是一个“提及字符串”(例如<@335657562220537971>),您可以使用 从中获取用户的 ID .slice,然后获取用户。获取它们后,您可以简单地对它们进行 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,
    );
  });
});

推荐阅读