33 lines
843 B
Python
33 lines
843 B
Python
import collections
|
|
import time
|
|
|
|
import disnake
|
|
|
|
|
|
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)
|
|
|
|
|
|
intents = disnake.Intents.default()
|
|
intents.message_content = True
|
|
intents.members = True
|
|
client = disnake.Client(intents=intents)
|
|
|
|
command_locks = LimitedSizeDict()
|
|
idle_tracker = {"is_idle": False, "last_used": time.time()}
|
|
message_responses = LimitedSizeDict()
|
|
players = {}
|
|
start_time = time.time()
|