Python 3.8.1 Discord.py重写反应

时间:2020-04-29 23:02:43

标签: python discord discord.py discord.py-rewrite python-3.8

我目前正在为服务器开发自定义discord机器人。我正在(尝试)创建一个投票系统。因此,用户使用-poll yn poll question。 yn部分描述了问题的类型,例如“是/否”。这是我到目前为止的内容:

@client.command()
async def poll(ctx, typee, *, msgg):
    if typee=='yn':
        msg = await ctx.channel.send("@everyone " + msgg)
        reactions = ['a']
        for emoji in reactions: 
            await client.add_reaction(msg, emoji)
        await ctx.message.delete()

运行此程序时出现错误:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Bot' object has no attribute 'add_reaction'

我正在使用重写和python 3.8.1

2 个答案:

答案 0 :(得分:3)

add_reaction方法是消息对象而不是客户端对象的一部分。您需要的是await msg.add_reaction(emoji)而不是await client.add_reaction(msg, emoji)

如果您不知道'a'不是有效的表情符号,则还有另一件事。

答案 1 :(得分:0)

我相信您想做await msg.add_reaction(emoji)而不是await client.add...

我假设您知道"a"不是有效的表情符号,您可以找到名称与它们的unicode的字典here

此外,如果任何人都可以使用@everyone,那么最好避免使用它!您可以将其限制为具有特定权限的人员,也可以自己为所有者。您可以使用装饰器来执行此操作,可以找到这些here的一大列表。