Python pycord: AttributeError: 'ApplicationContext' object has no attribute 'selected_options'
Python pycord: AttributeError: 'ApplicationContext' object has no attribute 'selected_options'
我有 2 个命令:test
和 send_arg
。在执行test
命令的过程中,需要从send_arg
命令接收数据。
我正在等待通过 wait_for
调用 send_arg
命令,我将上下文传递给 test
以获取传递给 send_arg
的参数。
但是当我尝试获取 selected_options
属性 时,出现错误。
AttributeError: 'ApplicationContext' object has no attribute 'selected_options'
同时,looking at the documentation,我确信这样的属性肯定存在
import discord
from discord.ext import commands
from discord.commands import Option
bot = commands.Bot(command_prefix='!', intents=discord.Intents.all())
@bot.slash_command()
async def send_arg(ctx, arg: Option(str, choices=['var1', 'var2', 'var3'], required=True)):
pass
@bot.slash_command()
async def test(ctx):
def check(context):
return context.author == ctx.author
app_cmd_ctx = await bot.wait_for('application_command', check=check)
print(app_cmd_ctx.selected_options)
bot.run(TOKEN)
py-cord 版本:
pip install py-cord==2.0.0b1
说明
ApplicationContext.selected_options
在 2.0 beta 5 之前的 pycord 版本中不存在。
要修复您的错误,您可以使用 pip install git+https://github.com/Pycord-Development/pycord
.
将 pycord 更新到此版本
如果您需要使用 2.0 beta 1 或 beta 5 之前的任何其他版本,可以将 ApplicationContext.selected_options
替换为以下代码:
代码
ApplicationContext.interaction.data.get("options", None)
参考
我有 2 个命令:test
和 send_arg
。在执行test
命令的过程中,需要从send_arg
命令接收数据。
我正在等待通过 wait_for
调用 send_arg
命令,我将上下文传递给 test
以获取传递给 send_arg
的参数。
但是当我尝试获取 selected_options
属性 时,出现错误。
AttributeError: 'ApplicationContext' object has no attribute 'selected_options'
同时,looking at the documentation,我确信这样的属性肯定存在
import discord
from discord.ext import commands
from discord.commands import Option
bot = commands.Bot(command_prefix='!', intents=discord.Intents.all())
@bot.slash_command()
async def send_arg(ctx, arg: Option(str, choices=['var1', 'var2', 'var3'], required=True)):
pass
@bot.slash_command()
async def test(ctx):
def check(context):
return context.author == ctx.author
app_cmd_ctx = await bot.wait_for('application_command', check=check)
print(app_cmd_ctx.selected_options)
bot.run(TOKEN)
py-cord 版本:
pip install py-cord==2.0.0b1
说明
ApplicationContext.selected_options
在 2.0 beta 5 之前的 pycord 版本中不存在。
要修复您的错误,您可以使用 pip install git+https://github.com/Pycord-Development/pycord
.
如果您需要使用 2.0 beta 1 或 beta 5 之前的任何其他版本,可以将 ApplicationContext.selected_options
替换为以下代码:
代码
ApplicationContext.interaction.data.get("options", None)