Как заставить разногласия питона-бота реагировать на собственное сообщение? - PullRequest
0 голосов
/ 14 января 2019

В настоящее время работаю над небольшим ботом, который отправляет код для вставки, и я хочу, чтобы он реагировал на себя, но я не уверен, как это сделать. Любая помощь?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Если у вас есть это в вашем коде

if message.author == client.user:
    return

Ваш бот не будет отвечать на себя, и он не должен отвечать на себя нормально. Обходным путем было бы поместить любой код, который вы хотите выполнить, несмотря на message.author == client.user над ним. Например:

# This will respond to itself
if (message.content.lower() == "!yell"):
    msg = "!yell"
    await client.send_message(message.channel, msg)

# This checks to see if the author is the client    
if message.author == client.user:
    return

# This will not respond to itself
if (message.content.lower() == "!yell2"):
    msg = "!yell"
    await client.send_message(message.channel, msg)

! Yell приведет к тому, что ваш бот будет разговаривать сам с собой, пока не достигнет порога сообщения, однако! Yell2 не будет, потому что он идет после раздела, который проверяет, является ли он client.user.

0 голосов
/ 14 января 2019

Получить сообщение, на которое вы хотите отреагировать, и использовать Client.add_reaction ()

Например, если вы реагируете на встраивание

msg = await bot.send_message(ctx.message.channel,embed=embed)
await bot.add_reaction(msg, "?")
...