Skip to content

Commit f7929a8

Browse files
committed
feat: add restrict option to ticket add
1 parent 36ecf84 commit f7929a8

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

commands/ticket/add.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import ticketState from '../../states/TicketState.js';
33
import Logger from '../../utils/logger.js';
44
import { apiFetch } from '../../utils/apiFetch.js';
55
import { replyError } from '../../utils/replyError.js';
6+
import { addRole, removeRole } from '../../utils/roles.js';
67

78
export const data = new SlashCommandBuilder()
89
.setName('ticket-add')
@@ -12,10 +13,16 @@ export const data = new SlashCommandBuilder()
1213
.setName('user')
1314
.setDescription('The user to add to the ticket.')
1415
.setRequired(true)
16+
)
17+
.addBooleanOption((option) =>
18+
option
19+
.setName('restrict')
20+
.setDescription('Restrict the User')
1521
);
1622

1723
export const execute = async (interaction) => {
1824
const user = interaction.options.getUser('user');
25+
const shouldRestrict = interaction.options.getBoolean('restrict') ?? false;
1926
if (
2027
!Object.keys(ticketState.getChannelIds()).includes(interaction.channelId)
2128
) {
@@ -66,6 +73,28 @@ export const execute = async (interaction) => {
6673
.setDescription(`${user} has been added to ${interaction.channel}`),
6774
],
6875
});
76+
77+
if (shouldRestrict) {
78+
let member
79+
try {
80+
member = await interaction.guild.members.fetch(user.id);
81+
} catch (error) {
82+
Logger.error(`Could not get member for restricting: ${error}`);
83+
return;
84+
}
85+
86+
const addedRole = addRole(member, process.env.RESTRICTED_ROLE_ID);
87+
const removedRole = removeRole(member, process.env.MEMBER_ROLE_ID);
88+
89+
let restictMessage = `Could not restrict ${user}.`;
90+
if (addedRole && removedRole) {
91+
restictMessage = `${user} was restricted.`;
92+
}
93+
await interaction.followUp({
94+
content: restictMessage,
95+
ephemeral: true,
96+
});
97+
}
6998
} catch (error) {
7099
Logger.error(`Could not add user to ticket: ${error}`);
71100
await replyError(

0 commit comments

Comments
 (0)