Является ли использование message.author правильным - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь добавить событие в мой бот, где оно отвечает, когда определенный профиль говорит что-то в канале, моя идея состояла в том, чтобы сравнить message.author со строкой, а затем он отправит сообщение

import discord
from discord.ext import commands

client = commands.Bot(command_prefix=".")

@client.event
async def on_ready():
    print('bot is ready')
    print(client.user)
@client.event
async def on_message(message):
    print(f"'{message.content}' said by {message.author}")
    if message.author == "MESSAGE AUTHOR":
        await message.channel.send(f"{message.author} said something")

снова, когда message.author совпадает со строкой, в настоящее время "MESSAGE AUTHOR", бот должен ответить, но этого не происходит.

1 Ответ

0 голосов
/ 09 мая 2019

A User объект типа message.author никогда не будет равен строке. Вы можете проверить строковое представление пользователя, которое состоит из его имени пользователя и дискриминатора:

if str(message.author) == "Junar#1234":

Лучше было бы использовать их идентификатор. Пользователи могут изменять свои имена пользователей и, следовательно, свои строковые представления, но они не могут изменять свои идентификаторы.

if message.author.id == 1234567890:

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

...