Команда отчета Discord Bot Python 3.6

Я делаю кастомного бота Discord на Python. Я пытаюсь добавить команду! Report. Я очень запутался и нигде не могу найти ответ. Может ли кто-нибудь помочь мне сделать это?

Я хочу, чтобы любой пользователь мог сделать !report @example reason. и сохранить его в базе данных, такой как excel или sql3, или, желательно, в канале персонала. как бы я это сделал?

Я пробовал использовать on_message()


person William Jackson    schedule 28.04.2020    source источник


Ответы (1)


Вы можете использовать команду on_message():

@client.event
async def on_message(message):
    if message.content.startswith("!report"):
        report_channel = client.get_channel(channel id)
        member = text.split(" ")[1]
        reason = ' '.join(text.split(" ")[1:])
        await report_channel.send(f"Member: {member}, Reason: {reason}")

Итак, первое, что нужно сделать, это посмотреть, использовал ли этот человек команду "! Report" с оператором if.

Затем вы найдете участника, взяв второе слово сообщения.

После этого вы найдете причину, взяв остальные слова в сообщении.

Затем вы отправляете его в заранее определенный канал отчета о разногласиях.

person Holden    schedule 28.04.2020
comment
я получаю сообщение об ошибке AttributeError: 'Message' object has no attribute 'startswith' - person William Jackson; 28.04.2020
comment
Вы использовали строчную букву m? - person Holden; 28.04.2020
comment
Извините, это message.content.startswith() Я изменю ответ. сообщение - это объект, содержание - это текст. - person Holden; 28.04.2020
comment
извините за ошибку, но когда это будет исправлено, я получу NameError: name 'text' is not defined - person William Jackson; 28.04.2020
comment
измените оба на message.content извините за плохой код, я написал его довольно быстро и не смог его запустить - person Holden; 28.04.2020