Message Specific PFP. (like TupperBox)



我希望发送一个消息,有一个不同的个人资料图片比机器人。基本上,就像塔珀机器人一样。我似乎不知道如何在任何地方做到这一点,我已经阅读了文档并四处搜索。

你可以使用webhook来做你描述的事情。如果你已经有一个webhook链接,请看这里如何使用它。这也适用于外部程序

如果你不这样做,你可以用你的bot创建一个webhook,然后向它发送消息。在这个例子中,我们将创建一个简单的webhook并向它发送一条消息。

首先我们应该检查通道是否已经有webhook。这样,您就不必每次使用该命令时都创建一个新的。您可以使用fetchWebhooks()函数这样做,如果存在webhook,该函数将返回一个集合。如果是这种情况,我们将获取集合中的第一个webhook并使用它。注意:如果你有多个webhook,你当然可以在第一个之后添加额外的检查

如果没有webhook存在,我们用createWebhook()创建一个新的。您可以在名称后传递其他选项。

let webhook;
let webhookCollection = await message.channel.fetchWebhooks();
if (webhookCollection.first()) {
webhook = webhookCollection.first();
} else {
webhook = await message.channel.createWebhook("new webhook", {
avatar: "https://i.imgur.com/tX5nlQ3.jpeg"
});
}

注意:在这个例子中,我们使用消息来自的频道,但你可以使用任何你想要的频道

技术上讲,我们现在已经可以发送消息了。

webhook.send("this is a test");

你也可以创建一个webhookClient。这有点像启动bot时创建的discord客户端。它接受webhook ID和令牌,以及您可以为客户端设置的其他选项。

const hookclient = new Discord.WebhookClient(webhook.id, webhook.token);

这允许您使用一些额外的方法,如setInterval

hookclient.setInterval(() => {
hookclient.send("This is a timer test");
}, 1000)

这允许你使用webhook而不需要先创建或获取一个。

最新更新