BUTTTOOOONNNNSSSS
This commit is contained in:
parent
92dee4c72b
commit
8f0fcded62
260
index.js
260
index.js
|
@ -39,6 +39,24 @@ client.on("messageCreate", async (msg) => {
|
|||
emoji: {
|
||||
name: "❌"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: "Question (0)",
|
||||
style: 1,
|
||||
custom_id: "question",
|
||||
emoji: {
|
||||
name: "❓"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: "Coven (0)",
|
||||
style: 2,
|
||||
custom_id: "coven",
|
||||
emoji: {
|
||||
name: "🔮"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -47,8 +65,12 @@ client.on("messageCreate", async (msg) => {
|
|||
activeTickets[m.id] = {
|
||||
user: user,
|
||||
adminMessage: m,
|
||||
accepts: [],
|
||||
denies: []
|
||||
counts: {
|
||||
accept: [],
|
||||
deny: [],
|
||||
question: [],
|
||||
coven: []
|
||||
},
|
||||
}
|
||||
});
|
||||
})
|
||||
|
@ -67,20 +89,26 @@ client.on("interactionCreate", async (interaction) => {
|
|||
switch (interaction.customId) {
|
||||
case "accept":
|
||||
// If the user is already in the array, tell them with ephemeral message
|
||||
if( activeTickets[interaction.message.id].accepts.includes(interaction.user.id) ) {
|
||||
if (activeTickets[interaction.message.id].counts.accept.includes(interaction.user.id)) {
|
||||
return await interaction.reply({
|
||||
content: "You already accepted this ticket!",
|
||||
ephemeral: true
|
||||
});
|
||||
}
|
||||
// Add the interaction user to the accepts array
|
||||
activeTickets[interaction.message.id].accepts.push(interaction.user.id);
|
||||
// If the user is in the deny array remove them
|
||||
if( activeTickets[interaction.message.id].denies.includes(interaction.user.id) ) {
|
||||
activeTickets[interaction.message.id].denies = activeTickets[interaction.message.id].denies.filter((id) => id !== interaction.user.id);
|
||||
// Remove the other counts if the user is in them
|
||||
if (activeTickets[interaction.message.id].counts.deny.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.deny = activeTickets[interaction.message.id].counts.deny.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
if (activeTickets[interaction.message.id].counts.question.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.question = activeTickets[interaction.message.id].counts.question.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
if (activeTickets[interaction.message.id].counts.coven.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.coven = activeTickets[interaction.message.id].counts.coven.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
// Add the interaction user to the accepts array
|
||||
activeTickets[interaction.message.id].counts.accept.push(interaction.user.id);
|
||||
// if statement, check if that makes the accepts go over the threshold for auto accept
|
||||
if( activeTickets[interaction.message.id].accepts.length >= config.auto_accept.threshold ) {
|
||||
if (activeTickets[interaction.message.id].counts.accept.length >= config.auto_accept.threshold) {
|
||||
// Remove roles from config.auto_accept.remove_roles array
|
||||
config.auto_accept.remove_roles.forEach((role) => {
|
||||
interaction.guild.members.cache.get(activeTickets[interaction.message.id].user.id).roles.remove(role);
|
||||
|
@ -115,7 +143,7 @@ client.on("interactionCreate", async (interaction) => {
|
|||
components: [
|
||||
{
|
||||
type: 2,
|
||||
label: `Accept (${activeTickets[interaction.message.id].accepts.length})`,
|
||||
label: `Accept (${activeTickets[interaction.message.id].counts.accept.length})`,
|
||||
style: 3,
|
||||
custom_id: "accept",
|
||||
emoji: {
|
||||
|
@ -124,12 +152,30 @@ client.on("interactionCreate", async (interaction) => {
|
|||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Deny (${activeTickets[interaction.message.id].denies.length})`,
|
||||
label: `Deny (${activeTickets[interaction.message.id].counts.deny.length})`,
|
||||
style: 4,
|
||||
custom_id: "deny",
|
||||
emoji: {
|
||||
name: "❌"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Question (${activeTickets[interaction.message.id].counts.question.length})`,
|
||||
style: 1,
|
||||
custom_id: "question",
|
||||
emoji: {
|
||||
name: "❓"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Coven (${activeTickets[interaction.message.id].counts.coven.length})`,
|
||||
style: 2,
|
||||
custom_id: "coven",
|
||||
emoji: {
|
||||
name: "🔮"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -145,18 +191,25 @@ client.on("interactionCreate", async (interaction) => {
|
|||
|
||||
case "deny": // This one doesnt automatically do anything, its just a counter
|
||||
// If the user is already in the array, tell them with ephemeral message
|
||||
if( activeTickets[interaction.message.id].denies.includes(interaction.user.id) ) {
|
||||
if (activeTickets[interaction.message.id].counts.deny.includes(interaction.user.id)) {
|
||||
return await interaction.reply({
|
||||
content: "You already denied this ticket!",
|
||||
ephemeral: true
|
||||
});
|
||||
}
|
||||
// Add the interaction user to the denies array
|
||||
activeTickets[interaction.message.id].denies.push(interaction.user.id);
|
||||
// If the user is in the accept array remove them
|
||||
if( activeTickets[interaction.message.id].accepts.includes(interaction.user.id) ) {
|
||||
activeTickets[interaction.message.id].accepts = activeTickets[interaction.message.id].accepts.filter((id) => id !== interaction.user.id);
|
||||
// Remove the other counts if the user is in them
|
||||
if (activeTickets[interaction.message.id].counts.accept.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.accept = activeTickets[interaction.message.id].counts.accept.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
if (activeTickets[interaction.message.id].counts.question.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.question = activeTickets[interaction.message.id].counts.question.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
if (activeTickets[interaction.message.id].counts.coven.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.coven = activeTickets[interaction.message.id].counts.coven.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
|
||||
// Add the interaction user to the denies array
|
||||
activeTickets[interaction.message.id].counts.deny.push(interaction.user.id);
|
||||
// Update the message
|
||||
msg.edit({
|
||||
content: msg.content,
|
||||
|
@ -166,7 +219,7 @@ client.on("interactionCreate", async (interaction) => {
|
|||
components: [
|
||||
{
|
||||
type: 2,
|
||||
label: `Accept (${activeTickets[interaction.message.id].accepts.length})`,
|
||||
label: `Accept (${activeTickets[interaction.message.id].counts.accept.length})`,
|
||||
style: 3,
|
||||
custom_id: "accept",
|
||||
emoji: {
|
||||
|
@ -175,12 +228,30 @@ client.on("interactionCreate", async (interaction) => {
|
|||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Deny (${activeTickets[interaction.message.id].denies.length})`,
|
||||
label: `Deny (${activeTickets[interaction.message.id].counts.deny.length})`,
|
||||
style: 4,
|
||||
custom_id: "deny",
|
||||
emoji: {
|
||||
name: "❌"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Question (${activeTickets[interaction.message.id].counts.question.length})`,
|
||||
style: 1,
|
||||
custom_id: "question",
|
||||
emoji: {
|
||||
name: "❓"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Coven (${activeTickets[interaction.message.id].counts.coven.length})`,
|
||||
style: 2,
|
||||
custom_id: "coven",
|
||||
emoji: {
|
||||
name: "🔮"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -192,6 +263,153 @@ client.on("interactionCreate", async (interaction) => {
|
|||
})
|
||||
});
|
||||
break;
|
||||
case "question": // This one doesnt automatically do anything, its just a counter
|
||||
// If the user is already in the array, tell them with ephemeral message
|
||||
if (activeTickets[interaction.message.id].counts.question.includes(interaction.user.id)) {
|
||||
return await interaction.reply({
|
||||
content: "You already questioned this ticket!",
|
||||
ephemeral: true
|
||||
});
|
||||
}
|
||||
// Remove the other counts if the user is in them
|
||||
if (activeTickets[interaction.message.id].counts.accept.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.accept = activeTickets[interaction.message.id].counts.accept.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
if (activeTickets[interaction.message.id].counts.deny.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.deny = activeTickets[interaction.message.id].counts.deny.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
if (activeTickets[interaction.message.id].counts.coven.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.coven = activeTickets[interaction.message.id].counts.coven.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
|
||||
// Add the interaction user to the questions array
|
||||
activeTickets[interaction.message.id].counts.question.push(interaction.user.id);
|
||||
// Update the message
|
||||
msg.edit({
|
||||
content: msg.content,
|
||||
components: [
|
||||
{
|
||||
type: 1,
|
||||
components: [
|
||||
{
|
||||
type: 2,
|
||||
label: `Accept (${activeTickets[interaction.message.id].counts.accept.length})`,
|
||||
style: 3,
|
||||
custom_id: "accept",
|
||||
emoji: {
|
||||
name: "✅"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Deny (${activeTickets[interaction.message.id].counts.deny.length})`,
|
||||
style: 4,
|
||||
custom_id: "deny",
|
||||
emoji: {
|
||||
name: "❌"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Question (${activeTickets[interaction.message.id].counts.question.length})`,
|
||||
style: 1,
|
||||
custom_id: "question",
|
||||
emoji: {
|
||||
name: "❓"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Coven (${activeTickets[interaction.message.id].counts.coven.length})`,
|
||||
style: 2,
|
||||
custom_id: "coven",
|
||||
emoji: {
|
||||
name: "🔮"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}).then(() => {
|
||||
interaction.reply({
|
||||
content: "You have questioned the ticket",
|
||||
ephemeral: true
|
||||
})
|
||||
});
|
||||
break;
|
||||
case "coven": // This one doesnt automatically do anything, its just a counter
|
||||
// If the user is already in the array, tell them with ephemeral message
|
||||
if (activeTickets[interaction.message.id].counts.coven.includes(interaction.user.id)) {
|
||||
return await interaction.reply({
|
||||
content: "You already coven'd this ticket!",
|
||||
ephemeral: true
|
||||
});
|
||||
}
|
||||
// Remove the other counts if the user is in them
|
||||
if (activeTickets[interaction.message.id].counts.accept.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.accept = activeTickets[interaction.message.id].counts.accept.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
if (activeTickets[interaction.message.id].counts.deny.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.deny = activeTickets[interaction.message.id].counts.deny.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
if (activeTickets[interaction.message.id].counts.question.includes(interaction.user.id)) {
|
||||
activeTickets[interaction.message.id].counts.question = activeTickets[interaction.message.id].counts.question.filter((id) => id !== interaction.user.id);
|
||||
}
|
||||
// Add the interaction user to the covens array
|
||||
activeTickets[interaction.message.id].counts.coven.push(interaction.user.id);
|
||||
// Update the message
|
||||
msg.edit({
|
||||
content: msg.content,
|
||||
components: [
|
||||
{
|
||||
type: 1,
|
||||
components: [
|
||||
{
|
||||
type: 2,
|
||||
label: `Accept (${activeTickets[interaction.message.id].counts.accept.length})`,
|
||||
style: 3,
|
||||
custom_id: "accept",
|
||||
emoji: {
|
||||
name: "✅"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Deny (${activeTickets[interaction.message.id].counts.deny.length})`,
|
||||
style: 4,
|
||||
custom_id: "deny",
|
||||
emoji: {
|
||||
name: "❌"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Question (${activeTickets[interaction.message.id].counts.question.length})`,
|
||||
style: 1,
|
||||
custom_id: "question",
|
||||
emoji: {
|
||||
name: "❓"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
label: `Coven (${activeTickets[interaction.message.id].counts.coven.length})`,
|
||||
style: 2,
|
||||
custom_id: "coven",
|
||||
emoji: {
|
||||
name: "🔮"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
});
|
||||
interaction.reply({
|
||||
content: "You suggested to send this ticket to the coven",
|
||||
ephemeral: true
|
||||
});
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
@ -199,7 +417,7 @@ client.on("interactionCreate", async (interaction) => {
|
|||
// Lets actually handle exceptions now
|
||||
process.on('unhandledRejection', (error) => {
|
||||
// Log a full error with line number
|
||||
sendLog(`${colors.red("[ERROR]")} ${error}`);
|
||||
console.log(`${colors.red("[ERROR]")} ${error}`);
|
||||
// If config.ntfyUrl is set, Send the exception to ntfy
|
||||
if (config.ntfyUrl) fetch(config.ntfyUrl, {
|
||||
method: 'POST', // PUT works too
|
||||
|
@ -214,7 +432,7 @@ process.on('unhandledRejection', (error) => {
|
|||
|
||||
process.on('uncaughtException', (error) => {
|
||||
// Log a full error with line number
|
||||
sendLog(`${colors.red("[ERROR]")} ${error}`);
|
||||
console.log(`${colors.red("[ERROR]")} ${error}`);
|
||||
// If config.ntfyUrl is set, Send the exception to ntfy
|
||||
if (config.ntfyUrl) fetch(config.ntfyUrl, {
|
||||
method: 'POST', // PUT works too
|
||||
|
|
Loading…
Reference in a new issue