mirror of
https://github.com/neoarz/Syntrel.git
synced 2025-12-25 11:40:12 +01:00
feat(uptime): add uptime monitor with refreshes
Introduces an uptime command and view to show how long the bot has been running. Adds a method to calculate uptime in bot.py, registers the command in help.py, and implements the command logic in a new uptime.py cog with a refresh button.
This commit is contained in:
@@ -41,6 +41,7 @@ class Help(commands.Cog, name="help"):
|
||||
"serverinfo": "general",
|
||||
"ping": "general",
|
||||
"feedback": "general",
|
||||
"uptime": "general",
|
||||
# "context_menus": "general",
|
||||
|
||||
# Fun Commands
|
||||
|
||||
54
cogs/general/uptime.py
Normal file
54
cogs/general/uptime.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
from discord.ext.commands import Context
|
||||
|
||||
|
||||
class UptimeView(discord.ui.View):
|
||||
def __init__(self, bot):
|
||||
super().__init__(timeout=300)
|
||||
self.bot = bot
|
||||
|
||||
@discord.ui.button(emoji="<:RefreshEmoji:1418934990770802891>", style=discord.ButtonStyle.primary)
|
||||
async def refresh_button(self, interaction: discord.Interaction, button: discord.ui.Button):
|
||||
embed = discord.Embed(
|
||||
title="Bot Uptime",
|
||||
description=f"The bot has been running for {self.bot.get_uptime()}",
|
||||
color=0x7289DA,
|
||||
)
|
||||
embed.set_author(name="Uptime", icon_url="https://yes.nighty.works/raw/y5SEZ9.webp")
|
||||
await interaction.response.edit_message(embed=embed, view=self)
|
||||
|
||||
|
||||
class Uptime(commands.Cog, name="uptime"):
|
||||
def __init__(self, bot) -> None:
|
||||
self.bot = bot
|
||||
|
||||
@commands.hybrid_command(
|
||||
name="uptime",
|
||||
description="Check how long the bot has been running.",
|
||||
)
|
||||
async def uptime(self, context: Context) -> None:
|
||||
"""
|
||||
Check how long the bot has been running.
|
||||
|
||||
:param context: The hybrid command context.
|
||||
"""
|
||||
embed = discord.Embed(
|
||||
title="Bot Uptime",
|
||||
description=f"The bot has been running for **{self.bot.get_uptime()}**",
|
||||
color=0x7289DA,
|
||||
)
|
||||
embed.set_author(name="Uptime", icon_url="https://yes.nighty.works/raw/y5SEZ9.webp")
|
||||
view = UptimeView(self.bot)
|
||||
if getattr(context, "interaction", None):
|
||||
inter = context.interaction
|
||||
if not inter.response.is_done():
|
||||
await inter.response.send_message(embed=embed, view=view, ephemeral=True)
|
||||
else:
|
||||
await inter.followup.send(embed=embed, view=view, ephemeral=True)
|
||||
else:
|
||||
await context.send(embed=embed, view=view)
|
||||
|
||||
|
||||
async def setup(bot) -> None:
|
||||
await bot.add_cog(Uptime(bot))
|
||||
Reference in New Issue
Block a user