python - Discord.py 输出时没有反应表情符号
问题描述
当我输入 /helps 时,我只收到“Hello, Raw” 我的代码中是否有任何错误,因为我没有得到反应表情符号。
输出:Hello Raw#6839
from discord.ext import menus,commands
bot = commands.Bot(command_prefix=('/'))
class MyMenu(menus.Menu):
async def send_initial_message(self, ctx, channel):
return await channel.send(f'Hello {ctx.author}')
@menus.button('\n{TRACK PREVIOUS SIGN}')
async def on_track_previous(self, ctx, payload):
await self.message.edit(content="a")
@menus.button('\n{REWIND SIGN}')
async def on_rewind(self, ctx, payload):
await self.message.edit(content="b")
@menus.button('\n{FAST FORWARD SIGN}')
async def on_fast_forward(self, ctx, payload):
await self.message.edit(content="c")
@menus.button('\n{TRACK NEXT SIGN}')
async def on_track_next(self, ctx, payload):
await self.message.edit(content="d")
@bot.command()
async def helps(ctx):
m = MyMenu()
await m.start(ctx)
bot.run('token')
解决方案
您没有使用有效的名称转义。语法要求大写 N,并且您需要使用这些字符的精确名称(您可以使用"<char>".encode('ascii', 'namereplace')
这些名称来获取)
class MyMenu(menus.Menu):
async def send_initial_message(self, ctx, channel):
return await channel.send(f'Hello {ctx.author}')
@menus.button('\N{BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR}\N{VARIATION SELECTOR-16}')
async def on_track_previous(self, ctx, payload):
await self.message.edit(content="a")
@menus.button('\N{BLACK LEFT-POINTING DOUBLE TRIANGLE}')
async def on_rewind(self, ctx, payload):
await self.message.edit(content="b")
@menus.button('\N{BLACK RIGHT-POINTING DOUBLE TRIANGLE}')
async def on_fast_forward(self, ctx, payload):
await self.message.edit(content="c")
@menus.button('\N{BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR}\N{VARIATION SELECTOR-16}')
async def on_track_next(self, ctx, payload):
await self.message.edit(content="d")
推荐阅读
- laravel - 如何在父母和孩子上应用 Laravel Eloquent where() 条件(hasMany() 关系)
- cookies - 网站如何获得用户的许可来设置其 cookie?
- node.js - 为什么我不能获取记录在 dynamoosejs 中有一个包含主键值的数组字段?
- javascript - 我们如何在 ASP mvc 中通过 ajax 下载 XML 文件?
- editor - Monaca 编辑器语法高亮是可以的,但是编辑器没有显示任何错误
- c++ - 在 Ubuntu 18.04 的 VIsual Studio 代码中为 C++ 设置 OpenCV
- javascript - 使用 javascript 客户端,如何显示“虚拟文件夹”(= 具有相对路径的 html、img、js 的连贯集合)?
- amazon-web-services - 从 AWS 导入 VPC 配置
- neovim - Neovim + 银河系插件粉碎
- python - Dash 是否具有多页面应用程序设计,使得所有页面的所有数据都必须在启动时加载?