不和谐在更改一两次后不会编辑voice_channel名称



我想为我的DiscordBot添加一个功能,以voice_channel名称的形式显示成员数量。 如果有人加入或离开服务器,成员计数也应更新。

这是代码:

async def memberUpdate(guild):
categories = discord.utils.get(guild.categories, name="Stats")
voice = discord.utils.get(categories.voice_channels, name=str(categories.voice_channels[0])) # Get the first voice_channel in this category
update = "Member count: " + str(guild.member_count) 
await voice.edit(name=update) # Edit voice channel
# First Time setting it up with "stats"-command
@bot.command()
async def stats(ctx):
guild = ctx.message.guild
# Write message, if this category already exists!
if discord.utils.find(lambda m: m.name == "Stats", guild.categories):
await ctx.message.channel.send("The category already exists!")
# If not, do this:
elif discord.utils.find(lambda m: m.name == "Stats", guild.categories) is None:
await guild.create_category("Stats")
category = discord.utils.get(guild.categories, name="Stats")
await category.create_voice_channel("Member count: ")
await memberUpdate(guild) # Update it for the first time when set up
@bot.event
async def on_member_join(member):
guild = member.guild
await memberUpdate(guild)
@bot.event
async def on_member_remove(member):
guild = member.guild
await memberUpdate(guild)

出于理解原因,我只翻译了姓名和评论。

当我第一次设置它时,memberUpdate 工作正常,更新了成员计数。 当我让某人加入服务器时,它也激活了更新功能。但是当我删除同一个人时,它根本不会改变它。 我试图弄清楚on_member_remove事件是否确实有问题,但是当我再次设置它并首先删除某人时,成员计数会更新。在那之后,它不会再编辑任何内容。

这是 Discord 的问题,无法如此快速地更改channel_names吗?还是我的代码有问题?

在这里参考 Diggy 的答案: Discord.py 机器人重命名语音频道有时才有效

API 已更新为每 10 分钟仅允许对频道的属性进行 2 次更新。

最新更新