0

我正在尽我最大的努力制定一个禁止服务器内外人员的命令。这可能吗?

@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 它不会禁止服务器内的成员,如果我使用成员它不会禁止服务器外的人。我怎样才能做到这两点?

4

1 回答 1

0

您可以使用 usetyping-union允许命令接受任何特定类型而不是单一类型..

这是一个发送名称以验证它是否适用于两者的简单示例。

import typing

@bot.command()
async def union(ctx, member: typing.Union[discord.Member, discord.User]):
    await ctx.send(member.name)
于 2021-06-26T12:51:15.957 回答