-
-
Notifications
You must be signed in to change notification settings - Fork 480
Description
Summary
BridgeOption converts discord.Member to a discord.User object when using the ext version unlike the slash version. Specifying discord.Member without BridgeOption works fine with both variants of the bridge command
Reproduction Steps
Use a bridge command with an argument that has the BridgeOption converter with discord.Member as an argument.
Minimal Reproducible Code
@bridge.bridge_command(name='test', description="Hello World")
async def test_cmd(
self, ctx: bridge.BridgeContext,
member: BridgeOption(discord.Member, "A server member")
):
await ctx.respond(f"{type(member)}")Expected Results
For both the ext and slash command version to return a discord.Member objects like using discord.Member without a BridgeOption converter
Actual Results
The ext variant of the command gets a discord.User object instead of a discord.Member object like the slash variant gets or the version without the converter gets.
This can cause unexpected discord.User objects when running the ext variant that can cause problems like
File "bot-root/venv/lib/python3.11/site-packages/discord/ext/commands/core.py", line 180, in wrapped
ret = await coro(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "bot-root/cogs/mod.py", line 1061, in mute_cmd
await member.add_roles(role, reason=reason)
^^^^^^^^^^^^^^^^
AttributeError: 'User' object has no attribute 'add_roles'Note: traceback not related to minimal reproduction code
Intents
all
System Information
- Python v3.11.8-final
- py-cord v2.5.1-final
- aiohttp v3.9.3
- system info: Linux 6.7.9-arch1-1 Update README.rst #1 SMP PREEMPT_DYNAMIC Fri, 08 Mar 2024 01:59:01 +0000
Checklist
- I have searched the open issues for duplicates.
- I have shown the entire traceback, if possible.
- I have removed my token from display, if visible.
Additional Context
No response