discord.py случайные сообщения с упоминанием пользователя - PullRequest
0 голосов
/ 11 июля 2020

py недавно, и я хотел бы, чтобы бот отправлял случайные сообщения с упоминанием пользователя, но он выдает мне эту ошибку:

discord.ext.commands.errors.CommandInvokeError: Команда вызвала исключение: AttributeError : Объект 'NoneType' не имеет атрибута 'упоминание'

Вот код:

@client.command()
async def randomroman(ctx, *,member: discord.Member=None):

    mention = member.mention
    variable=[
        f'{mention} ama tanto roman!',
        f'{mention} odia tanto roman!',
        f'{mention} ama roman!',
        f'{mention} odia roman!'
    ]
    await ctx.message.channel.send(random.choice(variable))

1 Ответ

0 голосов
/ 11 июля 2020

Таким образом, может показаться, что вы установили значение по умолчанию, поэтому вы должны проверить, был ли упомянут участник, прежде чем пытаться отправить сообщение. Вот два разных фрагмента кода, которые вы можете использовать.

@client.command()
async def randomroman(ctx, member: discord.Member=None):
    if not member:
        # We dont have anyone to mention so tell the user
        await ctx.send("You need to mention someone for me to mention!")
        return

    variable=[
        f'{member.mention} ama tanto roman!',
        f'{member.mention} odia tanto roman!',
        f'{member.mention} ama roman!',
        f'{member.mention} odia roman!'
    ]
    await ctx.send(random.choice(variable))

Вы также можете просто использовать ctx.send()

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

@client.command()
async def randomroman(ctx, member: discord.Member=None):
    member = member or ctx.author

    variable=[
        f'{member.mention} ama tanto roman!',
        f'{member.mention} odia tanto roman!',
        f'{member.mention} ama roman!',
        f'{member.mention} odia roman!'
    ]
    await ctx.send(random.choice(variable))

В этой ситуации оба они будут работать. !randomroman и !randomroman @user будут упоминать пользователя.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...