Option中有多个input_type?

have multiple input_type in Option?

我想创建一个命令,向您显示来自成员的每条消息或具有一个角色的每个用户的所有消息。我的命令现在看起来像这样

    @slash_command(name='messages', description='Get messages.', guild_ids = [933307298011562006])
    async def messages(self, ctx, user : Option(discord.Member, "Get the Messages from a User or a Role.", required = True)):

并且我希望用户可以在此命令中输入成员或角色。如果可以的话,我该怎么做?

好的,我就是这样做的:

    @slash_command(name='messages', description='Get messages.', guild_ids = [933307298011562006])
    async def messages(self, ctx, user : Option(discord.Member, "type in the User", required = False), role : Option(discord.Role, "type in the Role.", required = False)):

不完全是我想要的,但它有效

看看这个example from the pycord GitHub,你应该可以用这样的东西达到你想要的结果(完全披露:我没有测试过这个):

@slash_command(name='messages', description='Get messages.', guild_ids = [933307298011562006])
async def messages(self, ctx, user : Option([discord.Member, discord.Role], "Get the Messages from a User or a Role.", required = True)):

另一方面,还有一个特定的“Mentionable”slash command option type 可以直接为您提供用户和角色,因此以下内容也应该有效:

@slash_command(name='messages', description='Get messages.', guild_ids = [933307298011562006])
async def messages(self, ctx, user : Option(discord.SlashCommandOptionType.mentionable, "Get the Messages from a User or a Role.", required = True)):