Skip to content

Commit 829eaf5

Browse files
committed
Allow deleting moved messages.
1 parent 8b0e5d6 commit 829eaf5

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

app/components/move_message.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from app.setup import bot, config
66
from app.utils import (
77
GuildTextChannel,
8+
get_moved_message,
9+
get_moved_message_author_id,
810
get_or_create_webhook,
911
is_dm,
1012
is_helper,
@@ -198,3 +200,39 @@ async def turn_into_help_post(
198200
return
199201

200202
await interaction.response.send_modal(HelpPostTitle(message))
203+
204+
205+
@bot.tree.context_menu(name="Delete moved message")
206+
@discord.app_commands.guild_only()
207+
async def delete_moved_message(
208+
interaction: discord.Interaction, message: discord.Message
209+
) -> None:
210+
assert not is_dm(interaction.user)
211+
212+
if (webhook_message := await get_moved_message(message)) is None:
213+
await interaction.response.send_message(
214+
"This message cannot be deleted.", ephemeral=True
215+
)
216+
return
217+
218+
if (
219+
webhook_message is discord.utils.MISSING
220+
or (author_id := get_moved_message_author_id(webhook_message)) is None
221+
):
222+
await interaction.response.send_message(
223+
"This message is not a moved message.", ephemeral=True
224+
)
225+
return
226+
227+
if not (
228+
interaction.user.id == author_id
229+
or message.channel.permissions_for(interaction.user).manage_messages
230+
):
231+
await interaction.response.send_message(
232+
"You do not have the required permissions to delete messages.",
233+
ephemeral=True,
234+
)
235+
return
236+
237+
await message.delete()
238+
await interaction.response.send_message("Message deleted.", ephemeral=True)

0 commit comments

Comments
 (0)