Skip to content

Commit 08efcb7

Browse files
author
xyzjesper
committed
Fixed Ticket Permissions for Roles
1 parent e1515cf commit 08efcb7

File tree

5 files changed

+30
-17
lines changed

5 files changed

+30
-17
lines changed

src/helper/ticketHelper.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -575,8 +575,14 @@ export async function ticketHelper(
575575

576576
export async function ticketErrorMessage(message: string, interaction: ChatInputCommandInteraction | ButtonInteraction | ModalSubmitInteraction | AnySelectMenuInteraction, client: ExtendedClient) {
577577
return await interaction.reply({
578-
flags: MessageFlags.Ephemeral,
579-
content: `## ${await convertToEmojiToPng("error")} Your ticket action failed with: ${message}`,
578+
flags: MessageFlags.Ephemeral | MessageFlags.IsComponentsV2,
579+
components: [
580+
new ContainerBuilder()
581+
.addTextDisplayComponents(
582+
new TextDisplayBuilder()
583+
.setContent(`## ${await convertToEmojiToPng("error")} Your ticket action failed with: ${message}`)
584+
)
585+
]
580586
})
581587
}
582588

@@ -957,11 +963,6 @@ export async function handleCloseAction(client: ExtendedClient, guild: Guild, ch
957963

958964
}
959965
}
960-
if (!actions.includes("not_thread_close")) {
961-
if (data.ChannelType == ChannelType.PrivateThread) {
962-
await (channel as ThreadChannel).setArchived(true, "Moderator Action from Ticket with Id " + ticketId)
963-
}
964-
}
965966
if (data.OldTicketCategoryId) {
966967
actionCounter += 1
967968

@@ -1012,6 +1013,11 @@ export async function handleCloseAction(client: ExtendedClient, guild: Guild, ch
10121013
})
10131014
}
10141015
}
1016+
if (!actions.includes("not_thread_close")) {
1017+
if (data.ChannelType == ChannelType.PrivateThread) {
1018+
await (channel as ThreadChannel).setArchived(true, "Moderator Action from Ticket with Id " + ticketId)
1019+
}
1020+
}
10151021

10161022
if (!isAuto)
10171023
await interaction.editReply({
@@ -1650,10 +1656,10 @@ export async function hasTicketPermission(permission: string, user: GuildMember,
16501656

16511657
for (const perms of data.TicketSetup.TicketPermissions) {
16521658
if (guildMember.roles.cache.has(perms.DiscordRoleId)) {
1653-
return !perms.TicketPermissions.includes(permission);
1659+
return perms.TicketPermissions.includes(permission);
16541660
}
16551661
if (perms.DiscordUserId == guildMember.id) {
1656-
return !perms.TicketPermissions.includes(permission);
1662+
return perms.TicketPermissions.includes(permission);
16571663
}
16581664
}
16591665
return false

src/modules/ticket/buttons/ticket-close-request-cancel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {handleCloseAction, hasTicketPermission, ticketErrorMessage} from "../../
88
import {convertToEmojiToPng} from "../../../helper/emojis.js";
99

1010
export default {
11-
id: "ticket-infos",
11+
id: "ticket-close-request-cancel",
1212

1313
/**
1414
*

src/modules/ticket/buttons/ticket-close-request.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,11 @@ export default {
5858
new ActionRowBuilder<ButtonBuilder>().addComponents(
5959
new ButtonBuilder()
6060
.setEmoji("<:x_:1322169218682322955>")
61-
.setDisabled(!(await hasTicketPermission("confirm-user-close", interaction.member as GuildMember, data.TicketId, client) || await hasTicketPermission("all", interaction.member as GuildMember, data.TicketId, client)))
6261
.setCustomId("ticket-close:" + uuid)
6362
.setStyle(ButtonStyle.Secondary),
6463
new ButtonBuilder()
6564
.setEmoji("<:arrowbackregular24:1301119279088799815>")
66-
.setCustomId("ticket-close-request-cancel")
65+
.setCustomId("ticket-close-request-cancel:" + uuid)
6766
.setStyle(ButtonStyle.Secondary)
6867
)
6968
)

src/modules/ticket/buttons/ticket-close.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import {
2-
ButtonInteraction, PrivateThreadChannel, TextChannel,
2+
ButtonInteraction, GuildMember, PrivateThreadChannel, TextChannel,
33
} from "discord.js";
44
import {ExtendedClient} from "../../../types/client.js";
55
import {database} from "../../../main/database.js";
6-
import {handleCloseAction, ticketErrorMessage} from "../../../helper/ticketHelper.js";
6+
import {handleCloseAction, hasTicketPermission, ticketErrorMessage} from "../../../helper/ticketHelper.js";
7+
import ticket from "../commands/ticket.js";
78

89
export default {
910
id: "ticket-close",
@@ -23,6 +24,11 @@ export default {
2324
}
2425
})
2526

27+
const permission = !(await hasTicketPermission("confirm-user-close", interaction.member as GuildMember, data.TicketId, client) || await hasTicketPermission("all", interaction.member as GuildMember, data.TicketId, client))
28+
if (permission) {
29+
return ticketErrorMessage("No Permissions", interaction, client)
30+
}
31+
2632
if (!data) {
2733
return ticketErrorMessage("No Ticket found", interaction, client)
2834
}

src/modules/ticket/commands/ticket.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,10 @@ export default {
5252
})
5353
}
5454

55-
if (!data?.TicketId) {
56-
await ticketActionsHelper(client, data.TicketId, interaction)
57-
}
55+
await interaction.deferReply({
56+
flags: MessageFlags.Ephemeral,
57+
})
58+
await ticketActionsHelper(client, data.TicketId, interaction)
59+
5860
}
5961
};

0 commit comments

Comments
 (0)