我将如何制作可以使用用户 ID 或名称的取消禁止命令#discriminator

时间:2021-03-29 13:55:44

标签: discord discord.py

我希望人们能够使用 ID / member.mention(discord.Member 对象自动执行此操作)解除禁令,但如果他们输入用户名和鉴别器,则还可以使用该选项。我到处找,但找不到方法。

1 个答案:

答案 0 :(得分:1)

    async def _unban(self, ctx, *, member):        
        if "#" in ctx.message.content:
            banned_users = await ctx.guild.bans()
            for ban_entry in banned_users: 
                    member_name, member_discriminator = member.split('#')
                    user = ban_entry.user
                    if (user.name, user.discriminator) == (member_name, member_discriminator):
                      await ctx.guild.unban(user)
            return
        else:
            member = await self.client.fetch_user(int(member))
            await ctx.guild.unban(member)

这对我有用,您的 arg 中有一个“#”,它将使用 member.split('#') 将其拆分为名称和鉴别器,然后根据您的公会禁令进行检查。如果您的参数不包含“#”,那么它会假设它是一个 user.id 并尝试以这种方式取消禁止它们。