首页 > 解决方案 > 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')

标签: pythondiscord.py

解决方案


您没有使用有效的名称转义。语法要求大写 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")

推荐阅读