diff --git a/.gitignore b/.gitignore index 32924ea..00e8df7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ config.json +# IDEs +.idea/ # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/src/cogs/boostrolemanager.py b/src/cogs/boostrolemanager.py new file mode 100644 index 0000000..852f718 --- /dev/null +++ b/src/cogs/boostrolemanager.py @@ -0,0 +1,34 @@ +import nextcord +from nextcord.ext import commands +from nextcord import Forbidden, HTTPException + +class BoostTracker(commands.Cog): + def __init__(self, bot): + self.bot = bot + + @commands.Cog.listener() + async def on_member_update(self, before, after): + if (before.premium_since is None) == (after.premium_since is None) or after.premium_since: + return + + roles_to_remove = [ + "nitro-a", + "nitro-b", + "nitro-c", + "nitro-d", + "nitro-e", + "nitro-f" + ] + + try: + for role_name in roles_to_remove: + role = nextcord.utils.get(after.guild.roles, name=role_name) + if role not in after.roles: continue + await after.remove_roles(role) + except Forbidden as e: + print(f'Insufficient permissions: {e}') + except HTTPException as e: + print(f'HTTP request failed: {e}') + +def setup(bot): + bot.add_cog(BoostTracker(bot)) \ No newline at end of file diff --git a/src/main.py b/src/main.py index ba1b659..b22efd9 100644 --- a/src/main.py +++ b/src/main.py @@ -46,6 +46,7 @@ # "cogs.threads", "cogs.rolereact", "cogs.logs", + "cogs.boostrolemanager", ]