File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change 1
1
import asyncio
2
+ import dataclasses
2
3
from datetime import datetime , timedelta
3
4
4
5
import discord
@@ -137,6 +138,27 @@ async def on_member_join(self, member: discord.Member):
137
138
else :
138
139
self .bot .logger .info (f'Rank not updated for user ({ member .id } ) - { update ["reason" ]} ' )
139
140
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
+
140
162
141
163
async def setup (bot : commands .Bot ):
142
164
"""
You can’t perform that action at this time.
0 commit comments