擅长:python、mysql、java
<p>试试这个:</p>
<pre><code>@client.command(aliasas=['mb'])
@commands.has_permissions(ban_members = True)
async def massban(ctx, *, ids:str):
list_of_ids = ids.split(' ')
success = 0
for id in list_of_ids:
id = client.get_user(int(id))
await ctx.guild.ban(id, reason='You were mass-banned')
success += 1
await ctx.send("Massbanned " + str(success) + " member/s.")
</code></pre>
<p>首先,导致错误的是这一行:<code>await ctx.channel.fetch_message(ids)</code>,这在您的案例中是不必要的</p>
<p>第二,<code>await client.guild.ban(int(id), delete_message_days=0)</code>并不是禁止成员的方式。属性<code>client</code>不接受<code>guild</code>。相反,它应该是<code>ctx.guild.ban()</code></p>
<p>最后,当您将<code>id</code>变量转换为整数时,它不会直接转换为discord用户。在大多数情况下,您应该使用<code>client.get_user(id)</code>方法来呈现用户对象</p>
<p>因此,在本例中,您将使用如下命令:<code>[prefix]massban id1 id2 id3 ...</code></p>