Skip to content

tux.cogs.info.membercount

Classes:

Name Description
MemberCount

Classes

MemberCount(bot: Tux)

Bases: Cog

Methods:

Name Description
membercount

Show the member count for the server.

Source code in tux/cogs/info/membercount.py
Python
def __init__(self, bot: Tux) -> None:
    self.bot = bot

Functions

membercount(interaction: discord.Interaction) -> None async

Show the member count for the server.

Parameters:

Name Type Description Default
interaction Interaction

The discord interaction object.

required
Source code in tux/cogs/info/membercount.py
Python
@app_commands.command(name="membercount", description="Shows server member count")
async def membercount(self, interaction: discord.Interaction) -> None:
    """
    Show the member count for the server.

    Parameters
    ----------
    interaction : discord.Interaction
        The discord interaction object.
    """

    assert interaction.guild

    # Get the member count for the server (total members)
    members = interaction.guild.member_count
    # Get the number of humans in the server (subtract bots from total members)
    humans = sum(not member.bot for member in interaction.guild.members)
    # Get the number of bots in the server (subtract humans from total members)
    bots = sum(member.bot for member in interaction.guild.members if member.bot)
    # Get the number of staff members in the server
    staff_role = discord.utils.get(interaction.guild.roles, name="%wheel")
    staff = len(staff_role.members) if staff_role else 0

    embed = EmbedCreator.create_embed(
        bot=self.bot,
        embed_type=EmbedCreator.INFO,
        user_name=interaction.user.name,
        user_display_avatar=interaction.user.display_avatar.url,
        title="Member Count",
        description="Here is the member count for the server.",
    )

    embed.add_field(name="Members", value=str(members), inline=False)
    embed.add_field(name="Humans", value=str(humans), inline=True)
    embed.add_field(name="Bots", value=str(bots), inline=True)
    if staff > 0:
        embed.add_field(name="Staff", value=str(staff), inline=True)

    await interaction.response.send_message(embed=embed)