34
34
active_adventurer_messages = {}
35
35
active_wyrmprint_messages = {}
36
36
active_dragon_messages = {}
37
+ all_active_messages = []
37
38
config = Config ("config.ini" )
38
39
client = Bot (command_prefix = config .command_start )
39
40
@@ -345,10 +346,11 @@ async def show_dragon_full(dragon, message=None):
345
346
@client .event
346
347
async def show_or_edit_adventurer (e , adventurer , message = None ):
347
348
if message is None :
348
- global active_adventurer_messages
349
- active_adventurer_messages = {}
349
+ global active_adventurer_messages , all_active_messages
350
+ await clear_active_messages ()
350
351
msg = await client .send_message (channel , embed = e )
351
352
active_adventurer_messages [msg .id ] = adventurer
353
+ all_active_messages .append (msg )
352
354
for emoji in config .adventurer_reactions :
353
355
await client .add_reaction (msg , emoji )
354
356
else :
@@ -358,10 +360,11 @@ async def show_or_edit_adventurer(e, adventurer, message=None):
358
360
@client .event
359
361
async def show_or_edit_wyrmprint (e , wyrmprint , message = None ):
360
362
if message is None :
361
- global active_wyrmprint_messages
362
- active_wyrmprint_messages = {}
363
+ global active_wyrmprint_messages , all_active_messages
364
+ await clear_active_messages ()
363
365
msg = await client .send_message (channel , embed = e )
364
366
active_wyrmprint_messages [msg .id ] = wyrmprint
367
+ all_active_messages .append (msg )
365
368
for emoji in config .wyrmprint_reactions :
366
369
await client .add_reaction (msg , emoji )
367
370
else :
@@ -372,9 +375,10 @@ async def show_or_edit_wyrmprint(e, wyrmprint, message=None):
372
375
async def show_or_edit_dragon (e , dragon , message = None ):
373
376
if message is None :
374
377
global active_dragon_messages
375
- active_dragon_messages = {}
378
+ await clear_active_messages ()
376
379
msg = await client .send_message (channel , embed = e )
377
380
active_dragon_messages [msg .id ] = dragon
381
+ all_active_messages .append (msg )
378
382
for emoji in config .dragon_reactions :
379
383
await client .add_reaction (msg , emoji )
380
384
else :
@@ -384,3 +388,20 @@ async def show_or_edit_dragon(e, dragon, message=None):
384
388
@client .event
385
389
async def show_completed_update ():
386
390
await client .send_message (channel , "Update complete" )
391
+
392
+
393
+ @client .event
394
+ async def clear_active_messages ():
395
+ global all_active_messages , active_adventurer_messages , \
396
+ active_dragon_messages , active_wyrmprint_messages
397
+
398
+ while len (all_active_messages ) > max (0 , config .message_limit - 1 ):
399
+ message = all_active_messages .pop (0 )
400
+ await client .clear_reactions (message )
401
+
402
+ if message .id in active_adventurer_messages :
403
+ active_adventurer_messages .pop (message .id )
404
+ elif message .id in active_dragon_messages :
405
+ active_dragon_messages .pop (message .id )
406
+ elif message .id in active_wyrmprint_messages :
407
+ active_wyrmprint_messages .pop (message .id )
0 commit comments