Updating applicaitons

This commit is contained in:
2023-03-19 22:11:53 +01:00
parent fa3be9473d
commit fc974dbf08
7 changed files with 151 additions and 176 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,3 @@
node_modules/* node_modules/*
applications/* apps/*
config.json config.json

View File

@@ -1,28 +0,0 @@
const fs = require('fs');
const path = require('path');
module.exports = {
name: 'applicationdelete',
description: 'Delete an application channel.',
type: 'button',
async execute(interaction) {
await interaction.deferReply();
const channel = interaction.channel;
const applicantId = await channel.topic;
await interaction.editReply('Application channel will be deleted in 5 seconds');
setTimeout(async () => {
const filePath = path.join(__dirname, `../../apps/guild/${applicantId}`);
fs.rmSync(filePath, { force: true });
await channel.delete();
}, 5000);
}
};

View File

@@ -12,12 +12,12 @@ module.exports = {
async execute(interaction) { async execute(interaction) {
await interaction.deferReply(); await interaction.deferReply();
const channel = interaction.channel; const message = interaction.message;
const applicantId = await channel.topic const embed = message.embeds[0];
const applicantId = embed.footer.text.split(" ")[1]
const filePath = path.join(__dirname, `../../apps/guild/${applicantId}`); const filePath = path.join(__dirname, `../../apps/guild/${applicantId}`);
const uuid = fs.readFileSync(filePath, 'utf8'); const uuid = fs.readFileSync(filePath, 'utf8');
const mojang = "https://api.mojang.com/user/profile/" const mojang = "https://api.mojang.com/user/profile/"

View File

@@ -1,7 +1,7 @@
const { ChannelType, PermissionFlagsBits, ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require('discord.js'); const { ChannelType, PermissionFlagsBits, ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require('discord.js');
const { color } = require('../../config/options.json'); const { color } = require('../../config/options.json');
const { largeM, smallM, ignM } = require('../../config/limitmessages.json') const { largeM, smallM, ignM } = require('../../config/limitmessages.json')
const { applicationsCategory } = require('../../config/options.json'); const { applicationsChannel } = require('../../config/options.json');
const { qu1, qu2, qu3, qu4, qu5, qu6, qu7, qu8 } = require('../../config/questions.json'); const { qu1, qu2, qu3, qu4, qu5, qu6, qu7, qu8 } = require('../../config/questions.json');
const { rq1, rq2, rq3, rq4, rq5, rq6, rq7, rq8 } = require('../../config/questions.json'); const { rq1, rq2, rq3, rq4, rq5, rq6, rq7, rq8 } = require('../../config/questions.json');
const { guildRole } = require('../../config/roles.json') const { guildRole } = require('../../config/roles.json')
@@ -26,12 +26,12 @@ module.exports = {
if (interaction.customId === 'guildapply') { if (interaction.customId === 'guildapply') {
await interaction.deferReply(); await interaction.deferReply({ ephemeral: true });
if (userRoles.includes(guildRole)) { // if (userRoles.includes(guildRole)) {
await interaction.editReply({ content: "You are already a member of the guild.", ephemeral: true }); // await interaction.editReply({ content: "You are already a member of the guild.", ephemeral: true });
return // return
} // }
const applicationFile = path.join(__dirname, '../../apps/guild/' + user.id); const applicationFile = path.join(__dirname, '../../apps/guild/' + user.id);
if (fs.existsSync(applicationFile)) { if (fs.existsSync(applicationFile)) {
@@ -446,89 +446,73 @@ module.exports = {
}); });
await user.deleteDM(); await user.deleteDM();
const channel = guild.channels.cache.get(applicationsChannel);
await guild.channels.create({ await channel.send({
name: `guild-app-${user.username}`, embeds: [{
type: ChannelType.GuildText, title: user.username + "#" + user.discriminator + " - Guild Application",
topic: user.id, color: embedColor,
permissionOverwrites: [ thumbnail: {
{ url: user.avatarURL()
id: guild.roles.everyone, },
deny: [PermissionFlagsBits.ViewChannel] fields: [
} {
] name: rq1,
}).then(async channel => { value: "```" + answer1_1 + "```"
await channel.send({
embeds: [{
title: user.username + "#" + user.discriminator + " - Guild Application",
color: embedColor,
thumbnail: {
url: user.avatarURL()
}, },
fields: [ {
{ name: rq2,
name: rq1, value: "```" + answer2_1 + "```"
value: "```" + answer1_1 + "```" },
}, {
{ name: rq3,
name: rq2, value: "```" + answer3_1 + "```"
value: "```" + answer2_1 + "```" },
}, {
{ name: rq4,
name: rq3, value: "```" + answer4_1 + "```"
value: "```" + answer3_1 + "```" },
}, {
{ name: rq5,
name: rq4, value: "```" + answer5_1 + "```"
value: "```" + answer4_1 + "```" },
}, {
{ name: rq6,
name: rq5, value: "```" + answer6_1 + "```"
value: "```" + answer5_1 + "```" },
}, {
{ name: rq7,
name: rq6, value: "```" + answer7_1 + "```"
value: "```" + answer6_1 + "```" },
}, {
{ name: rq8,
name: rq7, value: "```" + answer8_1 + "```"
value: "```" + answer7_1 + "```"
},
{
name: rq8,
value: "```" + answer8_1 + "```"
}
],
footer: {
iconURL: guild.iconURL(),
text: "ID: " + user.id
} }
}], ],
components: [ footer: {
new ActionRowBuilder().addComponents( iconURL: guild.iconURL(),
new ButtonBuilder() text: "ID: " + user.id
.setCustomId("guildapplicationaccept") }
.setLabel("Accept") }],
.setStyle(ButtonStyle.Primary) components: [
), new ActionRowBuilder().addComponents(
new ActionRowBuilder().addComponents( new ButtonBuilder()
new ButtonBuilder() .setCustomId("guildapplicationaccept")
.setCustomId("guildapplicationdeny") .setLabel("Accept")
.setLabel("Deny") .setStyle(ButtonStyle.Primary),
.setStyle(ButtonStyle.Danger) new ButtonBuilder()
), .setCustomId("guildapplicationdeny")
new ActionRowBuilder().addComponents( .setLabel("Deny")
new ButtonBuilder() .setStyle(ButtonStyle.Danger),
.setCustomId("checkstats") new ButtonBuilder()
.setLabel("Check Stats") .setCustomId("checkstats")
.setStyle(ButtonStyle.Secondary) .setLabel("Check Stats")
) .setStyle(ButtonStyle.Secondary)
] )
}); ]
});
})
} }
} }
} }

View File

@@ -1,5 +1,7 @@
const { ActionRowBuilder, ButtonStyle, ButtonBuilder } = require('discord.js'); const { ActionRowBuilder, ButtonStyle, ButtonBuilder } = require('discord.js');
const { color } = require('../../config/options.json'); const { color } = require('../../config/options.json');
const fs = require('fs');
const path = require('path');
module.exports = { module.exports = {
name: 'guildapplicationaccept', name: 'guildapplicationaccept',
@@ -8,14 +10,41 @@ module.exports = {
async execute(interaction) { async execute(interaction) {
await interaction.deferReply();
const user = interaction.user; const user = interaction.user;
const channel = interaction.channel;
const guild = interaction.guild; const guild = interaction.guild;
const embedColor = Number(color.replace("#", "0x")); const embedColor = Number(color.replace("#", "0x"));
const applicantId = await channel.topic const message = interaction.message;
const embed = message.embeds[0];
const applicantId = embed.footer.text.split(" ")[1]
const applicant = await guild.members.fetch(applicantId) const applicant = await guild.members.fetch(applicantId)
const applicantUsername = applicant.user.username + "#" + applicant.user.discriminator; const applicantUsername = applicant.user.username + "#" + applicant.user.discriminator;
const applicationFile = require(`../../apps/guild/${applicantId}`);
await message.edit({
components: [
new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("guildapplicationaccept")
.setLabel("Accept")
.setStyle(ButtonStyle.Primary)
.setDisabled(true),
new ButtonBuilder()
.setCustomId("guildapplicationdeny")
.setLabel("Deny")
.setStyle(ButtonStyle.Danger)
.setDisabled(true),
new ButtonBuilder()
.setCustomId("checkstats")
.setLabel("Check Stats")
.setStyle(ButtonStyle.Secondary)
.setDisabled(true)
)
]
});
await applicant.send({ await applicant.send({
embeds: [{ embeds: [{
@@ -24,43 +53,12 @@ module.exports = {
}] }]
}); });
const message = await channel.messages.fetch({ limit: 1 }); fs.rmSync(applicationFile)
const messageID = message.first().id;
await channel.messages.fetch(messageID).then(async (message) => { await interaction.editReply({
await message.edit({
components: [
new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("guildapplicationaccept")
.setLabel("Accept")
.setStyle(ButtonStyle.Primary)
.setDisabled(true)
),
new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("guildapplicationdeny")
.setLabel("Deny")
.setStyle(ButtonStyle.Danger)
.setDisabled(true)
),
new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("checkstats")
.setLabel("Check Stats")
.setStyle(ButtonStyle.Secondary)
.setDisabled(true)
)
]
});
});
await interaction.reply({
embeds: [{ embeds: [{
title: applicantUsername + " - Guild Application", title: applicantUsername + " - Guild Application",
description: "Application accepted by <@" + user.id + ">.\n\nPress the button below to delete this channel.\n**When the user is added to the guild.**", description: "Application has been accepted by <@" + user.id + ">.",
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: applicant.avatarURL() url: applicant.avatarURL()
@@ -69,15 +67,7 @@ module.exports = {
iconURL: guild.iconURL(), iconURL: guild.iconURL(),
text: "ID: " + applicant.id text: "ID: " + applicant.id
} }
}], }]
components: [
new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("applicationdelete")
.setLabel("Delete channel")
.setStyle(ButtonStyle.Danger)
)
]
}); });
} }

View File

@@ -14,8 +14,7 @@ module.exports = {
const guild = interaction.guild; const guild = interaction.guild;
const embedColor = Number(color.replace("#", "0x")); const embedColor = Number(color.replace("#", "0x"));
const applicantId = await channel.topic const message = interaction.message;
const applicant = await guild.members.fetch(applicantId)
const modal = new ModalBuilder() const modal = new ModalBuilder()
.setTitle('Deny Reason') .setTitle('Deny Reason')

View File

@@ -1,4 +1,4 @@
const { InteractionType, EmbedBuilder } = require('discord.js'); const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder } = require('discord.js');
const { color } = require('../../config/options.json'); const { color } = require('../../config/options.json');
const fs = require('fs'); const fs = require('fs');
const path = require('path'); const path = require('path');
@@ -15,14 +15,39 @@ module.exports = {
interaction.deferReply(); interaction.deferReply();
const channel = interaction.channel;
const applicantId = channel.topic;
const guild = interaction.guild; const guild = interaction.guild;
const message = interaction.message;
const embed = message.embeds[0];
const applicantId = embed.footer.text.split(" ")[1];
const applicant = await guild.members.fetch(applicantId); const applicant = await guild.members.fetch(applicantId);
const reason = interaction.fields.fields.get('denyreason').value || "No reason provided"; const reason = interaction.fields.fields.get('denyreason').value || "No reason provided";
const embedColor = Number(color.replace("#", "0x")); const embedColor = Number(color.replace("#", "0x"));
const filePath = path.join(__dirname, `../../apps/guild/${applicantId}`); const filePath = path.join(__dirname, `../../apps/guild/${applicantId}`);
await message.edit({
components: [
new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("guildapplicationaccept")
.setLabel("Accept")
.setStyle(ButtonStyle.Primary)
.setDisabled(true),
new ButtonBuilder()
.setCustomId("guildapplicationdeny")
.setLabel("Deny")
.setStyle(ButtonStyle.Danger)
.setDisabled(true),
new ButtonBuilder()
.setCustomId("checkstats")
.setLabel("Check Stats")
.setStyle(ButtonStyle.Secondary)
.setDisabled(true)
)
]
});
const dmMessage = new EmbedBuilder() const dmMessage = new EmbedBuilder()
.setDescription("Your application for the Illegitimate guild has been denied\n" + .setDescription("Your application for the Illegitimate guild has been denied\n" +
"**Reason:** `" + reason + "`") "**Reason:** `" + reason + "`")
@@ -30,17 +55,22 @@ module.exports = {
await applicant.send({ embeds: [dmMessage] }); await applicant.send({ embeds: [dmMessage] });
fs.rmSync(filePath);
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: "Application denied\n" + title: "Application Denied",
"Channel will be deleted in 5 seconds...", description: "The application has been denied by <@" + interaction.user.id + ">.\n" +
color: embedColor "**Reason:** `" + reason + "`",
color: embedColor,
thumbnail: {
url: applicant.avatarURL()
},
footer: {
iconURL: guild.iconURL(),
text: "ID: " + applicant.id
}
}], }],
}); });
setTimeout(() => {
fs.rmSync(filePath, { force: true });
channel.delete();
}, 5000);
} }
} }