Как я могу упомянуть, кто был упомянут в командном триггере?

#discord.py-rewrite

#discord.py-переписать

Вопрос:

Я пытаюсь discord.py бот упоминает участника, временно отстраненного от сервера, а затем присваивает ему временно отстраненную роль. Однако я не знаю, что вставить во вставку, и даже если я просто вставлю что-то туда, оно не отправит сообщение. Я также не уверен, сыграет ли это роль. Вот мой код:

 @bot.command(pass_ctx=True)
@commands.has_permission(administrator=True)
async def suspend(ctx, *, self, member = discord.Member):
 embed = discord.Embed(
 colour = discord.Colour.red(title='Successful Suspension'))
 [
   embed.add_field(name='Details', value='')]
 await ctx.send(embed=embed)
 await member.add_roles('Suspended')
 else:
   await ctx.send('Insufficient Permissions.')
 

Я также получаю синтаксическую ошибку в функции else: .

Ответ №1:

Прежде всего, я собираюсь ответить на ваш вопрос. Вы можете использовать discord.Member.mention (в вашем случае вы можете просто написать member.mention ), чтобы упомянуть кого-то.


Во-вторых, я собираюсь помочь с вашим внедрением:

  • Аргументы в функции беспорядочные.
  • Почему вы поместили заголовок внутрь discord.Colour.red() ? Это цвет, и он используется для изменения цвета боковой панели для вставки (также вы не можете изменить цвет текста, если это то, что вы пытались сделать).
  • В полях для вставки у вас не может быть ничего в значении. value=''
  • У вас небольшая опечатка, это has_permissions()

Я не люблю ложную подачу, но ваш код должен выглядеть примерно так:

     @bot.command(pass_ctx=True)
    @commands.has_permissions(administrator=True)
    async def suspend(self, ctx, *, member = discord.Member):
           embed = discord.Embed(title='Succesful Suspension', colour=discord.Colour.red())
           embed.add_field(name='Details', value='A')
           await ctx.send(embed=embed)
           await member.add_roles('Suspended')
 

Я также удалил последнюю часть вашего кода, потому что это не имело смысла. См. раздел Обработка ошибок.


Я думаю, это все, надеюсь, что это сработало, и я рекомендую вам взглянуть на документы.Если кто-то найдет что-то неправильное, сообщите мне в комментариях.