Как мне заставить бота discord проверить, на каких серверах вы находитесь?

#python #discord #bots

#python #Discord #боты

Вопрос:

Я работаю над ботом проверки discord (на python). Бот должен иметь возможность видеть, на каких серверах находится пользователь, поскольку при авторизации есть разрешение разрешить это. При использовании команды «chk!check (MemberName)» бот должен ответить примерно так:

 Servers that (memberName) is in:
Server1
Server2
Server3
Server4
  

Теперь я выполнил большую часть работы, такой как настройка бота, команды и префикса.
Я не уверен, как заставить бота «читать» серверы, на которых находится проверяемый пользователь.
Любая помощь? Спасибо!

Кроме того, код, который я сделал до сих пор, приведен ниже

 import discord
from discord.exr import commands

client = commands.bot(command_prefix = "chk!")


client = discord.Client()

@client.command()
async def check(ctx, member : discord.Member):
    await hereiswhereigotstuck

@client.event
async def on_ready:
    print('Bot Succesfully Started.')
    



client.run('token')
  

Комментарии:

1. Вы пытались искать discord.Member в документации, чтобы узнать, какие функции он предлагает? Может быть, ctrl-f где-то там для чего-то, что связано с серверами?

2. Я не уверен, что существует разрешение / возможность Discord API видеть, на каких серверах находится пользователь. Самое близкое, что вы могли бы сделать, это запросить, состоит ли пользователь на сервере (гильдии), о котором вы уже знаете, во всех гильдиях, в которых состоит ваш бот.

Ответ №1:

«Очевидным» ответом было бы использовать Profile.mutual_guilds , однако учетным записям ботов не разрешен доступ к профилям пользователей.

Единственный способ для бота сделать это не очень эффективен, но вы можете перебрать все гильдии, в которых состоит ваш бот client.guilds , а затем использовать что-то вроде Guild.get_member, чтобы проверить, состоит ли пользователь в этой гильдии.

Вы также можете посмотреть, состоит ли ваш пользователь в guild.members, но если ваша гильдия большая, я не уверен, насколько это будет эффективнее.