Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 让VoiceChannel.members和Guild.members返回完整列表时出现问题_Python_Discord_Discord.py_Discord.py Rewrite - Fatal编程技术网

Python 让VoiceChannel.members和Guild.members返回完整列表时出现问题

Python 让VoiceChannel.members和Guild.members返回完整列表时出现问题,python,discord,discord.py,discord.py-rewrite,Python,Discord,Discord.py,Discord.py Rewrite,每当我尝试使用VoiceChannel.members或Guild.members时,它都不会给我一个完整的适用成员列表。我用如下文本命令从上下文中获取VoiceChannel和Guild: @bot.command(name='followme') async def follow_me(ctx): if ctx.author.voice != None: guild = ctx.guild tracking = ctx.author c

每当我尝试使用VoiceChannel.members或Guild.members时,它都不会给我一个完整的适用成员列表。我用如下文本命令从上下文中获取VoiceChannel和Guild:

@bot.command(name='followme')
async def follow_me(ctx):
    if ctx.author.voice != None:
        guild = ctx.guild
        tracking = ctx.author
        channel = tracking.voice.channel
for member in channel.members:
            if member.voice.mute != True:
                await member.edit(mute=True)
稍后,我尝试使用以下频道:

@bot.command(name='followme')
async def follow_me(ctx):
    if ctx.author.voice != None:
        guild = ctx.guild
        tracking = ctx.author
        channel = tracking.voice.channel
for member in channel.members:
            if member.voice.mute != True:
                await member.edit(mute=True)
然而,它只找到我的用户,尽管频道中有另一个用户

我发现,我能获得渠道成员准确代表的唯一方法是使用:

channel.voice_states.keys()
使用voice_states,我可以得到一个准确的成员列表,但只有在我仍然需要操纵成员本身时,才能通过他们的ID获得。 所以我试了一下:

for key in channel.voice_states.keys():
            member = guild.get_member(key)
            if member.voice.mute != True:
                await member.edit(mute=True)
然而,公会没有吸引到正确的用户集,尽管验证了所有ID都是正确的,但guild.members也没有正常工作


如果您对如何使其正常工作有任何意见,我们将不胜感激。

自10月7日起,Discord已更改其API,要求机器人程序进行声明。确保您的discord.py已更新至至少1.5版,并启用成员意图:

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.members = True 

bot = commands.Bot(command_prefix='!', intents=intents)

截至10月7日,Discord已更改其API,要求机器人程序进行声明。确保您的discord.py已更新至至少1.5版,并启用成员意图:

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.members = True 

bot = commands.Bot(command_prefix='!', intents=intents)