mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2024-12-23 08:13:09 +02:00
Add /priority
command
This commit is contained in:
parent
8b55c351ad
commit
8ea372ea36
@ -1,5 +1,6 @@
|
|||||||
const { SlashCommand } = require('@eartharoid/dbf');
|
const { SlashCommand } = require('@eartharoid/dbf');
|
||||||
const { ApplicationCommandOptionType } = require('discord.js');
|
const { ApplicationCommandOptionType } = require('discord.js');
|
||||||
|
const ExtendedEmbedBuilder = require('../../lib/embed');
|
||||||
|
|
||||||
module.exports = class PrioritySlashCommand extends SlashCommand {
|
module.exports = class PrioritySlashCommand extends SlashCommand {
|
||||||
constructor(client, options) {
|
constructor(client, options) {
|
||||||
@ -55,5 +56,78 @@ module.exports = class PrioritySlashCommand extends SlashCommand {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async run(interaction) { }
|
getEmoji(priority) {
|
||||||
|
let emoji;
|
||||||
|
switch (priority) {
|
||||||
|
case 'HIGH': {
|
||||||
|
emoji = '🔴';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'MEDIUM': {
|
||||||
|
emoji = '🟠';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'LOW': {
|
||||||
|
emoji = '🟢';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return emoji;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {import("discord.js").ChatInputCommandInteraction} interaction
|
||||||
|
*/
|
||||||
|
async run(interaction) {
|
||||||
|
/** @type {import("client")} */
|
||||||
|
const client = this.client;
|
||||||
|
|
||||||
|
await interaction.deferReply();
|
||||||
|
|
||||||
|
const settings = await client.prisma.guild.findUnique({ where: { id: interaction.guild.id } });
|
||||||
|
const getMessage = client.i18n.getLocale(settings.locale);
|
||||||
|
const ticket = await client.prisma.ticket.findUnique({
|
||||||
|
include: { category: { select: { channelName: true } } },
|
||||||
|
where: { id: interaction.channel.id },
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!ticket) {
|
||||||
|
return await interaction.editReply({
|
||||||
|
embeds: [
|
||||||
|
new ExtendedEmbedBuilder({
|
||||||
|
iconURL: interaction.guild.iconURL(),
|
||||||
|
text: settings.footer,
|
||||||
|
})
|
||||||
|
.setColor(settings.errorColour)
|
||||||
|
.setTitle(getMessage('misc.not_ticket.title'))
|
||||||
|
.setDescription(getMessage('misc.not_ticket.description')),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const priority = interaction.options.getString('priority', true);
|
||||||
|
let name = interaction.channel.name;
|
||||||
|
if (ticket.priority) name = name.replace(this.getEmoji(ticket.priority), this.getEmoji(priority));
|
||||||
|
else name = this.getEmoji(priority) + name;
|
||||||
|
await interaction.channel.setName(name);
|
||||||
|
|
||||||
|
await client.prisma.ticket.update({
|
||||||
|
data: { priority },
|
||||||
|
where: { id: interaction.channel.id },
|
||||||
|
});
|
||||||
|
|
||||||
|
return await interaction.editReply({
|
||||||
|
embeds: [
|
||||||
|
new ExtendedEmbedBuilder({
|
||||||
|
iconURL: interaction.guild.iconURL(),
|
||||||
|
text: settings.footer,
|
||||||
|
})
|
||||||
|
.setColor(settings.successColour)
|
||||||
|
.setTitle(getMessage('commands.slash.priority.success.title'))
|
||||||
|
.setDescription(getMessage('commands.slash.priority.success.description', { priority: getMessage(`commands.slash.priority.options.priority.choices.${priority}`) })),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
};
|
};
|
@ -95,6 +95,9 @@ commands:
|
|||||||
LOW: 🟢 Low
|
LOW: 🟢 Low
|
||||||
description: The priority of the ticket
|
description: The priority of the ticket
|
||||||
name: priority
|
name: priority
|
||||||
|
success:
|
||||||
|
description: This ticket's priority has been set to `{priority}`.
|
||||||
|
title: ✅ Priority set
|
||||||
release:
|
release:
|
||||||
description: Release (unclaim) a ticket
|
description: Release (unclaim) a ticket
|
||||||
name: release
|
name: release
|
||||||
@ -218,6 +221,9 @@ misc:
|
|||||||
no_categories:
|
no_categories:
|
||||||
description: No ticket categories have been configured.
|
description: No ticket categories have been configured.
|
||||||
title: ❌ There are no ticket categories
|
title: ❌ There are no ticket categories
|
||||||
|
not_ticket:
|
||||||
|
description: You can only use this command in tickets.
|
||||||
|
title: ❌ This isn't a ticket channel
|
||||||
ratelimited:
|
ratelimited:
|
||||||
description: Try again in a few seconds.
|
description: Try again in a few seconds.
|
||||||
title: 🐢 Please slow down
|
title: 🐢 Please slow down
|
||||||
|
Loading…
Reference in New Issue
Block a user