Skip to content

Commit 10aa23a

Browse files
committed
remove role mapping on role deletion
1 parent 9212e3a commit 10aa23a

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/cogs/rank_update.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import asyncio
2+
import dataclasses
23
from datetime import datetime, timedelta
34

45
import discord
@@ -137,6 +138,27 @@ async def on_member_join(self, member: discord.Member):
137138
else:
138139
self.bot.logger.info(f'Rank not updated for user ({member.id}) - {update["reason"]}')
139140

141+
@commands.Cog.listener('on_guild_role_delete')
142+
async def on_guild_role_delete(self, role: discord.Role):
143+
"""
144+
Clear database mapping if role is deleted
145+
146+
Parameters
147+
----------
148+
role (discord.Role): Role instance
149+
"""
150+
151+
guild = await database.GuildTable().get(role.guild.id)
152+
if not guild:
153+
return
154+
155+
attributes = dataclasses.asdict(guild)
156+
for key, value in attributes.items():
157+
if value == role.id:
158+
setattr(guild, key, None)
159+
160+
self.bot.logger.info(f'Registered role {role.id} deleted! Removed the mapping!')
161+
140162

141163
async def setup(bot: commands.Bot):
142164
"""

0 commit comments

Comments
 (0)