diff --git a/jarvis/cogs/admin/kick.py b/jarvis/cogs/admin/kick.py index 9c74910..28d2d1d 100644 --- a/jarvis/cogs/admin/kick.py +++ b/jarvis/cogs/admin/kick.py @@ -1,42 +1,30 @@ """J.A.R.V.I.S. KickCog.""" -from discord import User -from discord.ext.commands import Bot -from discord_slash import SlashContext, cog_ext -from discord_slash.utils.manage_commands import create_option +from dis_snek import InteractionContext, Snek +from dis_snek.models.discord.embed import EmbedField +from dis_snek.models.discord.user import User +from dis_snek.models.snek.application_commands import ( + OptionTypes, + slash_command, + slash_option, +) from jarvis.db.models import Kick from jarvis.utils import build_embed from jarvis.utils.cachecog import CacheCog -from jarvis.utils.field import Field from jarvis.utils.permissions import admin_or_permissions class KickCog(CacheCog): """J.A.R.V.I.S. KickCog.""" - def __init__(self, bot: Bot): + def __init__(self, bot: Snek): super().__init__(bot) - @cog_ext.cog_slash( - name="kick", - description="Kick a user", - options=[ - create_option( - name="user", - description="User to kick", - option_type=6, - required=True, - ), - create_option( - name="reason", - description="Kick reason", - required=False, - option_type=3, - ), - ], - ) + @slash_command(name="kick", description="Kick a user") + @slash_option(name="user", description="User to kick", option_type=OptionTypes.USER, required=True) + @slash_option(name="reason", description="Kick reason", option_type=OptionTypes.STRING, required=True) @admin_or_permissions(kick_members=True) - async def _kick(self, ctx: SlashContext, user: User, reason: str = None) -> None: + async def _kick(self, ctx: InteractionContext, user: User, reason: str) -> None: if not user or user == ctx.author: await ctx.send("You cannot kick yourself.", hidden=True) return @@ -46,8 +34,6 @@ class KickCog(CacheCog): if len(reason) > 100: await ctx.send("Reason must be < 100 characters", hidden=True) return - if not reason: - reason = "Mr. Stark is displeased with your presence. Please leave." guild_name = ctx.guild.name embed = build_embed( title=f"You have been kicked from {guild_name}", @@ -56,7 +42,7 @@ class KickCog(CacheCog): ) embed.set_author( - name=ctx.author.name + "#" + ctx.author.discriminator, + name=ctx.author.username + "#" + ctx.author.discriminator, icon_url=ctx.author.avatar_url, ) embed.set_thumbnail(url=ctx.guild.icon_url) @@ -68,7 +54,7 @@ class KickCog(CacheCog): send_failed = True await ctx.guild.kick(user, reason=reason) - fields = [Field(name="DM Sent?", value=str(not send_failed))] + fields = [EmbedField(name="DM Sent?", value=str(not send_failed))] embed = build_embed( title="User Kicked", description=f"Reason: {reason}",