Как заставить бота отправлять сообщения на другие серверы, кроме того, на котором он находится

Используйте LineCollections. Способ сделать это по линиям этого примера Matplotlib -

import numpy as np
from matplotlib.collections import LineCollection
import matplotlib.pyplot as plt
x = np.linspace(0,4*np.pi,10000)
y = np.cos(x)
lwidths=1+x[:-1]
points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)
lc = LineCollection(segments, linewidths=lwidths,color='blue')
fig,a = plt.subplots()
a.add_collection(lc)
a.set_xlim(0,4*np.pi)
a.set_ylim(-1.1,1.1)
fig.show()

output [/g1]

0
задан Wrong 5 March 2019 в 18:29
поделиться

2 ответа

Вы заявляете, что у вас уже есть список серверов, на который вы хотите публиковать сообщения. На каждом сервере вы можете (согласно документации: https://discordpy.readthedocs.io/en/latest/api.html#server ) вызвать .members, чтобы вернуть итерацию всех членов в этом сервер. В псевдокоде (то есть это необходимо изменить):

for server in server_list: # since you already have this list
    for member in server.members: # maybe server.members()??
        if member is my_bot:
            message = False
            break # leave the inner for loop, so message doesn't get overwritten next iteration
        else:
            message = True
    if message: # meaning "if our bot is not in this server"
        await bot.say('Some message') # we will message them in this case
0
ответ дан Reedinationer 5 March 2019 в 18:29
поделиться

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

chans=[]
@bot.event
async def on_message(msg):
    if msg.channel.name == 'chat-chan' and msg.author.bot == False:
        for i in chans:
            if i != msg.channel.id:
                await bot.send_message(discord.Object(id=i),msg.content)

    await bot.process_commands(msg)

0
ответ дан KowaiiNeko 5 March 2019 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: