Как получить список серверов моего бота в discord.py - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу использовать команду, которая печатает список серверов, на которых мой бот. Это то, что у меня есть. Когда я использую команду, она отправляет «объект свойства по адресу 0x000001988E164270» вместо списка имен серверов

import discord
from discord.ext import commands

client = discord.Client
activeservers = client.guilds

class OwnerCommands(commands.Cog):

    def __init__(self, client):
        self.client = client

    @commands.Cog.listener()
    async def on_ready(self):
        print("OwnerCommands Is Ready")

    @commands.command()
    async def servers(self, ctx):
        await ctx.send(activeservers)
        print(activeservers)

def setup(client):
    client.add_cog(OwnerCommands(client))

1 Ответ

1 голос
/ 01 апреля 2020

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

Кроме того, activeservers = client.guilds вызывается перед подключением бота, то есть список будет пустым. Переместите это внутрь вашей команды, чтобы иметь самый актуальный список на момент вызова команды.

import discord
from discord.ext import commands

client = discord.Client

class OwnerCommands(commands.Cog):

    def __init__(self, client):
        self.client = client

    @commands.Cog.listener()
    async def on_ready(self):
        print("OwnerCommands Is Ready")

    @commands.command()
    async def servers(self, ctx):
        activeservers = client.guilds
        for guild in activeservers:
            await ctx.send(guild.name)
            print(guild.name)

def setup(client):
    client.add_cog(OwnerCommands(client))
...