mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2024-11-17 17:23:08 +02:00
Implement blocklist
This commit is contained in:
parent
64266d41f7
commit
53f00b715b
@ -175,6 +175,9 @@ menus:
|
|||||||
guild:
|
guild:
|
||||||
placeholder: Select a server
|
placeholder: Select a server
|
||||||
misc:
|
misc:
|
||||||
|
blocked:
|
||||||
|
description: You are not allowed to create tickets.
|
||||||
|
title: ❌ Blocked
|
||||||
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
|
||||||
|
@ -92,7 +92,28 @@ module.exports = class TicketManager {
|
|||||||
this.client.keyv.set(rlKey, true, ms('10s'));
|
this.client.keyv.set(rlKey, true, ms('10s'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: if blacklisted role -> stop
|
/** @type {import("discord.js").Guild} */
|
||||||
|
const guild = this.client.guilds.cache.get(category.guild.id);
|
||||||
|
const member = interaction.member ?? await guild.members.fetch(interaction.user.id);
|
||||||
|
|
||||||
|
if (category.guild.blocklist.length !== 0) {
|
||||||
|
const blocked = category.guild.blocklist.some(r => member.roles.cache.has(r));
|
||||||
|
if (blocked) {
|
||||||
|
return await interaction.reply({
|
||||||
|
embeds: [
|
||||||
|
new ExtendedEmbedBuilder({
|
||||||
|
iconURL: interaction.guild.iconURL(),
|
||||||
|
text: category.guild.footer,
|
||||||
|
})
|
||||||
|
.setColor(category.guild.errorColour)
|
||||||
|
.setTitle(getMessage('misc.blocked.title'))
|
||||||
|
.setDescription(getMessage('misc.blocked.description')),
|
||||||
|
],
|
||||||
|
ephemeral: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: if member !required roles -> stop
|
// TODO: if member !required roles -> stop
|
||||||
|
|
||||||
@ -382,8 +403,7 @@ module.exports = class TicketManager {
|
|||||||
if (referencesMessage) message = this.client.prisma.archivedMessage.findUnique({ where: { id: referencesMessage } });
|
if (referencesMessage) message = this.client.prisma.archivedMessage.findUnique({ where: { id: referencesMessage } });
|
||||||
if (message) data.referencesMessage = { connect: { id: referencesMessage } }; // only add if the message has been archived ^^
|
if (message) data.referencesMessage = { connect: { id: referencesMessage } }; // only add if the message has been archived ^^
|
||||||
if (answers) data.questionAnswers = { createMany: { data: answers } };
|
if (answers) data.questionAnswers = { createMany: { data: answers } };
|
||||||
const ticket = await this.client.prisma.ticket.create({ data });
|
interaction.editReply({
|
||||||
await interaction.editReply({
|
|
||||||
components: [],
|
components: [],
|
||||||
embeds: [
|
embeds: [
|
||||||
new ExtendedEmbedBuilder({
|
new ExtendedEmbedBuilder({
|
||||||
@ -395,7 +415,8 @@ module.exports = class TicketManager {
|
|||||||
.setDescription(getMessage('ticket.created.description', { channel: channel.toString() })),
|
.setDescription(getMessage('ticket.created.description', { channel: channel.toString() })),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
await logTicketEvent(this.client, {
|
const ticket = await this.client.prisma.ticket.create({ data });
|
||||||
|
logTicketEvent(this.client, {
|
||||||
action: 'create',
|
action: 'create',
|
||||||
target: {
|
target: {
|
||||||
id: ticket.id,
|
id: ticket.id,
|
||||||
|
Loading…
Reference in New Issue
Block a user