diff --git a/state.py b/state.py index 7dadd08..f840584 100644 --- a/state.py +++ b/state.py @@ -1,9 +1,27 @@ +import collections import time import disnake -command_locks = {} -executed_messages = {} + +class LimitedSizeDict(collections.OrderedDict): + def __init__(self, *args, **kwds): + self.size_limit = kwds.pop("size_limit", 1000) + super().__init__(*args, **kwds) + self._check_size_limit() + + def __setitem__(self, key, value): + super().__setitem__(key, value) + self._check_size_limit() + + def _check_size_limit(self): + if self.size_limit is not None: + while len(self) > self.size_limit: + self.popitem(last=False) + + +command_locks = LimitedSizeDict() +message_responses = LimitedSizeDict() players = {} intents = disnake.Intents.default()