Skip to content

Commit 7d21b3c

Browse files
authored
Merge pull request #1 from FnrDev/dev
Logger
2 parents 2112423 + d315a3e commit 7d21b3c

File tree

7 files changed

+92
-29
lines changed

7 files changed

+92
-29
lines changed

commands/ticket/addUser.js

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,29 @@ module.exports = {
1616
modOnly: true,
1717
ticketOnly: true,
1818
run: async(interaction) => {
19-
const user = interaction.options.getUser('user');
20-
await interaction.channel.permissionOverwrites.edit(user, {
21-
VIEW_CHANNEL: true,
22-
SEND_MESSAGES: true
23-
});
24-
const embed = new MessageEmbed()
25-
.setDescription(`**👌 Added ${user} to the ticket.**`)
26-
.setColor(settings.embedColor)
27-
interaction.reply({
28-
embeds: [embed]
29-
})
19+
const member = interaction.options.getMember('user');
20+
if (interaction.channel.permissionsFor(member).has('VIEW_CHANNEL')) {
21+
return interaction.reply({
22+
content: `:x: ${member} already in ticket channel.`,
23+
ephemeral: true
24+
});
25+
}
26+
try {
27+
await interaction.channel.permissionOverwrites.edit(member, {
28+
VIEW_CHANNEL: true,
29+
SEND_MESSAGES: true
30+
});
31+
const embed = new MessageEmbed()
32+
.setDescription(`**👌 Added ${member} to the ticket.**`)
33+
.setColor(settings.embedColor)
34+
interaction.reply({
35+
embeds: [embed]
36+
})
37+
} catch (e) {
38+
return interaction.reply({
39+
content: e,
40+
ephemeral: true
41+
})
42+
}
3043
}
3144
}

commands/ticket/new.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module.exports = {
55
name: "new",
66
description: "Create a new ticket",
77
timeout: 10000,
8-
run: async(interaction) => {
8+
run: async(interaction, client) => {
99
const ticketCatgory = interaction.guild.channels.cache.find(r => r.type === 'GUILD_CATEGORY' && r.name === 'tickets');
1010
if (!ticketCatgory) {
1111
const embed = new MessageEmbed()
@@ -59,5 +59,18 @@ module.exports = {
5959
interaction.reply({
6060
embeds: [successEmbed]
6161
});
62+
const logChannel = client.channels.cache.get(config.logChannel);
63+
if (!logChannel) return;
64+
const logEmbed = new MessageEmbed()
65+
.setAuthor(interaction.user.tag, interaction.user.displayAvatarURL({ dynamic: true }))
66+
.setThumbnail(interaction.user.displayAvatarURL({ dynamic: true }))
67+
.setDescription(`${interaction.user} Created a new ticket ${ticketChannel}`)
68+
.addField("Ticket ID:", ticketChannel.id, true)
69+
.addField("Ticket Created At:", `<t:${Math.floor(ticketChannel.createdTimestamp / 1000)}:R>`, true)
70+
.setColor(config.embedColor)
71+
.setTimestamp()
72+
logChannel.send({
73+
embeds: [logEmbed]
74+
})
6275
}
6376
}

commands/ticket/removeUser.js

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,26 @@ module.exports = {
1616
ticketOnly: true,
1717
modOnly: true,
1818
run: async(interaction) => {
19-
const user = interaction.options.getUser('user');
20-
await interaction.channel.permissionOverwrites.delete(user, `By: ${interaction.user.tag}, Removed user from ticket`);
21-
const embed = new MessageEmbed()
22-
.setDescription(`**👌 Removed ${user} from the ticket.**`)
23-
.setColor(settings.embedColor)
24-
interaction.reply({
25-
embeds: [embed]
26-
})
19+
const member = interaction.options.getMember('user');
20+
if (!interaction.channel.permissionsFor(member).has('VIEW_CHANNEL')) {
21+
return interaction.reply({
22+
content: `:x: ${member} is not in ticket channel.`,
23+
ephemeral: true
24+
});
25+
}
26+
try {
27+
await interaction.channel.permissionOverwrites.delete(member, `By: ${interaction.user.tag}, Removed user from ticket`);
28+
const embed = new MessageEmbed()
29+
.setDescription(`**👌 Removed ${member} from the ticket.**`)
30+
.setColor(settings.embedColor)
31+
interaction.reply({
32+
embeds: [embed]
33+
})
34+
} catch (e) {
35+
return interaction.reply({
36+
content: e,
37+
ephemeral: true
38+
})
39+
}
2740
}
2841
}

commands/ticket/rename.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,19 @@ module.exports = {
1616
ticketOnly: true,
1717
run: async(interaction) => {
1818
const name = interaction.options.getString('new_name');
19-
await interaction.channel.edit({ name: name });
20-
const embed = new Discord.MessageEmbed()
21-
.setDescription(`👌 Renamed ticket channel to **${name}**`)
22-
.setColor(settings.embedColor);
23-
interaction.reply({
24-
embeds: [embed]
25-
});
19+
try {
20+
await interaction.channel.edit({ name: name });
21+
const embed = new Discord.MessageEmbed()
22+
.setDescription(`👌 Renamed ticket channel to **${name}**`)
23+
.setColor(settings.embedColor);
24+
interaction.reply({
25+
embeds: [embed]
26+
});
27+
} catch (e) {
28+
return interaction.reply({
29+
content: e,
30+
ephemeral: true
31+
})
32+
}
2633
}
2734
}

events/guild/interactionCreate.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,20 @@ module.exports = async(client, interaction) => {
111111
const text = settings.deletTicketMessage.replace('{time}', humanizeDuration(settings.deleteTicketTime, { round: true }));
112112
interaction.reply(text);
113113
await wait(settings.deleteTicketTime);
114+
const logChannel = client.channels.cache.get(settings.logChannel);
115+
if (!logChannel) return;
116+
const embed = new MessageEmbed()
117+
.setAuthor(interaction.user.tag, interaction.user.displayAvatarURL({ dynamic: true }))
118+
.setDescription(`${interaction.user} deleted a **#${interaction.channel.name}** ticket.`)
119+
.addField("Ticket ID:", interaction.channel.id, true)
120+
.addField("Ticket Created At:", `<t:${Math.floor(interaction.channel.createdTimestamp / 1000)}:R>`, true)
121+
.addField("Ticket Deleted At:", `<t:${Math.floor(Date.now() / 1000)}:R>`, true)
122+
.setColor(settings.embedColor)
123+
.setTimestamp()
124+
.setThumbnail(interaction.user.displayAvatarURL({ dynamic: true }))
125+
await logChannel.send({
126+
embeds: [embed]
127+
})
114128
interaction.channel.delete(`By: ${interaction.user.tag}, Delete ticket.`);
115129
}
116130
}

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
"description": "Basic commands handler &amp; slash maker template",
55
"main": "index.js",
66
"scripts": {
7-
"test": "echo \"Error: no test specified\" && exit 1"
7+
"deploy": "node slash.js",
8+
"start": "node .",
9+
"build": "npm i"
810
},
911
"repository": {
1012
"type": "git",

settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
"deleteTicketTime": 5000,
77
"closeTicketTime": 5000,
88
"closeTicketMessage": "**:x: Closing ticket channel in {time}**",
9-
"deletTicketMessage": "**:x: Deleting ticket channel in {time}**"
9+
"deletTicketMessage": "**:x: Deleting ticket channel in {time}**",
10+
"logChannel": "901156978817122354"
1011
}

0 commit comments

Comments
 (0)