discord.py бот не отвечает упоминанием пользователя

#python #discord #bots

Вопрос:

То, что я пытаюсь сделать, — это команда «поцелуй», пользователь вводит !поцелуй, затем бот должен ответить «{пользователь} целует тебя ! {автор}» но это не работает

 import discord
from discord.ext import commands

@bot.command()
async def kiss2(ctx, target:discord.Member = None):
    if target == None:
        await ctx.send("Tu n'as mentionné personne !")
    
    else:
        await ctx.send(target.mention)
        await ctx.channel.send(" GROS BISOUS {target.mention}, de la part de {ctx.author.mention} !!!!!!!")
        await ctx.channel.send("https://tenor.com/view/cony-brown-flying-kiss-love-gif-14132471")```
 

Комментарии:

1. Пожалуйста, покажите нам, что вы пробовали до сих пор!

2. Эй! Я еще ничего не пробовал, потому что мои знания python ужасны. Это то, что мне было интересно, потому что в данный момент мне это тоже нужно, чтобы предотвратить рейд. Но я подумал о чем-то вроде : «[бот] проверяет журналы»; если более 3 запретов/ударов; [бот] проверяет [пользователя], которого забанили; запрещает указанного [пользователя]; [бот] отправляет в личку [пользователю] сообщение «Вы были забанены из-за предотвращения рейдов». Я искренне сожалею, что до сих пор не показал ничего, что могло бы вам помочь.

3. Вам придется выучить язык и написать некоторый код, чтобы вы могли представить его здесь вместе с конкретной проблемой. Вы не можете ожидать, что мы напишем программу для вас.

4. Я не жду, что кто-то что-то сделает для меня. Я хочу знать, были ли мои мысли, возможно, правильными

Ответ №1:

В вашем заявлении else есть ошибка, см. Ниже

 @client.command()
async def kiss2(ctx, target:discord.Member = None):
    if target == None:
        await ctx.send("Tu n'as mentionné personne !")
    
    else:
        await ctx.channel.send(f" GROS BISOUS {target.mention}, de la part de {ctx.author.mention} !!!!!!!")
        await ctx.channel.send("https://tenor.com/view/cony-brown-flying-kiss-love-gif-14132471")

 

Вам нужно добавить «f» перед вашим {target.mention}, иначе {target.mention} является строкой, а не переменной.