禁止服务器内外的用户

2024-10-02 22:29:11 发布

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

我正在尽我最大的努力发出一个命令,禁止服务器内外的人。这可能吗

@client.command(aliases=["banmember", "banuser"])
async def ban(ctx, member: discord.Member, *, reason=None):
    await ctx.message.delete()
    if reason is None:
        reason = ""

        if reason is not None:
            reason = reason
            try:
                await member.ban(reason=reason)
            except:
                user = await commands.converter.UserConverter().convert(ctx, user)
                banneduser = await client.fetch_user(user.id)
                await ctx.guild.ban(banneduser, reason=reason)

这看起来是不可能的,因为如果我使用UserConverter,它不会禁止服务器内部的成员,如果我使用成员,它不会禁止服务器外部的人员。我怎么能两者兼得呢


Tags: 命令服务器clientnoneifis成员await
1条回答
网友
1楼 · 发布于 2024-10-02 22:29:11

您可以使用^{},它允许命令接受任何特定类型而不是单一类型

下面是一个简单的示例,用于发送名称以验证它是否对这两种情况都有效

import typing

@bot.command()
async def union(ctx, member: typing.Union[discord.Member, discord.User]):
    await ctx.send(member.name)

相关问题 更多 >