30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from typing import Dict, Optional
|
|
|
|
import discord
|
|
from redbot.core import Config
|
|
|
|
|
|
class OldMessageTypeManager:
|
|
def __init__(self, config: Config, enable_cache: bool = True):
|
|
self._config: Config = config
|
|
self.enable_cache = enable_cache
|
|
self._cached_guild: Dict[int, bool] = {}
|
|
|
|
async def get_guild(self, guild: discord.Guild) -> bool:
|
|
ret: bool
|
|
gid: int = guild.id
|
|
if self.enable_cache and gid in self._cached_guild:
|
|
ret = self._cached_guild[gid]
|
|
else:
|
|
ret = await self._config.guild_from_id(gid).use_old_style()
|
|
self._cached_guild[gid] = ret
|
|
return ret
|
|
|
|
async def set_guild(self, guild: discord.Guild, set_to: Optional[bool]) -> None:
|
|
gid: int = guild.id
|
|
if set_to is not None:
|
|
await self._config.guild_from_id(gid).use_old_style.set(set_to)
|
|
self._cached_guild[gid] = set_to
|
|
else:
|
|
await self._config.guild_from_id(gid).use_old_style.clear()
|
|
self._cached_guild[gid] = self._config.defaults["GUILD"]["use_old_style"]
|