56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
from interactions import Extension, slash_command, SlashContext, Status
|
|
from gwendolyn.utils import PARAMS as params
|
|
|
|
class MiscExtension(Extension):
|
|
"""Contains the miscellaneous commands."""
|
|
@slash_command(**params["misc"]["gen_name"])
|
|
async def gen_name(self, ctx: SlashContext):
|
|
await self.bot.other.generate_name(ctx)
|
|
|
|
@slash_command(**params["misc"]["hello"])
|
|
async def hello(self, ctx: SlashContext):
|
|
"""Greet the bot."""
|
|
await self.bot.other.hello_func(ctx)
|
|
|
|
@slash_command(**params["misc"]["help"])
|
|
async def help(self, ctx: SlashContext, command=""):
|
|
"""Get help for commands."""
|
|
await self.bot.other.help_func(ctx, command)
|
|
|
|
@slash_command(**params["misc"]["ping"])
|
|
async def ping(self, ctx: SlashContext):
|
|
"""Send the bot's latency."""
|
|
latency = self.bot.latency
|
|
if latency > 100:
|
|
await ctx.send("Cannot measure latency :(")
|
|
else:
|
|
await ctx.send(f"Pong!\nLatency is {round(self.bot.latency * 1000)}ms")
|
|
|
|
@slash_command(**params["misc"]["roll"])
|
|
async def roll(self, ctx: SlashContext, dice: str = "1d20"):
|
|
await self.bot.other.roll_dice(ctx, dice)
|
|
|
|
@slash_command(**params["misc"]["thank"])
|
|
async def thank(self, ctx: SlashContext):
|
|
"""Thank the bot."""
|
|
await ctx.send("You're welcome :blush:")
|
|
|
|
@slash_command(**params["misc"]["stop"])
|
|
async def stop(self, ctx: SlashContext):
|
|
if f"{ctx.author.id}" in self.bot.admins:
|
|
await ctx.send("Goodnight...")
|
|
|
|
await self.bot.change_presence(status=Status.INVISIBLE)
|
|
|
|
# self.bot.database_funcs.wipe_games()
|
|
|
|
self.bot.log("Logging out", level=25)
|
|
await self.bot.stop()
|
|
else:
|
|
log_message = f"{ctx.author.display_name} tried to stop me!"
|
|
self.bot.log(log_message, str(ctx.channel_id))
|
|
await ctx.send(f"I don't think I will, {ctx.author.display_name}")
|
|
|
|
@slash_command(**params["misc"]["echo"])
|
|
async def echo(self, ctx: SlashContext, text: str):
|
|
await ctx.send(text) |