I want to edit the message, not send a new one.

This commit is contained in:
2023-07-29 19:05:52 -04:00
parent b292fc09fe
commit 757a753cf5
+11 -11
View File
@@ -2,8 +2,6 @@
Contains commands and views for request commands. Contains commands and views for request commands.
""" """
from typing import Optional
import nextcord import nextcord
from nextcord.ext import commands from nextcord.ext import commands
@@ -44,7 +42,7 @@ class RequestCog(commands.Cog, name="Request Commands"):
""" """
config: DakinyConfig = self.bot.config config: DakinyConfig = self.bot.config
content = f'<@{interaction.user.id}> would like to change their username to "{new_nickname}"' content = f'<@{interaction.user.id}> would like to change their username to "{new_nickname}."'
view = UsernameRequest(interaction.user.id, new_nickname) view = UsernameRequest(interaction.user.id, new_nickname)
await self.bot.get_channel(config.params.admin_channel_id).send(content=content, view=view) await self.bot.get_channel(config.params.admin_channel_id).send(content=content, view=view)
await interaction.response.send_message("Request sent to admins.", ephemeral=True) await interaction.response.send_message("Request sent to admins.", ephemeral=True)
@@ -55,22 +53,24 @@ class UsernameRequest(nextcord.ui.View):
View provides approve and deny buttons and action for a username change request. View provides approve and deny buttons and action for a username change request.
""" """
def __init__(self, id: int, new_nickname: str, *, timeout: float | None = 180, auto_defer: bool = True): def __init__(self, user_id: int, new_nickname: str, *, timeout: float | None = 180, auto_defer: bool = True):
super().__init__(timeout=timeout, auto_defer=auto_defer) super().__init__(timeout=timeout, auto_defer=auto_defer)
self.id = id self.user_id = user_id
self.new_nickname = new_nickname self.new_nickname = new_nickname
@nextcord.ui.button(label="Approve", style=nextcord.ButtonStyle.green) @nextcord.ui.button(label="Approve", style=nextcord.ButtonStyle.green)
async def approve(self, button: nextcord.ui.Button, interaction: nextcord.Interaction): async def approve(self, button: nextcord.ui.Button, interaction: nextcord.Interaction):
user = interaction.guild.get_member(self.id) user = interaction.guild.get_member(self.user_id)
if user is not None: if user is not None:
user.edit(nick=self.new_nickname) user.edit(nick=self.new_nickname)
content = interaction.message.content + f" Approved by <@{interaction.user.id}>" content = interaction.message.content + f" Approved by <@{interaction.user.id}.>"
await interaction.response.send_message(content=content, view=None) await interaction.response.edit_message(content=content, view=None)
else: else:
await interaction.response.send_message("An error occured while changing the user's nickname.", view=None) await interaction.response.edit_message(
content="An error occured while changing the user's nickname.", view=None
)
@nextcord.ui.button(label="Deny", style=nextcord.ButtonStyle.red) @nextcord.ui.button(label="Deny", style=nextcord.ButtonStyle.red)
async def deny(self, button: nextcord.ui.Button, interaction: nextcord.Interaction): async def deny(self, button: nextcord.ui.Button, interaction: nextcord.Interaction):
content = interaction.message.content + f" Denied by <@{interaction.user.id}>" content = interaction.message.content + f" Denied by <@{interaction.user.id}.>"
await interaction.response.send_message(content=content, view=None) await interaction.response.edit_message(content=content, view=None)