Discord.py禁止用户ID指定的人

2024-03-28 08:45:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在学习如何使用python制作discord Bot,我现在的主要目标是通过用户ID禁止特定用户。现在,我的代码只是禁止在使用命令后提到的人。picture of code that bans someone using the command


Tags: ofthe代码用户命令id目标that
1条回答
网友
1楼 · 发布于 2024-03-28 08:45:57

my main goal right now is to ban a specific user by his user ID

因此,您需要它创建一个命令(@client.command(),在您的例子中),该命令接受一个ID(整数),检索一个discord.Member对象,然后禁用

my code just bans someone who is mentioned after the command is used

在您提供的代码示例中(请注意,下次您最好在代码块中为问题提供代码,而不是作为图像),您已经实现了一个命令,该命令禁止使用所述成员的discord.Member对象:

async def ban(ctx, member: discord.Member, *, reason=None):
    await member.ban()

仔细看看member.ban()这就是你所需要的。但问题是:您将如何编辑此函数以使其接受ID和BAN?一切都很简单

函数首先作为参数的Context ctx对象包含帮会变量ctx.variable,它是从中调用命令的帮会的对象。而且一个Guild对象本身有一个名为get_member(user_id)的方法,它基本上接受用户ID,如果找到了它,则返回公会的成员discord.Member对象。如果公会中没有具有指定用户id的成员,它将返回None,因此您最好检查None

因此,让我们总结一下:

async def ban(ctx, member_id: int, *, reason=None):
    member = ctx.guild.get_member(member_id) # Here we take guild object and asks it to provide us a member object
    if member is not None: # Checking that we found member with such user id
        await member.ban() # And now we are banning

最后,我强烈建议发现d.py的文档,可以在here中找到

相关问题 更多 >