【发布时间】:2021-08-30 05:13:02
【问题描述】:
所以最近我尝试创建一个机器人,它可以根据服务器上的成员数量来更改语音频道的名称,但我最终得到了这个错误:await memberchannel.edit(name = ">> ????ᴍᴇᴍʙᴇʀꜱ: " + guild.member_count) AttributeError: 'NoneType' object has no attribute 'edit'
这是我的代码,我不知道如何访问 .edit 属性:
async def on_member_join(member):
guild = member.guild
memberchannel : discord.VoiceChannel = get(guild.channels, id=MemberCounterChannel)
await memberchannel.edit(name = ">> ????ᴍᴇᴍʙᴇʀꜱ: " + guild.member_count)
我在 on_member_remove 函数中做了同样的事情。
【问题讨论】:
-
MemberCounterChannel不是频道 id,MemberCounterChannel的值是多少?您可以按名称搜索:get(guild.channels, name='<your_channel_name>')并使用其中的 id -
MemberCounterChannel = '716598398001872918' 问题是我的频道是使用自定义字体“>> ????ᴍᴇᴍʙᴇʀꜱ: 3”命名的,我不确定它是否有效
-
我试过这样做:
memberchannel : discord.VoiceChannel = get(guild.channels, name=">> ????ᴍᴇᴍʙᴇʀꜱ: {guild.member_count}") await memberchannel.edit(name = ">> ????ᴍᴇᴍʙᴇʀꜱ: " + guild.member_count)但我得到了同样的错误 -
那行不通,只用当前名称对其进行测试,这样您就可以获得 id,然后在您的代码中使用该 id(如果这仅适用于一个公会)
-
你也可以使用 f-string,
format()是老派
标签: python discord discord.py bots