[feat] Add emotes command

This commit is contained in:
Zeva Rose 2024-03-04 19:46:35 -07:00
parent cd3e0314a9
commit c8428fb231

View file

@ -1,4 +1,5 @@
"""JARVIS Utility Cog.""" """JARVIS Utility Cog."""
import logging import logging
import re import re
import secrets import secrets
@ -13,7 +14,7 @@ from interactions import Client, Extension, SlashContext
from interactions import __version__ as ipyv from interactions import __version__ as ipyv
from interactions.models.discord.channel import GuildCategory, GuildText, GuildVoice from interactions.models.discord.channel import GuildCategory, GuildText, GuildVoice
from interactions.models.discord.components import Button from interactions.models.discord.components import Button
from interactions.models.discord.embed import EmbedField from interactions.models.discord.embed import EmbedField, Embed
from interactions.models.discord.enums import ButtonStyle from interactions.models.discord.enums import ButtonStyle
from interactions.models.discord.file import File from interactions.models.discord.file import File
from interactions.models.discord.guild import Guild from interactions.models.discord.guild import Guild
@ -230,6 +231,31 @@ Tips will be used to pay server costs, and any excess will go to local animal sh
) )
await ctx.send(embeds=embed, components=components) await ctx.send(embeds=embed, components=components)
@slash_command(name="emotes", description="Get all emotes")
async def _emotes(self, ctx: SlashContext) -> None:
emojis = await ctx.guild.fetch_all_custom_emojis()
static = len([x for x in emojis if not x.animated])
animated = len([x for x in emojis if x.animated])
messages = []
current = ""
for emoji in emojis:
if len(current) >= 4000:
messages.append(current)
current = ""
current += f"<{'a:' if emoji.animated else ''}{emoji.name}:{emoji.id}>"
messages += current
embeds = [
Embed(
title=f"{static} Static, {animated} Animated, {len(emojis)} Total",
description=messages[0],
color="#3498db",
)
]
for message in messages[1:]:
embeds.append(description=message, color="#3498db")
await ctx.send(embeds=embeds)
@slash_command( @slash_command(
name="roleinfo", name="roleinfo",
description="Get role info", description="Get role info",
@ -331,9 +357,9 @@ Tips will be used to pay server costs, and any excess will go to local animal sh
), ),
EmbedField( EmbedField(
name=f"Roles [{len(user_roles)}]", name=f"Roles [{len(user_roles)}]",
value=" ".join([x.mention for x in user_roles]) value=(
if user_roles " ".join([x.mention for x in user_roles]) if user_roles else "None"
else "None", ),
inline=False, inline=False,
), ),
] ]