55 lines
2.5 KiB
Python
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)) |