#python #discord.py
#python #discord.py
Вопрос:
Когда я набираю / helps, я получаю только «Привет, Raw», Есть ли какие-либо ошибки в моем коде, потому что я не получил реактивные смайлики.
Вывод: Привет, 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')
Ответ №1:
Вы не используете допустимые экранирования имен. Синтаксис требует заглавной буквы 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")