Skip to content

Commit 14a3274

Browse files
author
timhauke
committed
Fix: Refactor message sending and enhance about command
Assign embeds and messages to local variables before sending with `inter.response.send_message` for improved readability and consistency. Enhance the `about` command by including "total members" in the "Reach" field, providing a more comprehensive overview of the bot's presence.
1 parent 287d047 commit 14a3274

File tree

4 files changed

+39
-20
lines changed

4 files changed

+39
-20
lines changed

src/commands/connection_commands.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ async def connect(self, inter: discord.Interaction):
7070

7171
member = inter.guild.get_member(inter.user.id) if isinstance(inter.user, discord.User) else inter.user
7272
if not member or not member.voice or not member.voice.channel:
73-
return await inter.response.send_message(embed=factory.error("You must be in a voice channel."), ephemeral=True)
73+
error_embed = factory.error("You must be in a voice channel.")
74+
return await inter.response.send_message(embed=error_embed, ephemeral=True)
7475

7576
async with self._connect_lock:
7677
await self._ensure_ready()
@@ -154,7 +155,8 @@ async def voiceinfo(self, inter: discord.Interaction):
154155
voice_client = inter.guild.voice_client
155156

156157
if not player or not player.is_connected or not voice_client:
157-
return await inter.response.send_message(embed=factory.warning("VectoBeat is not connected."), ephemeral=True)
158+
warning_embed = factory.warning("VectoBeat is not connected.")
159+
return await inter.response.send_message(embed=warning_embed, ephemeral=True)
158160

159161
embed = factory.primary("🔊 Voice Session")
160162
channel = voice_client.channel # type: ignore

src/commands/info_commands.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -279,14 +279,12 @@ async def botinfo(self, inter: discord.Interaction):
279279
if owner_names:
280280
embed.add_field(name="Owner", value=owner_names, inline=True)
281281
embed.add_field(name="Command Count", value=f"`{len(self.bot.tree.get_commands())}`", inline=True)
282-
embed.add_field(
283-
name="Reach",
284-
value=(
285-
f"`{self._format_number(guild_count)}` guilds\n"
286-
f"`{self._format_number(unique_users)}` unique users"
287-
),
288-
inline=False,
289-
)
282+
reach_lines = [
283+
f"`{self._format_number(guild_count)}` guilds",
284+
f"`{self._format_number(total_members)}` total members",
285+
f"`{self._format_number(unique_users)}` unique users",
286+
]
287+
embed.add_field(name="Reach", value="\n".join(reach_lines), inline=False)
290288
runtime_meta = "\n".join(
291289
[
292290
f"Python `{platform.python_version()}`",
@@ -355,7 +353,8 @@ async def lavalink(self, inter: discord.Interaction):
355353
factory = EmbedFactory(inter.guild.id if inter.guild else None)
356354
nodes = self._lavalink_nodes()
357355
if not nodes:
358-
return await inter.response.send_message(embed=factory.warning("Lavalink is not connected."), ephemeral=True)
356+
warning_embed = factory.warning("Lavalink is not connected.")
357+
return await inter.response.send_message(embed=warning_embed, ephemeral=True)
359358

360359
embed = factory.primary("🎛️ Lavalink Nodes")
361360
for node in nodes:
@@ -387,7 +386,8 @@ async def lavalink(self, inter: discord.Interaction):
387386
async def permissions(self, inter: discord.Interaction):
388387
"""Display the bot's effective permissions for the current channel."""
389388
if not inter.guild or not inter.channel:
390-
return await inter.response.send_message("This command must be invoked inside a guild channel.", ephemeral=True)
389+
message = "This command must be invoked inside a guild channel."
390+
return await inter.response.send_message(message, ephemeral=True)
391391

392392
guild = inter.guild
393393
me = guild.me or guild.get_member(self.bot.user.id) # type: ignore

src/commands/queue_commands.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ async def queue(self, inter: discord.Interaction):
6868
"""Display the queue using an embed paginator."""
6969
factory = EmbedFactory(inter.guild.id if inter.guild else None)
7070
if not inter.guild:
71-
return await inter.response.send_message(embed=factory.error("Guild only command."), ephemeral=True)
71+
error_embed = factory.error("Guild only command.")
72+
return await inter.response.send_message(embed=error_embed, ephemeral=True)
7273

7374
player = self._player(inter.guild)
7475
if not player or (not player.queue and not player.current):
@@ -142,7 +143,8 @@ async def shuffle(self, inter: discord.Interaction):
142143

143144
player = self._player(inter.guild)
144145
if not player or len(player.queue) < 2:
145-
return await inter.response.send_message(embed=factory.warning("Need at least 2 tracks to shuffle."), ephemeral=True)
146+
warning_embed = factory.warning("Need at least 2 tracks to shuffle.")
147+
return await inter.response.send_message(embed=warning_embed, ephemeral=True)
146148

147149
random.shuffle(player.queue)
148150
embed = factory.primary("🔀 Shuffled")
@@ -160,11 +162,13 @@ async def move(
160162
"""Reorder a track within the queue."""
161163
factory = EmbedFactory(inter.guild.id if inter.guild else None)
162164
if not inter.guild:
163-
return await inter.response.send_message(embed=factory.error("Guild only command."), ephemeral=True)
165+
error_embed = factory.error("Guild only command.")
166+
return await inter.response.send_message(embed=error_embed, ephemeral=True)
164167

165168
player = self._player(inter.guild)
166169
if not player or not player.queue:
167-
return await inter.response.send_message(embed=factory.warning("Queue is empty."), ephemeral=True)
170+
warning_embed = factory.warning("Queue is empty.")
171+
return await inter.response.send_message(embed=warning_embed, ephemeral=True)
168172

169173
src_idx = src - 1
170174
dest_idx = dest - 1

src/events/music_events.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,17 @@ async def on_queue_end(self, event: QueueEndEvent):
255255
logger.error("Failed to send autoplay announcement: %s", exc)
256256
return
257257

258-
factory = EmbedFactory(getattr(channel.guild, "id", None) if isinstance(channel, discord.abc.GuildChannel) else None)
258+
if isinstance(channel, discord.abc.GuildChannel):
259+
guild_id = channel.guild.id
260+
else:
261+
guild_id = None
262+
factory = EmbedFactory(guild_id)
259263
try:
260-
await channel.send(embed=factory.primary("Queue Finished", "Add more tracks with `/play`."), silent=True)
264+
queue_message = "Add more tracks with `/play`."
265+
await channel.send(
266+
embed=factory.primary("Queue Finished", queue_message),
267+
silent=True,
268+
)
261269
except Exception as exc:
262270
logger.error("Failed to send queue finished message: %s", exc)
263271

@@ -273,9 +281,14 @@ async def on_track_end(self, event: TrackEndEvent):
273281
channel = self._channel(player)
274282
if not channel:
275283
return
276-
factory = EmbedFactory(getattr(channel.guild, "id", None) if isinstance(channel, discord.abc.GuildChannel) else None)
284+
if isinstance(channel, discord.abc.GuildChannel):
285+
guild_id = channel.guild.id
286+
else:
287+
guild_id = None
288+
factory = EmbedFactory(guild_id)
277289
try:
278-
await channel.send(embed=factory.error("Failed to play track. The source might be unavailable."), silent=True)
290+
error_embed = factory.error("Failed to play track. The source might be unavailable.")
291+
await channel.send(embed=error_embed, silent=True)
279292
except Exception as exc:
280293
logger.error("Failed to send load failure message: %s", exc)
281294

0 commit comments

Comments
 (0)