Files
Xalos/cogs/utility.py
2025-10-06 14:20:28 +02:00

55 lines
2.5 KiB
Python

import discord
from discord.ext import commands
from discord import app_commands
import time
class Utility(commands.Cog):
def __init__(self, bot: commands.Bot):
self.bot = bot
@app_commands.command(name="ping", description="Zeigt die Latenz des Bots an.")
async def ping(self, interaction: discord.Interaction):
"""Zeigt die Latenz des Bots an."""
# Die Latenz der Discord-API (Websocket)
api_latency = round(self.bot.latency * 1000)
# Sende eine Bestätigungsnachricht und messe die Zeit dafür
start_time = time.time()
await interaction.response.send_message("Pinging...", ephemeral=True)
end_time = time.time()
# Berechne die Antwortzeit
response_latency = round((end_time - start_time) * 1000)
embed = discord.Embed(title="Pong! 🏓", color=discord.Color.blurple())
embed.add_field(name="API Latenz", value=f"{api_latency}ms", inline=True)
embed.add_field(name="Antwortzeit", value=f"{response_latency}ms", inline=True)
# Bearbeite die ursprüngliche Nachricht mit dem Ergebnis
await interaction.edit_original_response(content=None, embed=embed)
@app_commands.command(name="userinfo", description="Zeigt Informationen über ein Mitglied an.")
@app_commands.describe(member="Das Mitglied, dessen Infos du sehen möchtest (optional).")
async def userinfo(self, interaction: discord.Interaction, member: discord.Member = None):
"""Zeigt Informationen über dich oder ein anderes Mitglied an."""
# Wenn kein Mitglied angegeben wird, nimm den Autor des Befehls
target = member or interaction.user
embed = discord.Embed(
title=f"Informationen über {target.display_name}",
color=target.color
)
embed.set_thumbnail(url=target.avatar.url if target.avatar else target.default_avatar.url)
embed.add_field(name="Name", value=f"{target.name}#{target.discriminator}", inline=True)
embed.add_field(name="ID", value=target.id, inline=True)
embed.add_field(name="Status", value=str(target.status).title(), inline=True)
embed.add_field(name="Server beigetreten am", value=target.joined_at.strftime("%d.%m.%Y, %H:%M:%S"), inline=False)
embed.add_field(name="Account erstellt am", value=target.created_at.strftime("%d.%m.%Y, %H:%M:%S"), inline=False)
await interaction.response.send_message(embed=embed)
async def setup(bot: commands.Bot):
await bot.add_cog(Utility(bot))