diff --git a/skins b/skins index 506f0504..0d303582 160000 --- a/skins +++ b/skins @@ -1 +1 @@ -Subproject commit 506f0504367591e36be59fdfccdf37009383edbc +Subproject commit 0d30358278771c0a98bd4f2f5bc411734649382c diff --git a/src/core/lion.py b/src/core/lion.py index 0abbc321..8cf28740 100644 --- a/src/core/lion.py +++ b/src/core/lion.py @@ -123,3 +123,12 @@ class Lions(LionCog): lmember = LionMember(self.bot, data, lguild, luser, member) self.lion_members[key] = lmember return lmember + + async def fetch_members(self, *members: tuple[int, int]): + """ + Fetch or create multiple members simultaneously. + """ + # TODO: Actually batch this (URGENT) + members = {} + for key in members: + members[key] = await self.fetch_member(*key) diff --git a/src/gui b/src/gui index ba4733a5..ed557f08 160000 --- a/src/gui +++ b/src/gui @@ -1 +1 @@ -Subproject commit ba4733a5f02a98807c84f5202f293f408fdd8d60 +Subproject commit ed557f0820ad4cf621dc31cec882551d6e1a75ee diff --git a/src/modules/config/cog.py b/src/modules/config/cog.py index e7d53522..22f34bb3 100644 --- a/src/modules/config/cog.py +++ b/src/modules/config/cog.py @@ -20,7 +20,10 @@ class DashCog(LionCog): async def cog_unload(self): ... - @cmds.hybrid_command(name="dashboard") + @cmds.hybrid_command( + name="dashboard", + description="At-a-glance view of the server's configuration." + ) @appcmds.guild_only async def dashboard_cmd(self, ctx: LionContext): ui = GuildDashboard(self.bot, ctx.guild, ctx.author.id, ctx.channel.id) diff --git a/src/modules/config/dashboard.py b/src/modules/config/dashboard.py index 57a18033..dbb5a1f8 100644 --- a/src/modules/config/dashboard.py +++ b/src/modules/config/dashboard.py @@ -13,6 +13,8 @@ from modules.tasklist.settings import TasklistDashboard from tracking.voice.settings import VoiceTrackerDashboard from tracking.text.ui import TextTrackerDashboard from modules.ranks.ui.config import RankDashboard +from modules.pomodoro.settingui import TimerDashboard +from modules.rooms.settingui import RoomDashboard # from modules.statistics.settings import StatisticsConfigUI from . import babel, logger @@ -28,7 +30,7 @@ class GuildDashboard(BasePager): pages = [ (EconomyDashboard, TasklistDashboard), (VoiceTrackerDashboard, TextTrackerDashboard, ), - (RankDashboard,) + (RankDashboard, TimerDashboard, RoomDashboard, ) ] def __init__(self, bot: LionBot, guild: discord.Guild, callerid: int, channelid: int, **kwargs): diff --git a/src/modules/rooms/cog.py b/src/modules/rooms/cog.py index 7cac51ab..96c45fc7 100644 --- a/src/modules/rooms/cog.py +++ b/src/modules/rooms/cog.py @@ -586,7 +586,7 @@ class RoomCog(LionCog): t(_p( 'cmd:room_invite|error:member_not_found', "Could not find the invited member {mention} in this server!" - )).format(member=f"<@{mid}>") + )).format(mention=f"<@{mid}>") ), ephemeral=True ) return diff --git a/src/modules/rooms/room.py b/src/modules/rooms/room.py index 23e7e817..449c2b76 100644 --- a/src/modules/rooms/room.py +++ b/src/modules/rooms/room.py @@ -88,6 +88,8 @@ class Room: pass async def add_new_members(self, memberids): + # Ensure members exist + await self.bot.core.lions.fetch_members(*((self.data.guildid, mid) for mid in memberids)) member_data = self.bot.get_cog('RoomCog').data.RoomMember await member_data.table.insert_many( ('channelid', 'userid'), diff --git a/src/tracking/text/cog.py b/src/tracking/text/cog.py index e0b39737..15c186b0 100644 --- a/src/tracking/text/cog.py +++ b/src/tracking/text/cog.py @@ -101,6 +101,7 @@ class TextTrackerCog(LionCog): session=session ) ) + await self.bot.core.lions.fetch_member(session.guildid, session.userid) self.sessionq.put_nowait(session) @log_wrap(stack=['Text Sessions', 'Message Event'])