Как сделать так, чтобы мой бот Discord упомянул конкретного человека на канале? - PullRequest
0 голосов
/ 09 июня 2019

Итак, я только недавно начал изучать, как разработать бота Discord с Python, и я очень озадачен тем, как заставить моего бота упоминать людей после отправки конкретного сообщения. Что я пытаюсь сделать, это когда я пишу «Позвони Джорджу» на определенном канале, я хочу, чтобы мой бот упомянул @ George's_name и, возможно, что-то вроде «ты здесь?» после упоминания.

Из того, что я видел, все говорят, что для того, чтобы упомянуть кого-то, мне нужно скопировать его USER_ID и написать что-то вроде <@USER_ID>, но я все еще не знаю, каков синтаксис.

async def on_message(self, message):
    if message.author == self.user:
        return
    if message.content == 'Call George':
        await message.channel.send('Hey ', <@USER_ID> ,' are you here?')

Как вы можете сказать, всякий раз, когда кто-то говорит "Позвони Джорджу", я хочу, чтобы бот упомянул Джорджа и спросил его, если он здесь. Когда я пытаюсь запустить свой код, он сообщает мне неверный синтаксис и выделяет часть <@USER_ID>.

1 Ответ

0 голосов
/ 09 июня 2019

Вы сказали в комментарии, что у вас есть идентификатор, хранящийся где-то в переменной, вы можете использовать string.format (user_id) для проверки связи с пользователем. Причина, по которой он выдавал ошибку, заключается в том, что вы использовали запятые, хотя этоДля работы с print () вам нужно объединить строку, если вы хотите использовать send (). Надеюсь, это помогло, извините за неверное толкование.

async def on_message(self, message):
    if message.author == self.user:
        return
    if message.content == 'Call George':
        await message.channel.send('Hey ' + "<@{}>".format(userid) + ' are you here?')

, если вы имеете в виду только одного человека и хотите, чтобы функция толькоПинг этого человека, вы можете сделать это

async def on_message(self, message):
    if message.author == self.user:
        return
    if message.content == 'Call George':
        await message.channel.send('Hey ' + "<@123456>" + ' are you here?')

заменить "123456" с их фактическим идентификатором.

...