Disord Bot как получить получить отправитель

108
11

Я делаю бота для раздора с Python, и мне нужна команда, где, например, кто-то типа

User: !hello
Bot: Hello User#1234

Я посмотрел по всему Интернету и не смог его найти. Я пробовал много вещей, и никто из них не работал

спросил(а) 2021-01-25T23:30:27+03:00 4 месяца, 4 недели назад
1
Решение
117

Если вы используете discord.py, ознакомьтесь с этими примерами сценариев: https://github.com/Rapptz/discord.py/blob/async/examples/reply.py

@client.event
async def on_message(message):
if message.content.startswith('!hello'):
msg = 'Hello {0.author.mention}'.format(message)
await client.send_message(message.channel, msg)

Если вы хотите добавить дополнительные команды, лучше использовать декоратор @*.command(), см. Другие примеры для этого. В основном версия декоратора для приведенного выше примера должна выглядеть так:

bot = commands.Bot(command_prefix='!')

@bot.command(pass_context=True)
async def hello(ctx):
"""Answers a !hello command"""
msg = 'Hello {0.author.mention}'.format(ctx.message)
await bot.say(msg)

ответил(а) 2021-01-25T23:30:27+03:00 4 месяца, 4 недели назад
45

Если вы используете discord.py сообщение имеет переменную автора, которую вы можете использовать с message.author это возвращает либо объект User Member. Вы можете получить отображаемое имя их с message.author.name (заносить бы User) в то время как message.author вернется пользователь # 1234 Также discord.py libary имеет довольно хорошую документацию здесь.

ответил(а) 2021-01-25T23:30:27+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема