Files
zyrarbot/zyrarbot/ui/bot/guild_resolver.py
T

27 lines
929 B
Python

from __future__ import annotations
import discord
from discord.ext import commands
class GuildResolver:
"""Ustala kontekst serwera dla panelu webowego, który nie zna interakcji Discorda."""
def __init__(self, bot: commands.Bot):
self._bot = bot
def active_guild(self) -> discord.Guild | None:
"""Serwer z aktywnym połączeniem głosowym, a w razie jego braku - pierwszy znany."""
if self._bot.voice_clients:
return self._bot.voice_clients[0].guild
return self._bot.guilds[0] if self._bot.guilds else None
def guilds(self) -> list[discord.Guild]:
return list(self._bot.guilds)
def channel(self, channel_id: int) -> discord.abc.GuildChannel | None:
return self._bot.get_channel(channel_id)
def voice_client(self, guild_id: int) -> discord.VoiceClient | None:
return discord.utils.get(self._bot.voice_clients, guild__id=guild_id)