From f39fd3cb5d0d12c30ca6e17972c99ca9231cf51b Mon Sep 17 00:00:00 2001 From: Magic <82341152+MagicTheDev@users.noreply.github.com> Date: Sun, 24 Mar 2024 16:44:28 -0500 Subject: [PATCH] ClashKing v4 --- background/tasks/emoji_refresh.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/background/tasks/emoji_refresh.py b/background/tasks/emoji_refresh.py index df9da170..41ea2b47 100644 --- a/background/tasks/emoji_refresh.py +++ b/background/tasks/emoji_refresh.py @@ -12,17 +12,22 @@ def __init__(self, bot: CustomClient): @tasks.loop(seconds=600) async def refresh(self): - emoji_map = {} - for guild_id in BADGE_GUILDS: - guild = await self.bot.getch_guild(guild_id) - if guild is not None: - while len(guild.emojis) >= 46: - num_to_delete = random.randint(1, 5) - for emoji in guild.emojis[:num_to_delete]: - await guild.delete_emoji(emoji=emoji) - for emoji in guild.emojis: - emoji_map[emoji.name] = f"<:{emoji.name}:{emoji.id}>" - self.bot.clan_badge_emoji_map = emoji_map + if self.bot.user.public_flags.verified_bot: + emoji_map = {} + for guild_id in BADGE_GUILDS: + guild = await self.bot.getch_guild(guild_id) + if guild is not None: + #only shard one needs to worry about deleting + if self.bot.shard_id == 1 and len(guild.emojis) >= 46 : + num_to_delete = len(guild.emojis) - 45 + #sort from newest to oldest to remove the old ones + guild_emojis = sorted(guild.emojis, key=lambda x : x.id, reverse=True) + for emoji in guild_emojis[(-1 * num_to_delete):]: + await emoji.delete() + + for emoji in guild.emojis: + emoji_map[emoji.name] = f"<:{emoji.name}:{emoji.id}>" + self.bot.clan_badge_emoji_map = emoji_map def setup(bot: CustomClient):