如果一个用户在拥有Muted
或[Banned]
角色的同时离开服务器,他们将被永久禁止,我希望这样做
这是我尝试的代码:
@bot.event
async def on_member_remove(ctx, member, reason=None):
role="[Banned]"
guild = ctx.guild
if role in member.roles:
await guild.ban(discord.Object(id=member.id), reason="Leaved the server when soft banned")
*这只是一次尝试,仅限禁用角色
用户没有被禁止,也没有错误或任何可以帮助我解决问题的东西
member.roles返回Role的列表
您需要获取角色对象,您可以使用的一种方法是:
on_member_remove接收成员。不能有
reason
或上下文(ctx
)还请确保已启用成员意图。您可以通过转到here,然后选择
Bot
->;服务器成员意图您需要使用以下方法在代码中启用意图:
你的代码看起来不错
如果您使用的是Discord API v8(因为此API版本中的意图是强制性的),请检查您是否已在Discord Developer门户和bot代码中启用了
Intents.members
,如here in Discord.py docs所述请参考,默认情况下,除
members
和presence
意图外,所有意图都已启用在Discord开发者门户上,在应用程序的“Bot”部分启用此功能:
相关问题 更多 >
编程相关推荐