Pycord-Development/pycord

Command duplication in cog help

solaluset opened this issue · 8 comments

Summary

Bridge commands are duplicated in cog help

Reproduction Steps

  1. Create a bridge command in a cog.
  2. Request help for that cog

Minimal Reproducible Code

from os import getenv

import discord
from discord.ext import bridge, commands


class MyCog(commands.Cog):
    @discord.command()
    async def slash_command(self, ctx):
        await ctx.respond("Hi")

    @commands.command()
    async def prefix_command(self, ctx):
        await ctx.respond("Hi")

    @bridge.bridge_command()
    async def bridge_command(self, ctx):
        await ctx.respond("Hi")


bot = bridge.Bot()
bot.add_cog(MyCog())

bot.run(getenv("TOKEN"))

Expected Results

Screenshot_20240101-134341782 (1)

Actual Results

Screenshot_20240101-133650329 (1)

Intents

None

System Information

/data/data/com.termux/files/home/tests/lib/python3.11/site-packages/discord/__main__.py:33: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources
- Python v3.11.6-final
- py-cord v2.4.1-final
- aiohttp v3.9.1
- system info: Linux 4.14.232-QuicksilveR™-ReloadedOS-Edition #1 SMP PREEMPT Wed May 26 07:08:17 UTC 2021

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

I've made two attempts to fix it, I can open a PR if you find one of them satisfying:
https://github.com/Krutyi-4el/pycord/tree/help-fix-v1
https://github.com/Krutyi-4el/pycord/tree/help-fix-v2

Please check this bug with our git master version

I've already done this

This is still an issue.

Looking at the code a bit more makes me think that this is only a problem with the help command itself

Nvm I think this is already fixed
image

@Blue-Robin-Taken it's not. Try help MyCog.

Oh true

[<discord.ext.bridge.core.BridgeExtCommand object at 0x000001EED35FE490>, <discord.ext.bridge.core.BridgeCommand object at 0x000001EED35FFAD0>, <discord.ext.commands.core.Command object at 0x000001EED35FE850>]

is what's printed from def add_indented_commands(self, commands, *, heading, max_size=None): in help.py
I only have 2 commands & it dupes the bridge cause it's in text and in slash I think

Ok I think I fixed it & I'm going to make a PR. If you don't print one of the types, it works.
image