python - discord python bot - 如何不使用 on_message 发送消息
问题描述
我正在制作一个不和谐的 python 机器人代码,如果我对表情符号做出反应,机器人将在频道上发送一条消息。
async def on_reaction_add(reaction, user):
if (reaction.emoji == '\N{VICTORY HAND}'):
await message.channel.send('hello')
但是我无法发送消息...(我的英语很糟糕...对不起)
解决方案
需要考虑的几个项目。
- 考虑使用on_raw_reaction_add而不是
on_reaction_add
捕获所有消息反应,而不仅仅是缓存的反应。 - 对于您的表情符号比较,您可以使用 python
emoji.demojize()
获取表情符号的文本表示。pypi 表情符号 0.5.4。Discord 没有将胜利手表情符号视为“\N{VICTORY HAND}”,它只是:V:。如果你将鼠标悬停在它上面,你会看到。 - 要发送消息,您需要设置一个频道。
尝试:
import emoji
@client.event
async def on_raw_reaction_add(payload):
if emoji.demojize(str(payload.emoji)) == ':victory_hand:':
channel = client.get_channel(payload.channel_id)
await channel.send('hello')
推荐阅读
- typescript - 尽管声称 Prettier 不支持私有方法
- angular6 - angular6不刷新css更改
- git - “与您的容器共享 Git 凭据”不起作用
- jenkins - Jenkins 声明式管道 ssh 代理插件
- mysql - NodeJS Mysql pool.query() 没有释放连接?
- python - Django Auth Group 拒绝更改 UpdateViews
- c++ - C++ 从一个类中检索多种类型的数据
- python - def update 创建一个新的但不更新 - Django
- reactjs - 即使我将其导出为 TypeScript 中自己的类型,也无法访问子类属性
- java - 无法在 Spring Boot 中访问不安全的获取端点