Python 3.8.1 Discord.py 重写反应
Posted
技术标签:
【中文标题】Python 3.8.1 Discord.py 重写反应【英文标题】:Python 3.8.1 Discord.py Rewrite Reactions 【发布时间】:2020-08-14 05:04:58 【问题描述】:我目前正在为我的服务器开发自定义不和谐机器人。我正在(尝试)创建一个投票系统。所以用户做-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'
我正在使用 rewrite 和 python 3.8.1
【问题讨论】:
【参考方案1】:我相信你想做await msg.add_reaction(emoji)
而不是await client.add...
。
我假设您知道 "a"
不是有效的表情符号,您可以找到名称字典与它们的 unicode here
另外,如果任何人都可以使用@everyone,也许最好避免包含@everyone!您可以将其限制为具有某些权限的人,或者您自己作为所有者。你可以用装饰器来做到这一点,你可以找到这些here 的大列表。
【讨论】:
【参考方案2】:add_reaction
方法是消息对象的一部分,而不是客户端对象。你需要的是await msg.add_reaction(emoji)
而不是await client.add_reaction(msg, emoji)
如果您不知道'a'
不是有效的表情符号,另一件事是。
【讨论】:
以上是关于Python 3.8.1 Discord.py 重写反应的主要内容,如果未能解决你的问题,请参考以下文章
Discord bot python:discord.errors.ClientException:找不到ffmpeg
discord.py和discord.py的区别[voice]