Есть ли способ узнать имя гильдии только по идентификатору? - PullRequest
0 голосов
/ 08 января 2020

Чтобы использовать моего бота, я хочу, чтобы на сервере была нужна лицензия. Эти серверы, имеющие лицензию, хранятся в массиве. К сожалению, это только удостоверение личности. Теперь я хотел бы выдать команду: "& sv-id [ServerID]". В настоящее время он дает мне, есть ли идентификатор в списке или нет. Далее он должен отправить мне имя гильдии. Есть ли способ получить гильдию с удостоверением личности? Команда отправляется как личное сообщение. Мой код (еще не готов):

if message.author.id == client.AppInfo.owner.id:
    if message.content.startswith(CONFIG.PREFIX + "sv-id"):
        if len(message.content) == 25:
            serverID = message.content[7:25]
            if int(serverID) in CONFIG.AllowedServer:
                guildWithID = client.guilds.id == len(message.content)
                await message.channel.send(":white_check_mark: Server Name: **" + guildWithID.name + "**\n"
                                           "  ServerID: **" + str(serverID) + "**\n")
            else:
                await message.channel.send(":x: Dieser Server existiert nicht, oder ich bin auf diesem Server nicht autorisiert!")

        elif len(message.content) != 25:
            await message.channel.send(":x: Bitte benutze **" + CONFIG.PREFIX + "sv-id [ServerID]**")

Ответы [ 2 ]

1 голос
/ 08 января 2020

Да. Если ваш бот в гильдии, вы можете использовать Client.get_guild. В противном случае вы можете использовать Client.fetch_guild.

. Для получения дополнительной информации о получении конкретной модели c по идентификатору см. FAQ .

0 голосов
/ 08 января 2020

Есть Client.get_guild. Я верю, что он получит только те гильдии, к которым ваш бот уже присоединился.

guild = client.get_guild(id)
...