有没有办法踢/禁止 discord.py 中的每个人?
Posted
技术标签:
【中文标题】有没有办法踢/禁止 discord.py 中的每个人?【英文标题】:Is there a way to kick/ban everyone in discord.py? 【发布时间】:2020-12-19 04:03:49 【问题描述】:我现在正在尝试制作一个 Discord 机器人,并且我正在关注踢出/禁止成员的教程,但我似乎无法找到踢出/禁止所有人的方法。当前代码踢出特定用户:
async def kickall(ctx, member : discord.Member):
await member.kick()
我怎样才能让它踢所有人?谢谢你。如果您有任何问题或可以改进此问题的方法,请随时提问/告诉我。
【问题讨论】:
我认为这是不可能的,唯一的办法就是单独踢每个成员。您也许可以尝试做 kickall 并提及@everyone 【参考方案1】:您可以获取公会成员并使用for
循环遍历他们:
@commands.command(aliases=['kickall'])
@commands.has_permissions(administrator=True)
async def kick_all(self, ctx, reason):
for member in ctx.guild.members:
try:
await member.kick(reason=reason)
print(f"Kicked member.name")
except:
print(f"Could not kick member")
由于您不在Class
中,因此您可以这样做:
@client.command()
async def kickall(ctx, *, reason=None):
if ctx.message.author.top_role.permissions.administrator:
for member in ctx.guild.members:
try:
await member.kick(reason=reason)
print(f"Kicked member.name")
except:
print(f"Could not kick member")
else:
await ctx.send("Missing permissions.")
【讨论】:
以上是关于有没有办法踢/禁止 discord.py 中的每个人?的主要内容,如果未能解决你的问题,请参考以下文章
我怎样才能允许人们使用 discord.py 只踢低于其角色的成员?
Discord.py — 尝试禁止用户后出现 UserNotFound 错误