Pycord-Development / pycord

Pycord is a modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python
https://docs.pycord.dev
MIT License
2.71k stars 458 forks source link

Command duplication in cog help #2306

Open solaluset opened 8 months ago

solaluset commented 8 months ago

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

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

Lulalaby commented 8 months ago

Please check this bug with our git master version

solaluset commented 8 months ago

I've already done this

solaluset commented 7 months ago

This is still an issue.

Blue-Robin-Taken commented 5 months ago

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

Blue-Robin-Taken commented 5 months ago

Nvm I think this is already fixed image

solaluset commented 5 months ago

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

Blue-Robin-Taken commented 5 months ago

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

Blue-Robin-Taken commented 5 months ago

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