Discord.py-以不同的名称或用户发送消息

我一直在开发一个机器人,有一个小请求,我不知道该怎么做。

当用户输入他们的消息时,机器人会检查消息是否包含预先确定的关键字(为了把一切都放在眼里,我正在使用一个已经工作的 BOT 的例子),替换这部分(例如表情符号)并再次发布消息,在发布消息的用户名下。(我不想完全这样做,我只想知道如何像 Animated Emojis bot一样“以其他用户的身份发布”

它是这样工作的:

图像示例

同样不知何故,创建的用户不是有效用户,因为他们没有任何角色或可以发送消息。如果您单击他们的个人资料(在聊天中),则会发生以下情况:

无效的个人资料

正如我之前所说,这在某种程度上是可能的(动画表情符号机器人就是其中一个例子),我想知道我怎么能做这样的事情。

提前致谢,希望你有美好的一天!

回答

我找到了一种简单的方法,看起来就像您在谈论的那样,只需使用用户名或使用该命令“充当”的另一个用户创建一个 webhook,将创建一个包含这些详细信息的 Discord webhook,然后删除该 webhook ,但保留消息。尝试这个。

@client.command()
async def act(ctx, member: discord.Member, *, message=None):

        if message == None:
                await ctx.send(
                    f'Please provide a message with that!')
                return

        webhook = await ctx.channel.create_webhook(name=member.name)
        await webhook.send(
            str(message), username=member.name, avatar_url=member.avatar_url)

        webhooks = await ctx.channel.webhooks()
        for webhook in webhooks:
                await webhook.delete()

编辑:网络钩子是一种通信类型,可用于访问和自动化您的消息,以将数据更新发送到您的 Discord 文本频道。

在这种情况下,当从命令发送消息时,用户显示为机器人,但其他一切都来自用户。NQN bot 使用这种精确的方法


以上是Discord.py-以不同的名称或用户发送消息的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>