Discord.py отправляет сообщения на каждый сервер, кроме одного

avatar
Snitz Foam
8 августа 2021 в 19:28
70
1
-1

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

server = str(message.guild.id)
channel = str(message.channel.id)

message = message.author.name+': '+message.content
for servers in client.guilds:
    if str(servers.id) not in [server]:
        for channels in servers.channels:
            if str(channels.id) in os.listdir(path+'servers/'+str(servers.id)):
                await bot.send_message(channels, message)
Источник
yotam rec
8 августа 2021 в 19:45
0

ошибки есть или просто не работает?

Snitz Foam
9 августа 2021 в 00:36
0

он не вызывает никаких ошибок, но все еще не отправляет никаких сообщений

Bagle
9 августа 2021 в 01:50
0

Какую версию discord.py вы используете? Вы можете проверить, выполнив что-то вроде print(discord.__version__)

Ответы (1)

avatar
Aditya Tomar
10 августа 2021 в 04:26
1

Вам нужно сделать <channel>.send(<message>) вместо bot.send_message(<channels> <message>). Для этого вам нужно получить объект channel.

server = str(message.guild.id)
channel = str(message.channel.id)

message = message.author.name+': '+message.content
for servers in client.guilds:
    if str(servers.id) not in [server]:
        for channels in servers.channels:
            if str(channels.id) in os.listdir(path+'servers/'+str(servers.id)):
                _channel = bot.get_channel(int(channels.id))
                await _channel.send(message)