<p><a href="https://discordpy.readthedocs.io/en/stable/api.html?highlight=on_member_remove#discord.on_member_remove" rel="noreferrer">member.roles</a>返回<a href="https://discordpy.readthedocs.io/en/stable/api.html?highlight=roles#discord.Role" rel="noreferrer">Role</a>的列表</p>
<p>您需要获取角色对象,您可以使用的一种方法是:</p>
<pre><code>role = discord.utils.find(lambda r: r.name == '[Banned]', member.guild.roles)
</code></pre>
<p><a href="http://on_member_remove" rel="noreferrer">on_member_remove</a>接收成员。不能有<code>reason</code>或上下文(<code>ctx</code>)</p>
<pre class="lang-py prettyprint-override"><code>@bot.event
async def on_member_remove(member):
role = discord.utils.find(lambda r: r.name == '[Banned]', member.guild.roles)
guild = member.guild
if role in member.roles:
await guild.ban(discord.Object(id=member.id), reason="Leaved the server when soft banned")
</code></pre>
<p>还请确保已启用成员意图。您可以通过转到<a href="https://discord.com/developers/applications" rel="noreferrer">here</a>,然后选择<code>Bot</code>->;服务器成员意图</p>
<p>您需要使用以下方法在代码中启用意图:</p>
<pre class="lang-py prettyprint-override"><code>intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix=".", intents=intents)
</code></pre>