Making all files use prettier
Signed-off-by: Taken <taken@mairimashita.org>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
node_modules/*
|
node_modules/*
|
||||||
.env
|
.env
|
||||||
.prettierrc
|
|
||||||
.editorconfig
|
.editorconfig
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
docker-build:
|
docker-build:
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
|||||||
@@ -1,34 +1,35 @@
|
|||||||
const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits, userMention} = require('discord.js');
|
const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits, userMention } = require("discord.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'congratsmessage',
|
name: "congratsmessage",
|
||||||
description: 'Congratulate a user.',
|
description: "Congratulate a user.",
|
||||||
type: 'contextmenu',
|
type: "contextmenu",
|
||||||
|
|
||||||
data: new ContextMenuCommandBuilder()
|
data: new ContextMenuCommandBuilder()
|
||||||
.setName('Congratulate')
|
.setName("Congratulate")
|
||||||
.setType(ApplicationCommandType.Message)
|
.setType(ApplicationCommandType.Message)
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages),
|
.setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
const { targetId } = interaction;
|
||||||
const { targetId } = interaction
|
|
||||||
const message = await interaction.channel.messages.fetch(targetId);
|
const message = await interaction.channel.messages.fetch(targetId);
|
||||||
|
|
||||||
if (!message) {
|
if (!message) {
|
||||||
return interaction.reply({ content: 'That user does not exist.', ephemeral: true });
|
return interaction.reply({ content: "That user does not exist.", ephemeral: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
const target = message.author;
|
const target = message.author;
|
||||||
|
|
||||||
await message.reply({
|
await message.reply({
|
||||||
embeds:[{
|
embeds: [
|
||||||
title: 'Congratulations!',
|
{
|
||||||
|
title: "Congratulations!",
|
||||||
description: `GG to ${userMention(target.id)}!`,
|
description: `GG to ${userMention(target.id)}!`,
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
await message.react('🎉');
|
await message.react("🎉");
|
||||||
|
|
||||||
await interaction.reply({ content: `Sent a congrats message`, ephemeral: true });
|
await interaction.reply({ content: `Sent a congrats message`, ephemeral: true });
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,34 +1,36 @@
|
|||||||
const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits } = require('discord.js');
|
const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits } = require("discord.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'resetnick',
|
name: "resetnick",
|
||||||
description: 'Reset your nickname.',
|
description: "Reset your nickname.",
|
||||||
type: 'contextmenu',
|
type: "contextmenu",
|
||||||
|
|
||||||
data: new ContextMenuCommandBuilder()
|
data: new ContextMenuCommandBuilder()
|
||||||
.setName('Reset Nickname')
|
.setName("Reset Nickname")
|
||||||
.setType(ApplicationCommandType.User)
|
.setType(ApplicationCommandType.User)
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames),
|
.setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
const { targetId } = interaction;
|
||||||
const { targetId } = interaction
|
|
||||||
const target = await interaction.guild.members.fetch(targetId);
|
const target = await interaction.guild.members.fetch(targetId);
|
||||||
|
|
||||||
if (!target) {
|
if (!target) {
|
||||||
return interaction.reply({ content: 'That user does not exist.', ephemeral: true });
|
return interaction.reply({ content: "That user does not exist.", ephemeral: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target.id === interaction.user.id) {
|
if (target.id === interaction.user.id) {
|
||||||
return interaction.reply({ content: 'You can\'t reset your own nickname.', ephemeral: true });
|
return interaction.reply({ content: "You can't reset your own nickname.", ephemeral: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!target.manageable) {
|
if (!target.manageable) {
|
||||||
return interaction.reply({ content: 'I cannot reset that user\'s nickname.', ephemeral: true });
|
return interaction.reply({ content: "I cannot reset that user's nickname.", ephemeral: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
await target.setNickname(target.user.username, 'Reset by ' + interaction.user.username + "#" + interaction.user.discriminator);
|
await target.setNickname(
|
||||||
|
target.user.username,
|
||||||
|
"Reset by " + interaction.user.username + "#" + interaction.user.discriminator,
|
||||||
|
);
|
||||||
|
|
||||||
return interaction.reply({ content: `Reset ${target.user.username}'s nickname.`, ephemeral: true });
|
return interaction.reply({ content: `Reset ${target.user.username}'s nickname.`, ephemeral: true });
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,34 +1,24 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js");
|
||||||
const getuuid = require('../utils/functions');
|
const getuuid = require("../utils/functions");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'dev-info',
|
name: "dev-info",
|
||||||
description: 'Test command for the bot.',
|
description: "Test command for the bot.",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('dev-info')
|
.setName("dev-info")
|
||||||
.setDescription('Test command for the bot.')
|
.setDescription("Test command for the bot.")
|
||||||
.addStringOption(option =>
|
.addStringOption((option) => option.setName("test").setDescription("Test option."))
|
||||||
option
|
.addStringOption((option) => option.setName("test2").setDescription("Test option."))
|
||||||
.setName('test')
|
.addStringOption((option) => option.setName("test3").setDescription("Test option."))
|
||||||
.setDescription('Test option.'))
|
|
||||||
.addStringOption(option =>
|
|
||||||
option
|
|
||||||
.setName('test2')
|
|
||||||
.setDescription('Test option.'))
|
|
||||||
.addStringOption(option =>
|
|
||||||
option
|
|
||||||
.setName('test3')
|
|
||||||
.setDescription('Test option.'))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
const test = interaction.options.getString("test");
|
||||||
const test = interaction.options.getString('test');
|
const test2 = interaction.options.getString("test2");
|
||||||
const test2 = interaction.options.getString('test2');
|
const test3 = interaction.options.getString("test3");
|
||||||
const test3 = interaction.options.getString('test3');
|
|
||||||
|
|
||||||
const message = await interaction.channel.messages.fetch(test);
|
const message = await interaction.channel.messages.fetch(test);
|
||||||
const embed = message.embeds[0];
|
const embed = message.embeds[0];
|
||||||
@@ -37,6 +27,6 @@ module.exports = {
|
|||||||
|
|
||||||
console.log(field1.value);
|
console.log(field1.value);
|
||||||
|
|
||||||
await interaction.reply({ content: 'Test command.', ephemeral: true });
|
await interaction.reply({ content: "Test command.", ephemeral: true });
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,88 +1,87 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const dev = process.env.DEV;
|
const dev = process.env.DEV;
|
||||||
const { color } = require('../config/options.json');
|
const { color } = require("../config/options.json");
|
||||||
const { admin, helper, muted } = require('../config/roles.json');
|
const { admin, helper, muted } = require("../config/roles.json");
|
||||||
const { staffOtherChannel } = require('../config/options.json');
|
const { staffOtherChannel } = require("../config/options.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'mute',
|
name: "mute",
|
||||||
description: 'Mute a user',
|
description: "Mute a user",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('mute')
|
.setName("mute")
|
||||||
.setDescription('Mute a user')
|
.setDescription("Mute a user")
|
||||||
.addUserOption(option =>
|
.addUserOption((option) => option.setName("user").setDescription("The user to mute").setRequired(true))
|
||||||
option
|
.addStringOption((option) => option.setName("reason").setDescription("The reason for the mute"))
|
||||||
.setName('user')
|
.addStringOption((option) => option.setName("duration").setDescription("The duration of the mute"))
|
||||||
.setDescription('The user to mute')
|
|
||||||
.setRequired(true))
|
|
||||||
.addStringOption(option =>
|
|
||||||
option
|
|
||||||
.setName('reason')
|
|
||||||
.setDescription('The reason for the mute'))
|
|
||||||
.addStringOption(option =>
|
|
||||||
option
|
|
||||||
.setName('duration')
|
|
||||||
.setDescription('The duration of the mute'))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
const member1 = interaction.options.getUser("user");
|
||||||
const member1 = interaction.options.getUser('user');
|
|
||||||
const member = interaction.guild.members.cache.get(member1.id);
|
const member = interaction.guild.members.cache.get(member1.id);
|
||||||
const reason = interaction.options.getString('reason') ?? 'No reason provided';
|
const reason = interaction.options.getString("reason") ?? "No reason provided";
|
||||||
const duration = interaction.options.getString('duration');
|
const duration = interaction.options.getString("duration");
|
||||||
const guild = interaction.guild;
|
const guild = interaction.guild;
|
||||||
const embedColor = Number(color.replace('#', '0x'));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
const userRoles = await guild.members.fetch(interaction.user.id).then(member => member.roles.cache.map(role => role.id));
|
const userRoles = await guild.members
|
||||||
const memberRoles = await guild.members.fetch(member1.id).then(member => member.roles.cache.map(role => role.id));
|
.fetch(interaction.user.id)
|
||||||
|
.then((member) => member.roles.cache.map((role) => role.id));
|
||||||
|
const memberRoles = await guild.members
|
||||||
|
.fetch(member1.id)
|
||||||
|
.then((member) => member.roles.cache.map((role) => role.id));
|
||||||
|
|
||||||
await interaction.deferReply({});
|
await interaction.deferReply({});
|
||||||
|
|
||||||
if (!userRoles.includes(admin || helper)) {
|
if (!userRoles.includes(admin || helper)) {
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "You don't have permission to use this command.",
|
description: "You don't have permission to use this command.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (member.id === interaction.user.id) {
|
if (member.id === interaction.user.id) {
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "You can't mute yourself.",
|
description: "You can't mute yourself.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (member.id === dev) {
|
if (member.id === dev) {
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "You can't mute my developer.",
|
description: "You can't mute my developer.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (memberRoles.includes(admin) || memberRoles.includes(helper)) {
|
// if (memberRoles.includes(admin) || memberRoles.includes(helper)) {
|
||||||
@@ -102,25 +101,27 @@ module.exports = {
|
|||||||
if (!duration) {
|
if (!duration) {
|
||||||
await member.roles.add(muted, reason);
|
await member.roles.add(muted, reason);
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Successfully muted " + userMention(member1.id) + " forever.",
|
description: "Successfully muted " + userMention(member1.id) + " forever.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(duration);
|
console.log(duration);
|
||||||
|
|
||||||
const weeks = duration.replace(/[0-9][dhms]/g, '').replace(/w/g, '')
|
const weeks = duration.replace(/[0-9][dhms]/g, "").replace(/w/g, "");
|
||||||
const days = duration.replace(/[0-9][whms]/g, '').replace(/d/g, '')
|
const days = duration.replace(/[0-9][whms]/g, "").replace(/d/g, "");
|
||||||
const hours = duration.replace(/[0-9][wdms]/g, '').replace(/h/g, '')
|
const hours = duration.replace(/[0-9][wdms]/g, "").replace(/h/g, "");
|
||||||
const minutes = duration.replace(/[0-9][wdhs]/g, '').replace(/m/g, '')
|
const minutes = duration.replace(/[0-9][wdhs]/g, "").replace(/m/g, "");
|
||||||
const seconds = duration.replace(/[0-9][wdhm]/g, '').replace(/s/g, '')
|
const seconds = duration.replace(/[0-9][wdhm]/g, "").replace(/s/g, "");
|
||||||
|
|
||||||
const nweeks = Number(weeks) ?? 0;
|
const nweeks = Number(weeks) ?? 0;
|
||||||
const ndays = Number(days) ?? 0;
|
const ndays = Number(days) ?? 0;
|
||||||
@@ -129,18 +130,25 @@ module.exports = {
|
|||||||
const nseconds = Number(seconds) ?? 0;
|
const nseconds = Number(seconds) ?? 0;
|
||||||
|
|
||||||
const time = nweeks * 604800000 + ndays * 86400000 + nhours * 3600000 + nminutes * 60000 + nseconds * 1000;
|
const time = nweeks * 604800000 + ndays * 86400000 + nhours * 3600000 + nminutes * 60000 + nseconds * 1000;
|
||||||
const mutedTime = (nweeks > 0 ? nweeks + " week(s), " : "") + (ndays > 0 ? ndays + " day(s), " : "") + (nhours > 0 ? nhours + " hour(s), " : "") + (nminutes > 0 ? nminutes + " minute(s), " : "") + (nseconds > 0 ? nseconds + " second(s)" : "");
|
const mutedTime =
|
||||||
|
(nweeks > 0 ? nweeks + " week(s), " : "") +
|
||||||
|
(ndays > 0 ? ndays + " day(s), " : "") +
|
||||||
|
(nhours > 0 ? nhours + " hour(s), " : "") +
|
||||||
|
(nminutes > 0 ? nminutes + " minute(s), " : "") +
|
||||||
|
(nseconds > 0 ? nseconds + " second(s)" : "");
|
||||||
|
|
||||||
await member.roles.add(muted, reason);
|
await member.roles.add(muted, reason);
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Successfully muted " + userMention(member1.id) + " for " + mutedTime + ".",
|
description: "Successfully muted " + userMention(member1.id) + " for " + mutedTime + ".",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const logChannel = interaction.guild.channels.cache.get(staffOtherChannel);
|
const logChannel = interaction.guild.channels.cache.get(staffOtherChannel);
|
||||||
@@ -148,15 +156,17 @@ module.exports = {
|
|||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
await member.roles.remove(muted, "Mute duration has ended.");
|
await member.roles.remove(muted, "Mute duration has ended.");
|
||||||
await logChannel.send({
|
await logChannel.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: userMention(member1.id) + " has been unmuted.",
|
description: userMention(member1.id) + " has been unmuted.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: "ID: " + member1.id,
|
text: "ID: " + member1.id,
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}, time);
|
}, time);
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,9 +14,7 @@ module.exports = {
|
|||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName("check")
|
.setName("check")
|
||||||
.setDescription("Check a player's stats.")
|
.setDescription("Check a player's stats.")
|
||||||
.addStringOption((option) => option.setName("ign")
|
.addStringOption((option) => option.setName("ign").setDescription("The player's IGN.").setRequired(true))
|
||||||
.setDescription("The player's IGN.")
|
|
||||||
.setRequired(true))
|
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
@@ -24,8 +22,8 @@ module.exports = {
|
|||||||
|
|
||||||
const ign = interaction.options.getString("ign");
|
const ign = interaction.options.getString("ign");
|
||||||
const mojang = "https://api.mojang.com/users/profiles/minecraft/";
|
const mojang = "https://api.mojang.com/users/profiles/minecraft/";
|
||||||
const hypixel = "https://api.hypixel.net/player"
|
const hypixel = "https://api.hypixel.net/player";
|
||||||
const guildAPI = "https://api.hypixel.net/guild"
|
const guildAPI = "https://api.hypixel.net/guild";
|
||||||
const minotar = "https://minotar.net/helm/";
|
const minotar = "https://minotar.net/helm/";
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
const head = minotar + ign;
|
const head = minotar + ign;
|
||||||
@@ -39,9 +37,7 @@ module.exports = {
|
|||||||
await fetch(mojang + ign);
|
await fetch(mojang + ign);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [
|
embeds: [{ description: "That player doesn't exist.", color: embedColor }],
|
||||||
{ description: "That player doesn't exist.", color: embedColor }
|
|
||||||
]
|
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -49,15 +45,17 @@ module.exports = {
|
|||||||
const userCheck = await fetch(mojang + ign);
|
const userCheck = await fetch(mojang + ign);
|
||||||
const uuid = userCheck.data.id;
|
const uuid = userCheck.data.id;
|
||||||
|
|
||||||
const player = hypixel + "?key=" + hypixelApiKey + "&uuid=" + uuid
|
const player = hypixel + "?key=" + hypixelApiKey + "&uuid=" + uuid;
|
||||||
const stats = await fetch(player);
|
const stats = await fetch(player);
|
||||||
|
|
||||||
if (!stats.data.player) {
|
if (!stats.data.player) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "That player hasn't played Hypixel before.",
|
description: "That player hasn't played Hypixel before.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -65,19 +63,19 @@ module.exports = {
|
|||||||
const rank2 = stats.data.player.newPackageRank;
|
const rank2 = stats.data.player.newPackageRank;
|
||||||
const monthlyRank = stats.data.player.monthlyPackageRank;
|
const monthlyRank = stats.data.player.monthlyPackageRank;
|
||||||
|
|
||||||
if (rank2 === 'VIP') {
|
if (rank2 === "VIP") {
|
||||||
var rank = "[VIP] "
|
var rank = "[VIP] ";
|
||||||
} else if (rank2 === 'VIP_PLUS') {
|
} else if (rank2 === "VIP_PLUS") {
|
||||||
var rank = "[VIP+] "
|
var rank = "[VIP+] ";
|
||||||
} else if (rank2 === 'MVP') {
|
} else if (rank2 === "MVP") {
|
||||||
var rank = "[MVP] "
|
var rank = "[MVP] ";
|
||||||
} else if (rank2 === 'MVP_PLUS' && monthlyRank === 'NONE') {
|
} else if (rank2 === "MVP_PLUS" && monthlyRank === "NONE") {
|
||||||
var rank = "[MVP+] "
|
var rank = "[MVP+] ";
|
||||||
} else if (rank2 === 'MVP_PLUS' && monthlyRank === 'SUPERSTAR') {
|
} else if (rank2 === "MVP_PLUS" && monthlyRank === "SUPERSTAR") {
|
||||||
var rank = "[MVP++] "
|
var rank = "[MVP++] ";
|
||||||
}
|
}
|
||||||
|
|
||||||
const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + uuid
|
const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + uuid;
|
||||||
const guildCheck = await fetch(guild);
|
const guildCheck = await fetch(guild);
|
||||||
|
|
||||||
if (!guildCheck.data.guild) {
|
if (!guildCheck.data.guild) {
|
||||||
@@ -87,11 +85,11 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!guildCheck.data.guild) {
|
if (!guildCheck.data.guild) {
|
||||||
var guildTag = ""
|
var guildTag = "";
|
||||||
} else if (!guildCheck.data.guild.tag) {
|
} else if (!guildCheck.data.guild.tag) {
|
||||||
var guildTag = ""
|
var guildTag = "";
|
||||||
} else {
|
} else {
|
||||||
var guildTag = " [" + guildCheck.data.guild.tag + "]"
|
var guildTag = " [" + guildCheck.data.guild.tag + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
//bedwars level
|
//bedwars level
|
||||||
@@ -113,9 +111,9 @@ module.exports = {
|
|||||||
//skywars wins
|
//skywars wins
|
||||||
const hsswwins = stats.data.player.stats.SkyWars.wins;
|
const hsswwins = stats.data.player.stats.SkyWars.wins;
|
||||||
// dueks kdr
|
// dueks kdr
|
||||||
const hsduelskills = stats.data.player.stats.Duels.kills
|
const hsduelskills = stats.data.player.stats.Duels.kills;
|
||||||
const hsduelsdeaths = stats.data.player.stats.Duels.deaths
|
const hsduelsdeaths = stats.data.player.stats.Duels.deaths;
|
||||||
const hsduelskd = hsduelskills / hsduelsdeaths
|
const hsduelskd = hsduelskills / hsduelsdeaths;
|
||||||
// duels wins
|
// duels wins
|
||||||
const hsduelswins = stats.data.player.stats.Duels.wins;
|
const hsduelswins = stats.data.player.stats.Duels.wins;
|
||||||
// duels wlr
|
// duels wlr
|
||||||
@@ -126,79 +124,95 @@ module.exports = {
|
|||||||
const level = getExactLevel(hypixelExp);
|
const level = getExactLevel(hypixelExp);
|
||||||
|
|
||||||
if (hsbwstars < bwstars || hsbwfkdr < bwfkdr || hsbwwins < bwwins) {
|
if (hsbwstars < bwstars || hsbwfkdr < bwfkdr || hsbwwins < bwwins) {
|
||||||
var bwtitle =
|
var bwtitle = "<a:cross_a:1087808606897983539> This player does not meet the BedWars requirements.";
|
||||||
"<a:cross_a:1087808606897983539> This player does not meet the BedWars requirements.";
|
|
||||||
} else {
|
} else {
|
||||||
var bwtitle =
|
var bwtitle = "<a:check_a:1087808632172847134> This player meets the BedWars requirements.";
|
||||||
"<a:check_a:1087808632172847134> This player meets the BedWars requirements.";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hsswstars < swstars) {
|
if (hsswstars < swstars) {
|
||||||
var swtitle =
|
var swtitle = "<a:cross_a:1087808606897983539> This player does not meet the SkyWars requirements.";
|
||||||
"<a:cross_a:1087808606897983539> This player does not meet the SkyWars requirements.";
|
|
||||||
} else {
|
} else {
|
||||||
var swtitle =
|
var swtitle = "<a:check_a:1087808632172847134> This player meets the SkyWars requirements.";
|
||||||
"<a:check_a:1087808632172847134> This player meets the SkyWars requirements.";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hsduelswins < duelswins || hsduelswlr < duelswlr) {
|
if (hsduelswins < duelswins || hsduelswlr < duelswlr) {
|
||||||
var duelstitle =
|
var duelstitle = "<a:cross_a:1087808606897983539> This player does not meet the Duels requirements.";
|
||||||
"<a:cross_a:1087808606897983539> This player does not meet the Duels requirements.";
|
|
||||||
} else {
|
} else {
|
||||||
var duelstitle =
|
var duelstitle = "<a:check_a:1087808632172847134> This player meets the Duels requirements.";
|
||||||
"<a:check_a:1087808632172847134> This player meets the Duels requirements.";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: rank + stats.data.player.displayname + guildTag,
|
title: rank + stats.data.player.displayname + guildTag,
|
||||||
description: "**Network Level:** `" +
|
description:
|
||||||
level.toFixed(2).toString() + "`\n" +
|
"**Network Level:** `" +
|
||||||
"**Current Guild:** `" + guildName + "`",
|
level.toFixed(2).toString() +
|
||||||
|
"`\n" +
|
||||||
|
"**Current Guild:** `" +
|
||||||
|
guildName +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: { url: head },
|
thumbnail: { url: head },
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL()
|
icon_url: interaction.guild.iconURL(),
|
||||||
},
|
},
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: bwtitle,
|
name: bwtitle,
|
||||||
value: "**➺ Stars:** `" +
|
value:
|
||||||
hsbwstars.toFixed(2).toString() + " / " +
|
"**➺ Stars:** `" +
|
||||||
bwstars.toString() + "`\n" +
|
hsbwstars.toFixed(2).toString() +
|
||||||
|
" / " +
|
||||||
|
bwstars.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ FKDR:** `" +
|
"**➺ FKDR:** `" +
|
||||||
hsbwfkdr.toFixed(2).toString() +
|
hsbwfkdr.toFixed(2).toString() +
|
||||||
" / " + bwfkdr.toString() + "`\n" +
|
" / " +
|
||||||
|
bwfkdr.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ Wins:** `" +
|
"**➺ Wins:** `" +
|
||||||
hsbwwins.toString() + " / " +
|
hsbwwins.toString() +
|
||||||
bwwins.toString() + "`"
|
" / " +
|
||||||
|
bwwins.toString() +
|
||||||
|
"`",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: swtitle,
|
name: swtitle,
|
||||||
value:
|
value:
|
||||||
"**➺ Stars:** `" +
|
"**➺ Stars:** `" +
|
||||||
hsswstars.toFixed(2).toString() +
|
hsswstars.toFixed(2).toString() +
|
||||||
" / " + swstars.toString() + "`\n" +
|
" / " +
|
||||||
|
swstars.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ KDR:** `" +
|
"**➺ KDR:** `" +
|
||||||
hsswkd.toFixed(2).toString() +
|
hsswkd.toFixed(2).toString() +
|
||||||
"`\n" +
|
"`\n" +
|
||||||
"**➺ Wins:** `" +
|
"**➺ Wins:** `" +
|
||||||
hsswwins.toString() + "`"
|
hsswwins.toString() +
|
||||||
|
"`",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: duelstitle,
|
name: duelstitle,
|
||||||
value: "**➺ Wins:** `" +
|
value:
|
||||||
|
"**➺ Wins:** `" +
|
||||||
hsduelswins.toString() +
|
hsduelswins.toString() +
|
||||||
" / " + duelswins.toString() + "`\n" +
|
" / " +
|
||||||
|
duelswins.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ WLR:** `" +
|
"**➺ WLR:** `" +
|
||||||
hsduelswlr.toFixed(2).toString() +
|
hsduelswlr.toFixed(2).toString() +
|
||||||
" / " + duelswlr.toString() + "`\n" +
|
" / " +
|
||||||
|
duelswlr.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ KDR:** `" +
|
"**➺ KDR:** `" +
|
||||||
hsduelskd.toFixed(2).toString() + "`"
|
hsduelskd.toFixed(2).toString() +
|
||||||
}
|
"`",
|
||||||
]
|
},
|
||||||
}]
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits, ButtonBuilder, ActionRowBuilder, ButtonStyle, } = require("discord.js");
|
const {
|
||||||
|
SlashCommandBuilder,
|
||||||
|
PermissionFlagsBits,
|
||||||
|
ButtonBuilder,
|
||||||
|
ActionRowBuilder,
|
||||||
|
ButtonStyle,
|
||||||
|
} = require("discord.js");
|
||||||
const { color } = require("../config/options.json");
|
const { color } = require("../config/options.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
@@ -17,7 +23,8 @@ module.exports = {
|
|||||||
option
|
option
|
||||||
.setName("channel")
|
.setName("channel")
|
||||||
.setDescription("The channel to send the application to.")
|
.setDescription("The channel to send the application to.")
|
||||||
.setRequired(true))
|
.setRequired(true),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
.addSubcommand((subcommand) =>
|
.addSubcommand((subcommand) =>
|
||||||
subcommand
|
subcommand
|
||||||
@@ -27,7 +34,9 @@ module.exports = {
|
|||||||
option
|
option
|
||||||
.setName("channel")
|
.setName("channel")
|
||||||
.setDescription("The channel to send the application to.")
|
.setDescription("The channel to send the application to.")
|
||||||
.setRequired(true)))
|
.setRequired(true),
|
||||||
|
),
|
||||||
|
)
|
||||||
.addSubcommand((subcommand) =>
|
.addSubcommand((subcommand) =>
|
||||||
subcommand
|
subcommand
|
||||||
.setName("sendverfiymessage")
|
.setName("sendverfiymessage")
|
||||||
@@ -36,7 +45,9 @@ module.exports = {
|
|||||||
option
|
option
|
||||||
.setName("channel")
|
.setName("channel")
|
||||||
.setDescription("The channel to send the verfiy message to.")
|
.setDescription("The channel to send the verfiy message to.")
|
||||||
.setRequired(true)))
|
.setRequired(true),
|
||||||
|
),
|
||||||
|
)
|
||||||
.addSubcommand((subcommand) =>
|
.addSubcommand((subcommand) =>
|
||||||
subcommand
|
subcommand
|
||||||
.setName("sendwaitinglistmessage")
|
.setName("sendwaitinglistmessage")
|
||||||
@@ -45,7 +56,9 @@ module.exports = {
|
|||||||
option
|
option
|
||||||
.setName("channel")
|
.setName("channel")
|
||||||
.setDescription("The channel to send the waiting list message to.")
|
.setDescription("The channel to send the waiting list message to.")
|
||||||
.setRequired(true)))
|
.setRequired(true),
|
||||||
|
),
|
||||||
|
)
|
||||||
.addSubcommand((subcommand) =>
|
.addSubcommand((subcommand) =>
|
||||||
subcommand
|
subcommand
|
||||||
.setName("sendinactivityapplication")
|
.setName("sendinactivityapplication")
|
||||||
@@ -54,7 +67,9 @@ module.exports = {
|
|||||||
option
|
option
|
||||||
.setName("channel")
|
.setName("channel")
|
||||||
.setDescription("The channel to send the application to.")
|
.setDescription("The channel to send the application to.")
|
||||||
.setRequired(true)))
|
.setRequired(true),
|
||||||
|
),
|
||||||
|
)
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
@@ -64,7 +79,6 @@ module.exports = {
|
|||||||
const subcommand = interaction.options.getSubcommand();
|
const subcommand = interaction.options.getSubcommand();
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
|
|
||||||
if (subcommand === "sendguildapplication") {
|
if (subcommand === "sendguildapplication") {
|
||||||
const channel = interaction.options.getChannel("channel");
|
const channel = interaction.options.getChannel("channel");
|
||||||
|
|
||||||
@@ -76,21 +90,22 @@ module.exports = {
|
|||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
iconURL: interaction.guild.iconURL({ dynamic: true })
|
iconURL: interaction.guild.iconURL({ dynamic: true }),
|
||||||
},
|
},
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: interaction.guild.iconURL({ dynamic: true })
|
url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
components: [
|
components: [
|
||||||
new ActionRowBuilder()
|
new ActionRowBuilder().addComponents(
|
||||||
.addComponents(new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
.setCustomId("guildapply")
|
.setCustomId("guildapply")
|
||||||
.setLabel("Apply")
|
.setLabel("Apply")
|
||||||
.setStyle(ButtonStyle.Primary)
|
.setStyle(ButtonStyle.Primary)
|
||||||
.setEmoji({ name: "✅" }))
|
.setEmoji({ name: "✅" }),
|
||||||
]
|
),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
await interaction.reply({ content: "Message sent", ephemeral: true });
|
await interaction.reply({ content: "Message sent", ephemeral: true });
|
||||||
}
|
}
|
||||||
@@ -106,21 +121,22 @@ module.exports = {
|
|||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
iconURL: interaction.guild.iconURL({ dynamic: true })
|
iconURL: interaction.guild.iconURL({ dynamic: true }),
|
||||||
},
|
},
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: interaction.guild.iconURL({ dynamic: true })
|
url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
components: [
|
components: [
|
||||||
new ActionRowBuilder()
|
new ActionRowBuilder().addComponents(
|
||||||
.addComponents(new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
.setCustomId("staffapply")
|
.setCustomId("staffapply")
|
||||||
.setLabel("Apply")
|
.setLabel("Apply")
|
||||||
.setStyle(ButtonStyle.Primary)
|
.setStyle(ButtonStyle.Primary)
|
||||||
.setEmoji({ name: "✅" }))
|
.setEmoji({ name: "✅" }),
|
||||||
]
|
),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
await interaction.reply({ content: "Message sent", ephemeral: true });
|
await interaction.reply({ content: "Message sent", ephemeral: true });
|
||||||
@@ -137,21 +153,22 @@ module.exports = {
|
|||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
iconURL: interaction.guild.iconURL({ dynamic: true })
|
iconURL: interaction.guild.iconURL({ dynamic: true }),
|
||||||
},
|
},
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: interaction.guild.iconURL({ dynamic: true })
|
url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
components: [
|
components: [
|
||||||
new ActionRowBuilder()
|
new ActionRowBuilder().addComponents(
|
||||||
.addComponents(new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
.setCustomId("guildinactivitylog")
|
.setCustomId("guildinactivitylog")
|
||||||
.setLabel("Submit")
|
.setLabel("Submit")
|
||||||
.setStyle(ButtonStyle.Primary)
|
.setStyle(ButtonStyle.Primary)
|
||||||
.setEmoji({ name: "✅" }))
|
.setEmoji({ name: "✅" }),
|
||||||
]
|
),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
await interaction.reply({ content: "Message sent", ephemeral: true });
|
await interaction.reply({ content: "Message sent", ephemeral: true });
|
||||||
@@ -161,59 +178,62 @@ module.exports = {
|
|||||||
const channel = interaction.options.getChannel("channel");
|
const channel = interaction.options.getChannel("channel");
|
||||||
|
|
||||||
await channel.send({
|
await channel.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: "Verification",
|
title: "Verification",
|
||||||
description: "You can verify by clicking the button below.",
|
description: "You can verify by clicking the button below.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
iconURL: interaction.guild.iconURL({ dynamic: true })
|
iconURL: interaction.guild.iconURL({ dynamic: true }),
|
||||||
},
|
},
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: interaction.guild.iconURL({ dynamic: true })
|
url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
components: [
|
components: [
|
||||||
new ActionRowBuilder()
|
new ActionRowBuilder().addComponents(
|
||||||
.addComponents(new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
.setCustomId("verifybutton")
|
.setCustomId("verifybutton")
|
||||||
.setLabel("Verify")
|
.setLabel("Verify")
|
||||||
.setStyle(ButtonStyle.Primary)
|
.setStyle(ButtonStyle.Primary)
|
||||||
.setEmoji({ name: "✅" }))
|
.setEmoji({ name: "✅" }),
|
||||||
]
|
),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
await interaction.reply({ content: "Message sent", ephemeral: true });
|
await interaction.reply({ content: "Message sent", ephemeral: true });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subcommand === "sendwaitinglistmessage") {
|
if (subcommand === "sendwaitinglistmessage") {
|
||||||
const channel = interaction.options.getChannel("channel");
|
const channel = interaction.options.getChannel("channel");
|
||||||
|
|
||||||
await channel.send({
|
await channel.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: "Waiting List",
|
title: "Waiting List",
|
||||||
description: "The people below were accepted into the guild\n" +
|
description: "The people below were accepted into the guild\n" + "Try to invite them in order.",
|
||||||
"Try to invite them in order.",
|
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
iconURL: interaction.guild.iconURL({ dynamic: true })
|
iconURL: interaction.guild.iconURL({ dynamic: true }),
|
||||||
},
|
},
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: interaction.guild.iconURL({ dynamic: true })
|
url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
components: [
|
components: [
|
||||||
new ActionRowBuilder()
|
new ActionRowBuilder().addComponents(
|
||||||
.addComponents(new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
.setCustomId("waitinglistupdate")
|
.setCustomId("waitinglistupdate")
|
||||||
.setLabel("Update")
|
.setLabel("Update")
|
||||||
.setStyle(ButtonStyle.Primary)
|
.setStyle(ButtonStyle.Primary)
|
||||||
.setEmoji({ name: "🔄" }))
|
.setEmoji({ name: "🔄" }),
|
||||||
]
|
),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
await interaction.reply({ content: "Message sent", ephemeral: true });
|
await interaction.reply({ content: "Message sent", ephemeral: true });
|
||||||
}
|
}
|
||||||
|
},
|
||||||
}
|
|
||||||
};
|
};
|
||||||
@@ -1,70 +1,60 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits, userMention, EmbedBuilder, ChannelType } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits, userMention, EmbedBuilder, ChannelType } = require("discord.js");
|
||||||
const { hypixelGuildID, color } = require('../config/options.json');
|
const { hypixelGuildID, color } = require("../config/options.json");
|
||||||
const { muted } = require('../config/roles.json');
|
const { muted } = require("../config/roles.json");
|
||||||
const verify = require('../schemas/verifySchema.js');
|
const verify = require("../schemas/verifySchema.js");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const dev = process.env.DEV;
|
const dev = process.env.DEV;
|
||||||
const fetch = require('axios');
|
const fetch = require("axios");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'admin',
|
name: "admin",
|
||||||
description: 'Admin command.',
|
description: "Admin command.",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('devel')
|
.setName("devel")
|
||||||
.setDescription('Admin command.')
|
.setDescription("Admin command.")
|
||||||
.addSubcommand(subcommand =>
|
.addSubcommand((subcommand) => subcommand.setName("reload").setDescription("Reload the bot."))
|
||||||
|
.addSubcommand((subcommand) => subcommand.setName("listallverified").setDescription("List all verified users."))
|
||||||
|
.addSubcommand((subcommand) =>
|
||||||
subcommand
|
subcommand
|
||||||
.setName('reload')
|
.setName("purgereactions")
|
||||||
.setDescription('Reload the bot.'))
|
.setDescription("Purge all reactions from a messages.")
|
||||||
.addSubcommand(subcommand =>
|
.addIntegerOption((option) =>
|
||||||
subcommand
|
option.setName("count").setDescription("Count of messages to purge reactions from."),
|
||||||
.setName('listallverified')
|
),
|
||||||
.setDescription('List all verified users.'))
|
)
|
||||||
.addSubcommand(subcommand =>
|
|
||||||
subcommand
|
|
||||||
.setName('purgereactions')
|
|
||||||
.setDescription('Purge all reactions from a messages.')
|
|
||||||
.addIntegerOption(option =>
|
|
||||||
option
|
|
||||||
.setName('count')
|
|
||||||
.setDescription('Count of messages to purge reactions from.')))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
const subcommand = interaction.options.getSubcommand();
|
const subcommand = interaction.options.getSubcommand();
|
||||||
const user = interaction.user;
|
const user = interaction.user;
|
||||||
const userMentioned = userMention(user.id);
|
const userMentioned = userMention(user.id);
|
||||||
const guild = interaction.guild;
|
const guild = interaction.guild;
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
if (subcommand === 'reload') {
|
if (subcommand === "reload") {
|
||||||
|
const { exec } = require("child_process");
|
||||||
|
await interaction.reply({ content: "Reloading...", ephemeral: true });
|
||||||
|
|
||||||
const { exec } = require('child_process');
|
exec("pm2 restart 0", async (err, stdout, stderr) => {
|
||||||
await interaction.reply({ content: 'Reloading...', ephemeral: true })
|
|
||||||
|
|
||||||
exec('pm2 restart 0', async (err, stdout, stderr) => {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
await interaction.reply({ content: 'Error while reloading: ' + err, ephemeral: true })
|
await interaction.reply({ content: "Error while reloading: " + err, ephemeral: true });
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subcommand === 'listallverified') {
|
if (subcommand === "listallverified") {
|
||||||
|
const verifiedUsers = await verify.find();
|
||||||
const verifiedUsers = await verify.find()
|
const mojang = "https://api.mojang.com/user/profile/";
|
||||||
const mojang = "https://api.mojang.com/user/profile/"
|
|
||||||
|
|
||||||
let embed = new EmbedBuilder()
|
let embed = new EmbedBuilder()
|
||||||
.setTitle(guild.name)
|
.setTitle(guild.name)
|
||||||
.setColor(embedColor)
|
.setColor(embedColor)
|
||||||
.setDescription('List of all verified users')
|
.setDescription("List of all verified users");
|
||||||
|
|
||||||
for (let i = 0; i < verifiedUsers.length; i++) {
|
for (let i = 0; i < verifiedUsers.length; i++) {
|
||||||
|
|
||||||
const user = verifiedUsers[i];
|
const user = verifiedUsers[i];
|
||||||
|
|
||||||
const userCheck = await fetch(mojang + user.uuid);
|
const userCheck = await fetch(mojang + user.uuid);
|
||||||
@@ -74,34 +64,34 @@ module.exports = {
|
|||||||
|
|
||||||
embed.addFields({
|
embed.addFields({
|
||||||
name: "**IGN:** " + ign,
|
name: "**IGN:** " + ign,
|
||||||
value: "**Discord:** " + mentionedUser
|
value: "**Discord:** " + mentionedUser,
|
||||||
})
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await interaction.reply({
|
await interaction.reply({
|
||||||
embeds: [embed]
|
embeds: [embed],
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subcommand === 'purgereactions') {
|
if (subcommand === "purgereactions") {
|
||||||
|
const count = interaction.options.getInteger("count");
|
||||||
const count = interaction.options.getInteger('count');
|
await interaction.deferReply({});
|
||||||
await interaction.deferReply({})
|
|
||||||
|
|
||||||
if (user.id !== dev) {
|
if (user.id !== dev) {
|
||||||
interaction.editReply({ content: 'Due to you not screwing something up this command is restricted to only ' + userMentioned, ephemeral: true })
|
interaction.editReply({
|
||||||
return
|
content: "Due to you not screwing something up this command is restricted to only " + userMentioned,
|
||||||
|
ephemeral: true,
|
||||||
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const messages = await interaction.channel.messages.fetch({ limit: count });
|
const messages = await interaction.channel.messages.fetch({ limit: count });
|
||||||
|
|
||||||
messages.forEach(async (message) => {
|
messages.forEach(async (message) => {
|
||||||
await message.reactions.removeAll();
|
await message.reactions.removeAll();
|
||||||
})
|
});
|
||||||
|
|
||||||
await interaction.editReply(`Purged reactions from ${count} message(s).`)
|
|
||||||
|
|
||||||
|
await interaction.editReply(`Purged reactions from ${count} message(s).`);
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,55 +1,67 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js");
|
||||||
const { color } = require("../config/options.json");
|
const { color } = require("../config/options.json");
|
||||||
const verify = require("../schemas/verifySchema.js");
|
const verify = require("../schemas/verifySchema.js");
|
||||||
const mongoose = require("mongoose");
|
const mongoose = require("mongoose");
|
||||||
const { gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json");
|
const {
|
||||||
const removeThese = [ gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember ]
|
gm,
|
||||||
|
manager,
|
||||||
|
moderator,
|
||||||
|
beast,
|
||||||
|
member,
|
||||||
|
trialmember,
|
||||||
|
guildRole,
|
||||||
|
guildStaff,
|
||||||
|
defaultMember,
|
||||||
|
} = require("../config/roles.json");
|
||||||
|
const removeThese = [gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember];
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "forceunverify",
|
name: "forceunverify",
|
||||||
description: "Force unverify a user",
|
description: "Force unverify a user",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('forceunverify')
|
.setName("forceunverify")
|
||||||
.setDescription('Force unverify a user')
|
.setDescription("Force unverify a user")
|
||||||
.addUserOption(option =>
|
.addUserOption((option) =>
|
||||||
option
|
option.setName("user").setDescription("The user to force unverify").setRequired(true),
|
||||||
.setName('user')
|
)
|
||||||
.setDescription('The user to force unverify')
|
|
||||||
.setRequired(true))
|
|
||||||
.setDMPermission(false)
|
.setDMPermission(false)
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator),
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
const member1 = interaction.options.getUser('user');
|
const member1 = interaction.options.getUser("user");
|
||||||
const member = interaction.guild.members.cache.get(member1.id)
|
const member = interaction.guild.members.cache.get(member1.id);
|
||||||
const embedColor = Number(color.replace('#', '0x'))
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
const verifiedUser = await verify.findOne({ userID: member1.id })
|
const verifiedUser = await verify.findOne({ userID: member1.id });
|
||||||
const user = interaction.user
|
const user = interaction.user;
|
||||||
|
|
||||||
if (!verifiedUser) {
|
if (!verifiedUser) {
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "This user is not verified",
|
description: "This user is not verified",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
await verify.findOneAndDelete({ userID: member1.id })
|
await verify.findOneAndDelete({ userID: member1.id });
|
||||||
|
|
||||||
await member.roles.remove(removeThese)
|
await member.roles.remove(removeThese);
|
||||||
|
|
||||||
await interaction.reply({
|
await interaction.reply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Successfully unverified" + userMention(member1.id),
|
description: "Successfully unverified" + userMention(member1.id),
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by taken.lua",
|
text: interaction.guild.name + " | Developed by taken.lua",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
}
|
});
|
||||||
}
|
},
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,35 +1,41 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const hypixelAPIKey = process.env.HYPIXELAPIKEY;
|
const hypixelAPIKey = process.env.HYPIXELAPIKEY;
|
||||||
const { hypixelGuildID, color } = require('../config/options.json');
|
const { hypixelGuildID, color } = require("../config/options.json");
|
||||||
const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json');
|
const {
|
||||||
const verify = require('../schemas/verifySchema.js')
|
gm,
|
||||||
const fetch = require('axios');
|
manager,
|
||||||
const removeThese = [gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff]
|
moderator,
|
||||||
|
beast,
|
||||||
|
elite,
|
||||||
|
member,
|
||||||
|
trialmember,
|
||||||
|
guildRole,
|
||||||
|
guildStaff,
|
||||||
|
defaultMember,
|
||||||
|
} = require("../config/roles.json");
|
||||||
|
const verify = require("../schemas/verifySchema.js");
|
||||||
|
const fetch = require("axios");
|
||||||
|
const removeThese = [gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff];
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'forceupdate',
|
name: "forceupdate",
|
||||||
description: 'Force update the user',
|
description: "Force update the user",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('forceupdate')
|
.setName("forceupdate")
|
||||||
.setDescription('Force update the user')
|
.setDescription("Force update the user")
|
||||||
.addUserOption(option =>
|
.addUserOption((option) => option.setName("user").setDescription("The user to force update").setRequired(true))
|
||||||
option
|
|
||||||
.setName('user')
|
|
||||||
.setDescription('The user to force update')
|
|
||||||
.setRequired(true))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply();
|
await interaction.deferReply();
|
||||||
|
|
||||||
const user = interaction.options.getUser('user');
|
const user = interaction.options.getUser("user");
|
||||||
const usermentioned = userMention(user.id);
|
const usermentioned = userMention(user.id);
|
||||||
const verifyData = await verify.findOne({ userID: user.id })
|
const verifyData = await verify.findOne({ userID: user.id });
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
const user1 = interaction.guild.members.cache.get(user.id);
|
const user1 = interaction.guild.members.cache.get(user.id);
|
||||||
@@ -37,23 +43,25 @@ module.exports = {
|
|||||||
|
|
||||||
if (!verifyData) {
|
if (!verifyData) {
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "You are not verified. Please run `/verify` to verify yourself",
|
description: "You are not verified. Please run `/verify` to verify yourself",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const mojangAPI = "https://api.mojang.com/user/profile/"
|
const mojangAPI = "https://api.mojang.com/user/profile/";
|
||||||
const guildlAPI = "https://api.hypixel.net/guild"
|
const guildlAPI = "https://api.hypixel.net/guild";
|
||||||
const minotar = "https://minotar.net/helm/";
|
const minotar = "https://minotar.net/helm/";
|
||||||
const guild = guildlAPI + "?key=" + hypixelAPIKey + "&player=" + verifyData.uuid;
|
const guild = guildlAPI + "?key=" + hypixelAPIKey + "&player=" + verifyData.uuid;
|
||||||
const userCheck = await fetch(mojangAPI + verifyData.uuid);
|
const userCheck = await fetch(mojangAPI + verifyData.uuid);
|
||||||
@@ -61,228 +69,227 @@ module.exports = {
|
|||||||
const head = minotar + userCheck.data.name;
|
const head = minotar + userCheck.data.name;
|
||||||
|
|
||||||
if (!guildCheck.data.guild) {
|
if (!guildCheck.data.guild) {
|
||||||
var responseGuildID = null
|
var responseGuildID = null;
|
||||||
} else {
|
} else {
|
||||||
var responseGuildID = guildCheck.data.guild._id
|
var responseGuildID = guildCheck.data.guild._id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (responseGuildID !== hypixelGuildID) {
|
if (responseGuildID !== hypixelGuildID) {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: usermentioned + " was given the the Default Member role.",
|
description: usermentioned + " was given the the Default Member role.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
await roleManage.add(defaultMember)
|
});
|
||||||
return
|
await roleManage.add(defaultMember);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (responseGuildID === hypixelGuildID) {
|
if (responseGuildID === hypixelGuildID) {
|
||||||
|
|
||||||
const GuildMembers = guildCheck.data.guild.members;
|
const GuildMembers = guildCheck.data.guild.members;
|
||||||
const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank;
|
const guildRank = GuildMembers.find((member) => member.uuid === verifyData.uuid).rank;
|
||||||
|
|
||||||
if (guildRank === 'Guild Master') {
|
|
||||||
|
|
||||||
|
if (guildRank === "Guild Master") {
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User was force updated.")
|
await roleManage.add(guildRole, "User was force updated.");
|
||||||
await roleManage.add(guildStaff, "User was force updated.")
|
await roleManage.add(guildStaff, "User was force updated.");
|
||||||
await roleManage.add(gm, "User was force updated.")
|
await roleManage.add(gm, "User was force updated.");
|
||||||
await roleManage.add(defaultMember, "User was force updated.")
|
await roleManage.add(defaultMember, "User was force updated.");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: usermentioned + "'s rank has been updated to `Guild Master`",
|
description: usermentioned + "'s rank has been updated to `Guild Master`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Manager') {
|
if (guildRank === "Manager") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User was force updated.")
|
await roleManage.add(guildRole, "User was force updated.");
|
||||||
await roleManage.add(guildStaff, "User was force updated.")
|
await roleManage.add(guildStaff, "User was force updated.");
|
||||||
await roleManage.add(manager, "User was force updated.")
|
await roleManage.add(manager, "User was force updated.");
|
||||||
await roleManage.add(defaultMember, "User was force updated.")
|
await roleManage.add(defaultMember, "User was force updated.");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: usermentioned + "'s rank has been updated to `Manager`",
|
description: usermentioned + "'s rank has been updated to `Manager`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Moderator') {
|
if (guildRank === "Moderator") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User was force updated.")
|
await roleManage.add(guildRole, "User was force updated.");
|
||||||
await roleManage.add(guildStaff, "User was force updated.")
|
await roleManage.add(guildStaff, "User was force updated.");
|
||||||
await roleManage.add(moderator, "User was force updated.")
|
await roleManage.add(moderator, "User was force updated.");
|
||||||
await roleManage.add(defaultMember, "User was force updated.")
|
await roleManage.add(defaultMember, "User was force updated.");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: usermentioned + "'s rank has been updated to `Moderator`",
|
description: usermentioned + "'s rank has been updated to `Moderator`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Beast') {
|
if (guildRank === "Beast") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User was force updated.")
|
await roleManage.add(guildRole, "User was force updated.");
|
||||||
await roleManage.add(beast, "User was force updated.")
|
await roleManage.add(beast, "User was force updated.");
|
||||||
await roleManage.add(defaultMember, "User was force updated.")
|
await roleManage.add(defaultMember, "User was force updated.");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: usermentioned + "'s rank has been updated to `Beast`.",
|
description: usermentioned + "'s rank has been updated to `Beast`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Elite') {
|
if (guildRank === "Elite") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User was force updated.")
|
await roleManage.add(guildRole, "User was force updated.");
|
||||||
await roleManage.add(elite, "User was force updated.")
|
await roleManage.add(elite, "User was force updated.");
|
||||||
await roleManage.add(defaultMember, "User was force updated.")
|
await roleManage.add(defaultMember, "User was force updated.");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: usermentioned + "'s rank has been updated to `Elite`.",
|
description: usermentioned + "'s rank has been updated to `Elite`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Member') {
|
if (guildRank === "Member") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User was force updated.")
|
await roleManage.add(guildRole, "User was force updated.");
|
||||||
await roleManage.add(member, "User was force updated.")
|
await roleManage.add(member, "User was force updated.");
|
||||||
await roleManage.add(defaultMember, "User was force updated.")
|
await roleManage.add(defaultMember, "User was force updated.");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: usermentioned + "'s rank has been updated to `Member`.",
|
description: usermentioned + "'s rank has been updated to `Member`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Trial Member') {
|
if (guildRank === "Trial Member") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User was force updated.")
|
await roleManage.add(guildRole, "User was force updated.");
|
||||||
await roleManage.add(trialmember, "User was force updated.")
|
await roleManage.add(trialmember, "User was force updated.");
|
||||||
await roleManage.add(defaultMember, "User was force updated.")
|
await roleManage.add(defaultMember, "User was force updated.");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: usermentioned + "'s rank has been updated to `Trial Member`.",
|
description: usermentioned + "'s rank has been updated to `Trial Member`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,153 +1,161 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const hypixelApiKey = process.env.HYPIXELAPIKEY;
|
const hypixelApiKey = process.env.HYPIXELAPIKEY;
|
||||||
const fetch = require('axios');
|
const fetch = require("axios");
|
||||||
const { color, hypixelGuildID } = require('../config/options.json');
|
const { color, hypixelGuildID } = require("../config/options.json");
|
||||||
const verify = require('../schemas/verifySchema.js')
|
const verify = require("../schemas/verifySchema.js");
|
||||||
const {mongoose} = require('mongoose');
|
const { mongoose } = require("mongoose");
|
||||||
const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json');
|
const {
|
||||||
|
gm,
|
||||||
|
manager,
|
||||||
|
moderator,
|
||||||
|
beast,
|
||||||
|
elite,
|
||||||
|
member,
|
||||||
|
trialmember,
|
||||||
|
guildRole,
|
||||||
|
guildStaff,
|
||||||
|
defaultMember,
|
||||||
|
} = require("../config/roles.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'forceverify',
|
name: "forceverify",
|
||||||
description: 'Force verify a user.',
|
description: "Force verify a user.",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('forceverify')
|
.setName("forceverify")
|
||||||
.setDescription('Force verify a user.')
|
.setDescription("Force verify a user.")
|
||||||
.addUserOption(option =>
|
.addUserOption((option) => option.setName("user").setDescription("The user to force verify."))
|
||||||
option
|
.addStringOption((option) => option.setName("ign").setDescription("The user's in-game name."))
|
||||||
.setName('user')
|
|
||||||
.setDescription('The user to force verify.'))
|
|
||||||
.addStringOption(option =>
|
|
||||||
option
|
|
||||||
.setName('ign')
|
|
||||||
.setDescription('The user\'s in-game name.'))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply();
|
await interaction.deferReply();
|
||||||
|
|
||||||
const user1 = interaction.options.getUser('user');
|
const user1 = interaction.options.getUser("user");
|
||||||
const user = interaction.guild.members.cache.get(user1.id);
|
const user = interaction.guild.members.cache.get(user1.id);
|
||||||
const ign = interaction.options.getString('ign');
|
const ign = interaction.options.getString("ign");
|
||||||
const mod = interaction.user
|
const mod = interaction.user;
|
||||||
|
|
||||||
// const slothPixel = "https://api.slothpixel.me/api/players/";
|
// const slothPixel = "https://api.slothpixel.me/api/players/";
|
||||||
// const guildAPI = "https://api.slothpixel.me/api/guilds/"
|
// const guildAPI = "https://api.slothpixel.me/api/guilds/"
|
||||||
|
|
||||||
const mojang = "https://api.mojang.com/users/profiles/minecraft/"
|
const mojang = "https://api.mojang.com/users/profiles/minecraft/";
|
||||||
const hypixelApi = "https://api.hypixel.net/player"
|
const hypixelApi = "https://api.hypixel.net/player";
|
||||||
const guildApi = "https://api.hypixel.net/guild"
|
const guildApi = "https://api.hypixel.net/guild";
|
||||||
const minotar = "https://minotar.net/helm/";
|
const minotar = "https://minotar.net/helm/";
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
interaction.editReply('Please provide a user to force verify.\nThis can also mean the user is not in the server.')
|
interaction.editReply(
|
||||||
return
|
"Please provide a user to force verify.\nThis can also mean the user is not in the server.",
|
||||||
|
);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const verifyData = await verify.findOne({ userID: user.id })
|
const verifyData = await verify.findOne({ userID: user.id });
|
||||||
|
|
||||||
if (verifyData) {
|
if (verifyData) {
|
||||||
interaction.editReply('That user is already verified.')
|
interaction.editReply("That user is already verified.");
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ign) {
|
if (!ign) {
|
||||||
interaction.editReply('Please provide a player\'s IGN.')
|
interaction.editReply("Please provide a player's IGN.");
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user1.discriminator == "0") {
|
if (user1.discriminator == "0") {
|
||||||
var username = user1.username
|
var username = user1.username;
|
||||||
} else {
|
} else {
|
||||||
var username = user1.username + "#" + user1.discriminator
|
var username = user1.username + "#" + user1.discriminator;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mod.discriminator == "0") {
|
if (mod.discriminator == "0") {
|
||||||
var modName = mod.username
|
var modName = mod.username;
|
||||||
} else {
|
} else {
|
||||||
var modName = mod.username + "#" + mod.discriminator
|
var modName = mod.username + "#" + mod.discriminator;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await fetch(mojang + ign);
|
await fetch(mojang + ign);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
interaction.editReply('That player doesn\'t exist. [Mojang]')
|
interaction.editReply("That player doesn't exist. [Mojang]");
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const userCheck = await fetch(mojang + ign);
|
const userCheck = await fetch(mojang + ign);
|
||||||
const userUUID = userCheck.data.id;
|
const userUUID = userCheck.data.id;
|
||||||
|
|
||||||
const player = hypixelApi + "?key=" + hypixelApiKey + "&uuid=" + userUUID
|
const player = hypixelApi + "?key=" + hypixelApiKey + "&uuid=" + userUUID;
|
||||||
const guild = guildApi + "?key=" + hypixelApiKey + "&player=" + userUUID
|
const guild = guildApi + "?key=" + hypixelApiKey + "&player=" + userUUID;
|
||||||
const head = minotar + ign;
|
const head = minotar + ign;
|
||||||
|
|
||||||
const hypixelCheck = await fetch(player);
|
const hypixelCheck = await fetch(player);
|
||||||
|
|
||||||
if (!hypixelCheck.data.player) {
|
if (!hypixelCheck.data.player) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
description: "<a:questionmark_pink:1130206038008803488> That player hasn't played Hypixel before.",
|
{
|
||||||
color: embedColor
|
description:
|
||||||
}]
|
"<a:questionmark_pink:1130206038008803488> That player hasn't played Hypixel before.",
|
||||||
|
color: embedColor,
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const guildCheck = await fetch(guild)
|
const guildCheck = await fetch(guild);
|
||||||
|
|
||||||
if (!guildCheck.data.guild) {
|
if (!guildCheck.data.guild) {
|
||||||
var responseGuildID = null
|
var responseGuildID = null;
|
||||||
} else {
|
} else {
|
||||||
var responseGuildID = guildCheck.data.guild._id
|
var responseGuildID = guildCheck.data.guild._id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (responseGuildID === hypixelGuildID) {
|
if (responseGuildID === hypixelGuildID) {
|
||||||
const GuildMembers = guildCheck.data.guild.members;
|
const GuildMembers = guildCheck.data.guild.members;
|
||||||
const guildRank = GuildMembers.find(member => member.uuid === hypixelCheck.data.player.uuid).rank;
|
const guildRank = GuildMembers.find((member) => member.uuid === hypixelCheck.data.player.uuid).rank;
|
||||||
|
|
||||||
if (guildRank === "Guild Master") {
|
if (guildRank === "Guild Master") {
|
||||||
await user.roles.add(gm, "User was force verified by " + modName);
|
await user.roles.add(gm, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildRole, "User was force verified by " + modName)
|
await user.roles.add(guildRole, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildStaff, "User was force verified by " + modName)
|
await user.roles.add(guildStaff, "User was force verified by " + modName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === "Manager") {
|
if (guildRank === "Manager") {
|
||||||
await user.roles.add(manager, "User was force verified by " + modName);
|
await user.roles.add(manager, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildRole, "User was force verified by " + modName)
|
await user.roles.add(guildRole, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildStaff, "User was force verified by " + modName)
|
await user.roles.add(guildStaff, "User was force verified by " + modName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === "Moderator") {
|
if (guildRank === "Moderator") {
|
||||||
await user.roles.add(moderator, "User was force verified by " + modName);
|
await user.roles.add(moderator, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildRole, "User was force verified by " + modName)
|
await user.roles.add(guildRole, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildStaff, "User was force verified by " + modName)
|
await user.roles.add(guildStaff, "User was force verified by " + modName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === "Beast") {
|
if (guildRank === "Beast") {
|
||||||
await user.roles.add(beast, "User was force verified by " + modName);
|
await user.roles.add(beast, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildRole, "User was force verified by " + modName)
|
await user.roles.add(guildRole, "User was force verified by " + modName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === "Elite") {
|
if (guildRank === "Elite") {
|
||||||
await user.roles.add(elite, "User was force verified by " + modName);
|
await user.roles.add(elite, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildRole, "User was force verified by " + modName)
|
await user.roles.add(guildRole, "User was force verified by " + modName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === "Member") {
|
if (guildRank === "Member") {
|
||||||
await user.roles.add(member, "User was force verified by " + modName);
|
await user.roles.add(member, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildRole, "User was force verified by " + modName)
|
await user.roles.add(guildRole, "User was force verified by " + modName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === "Trial Member") {
|
if (guildRank === "Trial Member") {
|
||||||
await user.roles.add(trialmember, "User was force verified by " + modName);
|
await user.roles.add(trialmember, "User was force verified by " + modName);
|
||||||
await user.roles.add(guildRole, "User was force verified by " + modName)
|
await user.roles.add(guildRole, "User was force verified by " + modName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,25 +164,31 @@ module.exports = {
|
|||||||
const newVerify = new verify({
|
const newVerify = new verify({
|
||||||
_id: new mongoose.Types.ObjectId(),
|
_id: new mongoose.Types.ObjectId(),
|
||||||
userID: user.id,
|
userID: user.id,
|
||||||
uuid: userUUID
|
uuid: userUUID,
|
||||||
})
|
});
|
||||||
|
|
||||||
await newVerify.save();
|
await newVerify.save();
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: interaction.guild.name,
|
title: interaction.guild.name,
|
||||||
description: "You have successfully force verified `" + username + "` with the account `" + hypixelCheck.data.player.displayname + "`.",
|
description:
|
||||||
|
"You have successfully force verified `" +
|
||||||
|
username +
|
||||||
|
"` with the account `" +
|
||||||
|
hypixelCheck.data.player.displayname +
|
||||||
|
"`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
icon_url: interaction.guild.iconURL(),
|
icon_url: interaction.guild.iconURL(),
|
||||||
text: interaction.guild.name + " | Developed by Taken#0002"
|
text: interaction.guild.name + " | Developed by Taken#0002",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
},
|
||||||
}
|
|
||||||
};
|
};
|
||||||
@@ -1,54 +1,51 @@
|
|||||||
const { SlashCommandBuilder, ChannelType } = require('discord.js');
|
const { SlashCommandBuilder, ChannelType } = require("discord.js");
|
||||||
const { color } = require('../config/options.json');
|
const { color } = require("../config/options.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'help',
|
name: "help",
|
||||||
description: 'Help command',
|
description: "Help command",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder().setName("help").setDescription("Help command").setDMPermission(true),
|
||||||
.setName('help')
|
|
||||||
.setDescription('Help command')
|
|
||||||
.setDMPermission(true),
|
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply({ ephemeral: true });
|
await interaction.deferReply({ ephemeral: true });
|
||||||
|
|
||||||
const embedColor = Number(color.replace('#', '0x'));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title: 'Commands',
|
{
|
||||||
|
title: "Commands",
|
||||||
description: "List of commands",
|
description: "List of commands",
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: '/check',
|
name: "/check",
|
||||||
value: 'Check the stats of a player'
|
value: "Check the stats of a player",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '/reqs',
|
name: "/reqs",
|
||||||
value: 'Check the requirements of the guild'
|
value: "Check the requirements of the guild",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '/update',
|
name: "/update",
|
||||||
value: 'Update\'s your roles'
|
value: "Update's your roles",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '/help',
|
name: "/help",
|
||||||
value: 'Shows this message'
|
value: "Shows this message",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: interaction.guild.iconURL({ dynamic: true })
|
url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
text: interaction.guild.name + ' | Developed by: @Taken#0001'
|
text: interaction.guild.name + " | Developed by: @Taken#0001",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
},
|
||||||
}
|
|
||||||
};
|
};
|
||||||
@@ -1,51 +1,54 @@
|
|||||||
const { SlashCommandBuilder } = require('discord.js');
|
const { SlashCommandBuilder } = require("discord.js");
|
||||||
const { color } = require('../config/options.json');
|
const { color } = require("../config/options.json");
|
||||||
const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require('../config/reqs.json');
|
const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require("../config/reqs.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'reqs',
|
name: "reqs",
|
||||||
description: 'Displays the requirements for the guild.',
|
description: "Displays the requirements for the guild.",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder().setName("reqs").setDescription("Displays the requirements for the guild."),
|
||||||
.setName('reqs')
|
|
||||||
.setDescription('Displays the requirements for the guild.'),
|
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply({ ephemeral: true });
|
await interaction.deferReply({ ephemeral: true });
|
||||||
|
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title: 'Requirements',
|
{
|
||||||
description: '**You must make 100k-150k weekly GEXP.\nAs well as onne of the game stats below**',
|
title: "Requirements",
|
||||||
|
description: "**You must make 100k-150k weekly GEXP.\nAs well as onne of the game stats below**",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: interaction.guild.iconURL()
|
url: interaction.guild.iconURL(),
|
||||||
},
|
},
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: '**Bedwars**',
|
name: "**Bedwars**",
|
||||||
value: '**Stars:** `' + bwstars.toString() +
|
value:
|
||||||
'`\n**Wins:** `' + bwwins.toString() +
|
"**Stars:** `" +
|
||||||
'`\n**FKDR:** `' + bwfkdr.toString() + '`'
|
bwstars.toString() +
|
||||||
|
"`\n**Wins:** `" +
|
||||||
|
bwwins.toString() +
|
||||||
|
"`\n**FKDR:** `" +
|
||||||
|
bwfkdr.toString() +
|
||||||
|
"`",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '**Skywars**',
|
name: "**Skywars**",
|
||||||
value: '**Stars:** `' + swstars.toString() + '`'
|
value: "**Stars:** `" + swstars.toString() + "`",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '**Duels**',
|
name: "**Duels**",
|
||||||
value: '**Wins:** `' + duelswins.toString() +
|
value: "**Wins:** `" + duelswins.toString() + "`\n**WLR:** `" + duelswlr.toString() + "`",
|
||||||
'`\n**WLR:** `' + duelswlr.toString() + '`'
|
},
|
||||||
}
|
|
||||||
],
|
],
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + ' | Developed by: @Taken#0002',
|
text: interaction.guild.name + " | Developed by: @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL()
|
icon_url: interaction.guild.iconURL(),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
}
|
});
|
||||||
}
|
},
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,41 +1,34 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js");
|
||||||
const { color } = require('../config/options.json');
|
const { color } = require("../config/options.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'send',
|
name: "send",
|
||||||
description: 'Send a message to a channel.',
|
description: "Send a message to a channel.",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('send')
|
.setName("send")
|
||||||
.setDescription('Send a message to a channel.')
|
.setDescription("Send a message to a channel.")
|
||||||
.addStringOption(option =>
|
.addStringOption((option) => option.setName("message").setDescription("The message to send."))
|
||||||
option
|
.addChannelOption((option) => option.setName("channel").setDescription("The channel to send the message to."))
|
||||||
.setName('message')
|
|
||||||
.setDescription('The message to send.'))
|
|
||||||
.addChannelOption(option =>
|
|
||||||
option
|
|
||||||
.setName('channel')
|
|
||||||
.setDescription('The channel to send the message to.'))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply({ ephemeral: true });
|
await interaction.deferReply({ ephemeral: true });
|
||||||
|
|
||||||
const message = interaction.options.getString('message');
|
const message = interaction.options.getString("message");
|
||||||
const channel = interaction.options.getChannel('channel');
|
const channel = interaction.options.getChannel("channel");
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
if (!message) {
|
if (!message) {
|
||||||
interaction.editReply({ content: 'Please provide a message to send.', ephemeral: true })
|
interaction.editReply({ content: "Please provide a message to send.", ephemeral: true });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!channel) {
|
if (!channel) {
|
||||||
interaction.editReply({ content: 'Please provide a channel to send the message to.', ephemeral: true })
|
interaction.editReply({ content: "Please provide a channel to send the message to.", ephemeral: true });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
channel.send({
|
channel.send({
|
||||||
@@ -45,13 +38,13 @@ module.exports = {
|
|||||||
description: message,
|
description: message,
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: interaction.guild.iconURL({ dynamic: true })
|
url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: "Developed by @Taken#0002"
|
text: "Developed by @Taken#0002",
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,39 +1,34 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js')
|
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'setnick',
|
name: "setnick",
|
||||||
description: 'Set your nickname',
|
description: "Set your nickname",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('setnick')
|
.setName("setnick")
|
||||||
.setDescription('Set your nickname')
|
.setDescription("Set your nickname")
|
||||||
.addUserOption(option =>
|
.addUserOption((option) =>
|
||||||
option
|
option.setName("user").setDescription("The user to set the nickname for").setRequired(true),
|
||||||
.setName('user')
|
)
|
||||||
.setDescription('The user to set the nickname for')
|
.addStringOption((option) => option.setName("nickname").setDescription("The nickname to set").setRequired(true))
|
||||||
.setRequired(true))
|
|
||||||
.addStringOption(option =>
|
|
||||||
option
|
|
||||||
.setName('nickname')
|
|
||||||
.setDescription('The nickname to set')
|
|
||||||
.setRequired(true))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames)
|
.setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
const user = interaction.options.getUser("user");
|
||||||
const user = interaction.options.getUser('user');
|
const nickname = interaction.options.getString("nickname");
|
||||||
const nickname = interaction.options.getString('nickname');
|
|
||||||
const member = await interaction.guild.members.fetch(user.id);
|
const member = await interaction.guild.members.fetch(user.id);
|
||||||
|
|
||||||
if (!member.manageable) {
|
if (!member.manageable) {
|
||||||
return interaction.reply({ content: 'I cannot set the nickname for this user!', ephemeral: true });
|
return interaction.reply({ content: "I cannot set the nickname for this user!", ephemeral: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
await member.setNickname(nickname, `Set by ${interaction.user.tag}`);
|
await member.setNickname(nickname, `Set by ${interaction.user.tag}`);
|
||||||
|
|
||||||
await interaction.reply({ content: "Set the nickname of " + userMention(member.id) + " to " + nickname, ephemeral: true });
|
await interaction.reply({
|
||||||
|
content: "Set the nickname of " + userMention(member.id) + " to " + nickname,
|
||||||
}
|
ephemeral: true,
|
||||||
}
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,59 +1,57 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js");
|
||||||
const { color } = require('../config/options.json');
|
const { color } = require("../config/options.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'slowmode',
|
name: "slowmode",
|
||||||
description: 'Set the slowmode of a channel.',
|
description: "Set the slowmode of a channel.",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('slowmode')
|
.setName("slowmode")
|
||||||
.setDescription('Set the slowmode of a channel.')
|
.setDescription("Set the slowmode of a channel.")
|
||||||
.addIntegerOption(option =>
|
.addIntegerOption((option) =>
|
||||||
option
|
option.setName("seconds").setDescription("The amount of seconds to set the slowmode to."),
|
||||||
.setName('seconds')
|
)
|
||||||
.setDescription('The amount of seconds to set the slowmode to.'))
|
.addChannelOption((option) => option.setName("channel").setDescription("The channel to set the slowmode of."))
|
||||||
.addChannelOption(option =>
|
|
||||||
option
|
|
||||||
.setName('channel')
|
|
||||||
.setDescription('The channel to set the slowmode of.'))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply({ ephermeral: true });
|
await interaction.deferReply({ ephermeral: true });
|
||||||
|
|
||||||
const seconds = interaction.options.getInteger('seconds') ?? 5
|
const seconds = interaction.options.getInteger("seconds") ?? 5;
|
||||||
const channel = interaction.options.getChannel('channel') ?? interaction.channel
|
const channel = interaction.options.getChannel("channel") ?? interaction.channel;
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
if (seconds > 21600) {
|
if (seconds > 21600) {
|
||||||
await channel.setRateLimitPerUser(21600)
|
await channel.setRateLimitPerUser(21600);
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: `Set the slowmode of ${channel} to 21600 seconds.`,
|
description: `Set the slowmode of ${channel} to 21600 seconds.`,
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by: @Taken#0001",
|
text: interaction.guild.name + " | Developed by: @Taken#0001",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: `Set the slowmode of ${channel} to ${seconds} seconds.`,
|
description: `Set the slowmode of ${channel} to ${seconds} seconds.`,
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by: @Taken#0001",
|
text: interaction.guild.name + " | Developed by: @Taken#0001",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
await channel.setRateLimitPerUser(seconds)
|
});
|
||||||
|
await channel.setRateLimitPerUser(seconds);
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,281 +1,289 @@
|
|||||||
const { SlashCommandBuilder } = require('discord.js');
|
const { SlashCommandBuilder } = require("discord.js");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const hypixelApiKey = process.env.HYPIXELAPIKEY;
|
const hypixelApiKey = process.env.HYPIXELAPIKEY;
|
||||||
const fetch = require('axios');
|
const fetch = require("axios");
|
||||||
const verify = require('../schemas/verifySchema.js')
|
const verify = require("../schemas/verifySchema.js");
|
||||||
const { color, hypixelGuildID } = require('../config/options.json');
|
const { color, hypixelGuildID } = require("../config/options.json");
|
||||||
const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json');
|
const {
|
||||||
|
gm,
|
||||||
|
manager,
|
||||||
|
moderator,
|
||||||
|
beast,
|
||||||
|
elite,
|
||||||
|
member,
|
||||||
|
trialmember,
|
||||||
|
guildRole,
|
||||||
|
guildStaff,
|
||||||
|
defaultMember,
|
||||||
|
} = require("../config/roles.json");
|
||||||
const removeThese = [gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff];
|
const removeThese = [gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff];
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'update',
|
name: "update",
|
||||||
description: 'Update your guild rank.',
|
description: "Update your guild rank.",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder().setName("update").setDescription("Update your guild rank.").setDMPermission(false),
|
||||||
.setName('update')
|
|
||||||
.setDescription('Update your guild rank.')
|
|
||||||
.setDMPermission(false),
|
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply();
|
await interaction.deferReply();
|
||||||
|
|
||||||
const user1 = interaction.user;
|
const user1 = interaction.user;
|
||||||
const user = interaction.guild.members.cache.get(user1.id);
|
const user = interaction.guild.members.cache.get(user1.id);
|
||||||
const verifyData = await verify.findOne({ userID: user.id })
|
const verifyData = await verify.findOne({ userID: user.id });
|
||||||
const roleManage = user.roles;
|
const roleManage = user.roles;
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
if (!verifyData) {
|
if (!verifyData) {
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "You are not verified. Please run `/verify` to verify yourself",
|
description: "You are not verified. Please run `/verify` to verify yourself",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const mojangAPI = "https://api.mojang.com/user/profile/"
|
const mojangAPI = "https://api.mojang.com/user/profile/";
|
||||||
const guildAPI = "https://api.hypixel.net/guild"
|
const guildAPI = "https://api.hypixel.net/guild";
|
||||||
const minotar = "https://minotar.net/helm/";
|
const minotar = "https://minotar.net/helm/";
|
||||||
const userCheck = await fetch(mojangAPI + verifyData.uuid);
|
const userCheck = await fetch(mojangAPI + verifyData.uuid);
|
||||||
const head = minotar + userCheck.data.name;
|
const head = minotar + userCheck.data.name;
|
||||||
const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + verifyData.uuid
|
const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + verifyData.uuid;
|
||||||
const guildCheck = await fetch(guild);
|
const guildCheck = await fetch(guild);
|
||||||
|
|
||||||
if (!guildCheck.data.guild) {
|
if (!guildCheck.data.guild) {
|
||||||
var guildID = null
|
var guildID = null;
|
||||||
} else {
|
} else {
|
||||||
var guildID = guildCheck.data.guild._id
|
var guildID = guildCheck.data.guild._id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildID !== hypixelGuildID) {
|
if (guildID !== hypixelGuildID) {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(defaultMember, "User used the update command")
|
await roleManage.add(defaultMember, "User used the update command");
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Updated your roles to `Default Member`",
|
description: "Updated your roles to `Default Member`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildID === hypixelGuildID) {
|
if (guildID === hypixelGuildID) {
|
||||||
|
|
||||||
const GuildMembers = guildCheck.data.guild.members;
|
const GuildMembers = guildCheck.data.guild.members;
|
||||||
const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank;
|
const guildRank = GuildMembers.find((member) => member.uuid === verifyData.uuid).rank;
|
||||||
|
|
||||||
if (guildRank === 'Guild Master') {
|
|
||||||
|
|
||||||
|
if (guildRank === "Guild Master") {
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User used the update command")
|
await roleManage.add(guildRole, "User used the update command");
|
||||||
await roleManage.add(guildStaff, "User used the update command")
|
await roleManage.add(guildStaff, "User used the update command");
|
||||||
await roleManage.add(gm, "User used the update command")
|
await roleManage.add(gm, "User used the update command");
|
||||||
await roleManage.add(defaultMember, "User used the update command")
|
await roleManage.add(defaultMember, "User used the update command");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your rank has been updated to `Guild Master`",
|
description: "Your rank has been updated to `Guild Master`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Manager') {
|
if (guildRank === "Manager") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User used the update command")
|
await roleManage.add(guildRole, "User used the update command");
|
||||||
await roleManage.add(guildStaff, "User used the update command")
|
await roleManage.add(guildStaff, "User used the update command");
|
||||||
await roleManage.add(manager, "User used the update command")
|
await roleManage.add(manager, "User used the update command");
|
||||||
await roleManage.add(defaultMember, "User used the update command")
|
await roleManage.add(defaultMember, "User used the update command");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your rank has been updated to `Manager`",
|
description: "Your rank has been updated to `Manager`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Moderator') {
|
if (guildRank === "Moderator") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User used the update command")
|
await roleManage.add(guildRole, "User used the update command");
|
||||||
await roleManage.add(guildStaff, "User used the update command")
|
await roleManage.add(guildStaff, "User used the update command");
|
||||||
await roleManage.add(moderator, "User used the update command")
|
await roleManage.add(moderator, "User used the update command");
|
||||||
await roleManage.add(defaultMember, "User used the update command")
|
await roleManage.add(defaultMember, "User used the update command");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your rank has been updated to `Moderator`",
|
description: "Your rank has been updated to `Moderator`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Beast') {
|
if (guildRank === "Beast") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User used the update command")
|
await roleManage.add(guildRole, "User used the update command");
|
||||||
await roleManage.add(beast, "User used the update command")
|
await roleManage.add(beast, "User used the update command");
|
||||||
await roleManage.add(defaultMember, "User used the update command")
|
await roleManage.add(defaultMember, "User used the update command");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your rank has been updated to `Beast`.",
|
description: "Your rank has been updated to `Beast`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Elite') {
|
if (guildRank === "Elite") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User used the update command")
|
await roleManage.add(guildRole, "User used the update command");
|
||||||
await roleManage.add(elite, "User used the update command")
|
await roleManage.add(elite, "User used the update command");
|
||||||
await roleManage.add(defaultMember, "User used the update command")
|
await roleManage.add(defaultMember, "User used the update command");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your rank has been updated to `Elite`.",
|
description: "Your rank has been updated to `Elite`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Member') {
|
if (guildRank === "Member") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User used the update command")
|
await roleManage.add(guildRole, "User used the update command");
|
||||||
await roleManage.add(member, "User used the update command")
|
await roleManage.add(member, "User used the update command");
|
||||||
await roleManage.add(defaultMember, "User used the update command")
|
await roleManage.add(defaultMember, "User used the update command");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your rank has been updated to `Member`.",
|
description: "Your rank has been updated to `Member`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildRank === 'Trial Member') {
|
if (guildRank === "Trial Member") {
|
||||||
|
|
||||||
for (let i = 0; i < removeThese.length; i++) {
|
for (let i = 0; i < removeThese.length; i++) {
|
||||||
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
|
await roleManage.remove(removeThese[i], "Auto role removal. (Update)");
|
||||||
}
|
}
|
||||||
|
|
||||||
await roleManage.add(guildRole, "User used the update command")
|
await roleManage.add(guildRole, "User used the update command");
|
||||||
await roleManage.add(trialmember, "User used the update command")
|
await roleManage.add(trialmember, "User used the update command");
|
||||||
await roleManage.add(defaultMember, "User used the update command")
|
await roleManage.add(defaultMember, "User used the update command");
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your rank has been updated to `Trial Member`.",
|
description: "Your rank has been updated to `Trial Member`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
}
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
@@ -5,7 +5,18 @@ const fetch = require("axios");
|
|||||||
const { color, hypixelGuildID } = require("../config/options.json");
|
const { color, hypixelGuildID } = require("../config/options.json");
|
||||||
const verify = require("../schemas/verifySchema.js");
|
const verify = require("../schemas/verifySchema.js");
|
||||||
const mongoose = require("mongoose");
|
const mongoose = require("mongoose");
|
||||||
const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json");
|
const {
|
||||||
|
gm,
|
||||||
|
manager,
|
||||||
|
moderator,
|
||||||
|
beast,
|
||||||
|
elite,
|
||||||
|
member,
|
||||||
|
trialmember,
|
||||||
|
guildRole,
|
||||||
|
guildStaff,
|
||||||
|
defaultMember,
|
||||||
|
} = require("../config/roles.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "verify",
|
name: "verify",
|
||||||
@@ -15,21 +26,18 @@ module.exports = {
|
|||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName("verify")
|
.setName("verify")
|
||||||
.setDescription("Verify yourself as a member of the server.")
|
.setDescription("Verify yourself as a member of the server.")
|
||||||
.addStringOption((option) =>
|
.addStringOption((option) => option.setName("ign").setDescription("Your in-game name."))
|
||||||
option
|
|
||||||
.setName("ign")
|
|
||||||
.setDescription("Your in-game name."))
|
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
await interaction.deferReply();
|
await interaction.deferReply();
|
||||||
|
|
||||||
const user1 = interaction.user
|
const user1 = interaction.user;
|
||||||
const user = interaction.guild.members.cache.get(user1.id);
|
const user = interaction.guild.members.cache.get(user1.id);
|
||||||
const ign = interaction.options.getString("ign");
|
const ign = interaction.options.getString("ign");
|
||||||
const mojang = "https://api.mojang.com/users/profiles/minecraft/";
|
const mojang = "https://api.mojang.com/users/profiles/minecraft/";
|
||||||
const hypixel = "https://api.hypixel.net/player"
|
const hypixel = "https://api.hypixel.net/player";
|
||||||
const guildAPI = "https://api.hypixel.net/guild"
|
const guildAPI = "https://api.hypixel.net/guild";
|
||||||
const minotar = "https://minotar.net/helm/";
|
const minotar = "https://minotar.net/helm/";
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
const head = minotar + ign;
|
const head = minotar + ign;
|
||||||
@@ -37,17 +45,19 @@ module.exports = {
|
|||||||
const verifyData = await verify.findOne({ userID: user.id });
|
const verifyData = await verify.findOne({ userID: user.id });
|
||||||
|
|
||||||
if (verifyData) {
|
if (verifyData) {
|
||||||
interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.")
|
interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ign) {
|
if (!ign) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "<a:cross_a:1087808606897983539> Please provide your in-game name.",
|
description: "<a:cross_a:1087808606897983539> Please provide your in-game name.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,10 +65,12 @@ module.exports = {
|
|||||||
await fetch(mojang + ign);
|
await fetch(mojang + ign);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "<a:questionmark_pink:1130206038008803488> That player does not exist.",
|
description: "<a:questionmark_pink:1130206038008803488> That player does not exist.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -66,64 +78,79 @@ module.exports = {
|
|||||||
const userCheck = await fetch(mojang + ign);
|
const userCheck = await fetch(mojang + ign);
|
||||||
const userUUID = userCheck.data.id;
|
const userUUID = userCheck.data.id;
|
||||||
|
|
||||||
const player = hypixel + "?key=" + hypixelApiKey + "&uuid=" + userUUID
|
const player = hypixel + "?key=" + hypixelApiKey + "&uuid=" + userUUID;
|
||||||
const stats = await fetch(player);
|
const stats = await fetch(player);
|
||||||
|
|
||||||
if (!stats.data.player) {
|
if (!stats.data.player) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
description: "<a:questionmark_pink:1130206038008803488> That player hasn't played Hypixel before.",
|
{
|
||||||
color: embedColor
|
description:
|
||||||
}]
|
"<a:questionmark_pink:1130206038008803488> That player hasn't played Hypixel before.",
|
||||||
|
color: embedColor,
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user1.discriminator === "0") {
|
if (user1.discriminator === "0") {
|
||||||
var username = user1.username
|
var username = user1.username;
|
||||||
} else {
|
} else {
|
||||||
var username = user1.username + "#" + user1.discriminator
|
var username = user1.username + "#" + user1.discriminator;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!stats.data.player.socialMedia.links.DISCORD) {
|
if (!stats.data.player.socialMedia.links.DISCORD) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
description: "<a:cross_a:1087808606897983539> There is no Discord account linked to `" + stats.data.player.displayname + "`.\n\n" +
|
description:
|
||||||
"**Please set your Discord tag on hypixel to `" + username + "` and try again.**",
|
"<a:cross_a:1087808606897983539> There is no Discord account linked to `" +
|
||||||
color: embedColor
|
stats.data.player.displayname +
|
||||||
}
|
"`.\n\n" +
|
||||||
]
|
"**Please set your Discord tag on hypixel to `" +
|
||||||
|
username +
|
||||||
|
"` and try again.**",
|
||||||
|
color: embedColor,
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const linkedDiscord = stats.data.player.socialMedia.links.DISCORD
|
const linkedDiscord = stats.data.player.socialMedia.links.DISCORD;
|
||||||
|
|
||||||
if (linkedDiscord !== username) {
|
if (linkedDiscord !== username) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
description: "<a:cross_a:1087808606897983539> The Discord account linked to `" + stats.data.player.displayname + "` is currently `" + linkedDiscord + "`\n\n" +
|
description:
|
||||||
"**Please set your Discord tag on hypixel to `" + username + "` and try again.**",
|
"<a:cross_a:1087808606897983539> The Discord account linked to `" +
|
||||||
color: embedColor
|
stats.data.player.displayname +
|
||||||
}
|
"` is currently `" +
|
||||||
]
|
linkedDiscord +
|
||||||
|
"`\n\n" +
|
||||||
|
"**Please set your Discord tag on hypixel to `" +
|
||||||
|
username +
|
||||||
|
"` and try again.**",
|
||||||
|
color: embedColor,
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + userUUID
|
const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + userUUID;
|
||||||
const guildCheck = await fetch(guild);
|
const guildCheck = await fetch(guild);
|
||||||
|
|
||||||
if (!guildCheck.data.guild) {
|
if (!guildCheck.data.guild) {
|
||||||
var guildID = null
|
var guildID = null;
|
||||||
} else {
|
} else {
|
||||||
var guildID = guildCheck.data.guild._id
|
var guildID = guildCheck.data.guild._id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guildID === hypixelGuildID) {
|
if (guildID === hypixelGuildID) {
|
||||||
const GuildMembers = guildCheck.data.guild.members
|
const GuildMembers = guildCheck.data.guild.members;
|
||||||
const guildRank = GuildMembers.find((member) => member.uuid === stats.data.player.uuid).rank;
|
const guildRank = GuildMembers.find((member) => member.uuid === stats.data.player.uuid).rank;
|
||||||
|
|
||||||
if (guildRank === "Guild Master" && guildID === hypixelGuildID) {
|
if (guildRank === "Guild Master" && guildID === hypixelGuildID) {
|
||||||
@@ -170,7 +197,7 @@ module.exports = {
|
|||||||
const newVerify = new verify({
|
const newVerify = new verify({
|
||||||
_id: new mongoose.Types.ObjectId(),
|
_id: new mongoose.Types.ObjectId(),
|
||||||
userID: user.id,
|
userID: user.id,
|
||||||
uuid: userUUID
|
uuid: userUUID,
|
||||||
});
|
});
|
||||||
|
|
||||||
await newVerify.save();
|
await newVerify.save();
|
||||||
@@ -179,17 +206,22 @@ module.exports = {
|
|||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
title: interaction.guild.name,
|
title: interaction.guild.name,
|
||||||
description: "You have successfully verified `" + username + "` with the account `" + stats.data.player.displayname + "`.",
|
description:
|
||||||
|
"You have successfully verified `" +
|
||||||
|
username +
|
||||||
|
"` with the account `" +
|
||||||
|
stats.data.player.displayname +
|
||||||
|
"`.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
icon_url: interaction.guild.iconURL(),
|
icon_url: interaction.guild.iconURL(),
|
||||||
text: interaction.guild.name + " | Developed by Taken#0002"
|
text: interaction.guild.name + " | Developed by Taken#0002",
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,38 +1,35 @@
|
|||||||
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js');
|
const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js");
|
||||||
const { color } = require('../config/options.json');
|
const { color } = require("../config/options.json");
|
||||||
const verify = require('../schemas/verifySchema.js');
|
const verify = require("../schemas/verifySchema.js");
|
||||||
const fetch = require('axios');
|
const fetch = require("axios");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'whois',
|
name: "whois",
|
||||||
description: 'Get\'s the ign of a user.',
|
description: "Get's the ign of a user.",
|
||||||
type: 'slash',
|
type: "slash",
|
||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('whois')
|
.setName("whois")
|
||||||
.setDescription('Get\'s the ign of a user.')
|
.setDescription("Get's the ign of a user.")
|
||||||
.addUserOption(option =>
|
.addUserOption((option) =>
|
||||||
option
|
option.setName("user").setDescription("The user to get the ign of.").setRequired(true),
|
||||||
.setName('user')
|
)
|
||||||
.setDescription('The user to get the ign of.')
|
|
||||||
.setRequired(true))
|
|
||||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
||||||
.setDMPermission(false),
|
.setDMPermission(false),
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply();
|
await interaction.deferReply();
|
||||||
|
|
||||||
const user = interaction.options.getUser('user');
|
const user = interaction.options.getUser("user");
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
const mojang = "https://api.mojang.com/user/profile/"
|
const mojang = "https://api.mojang.com/user/profile/";
|
||||||
const minotar = "https://minotar.net/helm/";
|
const minotar = "https://minotar.net/helm/";
|
||||||
|
|
||||||
const verifiedUser = await verify.findOne({ userID: user.id });
|
const verifiedUser = await verify.findOne({ userID: user.id });
|
||||||
|
|
||||||
if (!verifiedUser) {
|
if (!verifiedUser) {
|
||||||
interaction.editReply({ content: 'This user has not verified their account.' });
|
interaction.editReply({ content: "This user has not verified their account." });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const userCheck = await fetch(mojang + verifiedUser.uuid);
|
const userCheck = await fetch(mojang + verifiedUser.uuid);
|
||||||
@@ -40,19 +37,20 @@ module.exports = {
|
|||||||
const head = minotar + ign;
|
const head = minotar + ign;
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: interaction.guild.name,
|
title: interaction.guild.name,
|
||||||
description: "**User:** " + userMention(user.id) + "\n**IGN:** " + ign,
|
description: "**User:** " + userMention(user.id) + "\n**IGN:** " + ign,
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: head
|
url: head,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by: @Taken#0002",
|
text: interaction.guild.name + " | Developed by: @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL({ dynamic: true })
|
icon_url: interaction.guild.iconURL({ dynamic: true }),
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
version: '1.0'
|
version: "1.0"
|
||||||
services:
|
services:
|
||||||
illegitimate:
|
illegitimate:
|
||||||
image: "illegitimate-bot:latest"
|
image: "illegitimate-bot:latest"
|
||||||
|
|||||||
@@ -1,30 +1,29 @@
|
|||||||
const { color } = require('../../config/options.json');
|
const { color } = require("../../config/options.json");
|
||||||
const fetch = require('axios');
|
const fetch = require("axios");
|
||||||
const guildapp = require('../../schemas/guildAppSchema.js');
|
const guildapp = require("../../schemas/guildAppSchema.js");
|
||||||
const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require('../../config/reqs.json');
|
const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require("../../config/reqs.json");
|
||||||
const env = require("dotenv").config();
|
const env = require("dotenv").config();
|
||||||
const hypixelApiKey = process.env.HYPIXELAPIKEY;
|
const hypixelApiKey = process.env.HYPIXELAPIKEY;
|
||||||
const { getExactLevel, skywarsLevel, getLevelForExp } = require("../../utils/functions.js");
|
const { getExactLevel, skywarsLevel, getLevelForExp } = require("../../utils/functions.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'checkstats',
|
name: "checkstats",
|
||||||
description: 'Check your stats.',
|
description: "Check your stats.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply();
|
await interaction.deferReply();
|
||||||
|
|
||||||
const message = interaction.message;
|
const message = interaction.message;
|
||||||
const embed = message.embeds[0];
|
const embed = message.embeds[0];
|
||||||
const applicantId = embed.footer.text.split(" ")[1]
|
const applicantId = embed.footer.text.split(" ")[1];
|
||||||
|
|
||||||
const guildappdata = await guildapp.findOne({ userID: applicantId })
|
const guildappdata = await guildapp.findOne({ userID: applicantId });
|
||||||
const uuid = guildappdata.uuid;
|
const uuid = guildappdata.uuid;
|
||||||
|
|
||||||
const mojang = "https://api.mojang.com/user/profile/"
|
const mojang = "https://api.mojang.com/user/profile/";
|
||||||
const hypixel = "https://api.hypixel.net/player"
|
const hypixel = "https://api.hypixel.net/player";
|
||||||
const guildAPI = "https://api.hypixel.net/guild"
|
const guildAPI = "https://api.hypixel.net/guild";
|
||||||
const minotar = "https://minotar.net/helm/";
|
const minotar = "https://minotar.net/helm/";
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
@@ -32,15 +31,17 @@ module.exports = {
|
|||||||
const ign = userCheck.data.name;
|
const ign = userCheck.data.name;
|
||||||
const head = minotar + ign;
|
const head = minotar + ign;
|
||||||
|
|
||||||
const player = hypixel + "?key=" + hypixelApiKey + "&uuid=" + uuid
|
const player = hypixel + "?key=" + hypixelApiKey + "&uuid=" + uuid;
|
||||||
const stats = await fetch(player);
|
const stats = await fetch(player);
|
||||||
|
|
||||||
if (!stats.data.player) {
|
if (!stats.data.player) {
|
||||||
interaction.editReply({
|
interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "That player hasn't played Hypixel before.",
|
description: "That player hasn't played Hypixel before.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -48,19 +49,19 @@ module.exports = {
|
|||||||
const rank2 = stats.data.player.newPackageRank;
|
const rank2 = stats.data.player.newPackageRank;
|
||||||
const monthlyRank = stats.data.player.monthlyPackageRank;
|
const monthlyRank = stats.data.player.monthlyPackageRank;
|
||||||
|
|
||||||
if (rank2 === 'VIP') {
|
if (rank2 === "VIP") {
|
||||||
var rank = "[VIP] "
|
var rank = "[VIP] ";
|
||||||
} else if (rank2 === 'VIP_PLUS') {
|
} else if (rank2 === "VIP_PLUS") {
|
||||||
var rank = "[VIP+] "
|
var rank = "[VIP+] ";
|
||||||
} else if (rank2 === 'MVP') {
|
} else if (rank2 === "MVP") {
|
||||||
var rank = "[MVP] "
|
var rank = "[MVP] ";
|
||||||
} else if (rank2 === 'MVP_PLUS' && monthlyRank === 'NONE') {
|
} else if (rank2 === "MVP_PLUS" && monthlyRank === "NONE") {
|
||||||
var rank = "[MVP+] "
|
var rank = "[MVP+] ";
|
||||||
} else if (rank2 === 'MVP_PLUS' && monthlyRank === 'SUPERSTAR') {
|
} else if (rank2 === "MVP_PLUS" && monthlyRank === "SUPERSTAR") {
|
||||||
var rank = "[MVP++] "
|
var rank = "[MVP++] ";
|
||||||
}
|
}
|
||||||
|
|
||||||
const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + uuid
|
const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + uuid;
|
||||||
const guildCheck = await fetch(guild);
|
const guildCheck = await fetch(guild);
|
||||||
|
|
||||||
if (!guildCheck.data.guild) {
|
if (!guildCheck.data.guild) {
|
||||||
@@ -70,11 +71,11 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!guildCheck.data.guild) {
|
if (!guildCheck.data.guild) {
|
||||||
var guildTag = ""
|
var guildTag = "";
|
||||||
} else if (!guildCheck.data.guild.tag) {
|
} else if (!guildCheck.data.guild.tag) {
|
||||||
var guildTag = ""
|
var guildTag = "";
|
||||||
} else {
|
} else {
|
||||||
var guildTag = " [" + guildCheck.data.guild.tag + "]"
|
var guildTag = " [" + guildCheck.data.guild.tag + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
//bedwars level
|
//bedwars level
|
||||||
@@ -96,9 +97,9 @@ module.exports = {
|
|||||||
//skywars wins
|
//skywars wins
|
||||||
const hsswwins = stats.data.player.stats.SkyWars.wins;
|
const hsswwins = stats.data.player.stats.SkyWars.wins;
|
||||||
// dueks kdr
|
// dueks kdr
|
||||||
const hsduelskills = stats.data.player.stats.Duels.kills
|
const hsduelskills = stats.data.player.stats.Duels.kills;
|
||||||
const hsduelsdeaths = stats.data.player.stats.Duels.deaths
|
const hsduelsdeaths = stats.data.player.stats.Duels.deaths;
|
||||||
const hsduelskd = hsduelskills / hsduelsdeaths
|
const hsduelskd = hsduelskills / hsduelsdeaths;
|
||||||
// duels wins
|
// duels wins
|
||||||
const hsduelswins = stats.data.player.stats.Duels.wins;
|
const hsduelswins = stats.data.player.stats.Duels.wins;
|
||||||
// duels wlr
|
// duels wlr
|
||||||
@@ -109,72 +110,95 @@ module.exports = {
|
|||||||
const level = getExactLevel(hypixelExp);
|
const level = getExactLevel(hypixelExp);
|
||||||
|
|
||||||
if (hsbwstars < bwstars || hsbwfkdr < bwfkdr || hsbwwins < bwwins) {
|
if (hsbwstars < bwstars || hsbwfkdr < bwfkdr || hsbwwins < bwwins) {
|
||||||
var bwtitle = "<a:cross_a:1087808606897983539> This player does not meet the BedWars requirements."
|
var bwtitle = "<a:cross_a:1087808606897983539> This player does not meet the BedWars requirements.";
|
||||||
} else {
|
} else {
|
||||||
var bwtitle = "<a:check_a:1087808632172847134> This player meets the BedWars requirements."
|
var bwtitle = "<a:check_a:1087808632172847134> This player meets the BedWars requirements.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hsswstars < swstars) {
|
if (hsswstars < swstars) {
|
||||||
var swtitle = "<a:cross_a:1087808606897983539> This player does not meet the SkyWars requirements."
|
var swtitle = "<a:cross_a:1087808606897983539> This player does not meet the SkyWars requirements.";
|
||||||
} else {
|
} else {
|
||||||
var swtitle = "<a:check_a:1087808632172847134> This player meets the SkyWars requirements."
|
var swtitle = "<a:check_a:1087808632172847134> This player meets the SkyWars requirements.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hsduelswins < duelswins || hsduelswlr < duelswlr) {
|
if (hsduelswins < duelswins || hsduelswlr < duelswlr) {
|
||||||
var duelstitle = "<a:cross_a:1087808606897983539> This player does not meet the Duels requirements."
|
var duelstitle = "<a:cross_a:1087808606897983539> This player does not meet the Duels requirements.";
|
||||||
} else {
|
} else {
|
||||||
var duelstitle = "<a:check_a:1087808632172847134> This player meets the Duels requirements."
|
var duelstitle = "<a:check_a:1087808632172847134> This player meets the Duels requirements.";
|
||||||
}
|
}
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: rank + stats.data.player.displayname + guildTag,
|
title: rank + stats.data.player.displayname + guildTag,
|
||||||
description: "**Network Level:** `" +
|
description:
|
||||||
level.toFixed(2).toString() + "`\n" +
|
"**Network Level:** `" +
|
||||||
"**Current Guild:** `" + guildName + "`",
|
level.toFixed(2).toString() +
|
||||||
|
"`\n" +
|
||||||
|
"**Current Guild:** `" +
|
||||||
|
guildName +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: { url: head },
|
thumbnail: { url: head },
|
||||||
footer: {
|
footer: {
|
||||||
text: interaction.guild.name + " | Developed by @Taken#0002",
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
||||||
icon_url: interaction.guild.iconURL()
|
icon_url: interaction.guild.iconURL(),
|
||||||
},
|
},
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: bwtitle,
|
name: bwtitle,
|
||||||
value: "**➺ Stars:** `" +
|
value:
|
||||||
hsbwstars.toFixed(2).toString() + " / " +
|
"**➺ Stars:** `" +
|
||||||
bwstars.toString() + "`\n" +
|
hsbwstars.toFixed(2).toString() +
|
||||||
|
" / " +
|
||||||
|
bwstars.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ FKDR:** `" +
|
"**➺ FKDR:** `" +
|
||||||
hsbwfkdr.toFixed(2).toString() +
|
hsbwfkdr.toFixed(2).toString() +
|
||||||
" / " + bwfkdr.toString() + "`\n" +
|
" / " +
|
||||||
|
bwfkdr.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ Wins:** `" +
|
"**➺ Wins:** `" +
|
||||||
hsbwwins.toString() + " / " +
|
hsbwwins.toString() +
|
||||||
bwwins.toString() + "`"
|
" / " +
|
||||||
|
bwwins.toString() +
|
||||||
|
"`",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: swtitle,
|
name: swtitle,
|
||||||
value:
|
value:
|
||||||
"**➺ Stars:** `" +
|
"**➺ Stars:** `" +
|
||||||
hsswstars.toFixed(2).toString() +
|
hsswstars.toFixed(2).toString() +
|
||||||
" / " + swstars.toString() + "`\n" +
|
" / " +
|
||||||
|
swstars.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ KDR:** `" +
|
"**➺ KDR:** `" +
|
||||||
hsswkd.toFixed(2).toString() + "`\n" +
|
hsswkd.toFixed(2).toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ Wins:** `" +
|
"**➺ Wins:** `" +
|
||||||
hsswwins.toString() + "`"
|
hsswwins.toString() +
|
||||||
|
"`",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: duelstitle,
|
name: duelstitle,
|
||||||
value: "**➺ Wins:** `" +
|
value:
|
||||||
|
"**➺ Wins:** `" +
|
||||||
hsduelswins.toString() +
|
hsduelswins.toString() +
|
||||||
" / " + duelswins.toString() + "`\n" +
|
" / " +
|
||||||
|
duelswins.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ WLR:** `" +
|
"**➺ WLR:** `" +
|
||||||
hsduelswlr.toFixed(2).toString() +
|
hsduelswlr.toFixed(2).toString() +
|
||||||
" / " + duelswlr.toString() + "`\n" +
|
" / " +
|
||||||
|
duelswlr.toString() +
|
||||||
|
"`\n" +
|
||||||
"**➺ KDR:** `" +
|
"**➺ KDR:** `" +
|
||||||
hsduelskd.toFixed(2).toString() + "`"
|
hsduelskd.toFixed(2).toString() +
|
||||||
}
|
"`",
|
||||||
]
|
},
|
||||||
}]
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,502 +1,572 @@
|
|||||||
const { ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require('discord.js');
|
const { 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 { applicationsChannel } = 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");
|
||||||
const mongoose = require('mongoose');
|
const mongoose = require("mongoose");
|
||||||
const guildapp = require('../../schemas/guildAppSchema.js');
|
const guildapp = require("../../schemas/guildAppSchema.js");
|
||||||
const fetch = require('axios');
|
const fetch = require("axios");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'guildapply',
|
name: "guildapply",
|
||||||
description: 'Guild application button.',
|
description: "Guild application button.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
const user = interaction.user;
|
const user = interaction.user;
|
||||||
const guild = interaction.guild;
|
const guild = interaction.guild;
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
const mojangAPI = "https://api.mojang.com/users/profiles/minecraft/"
|
const mojangAPI = "https://api.mojang.com/users/profiles/minecraft/";
|
||||||
|
|
||||||
const userRoles = guild.members.cache.get(user.id).roles.cache.map(role => role.id);
|
const userRoles = guild.members.cache.get(user.id).roles.cache.map((role) => role.id);
|
||||||
|
|
||||||
if (interaction.customId === 'guildapply') {
|
|
||||||
|
|
||||||
|
if (interaction.customId === "guildapply") {
|
||||||
await interaction.deferReply({ ephemeral: true });
|
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 application = await guildapp.findOne({ userID: user.id });
|
const application = await guildapp.findOne({ userID: user.id });
|
||||||
|
|
||||||
if (application) {
|
if (application) {
|
||||||
await interaction.editReply({ content: "You already have an application in progress.", ephemeral: true });
|
await interaction.editReply({
|
||||||
return
|
content: "You already have an application in progress.",
|
||||||
|
ephemeral: true,
|
||||||
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tooLong = new EmbedBuilder()
|
const tooLong = new EmbedBuilder().setDescription("You took too long to respond.").setColor(embedColor);
|
||||||
.setDescription("You took too long to respond.")
|
|
||||||
.setColor(embedColor)
|
|
||||||
const cancelled = new EmbedBuilder()
|
const cancelled = new EmbedBuilder()
|
||||||
.setDescription("You have cancelled your application.")
|
.setDescription("You have cancelled your application.")
|
||||||
.setColor(embedColor)
|
.setColor(embedColor);
|
||||||
const attachments = new EmbedBuilder()
|
const attachments = new EmbedBuilder()
|
||||||
.setDescription("You have uploaded an attachment. Please do not upload images, videos, or GIFS.")
|
.setDescription("You have uploaded an attachment. Please do not upload images, videos, or GIFS.")
|
||||||
.setColor(embedColor)
|
.setColor(embedColor);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title: 'Guild Application',
|
{
|
||||||
description: "Please answer the following questions to apply for the guild.\n" +
|
title: "Guild Application",
|
||||||
|
description:
|
||||||
|
"Please answer the following questions to apply for the guild.\n" +
|
||||||
"If you wish to cancel your application, please press type `cancel` at any time.\n" +
|
"If you wish to cancel your application, please press type `cancel` at any time.\n" +
|
||||||
"If you wish to proceed with your application, please type `yes`.\n\n" +
|
"If you wish to proceed with your application, please type `yes`.\n\n" +
|
||||||
"**Do not upload images, videos, or GIFS.**\n" +
|
"**Do not upload images, videos, or GIFS.**\n" +
|
||||||
"You have a minute to respond to this message.",
|
"You have a minute to respond to this message.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await interaction.editReply({ content: "Please enable your DMs.", ephemeral: true });
|
await interaction.editReply({ content: "Please enable your DMs.", ephemeral: true });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await interaction.editReply({ content: "Please check your DMs.", ephemeral: true})
|
await interaction.editReply({ content: "Please check your DMs.", ephemeral: true });
|
||||||
|
|
||||||
|
|
||||||
const input = await user.dmChannel.awaitMessages({
|
const input = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60
|
time: 1000 * 60,
|
||||||
});
|
});
|
||||||
if (input.first().attachments.size > 0) {
|
if (input.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (input.size === 0) {
|
if (input.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] });
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (input.first().content.toLowerCase() !== 'yes') {
|
if (input.first().content.toLowerCase() !== "yes") {
|
||||||
await user.send({ embeds: [cancelled]} );
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// first question
|
// first question
|
||||||
const question1 = await user.send({
|
const question1 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 1**",
|
{
|
||||||
description: qu1 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + ignM + "`",
|
title: "**Question 1**",
|
||||||
|
description:
|
||||||
|
qu1 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
ignM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 5 minutes to respond to this message."
|
text: "You have 5 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer1 = await user.dmChannel.awaitMessages({
|
const answer1 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 5,
|
time: 1000 * 60 * 5,
|
||||||
});
|
});
|
||||||
if (answer1.first().attachments.size > 0) {
|
if (answer1.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer1.first().content > 16) {
|
if (answer1.first().content > 16) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 16.",
|
description: "Max character limit is 16.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
await fetch(mojangAPI + answer1.first().content)
|
await fetch(mojangAPI + answer1.first().content);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
description: "That is not a valid Minecraft username.\n" +
|
{
|
||||||
"Application cancelled.",
|
description: "That is not a valid Minecraft username.\n" + "Application cancelled.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
if (answer1.size === 0) {
|
if (answer1.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer1.first().content.toLowerCase() === 'cancel') {
|
if (answer1.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer1_1 = answer1.first().content
|
const answer1_1 = answer1.first().content;
|
||||||
|
|
||||||
// second question
|
// second question
|
||||||
const question2 = await user.send({
|
const question2 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 2**",
|
{
|
||||||
description: qu2 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n" + "`(8 characters max)`",
|
title: "**Question 2**",
|
||||||
|
description:
|
||||||
|
qu2 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n" +
|
||||||
|
"`(8 characters max)`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer2 = await user.dmChannel.awaitMessages({
|
const answer2 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer2.first().attachments.size > 0) {
|
if (answer2.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer2.first().content.size > 8) {
|
if (answer2.first().content.size > 8) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 8.",
|
description: "Max character limit is 8.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
if (answer2.size === 0) {
|
if (answer2.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer2.first().content.toLowerCase() === 'cancel') {
|
if (answer2.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer2_1 = answer2.first().content
|
const answer2_1 = answer2.first().content;
|
||||||
|
|
||||||
// third question
|
// third question
|
||||||
const question3 = await user.send({
|
const question3 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 3**",
|
{
|
||||||
description: qu3 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + smallM + "`",
|
title: "**Question 3**",
|
||||||
|
description:
|
||||||
|
qu3 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
smallM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer3 = await user.dmChannel.awaitMessages({
|
const answer3 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer3.first().attachments.size > 0) {
|
if (answer3.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer3.first().content > 128) {
|
if (answer3.first().content > 128) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 128.",
|
description: "Max character limit is 128.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer3.size === 0) {
|
if (answer3.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer3.first().content.toLowerCase() === 'cancel') {
|
if (answer3.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer3_1 = answer3.first().content
|
const answer3_1 = answer3.first().content;
|
||||||
|
|
||||||
// fourth question
|
// fourth question
|
||||||
const question4 = await user.send({
|
const question4 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 4**",
|
{
|
||||||
description: qu4 + "\n\nPlease type your answer below or type `cancel` to cancel your application." +
|
title: "**Question 4**",
|
||||||
" `(We expect a longer answer.)`\n`" + largeM + "`",
|
description:
|
||||||
|
qu4 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application." +
|
||||||
|
" `(We expect a longer answer.)`\n`" +
|
||||||
|
largeM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer4 = await user.dmChannel.awaitMessages({
|
const answer4 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer4.first().attachments.size > 0) {
|
if (answer4.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer4.first().content > 256) {
|
if (answer4.first().content > 256) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 256.",
|
description: "Max character limit is 256.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer4.size === 0) {
|
if (answer4.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer4.first().content.toLowerCase() === 'cancel') {
|
if (answer4.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer4_1 = answer4.first().content
|
const answer4_1 = answer4.first().content;
|
||||||
|
|
||||||
// fifth question
|
// fifth question
|
||||||
const question5 = await user.send({
|
const question5 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 5**",
|
{
|
||||||
description: qu5 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + smallM + "`",
|
title: "**Question 5**",
|
||||||
|
description:
|
||||||
|
qu5 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
smallM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer5 = await user.dmChannel.awaitMessages({
|
const answer5 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer5.first().attachments.size > 0) {
|
if (answer5.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer5.first().content > 128) {
|
if (answer5.first().content > 128) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 128.",
|
description: "Max character limit is 128.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer5.size === 0) {
|
if (answer5.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer5.first().content.toLowerCase() === 'cancel') {
|
if (answer5.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer5_1 = answer5.first().content
|
const answer5_1 = answer5.first().content;
|
||||||
|
|
||||||
// sixth question
|
// sixth question
|
||||||
const question6 = await user.send({
|
const question6 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 6**",
|
{
|
||||||
description: qu6 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + largeM + "`",
|
title: "**Question 6**",
|
||||||
|
description:
|
||||||
|
qu6 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
largeM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer6 = await user.dmChannel.awaitMessages({
|
const answer6 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer6.first().attachments.size > 0) {
|
if (answer6.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer6.first().content > 256) {
|
if (answer6.first().content > 256) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 256.",
|
description: "Max character limit is 256.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer6.size === 0) {
|
if (answer6.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer6.first().content.toLowerCase() === 'cancel') {
|
if (answer6.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer6_1 = answer6.first().content
|
const answer6_1 = answer6.first().content;
|
||||||
|
|
||||||
// seventh question
|
// seventh question
|
||||||
const question7 = await user.send({
|
const question7 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 7**",
|
{
|
||||||
description: qu7 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + smallM + "`",
|
title: "**Question 7**",
|
||||||
|
description:
|
||||||
|
qu7 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
smallM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer7 = await user.dmChannel.awaitMessages({
|
const answer7 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer7.first().attachments.size > 0) {
|
if (answer7.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer7.first().content > 128) {
|
if (answer7.first().content > 128) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 128.",
|
description: "Max character limit is 128.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer7.size === 0) {
|
if (answer7.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer7.first().content.toLowerCase() === 'cancel') {
|
if (answer7.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer7_1 = answer7.first().content
|
const answer7_1 = answer7.first().content;
|
||||||
|
|
||||||
// eighth question
|
// eighth question
|
||||||
const question8 = await user.send({
|
const question8 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 8**",
|
{
|
||||||
description: qu8 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n" + "`(64 characters max)`",
|
title: "**Question 8**",
|
||||||
|
description:
|
||||||
|
qu8 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n" +
|
||||||
|
"`(64 characters max)`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer8 = await user.dmChannel.awaitMessages({
|
const answer8 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer8.first().attachments.size > 0) {
|
if (answer8.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer8.first().content > 64) {
|
if (answer8.first().content > 64) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 64.",
|
description: "Max character limit is 64.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer8.size === 0) {
|
if (answer8.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer8.first().content.toLowerCase() === 'cancel') {
|
if (answer8.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer8_1 = answer8.first().content
|
const answer8_1 = answer8.first().content;
|
||||||
|
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "If you want to submit your application, type `yes` if not, type `no`",
|
description: "If you want to submit your application, type `yes` if not, type `no`",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
|
|
||||||
const final = await user.dmChannel.awaitMessages({
|
const final = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 5
|
time: 1000 * 60 * 5,
|
||||||
});
|
});
|
||||||
if (final.first().attachments.size > 0) {
|
if (final.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (final.size === 0) {
|
if (final.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] });
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (final.first().content.toLowerCase() !== 'yes') {
|
if (final.first().content.toLowerCase() !== "yes") {
|
||||||
await user.send({ embeds: [cancelled]} );
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your application has been submitted!",
|
description: "Your application has been submitted!",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
|
|
||||||
const userCheck = await fetch(mojangAPI + answer1_1)
|
const userCheck = await fetch(mojangAPI + answer1_1);
|
||||||
const uuid = userCheck.data.id
|
const uuid = userCheck.data.id;
|
||||||
|
|
||||||
const newGuildApp = new guildapp({
|
const newGuildApp = new guildapp({
|
||||||
_id: new mongoose.Types.ObjectId(),
|
_id: new mongoose.Types.ObjectId(),
|
||||||
userID: user.id,
|
userID: user.id,
|
||||||
uuid: uuid,
|
uuid: uuid,
|
||||||
})
|
});
|
||||||
|
|
||||||
await newGuildApp.save()
|
await newGuildApp.save();
|
||||||
|
|
||||||
const channel = guild.channels.cache.get(applicationsChannel);
|
const channel = guild.channels.cache.get(applicationsChannel);
|
||||||
await channel.send({
|
await channel.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: user.username + "#" + user.discriminator + " - Guild Application",
|
title: user.username + "#" + user.discriminator + " - Guild Application",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: user.avatarURL()
|
url: user.avatarURL(),
|
||||||
},
|
},
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: rq1,
|
name: rq1,
|
||||||
value: "```" + answer1_1 + "```"
|
value: "```" + answer1_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rq2,
|
name: rq2,
|
||||||
value: "```" + answer2_1 + "```"
|
value: "```" + answer2_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rq3,
|
name: rq3,
|
||||||
value: "```" + answer3_1 + "```"
|
value: "```" + answer3_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rq4,
|
name: rq4,
|
||||||
value: "```" + answer4_1 + "```"
|
value: "```" + answer4_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rq5,
|
name: rq5,
|
||||||
value: "```" + answer5_1 + "```"
|
value: "```" + answer5_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rq6,
|
name: rq6,
|
||||||
value: "```" + answer6_1 + "```"
|
value: "```" + answer6_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rq7,
|
name: rq7,
|
||||||
value: "```" + answer7_1 + "```"
|
value: "```" + answer7_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rq8,
|
name: rq8,
|
||||||
value: "```" + answer8_1 + "```"
|
value: "```" + answer8_1 + "```",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
footer: {
|
footer: {
|
||||||
iconURL: guild.iconURL(),
|
iconURL: guild.iconURL(),
|
||||||
text: "ID: " + user.id
|
text: "ID: " + user.id,
|
||||||
}
|
},
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
components: [
|
components: [
|
||||||
new ActionRowBuilder().addComponents(
|
new ActionRowBuilder().addComponents(
|
||||||
new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
@@ -510,11 +580,10 @@ module.exports = {
|
|||||||
new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
.setCustomId("checkstats")
|
.setCustomId("checkstats")
|
||||||
.setLabel("Check Stats")
|
.setLabel("Check Stats")
|
||||||
.setStyle(ButtonStyle.Secondary)
|
.setStyle(ButtonStyle.Secondary),
|
||||||
)
|
),
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
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 mongoose = require("mongoose");
|
const mongoose = require("mongoose");
|
||||||
const guildapp = require('../../schemas/guildAppSchema.js');
|
const guildapp = require("../../schemas/guildAppSchema.js");
|
||||||
const waitingList = require('../../schemas/waitinglistSchema.js');
|
const waitingList = require("../../schemas/waitinglistSchema.js");
|
||||||
const { waitingListRole } = require('../../config/roles.json');
|
const { waitingListRole } = require("../../config/roles.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'guildapplicationaccept',
|
name: "guildapplicationaccept",
|
||||||
description: 'Accept a guild application.',
|
description: "Accept a guild application.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply();
|
await interaction.deferReply();
|
||||||
|
|
||||||
const user = interaction.user;
|
const user = interaction.user;
|
||||||
@@ -20,12 +19,12 @@ module.exports = {
|
|||||||
|
|
||||||
const message = interaction.message;
|
const message = interaction.message;
|
||||||
const embed = message.embeds[0];
|
const embed = message.embeds[0];
|
||||||
const applicantId = embed.footer.text.split(" ")[1]
|
const applicantId = embed.footer.text.split(" ")[1];
|
||||||
|
|
||||||
const applicantIGN1 = embed.fields[0].value;
|
const applicantIGN1 = embed.fields[0].value;
|
||||||
const applicantIGN = applicantIGN1.replaceAll("`", "");
|
const applicantIGN = applicantIGN1.replaceAll("`", "");
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
await message.edit({
|
await message.edit({
|
||||||
@@ -45,19 +44,21 @@ module.exports = {
|
|||||||
.setCustomId("checkstats")
|
.setCustomId("checkstats")
|
||||||
.setLabel("Check Stats")
|
.setLabel("Check Stats")
|
||||||
.setStyle(ButtonStyle.Secondary)
|
.setStyle(ButtonStyle.Secondary)
|
||||||
.setDisabled(true)
|
.setDisabled(true),
|
||||||
)
|
),
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
await applicant.send({
|
await applicant.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: `Your application for the Illegitimate guild has been accepted.`,
|
description: `Your application for the Illegitimate guild has been accepted.`,
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const applicantEntry = await guildapp.findOne({ userID: applicantId })
|
const applicantEntry = await guildapp.findOne({ userID: applicantId });
|
||||||
const applicantUUID = applicantEntry.uuid;
|
const applicantUUID = applicantEntry.uuid;
|
||||||
const time = Date.now();
|
const time = Date.now();
|
||||||
|
|
||||||
@@ -66,7 +67,7 @@ module.exports = {
|
|||||||
userID: applicantId,
|
userID: applicantId,
|
||||||
uuid: applicantUUID,
|
uuid: applicantUUID,
|
||||||
IGN: applicantIGN,
|
IGN: applicantIGN,
|
||||||
timestamp: time
|
timestamp: time,
|
||||||
});
|
});
|
||||||
|
|
||||||
await waitingListAdd.save();
|
await waitingListAdd.save();
|
||||||
@@ -74,20 +75,21 @@ module.exports = {
|
|||||||
await applicant.roles.add(waitingListRole);
|
await applicant.roles.add(waitingListRole);
|
||||||
await guildapp.findOneAndDelete({ userID: applicantId });
|
await guildapp.findOneAndDelete({ userID: applicantId });
|
||||||
|
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: applicantUsername + " - Guild Application",
|
title: applicantUsername + " - Guild Application",
|
||||||
description: "Application has been accepted by <@" + user.id + ">.",
|
description: "Application has been accepted by <@" + user.id + ">.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: applicant.avatarURL()
|
url: applicant.avatarURL(),
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
iconURL: guild.iconURL(),
|
iconURL: guild.iconURL(),
|
||||||
text: "ID: " + applicant.id
|
text: "ID: " + applicant.id,
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,13 +1,12 @@
|
|||||||
const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require('discord.js');
|
const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require("discord.js");
|
||||||
const { color } = require('../../config/options.json');
|
const { color } = require("../../config/options.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'guildapplicationdeny',
|
name: "guildapplicationdeny",
|
||||||
description: 'Deny a guild application.',
|
description: "Deny a guild application.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
const channel = interaction.channel;
|
const channel = interaction.channel;
|
||||||
const guild = interaction.guild;
|
const guild = interaction.guild;
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
@@ -15,18 +14,18 @@ module.exports = {
|
|||||||
const message = interaction.message;
|
const message = interaction.message;
|
||||||
|
|
||||||
const modal = new ModalBuilder()
|
const modal = new ModalBuilder()
|
||||||
.setTitle('Deny Reason')
|
.setTitle("Deny Reason")
|
||||||
.setCustomId('denyreasonbox')
|
.setCustomId("denyreasonbox")
|
||||||
.setComponents(
|
.setComponents(
|
||||||
new ActionRowBuilder().setComponents(
|
new ActionRowBuilder().setComponents(
|
||||||
new TextInputBuilder()
|
new TextInputBuilder()
|
||||||
.setLabel('Deny Reason')
|
.setLabel("Deny Reason")
|
||||||
.setCustomId('denyreason')
|
.setCustomId("denyreason")
|
||||||
.setStyle(TextInputStyle.Paragraph)
|
.setStyle(TextInputStyle.Paragraph)
|
||||||
.setPlaceholder('Enter a reason for denying the application')
|
.setPlaceholder("Enter a reason for denying the application")
|
||||||
.setRequired(false)
|
.setRequired(false),
|
||||||
)
|
),
|
||||||
)
|
);
|
||||||
await interaction.showModal(modal);
|
await interaction.showModal(modal);
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,5 +1,14 @@
|
|||||||
const { ButtonBuilder, ActionRowBuilder, ButtonStyle, EmbedBuilder } = require("discord.js");
|
const { ButtonBuilder, ActionRowBuilder, ButtonStyle, EmbedBuilder } = require("discord.js");
|
||||||
const { gm, manager, moderator, beast, member, trialmember, guildStaff, guildRole } = require("../../config/roles.json");
|
const {
|
||||||
|
gm,
|
||||||
|
manager,
|
||||||
|
moderator,
|
||||||
|
beast,
|
||||||
|
member,
|
||||||
|
trialmember,
|
||||||
|
guildStaff,
|
||||||
|
guildRole,
|
||||||
|
} = require("../../config/roles.json");
|
||||||
const { ignM, smallM, largeM } = require("../../config/limitmessages.json");
|
const { ignM, smallM, largeM } = require("../../config/limitmessages.json");
|
||||||
const { ia1, ia2, ia3, ria1, ria2, ria3 } = require("../../config/questions.json");
|
const { ia1, ia2, ia3, ria1, ria2, ria3 } = require("../../config/questions.json");
|
||||||
const { color, inactivityLogChannel } = require("../../config/options.json");
|
const { color, inactivityLogChannel } = require("../../config/options.json");
|
||||||
@@ -20,13 +29,11 @@ module.exports = {
|
|||||||
if (!userRoles.some((role) => guildRoles.includes(role.id))) {
|
if (!userRoles.some((role) => guildRoles.includes(role.id))) {
|
||||||
return await interaction.reply({
|
return await interaction.reply({
|
||||||
content: "Only guild members can use this button.",
|
content: "Only guild members can use this button.",
|
||||||
ephemeral: true
|
ephemeral: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const tooLong = new EmbedBuilder()
|
const tooLong = new EmbedBuilder().setDescription("You took too long to respond.").setColor(embedColor);
|
||||||
.setDescription("You took too long to respond.")
|
|
||||||
.setColor(embedColor);
|
|
||||||
const cancelled = new EmbedBuilder()
|
const cancelled = new EmbedBuilder()
|
||||||
.setDescription("You have cancelled your application.")
|
.setDescription("You have cancelled your application.")
|
||||||
.setColor(embedColor);
|
.setColor(embedColor);
|
||||||
@@ -39,13 +46,15 @@ module.exports = {
|
|||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
title: "Guild Inactivity Log",
|
title: "Guild Inactivity Log",
|
||||||
description: "Please answer the following questions to submit an inactivity log for the guild.\n" +
|
description:
|
||||||
|
"Please answer the following questions to submit an inactivity log for the guild.\n" +
|
||||||
"If you wish to cancel your form, please press type `cancel` at any time.\n" +
|
"If you wish to cancel your form, please press type `cancel` at any time.\n" +
|
||||||
"If you wish to proceed with your form, please type `yes`.\n\n" + "**Do not upload images, videos, or GIFS.**\n" +
|
"If you wish to proceed with your form, please type `yes`.\n\n" +
|
||||||
|
"**Do not upload images, videos, or GIFS.**\n" +
|
||||||
"You have a minute to respond to this message.",
|
"You have a minute to respond to this message.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return await interaction.reply({ content: "Please enable your DMs.", ephemeral: true });
|
return await interaction.reply({ content: "Please enable your DMs.", ephemeral: true });
|
||||||
@@ -56,7 +65,7 @@ module.exports = {
|
|||||||
const input = await user.dmChannel.awaitMessages({
|
const input = await user.dmChannel.awaitMessages({
|
||||||
filter: (m) => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60
|
time: 1000 * 60,
|
||||||
});
|
});
|
||||||
if (input.first().attachments.size > 0) {
|
if (input.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
@@ -75,19 +84,23 @@ module.exports = {
|
|||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
title: "**Question 1**",
|
title: "**Question 1**",
|
||||||
description: ia1 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + ignM + "`",
|
description:
|
||||||
|
ia1 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
ignM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: "You have 5 minutes to respond to this message."
|
text: "You have 5 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const answer1 = await user.dmChannel.awaitMessages({
|
const answer1 = await user.dmChannel.awaitMessages({
|
||||||
filter: (m) => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 5
|
time: 1000 * 60 * 5,
|
||||||
});
|
});
|
||||||
if (answer1.first().attachments.size > 0) {
|
if (answer1.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
@@ -98,9 +111,9 @@ module.exports = {
|
|||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
description: "Max character limit is 16.",
|
description: "Max character limit is 16.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -111,9 +124,9 @@ module.exports = {
|
|||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
description: "That is not a valid Minecraft username.\n" + "Application cancelled.",
|
description: "That is not a valid Minecraft username.\n" + "Application cancelled.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -128,19 +141,25 @@ module.exports = {
|
|||||||
const answer1_1 = answer1.first().content;
|
const answer1_1 = answer1.first().content;
|
||||||
|
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: "**Question 2**",
|
title: "**Question 2**",
|
||||||
description: ia2 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + smallM + "`",
|
description:
|
||||||
|
ia2 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
smallM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: "You have 5 minutes to respond to this message."
|
text: "You have 5 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
const answer2 = await user.dmChannel.awaitMessages({
|
const answer2 = await user.dmChannel.awaitMessages({
|
||||||
filter: (m) => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 5
|
time: 1000 * 60 * 5,
|
||||||
});
|
});
|
||||||
if (answer2.first().attachments.size > 0) {
|
if (answer2.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
@@ -151,9 +170,9 @@ module.exports = {
|
|||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
description: "Max character limit is 128.",
|
description: "Max character limit is 128.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -168,19 +187,25 @@ module.exports = {
|
|||||||
const answer2_1 = answer1.first().content;
|
const answer2_1 = answer1.first().content;
|
||||||
|
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: "**Question 3**",
|
title: "**Question 3**",
|
||||||
description: ia3 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + largeM + "`",
|
description:
|
||||||
|
ia3 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
largeM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer: {
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
const answer3 = await user.dmChannel.awaitMessages({
|
const answer3 = await user.dmChannel.awaitMessages({
|
||||||
filter: (m) => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer3.first().attachments.size > 0) {
|
if (answer3.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
@@ -191,9 +216,9 @@ module.exports = {
|
|||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
description: "Max character limit is 256",
|
description: "Max character limit is 256",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -208,64 +233,70 @@ module.exports = {
|
|||||||
const answer3_1 = answer1.first().content;
|
const answer3_1 = answer1.first().content;
|
||||||
|
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "If you want to submit your application, type `yes` if not, type `no`",
|
description: "If you want to submit your application, type `yes` if not, type `no`",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const final = await user.dmChannel.awaitMessages({
|
const final = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 5
|
time: 1000 * 60 * 5,
|
||||||
});
|
});
|
||||||
if (final.first().attachments.size > 0) {
|
if (final.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (final.size === 0) {
|
if (final.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] });
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (final.first().content.toLowerCase() !== 'yes') {
|
if (final.first().content.toLowerCase() !== "yes") {
|
||||||
await user.send({ embeds: [cancelled]} );
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your application has been submitted!",
|
description: "Your application has been submitted!",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
|
|
||||||
const appChannel = await guild.channels.cache.get(inactivityLogChannel);
|
const appChannel = await guild.channels.cache.get(inactivityLogChannel);
|
||||||
|
|
||||||
await appChannel.send({
|
await appChannel.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: user.username + "#" + user.discriminator + " - Inactivity Application",
|
title: user.username + "#" + user.discriminator + " - Inactivity Application",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: user.displayAvatarURL({ dynamic: true })
|
url: user.displayAvatarURL({ dynamic: true }),
|
||||||
},
|
},
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: ria1,
|
name: ria1,
|
||||||
value: "`" + answer1_1 + "`"
|
value: "`" + answer1_1 + "`",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: ria2,
|
name: ria2,
|
||||||
value: "`" + answer2_1 + "`"
|
value: "`" + answer2_1 + "`",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: ria3,
|
name: ria3,
|
||||||
value: "`" + answer3_1 + "`"
|
value: "`" + answer3_1 + "`",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
footer: {
|
footer: {
|
||||||
icon_url: user.displayAvatarURL({ dynamic: true }),
|
icon_url: user.displayAvatarURL({ dynamic: true }),
|
||||||
text: "ID: " + user.id
|
text: "ID: " + user.id,
|
||||||
}
|
},
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
components: [
|
components: [
|
||||||
new ActionRowBuilder().addComponents(
|
new ActionRowBuilder().addComponents(
|
||||||
new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
@@ -276,8 +307,8 @@ module.exports = {
|
|||||||
.setCustomId("inactiveapplicationdeny")
|
.setCustomId("inactiveapplicationdeny")
|
||||||
.setLabel("Deny")
|
.setLabel("Deny")
|
||||||
.setStyle(ButtonStyle.Danger),
|
.setStyle(ButtonStyle.Danger),
|
||||||
)
|
),
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ module.exports = {
|
|||||||
type: "button",
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.reply({ content: "This button is currently disabled.", ephemeral: true });
|
await interaction.reply({ content: "This button is currently disabled.", ephemeral: true });
|
||||||
|
},
|
||||||
}
|
};
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ module.exports = {
|
|||||||
type: "button",
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.reply({ content: "This button is currently disabled.", ephemeral: true });
|
await interaction.reply({ content: "This button is currently disabled.", ephemeral: true });
|
||||||
|
},
|
||||||
}
|
};
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
const { ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js');
|
const { ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js");
|
||||||
const { color } = require('../../config/options.json');
|
const { color } = require("../../config/options.json");
|
||||||
const staffapp = require('../../schemas/staffAppSchema.js');
|
const staffapp = require("../../schemas/staffAppSchema.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'staffapplicationaccept',
|
name: "staffapplicationaccept",
|
||||||
description: 'Accept a staff application.',
|
description: "Accept a staff application.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
const user = interaction.user;
|
const user = interaction.user;
|
||||||
const channel = interaction.channel;
|
const channel = interaction.channel;
|
||||||
const guild = interaction.guild;
|
const guild = interaction.guild;
|
||||||
@@ -16,16 +15,18 @@ module.exports = {
|
|||||||
|
|
||||||
const message = interaction.message;
|
const message = interaction.message;
|
||||||
const embed = message.embeds[0];
|
const embed = message.embeds[0];
|
||||||
const applicantId = embed.footer.text.split(" ")[1]
|
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;
|
||||||
|
|
||||||
await applicant.send({
|
await applicant.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: `Your application for the Illegitimate staff team has been accepted.`,
|
description: `Your application for the Illegitimate staff team has been accepted.`,
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
await message.edit({
|
await message.edit({
|
||||||
@@ -40,27 +41,28 @@ module.exports = {
|
|||||||
.setCustomId("staffapplicationdeny")
|
.setCustomId("staffapplicationdeny")
|
||||||
.setLabel("Deny")
|
.setLabel("Deny")
|
||||||
.setStyle(ButtonStyle.Danger)
|
.setStyle(ButtonStyle.Danger)
|
||||||
.setDisabled(true)
|
.setDisabled(true),
|
||||||
)
|
),
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
await staffapp.findOneAndDelete({ userId: applicantId });
|
await staffapp.findOneAndDelete({ userId: applicantId });
|
||||||
|
|
||||||
await interaction.reply({
|
await interaction.reply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: applicantUsername + " - Staff Application.",
|
title: applicantUsername + " - Staff Application.",
|
||||||
description: "Application accepted by <@" + user.id + ">.",
|
description: "Application accepted by <@" + user.id + ">.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: applicant.avatarURL()
|
url: applicant.avatarURL(),
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
iconurl: guild.iconURL(),
|
iconurl: guild.iconURL(),
|
||||||
text: "ID: " + applicantId
|
text: "ID: " + applicantId,
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
},
|
||||||
}
|
};
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,25 +1,24 @@
|
|||||||
const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require('discord.js');
|
const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require("discord.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'staffapplicationdeny',
|
name: "staffapplicationdeny",
|
||||||
description: 'Deny a guild application.',
|
description: "Deny a guild application.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
const modal = new ModalBuilder()
|
const modal = new ModalBuilder()
|
||||||
.setTitle('Deny Reason')
|
.setTitle("Deny Reason")
|
||||||
.setCustomId('staffdenyreasonbox')
|
.setCustomId("staffdenyreasonbox")
|
||||||
.setComponents(
|
.setComponents(
|
||||||
new ActionRowBuilder().setComponents(
|
new ActionRowBuilder().setComponents(
|
||||||
new TextInputBuilder()
|
new TextInputBuilder()
|
||||||
.setLabel('Deny Reason')
|
.setLabel("Deny Reason")
|
||||||
.setCustomId('staffdenyreason')
|
.setCustomId("staffdenyreason")
|
||||||
.setStyle(TextInputStyle.Paragraph)
|
.setStyle(TextInputStyle.Paragraph)
|
||||||
.setPlaceholder('Enter a reason for denying the application')
|
.setPlaceholder("Enter a reason for denying the application")
|
||||||
.setRequired(false)
|
.setRequired(false),
|
||||||
)
|
),
|
||||||
)
|
);
|
||||||
await interaction.showModal(modal);
|
await interaction.showModal(modal);
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -1,423 +1,481 @@
|
|||||||
const { ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require('discord.js');
|
const { 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 { staffApplicationsChannel } = require('../../config/options.json');
|
const { staffApplicationsChannel } = require("../../config/options.json");
|
||||||
const { sq1, sq2, sq3, sq4, sq5, sq6 } = require('../../config/questions.json');
|
const { sq1, sq2, sq3, sq4, sq5, sq6 } = require("../../config/questions.json");
|
||||||
const { rsq1, rsq2, rsq3, rsq4, rsq5, rsq6 } = require('../../config/questions.json');
|
const { rsq1, rsq2, rsq3, rsq4, rsq5, rsq6 } = require("../../config/questions.json");
|
||||||
const { guildRole, guildStaff } = require('../../config/roles.json')
|
const { guildRole, guildStaff } = require("../../config/roles.json");
|
||||||
const mongoose = require('mongoose');
|
const mongoose = require("mongoose");
|
||||||
const staffapp = require('../../schemas/staffAppSchema.js');
|
const staffapp = require("../../schemas/staffAppSchema.js");
|
||||||
const fetch = require('axios');
|
const fetch = require("axios");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'staffapply',
|
name: "staffapply",
|
||||||
description: 'Apply for the staff team.',
|
description: "Apply for the staff team.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
const user = interaction.user;
|
const user = interaction.user;
|
||||||
const guild = interaction.guild;
|
const guild = interaction.guild;
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
const userRoles = interaction.member.roles.cache;
|
const userRoles = interaction.member.roles.cache;
|
||||||
const mojangAPI = "https://api.mojang.com/users/profiles/minecraft/"
|
const mojangAPI = "https://api.mojang.com/users/profiles/minecraft/";
|
||||||
|
|
||||||
if (interaction.customId === "staffapply") {
|
if (interaction.customId === "staffapply") {
|
||||||
|
|
||||||
await interaction.deferReply({ ephemeral: true });
|
await interaction.deferReply({ ephemeral: true });
|
||||||
|
|
||||||
if (!userRoles.has(guildRole)) {
|
if (!userRoles.has(guildRole)) {
|
||||||
await interaction.editReply({content: "You must be a member of the guild to apply for staff.", ephemeral: true});
|
await interaction.editReply({
|
||||||
return
|
content: "You must be a member of the guild to apply for staff.",
|
||||||
|
ephemeral: true,
|
||||||
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userRoles.has(guildStaff)) {
|
if (userRoles.has(guildStaff)) {
|
||||||
await interaction.editReply({content: "You are already a staff member.", ephemeral: true});
|
await interaction.editReply({ content: "You are already a staff member.", ephemeral: true });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const application = await staffapp.findOne({ userID: user.id });
|
const application = await staffapp.findOne({ userID: user.id });
|
||||||
|
|
||||||
if (application) {
|
if (application) {
|
||||||
await interaction.editReply({ content: "You already have an application in progress.", ephemeral: true });
|
await interaction.editReply({
|
||||||
return
|
content: "You already have an application in progress.",
|
||||||
|
ephemeral: true,
|
||||||
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tooLong = new EmbedBuilder()
|
const tooLong = new EmbedBuilder().setDescription("You took too long to respond.").setColor(embedColor);
|
||||||
.setDescription("You took too long to respond.")
|
|
||||||
.setColor(embedColor)
|
|
||||||
const cancelled = new EmbedBuilder()
|
const cancelled = new EmbedBuilder()
|
||||||
.setDescription("You have cancelled your application.")
|
.setDescription("You have cancelled your application.")
|
||||||
.setColor(embedColor)
|
.setColor(embedColor);
|
||||||
const attachments = new EmbedBuilder()
|
const attachments = new EmbedBuilder()
|
||||||
.setDescription("You have uploaded an attachment. Please do not upload images, videos, or GIFS.")
|
.setDescription("You have uploaded an attachment. Please do not upload images, videos, or GIFS.")
|
||||||
.setColor(embedColor)
|
.setColor(embedColor);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title: 'Staff Application',
|
{
|
||||||
description: "Please answer the following questions to apply for staff.\n" +
|
title: "Staff Application",
|
||||||
|
description:
|
||||||
|
"Please answer the following questions to apply for staff.\n" +
|
||||||
"If you wish to cancel your application, please press type `cancel` at any time.\n" +
|
"If you wish to cancel your application, please press type `cancel` at any time.\n" +
|
||||||
"If you wish to proceed with your application, please type `yes`.\n\n" +
|
"If you wish to proceed with your application, please type `yes`.\n\n" +
|
||||||
"**Do not upload images, videos, or GIFS.**\n" +
|
"**Do not upload images, videos, or GIFS.**\n" +
|
||||||
"You have a minute to respond to this message.",
|
"You have a minute to respond to this message.",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await interaction.editReply({ content: "Please enable your DMs.", ephemeral: true });
|
await interaction.editReply({ content: "Please enable your DMs.", ephemeral: true });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await interaction.editReply({ content: "Please check your DMs.", ephemeral: true})
|
await interaction.editReply({ content: "Please check your DMs.", ephemeral: true });
|
||||||
|
|
||||||
const input = await user.dmChannel.awaitMessages({
|
const input = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60
|
time: 1000 * 60,
|
||||||
});
|
});
|
||||||
if (input.first().attachments.size > 0) {
|
if (input.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (input.size === 0) {
|
if (input.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] });
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (input.first().content.toLowerCase() !== 'yes') {
|
if (input.first().content.toLowerCase() !== "yes") {
|
||||||
await user.send({ embeds: [cancelled]} );
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// first question
|
// first question
|
||||||
const question1 = await user.send({
|
const question1 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 1**",
|
{
|
||||||
description: sq1 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + ignM + "`",
|
title: "**Question 1**",
|
||||||
|
description:
|
||||||
|
sq1 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
ignM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 5 minutes to respond to this message."
|
text: "You have 5 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer1 = await user.dmChannel.awaitMessages({
|
const answer1 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 5,
|
time: 1000 * 60 * 5,
|
||||||
});
|
});
|
||||||
if (answer1.first().attachments.size > 0) {
|
if (answer1.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer1.first().content > 16) {
|
if (answer1.first().content > 16) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 16.",
|
description: "Max character limit is 16.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
await fetch(mojangAPI + answer1.first().content)
|
await fetch(mojangAPI + answer1.first().content);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
description: "That is not a valid Minecraft username.\n" +
|
{
|
||||||
"Application cancelled.",
|
description: "That is not a valid Minecraft username.\n" + "Application cancelled.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
if (answer1.size === 0) {
|
if (answer1.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer1.first().content.toLowerCase() === 'cancel') {
|
if (answer1.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer1_1 = answer1.first().content
|
const answer1_1 = answer1.first().content;
|
||||||
|
|
||||||
// second question
|
// second question
|
||||||
const question2 = await user.send({
|
const question2 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 2**",
|
{
|
||||||
description: sq2 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n" + "`(64 characters max)`",
|
title: "**Question 2**",
|
||||||
|
description:
|
||||||
|
sq2 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n" +
|
||||||
|
"`(64 characters max)`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer2 = await user.dmChannel.awaitMessages({
|
const answer2 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer2.first().attachments.size > 0) {
|
if (answer2.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer2.first().content > 64) {
|
if (answer2.first().content > 64) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 64.",
|
description: "Max character limit is 64.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
return
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
if (answer2.size === 0) {
|
if (answer2.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer2.first().content.toLowerCase() === 'cancel') {
|
if (answer2.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer2_1 = answer2.first().content
|
const answer2_1 = answer2.first().content;
|
||||||
|
|
||||||
// third question
|
// third question
|
||||||
const question3 = await user.send({
|
const question3 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 3**",
|
{
|
||||||
description: sq3 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + largeM + "`",
|
title: "**Question 3**",
|
||||||
|
description:
|
||||||
|
sq3 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
largeM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer3 = await user.dmChannel.awaitMessages({
|
const answer3 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer3.first().attachments.size > 0) {
|
if (answer3.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer3.first().content > 256) {
|
if (answer3.first().content > 256) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 256.",
|
description: "Max character limit is 256.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer3.size === 0) {
|
if (answer3.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer3.first().content.toLowerCase() === 'cancel') {
|
if (answer3.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer3_1 = answer3.first().content
|
const answer3_1 = answer3.first().content;
|
||||||
|
|
||||||
// fourth question
|
// fourth question
|
||||||
const question4 = await user.send({
|
const question4 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 4**",
|
{
|
||||||
description: sq4 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + largeM + "`",
|
title: "**Question 4**",
|
||||||
|
description:
|
||||||
|
sq4 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
largeM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer4 = await user.dmChannel.awaitMessages({
|
const answer4 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer4.first().attachments.size > 0) {
|
if (answer4.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer4.first().content > 256) {
|
if (answer4.first().content > 256) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 256.",
|
description: "Max character limit is 256.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer4.size === 0) {
|
if (answer4.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer4.first().content.toLowerCase() === 'cancel') {
|
if (answer4.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer4_1 = answer4.first().content
|
const answer4_1 = answer4.first().content;
|
||||||
|
|
||||||
// fifth question
|
// fifth question
|
||||||
const question5 = await user.send({
|
const question5 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 5**",
|
{
|
||||||
description: sq5 + "\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" + largeM + "`",
|
title: "**Question 5**",
|
||||||
|
description:
|
||||||
|
sq5 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application.\n`" +
|
||||||
|
largeM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer5 = await user.dmChannel.awaitMessages({
|
const answer5 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer5.first().attachments.size > 0) {
|
if (answer5.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer5.first().content > 256) {
|
if (answer5.first().content > 256) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 256.",
|
description: "Max character limit is 256.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer5.size === 0) {
|
if (answer5.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer5.first().content.toLowerCase() === 'cancel') {
|
if (answer5.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer5_1 = answer5.first().content
|
const answer5_1 = answer5.first().content;
|
||||||
|
|
||||||
// sixth question
|
// sixth question
|
||||||
const question6 = await user.send({
|
const question6 = await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
title : "**Question 6**",
|
{
|
||||||
description: sq6 + "\n\nPlease type your answer below or type `cancel` to cancel your application." +
|
title: "**Question 6**",
|
||||||
"`(We expect a longer answer here)`\n`" + largeM + "`",
|
description:
|
||||||
|
sq6 +
|
||||||
|
"\n\nPlease type your answer below or type `cancel` to cancel your application." +
|
||||||
|
"`(We expect a longer answer here)`\n`" +
|
||||||
|
largeM +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
footer:{
|
footer: {
|
||||||
text: "You have 15 minutes to respond to this message."
|
text: "You have 15 minutes to respond to this message.",
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
const answer6 = await user.dmChannel.awaitMessages({
|
const answer6 = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 15
|
time: 1000 * 60 * 15,
|
||||||
});
|
});
|
||||||
if (answer6.first().attachments.size > 0) {
|
if (answer6.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer6.first().content > 256) {
|
if (answer6.first().content > 256) {
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Max character limit is 256.",
|
description: "Max character limit is 256.",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (answer6.size === 0) {
|
if (answer6.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] })
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (answer6.first().content.toLowerCase() === 'cancel') {
|
if (answer6.first().content.toLowerCase() === "cancel") {
|
||||||
await user.send({ embeds: [cancelled] })
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const answer6_1 = answer6.first().content
|
const answer6_1 = answer6.first().content;
|
||||||
|
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "If you want to submit your application, type `yes` if not, type `no`",
|
description: "If you want to submit your application, type `yes` if not, type `no`",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
|
|
||||||
const final = await user.dmChannel.awaitMessages({
|
const final = await user.dmChannel.awaitMessages({
|
||||||
filter: m => m.author.id === user.id,
|
filter: (m) => m.author.id === user.id,
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 1000 * 60 * 5
|
time: 1000 * 60 * 5,
|
||||||
});
|
});
|
||||||
if (final.first().attachments.size > 0) {
|
if (final.first().attachments.size > 0) {
|
||||||
await user.send({ embeds: [attachments] });
|
await user.send({ embeds: [attachments] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (final.size === 0) {
|
if (final.size === 0) {
|
||||||
await user.send({ embeds: [tooLong] });
|
await user.send({ embeds: [tooLong] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (final.first().content.toLowerCase() !== 'yes') {
|
if (final.first().content.toLowerCase() !== "yes") {
|
||||||
await user.send({ embeds: [cancelled]} );
|
await user.send({ embeds: [cancelled] });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await user.send({
|
await user.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
description: "Your application has been submitted!",
|
description: "Your application has been submitted!",
|
||||||
color: embedColor
|
color: embedColor,
|
||||||
}]
|
},
|
||||||
})
|
],
|
||||||
|
});
|
||||||
|
|
||||||
const userCheck = await fetch(mojangAPI + answer1_1)
|
const userCheck = await fetch(mojangAPI + answer1_1);
|
||||||
const uuid = userCheck.data.id
|
const uuid = userCheck.data.id;
|
||||||
|
|
||||||
const newStaffApp = new staffapp({
|
const newStaffApp = new staffapp({
|
||||||
_id: new mongoose.Types.ObjectId(),
|
_id: new mongoose.Types.ObjectId(),
|
||||||
userID: user.id,
|
userID: user.id,
|
||||||
uuid: uuid,
|
uuid: uuid,
|
||||||
})
|
});
|
||||||
|
|
||||||
await newStaffApp.save()
|
await newStaffApp.save();
|
||||||
await user.deleteDM();
|
await user.deleteDM();
|
||||||
|
|
||||||
const channel = guild.channels.cache.get(staffApplicationsChannel);
|
const channel = guild.channels.cache.get(staffApplicationsChannel);
|
||||||
|
|
||||||
await channel.send({
|
await channel.send({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: user.username + "#" + user.discriminator + " - Staff Application",
|
title: user.username + "#" + user.discriminator + " - Staff Application",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: user.avatarURL()
|
url: user.avatarURL(),
|
||||||
},
|
},
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: rsq1,
|
name: rsq1,
|
||||||
value: "```" + answer1_1 + "```"
|
value: "```" + answer1_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rsq2,
|
name: rsq2,
|
||||||
value: "```" + answer2_1 + "```"
|
value: "```" + answer2_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rsq3,
|
name: rsq3,
|
||||||
value: "```" + answer3_1 + "```"
|
value: "```" + answer3_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rsq4,
|
name: rsq4,
|
||||||
value: "```" + answer4_1 + "```"
|
value: "```" + answer4_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rsq5,
|
name: rsq5,
|
||||||
value: "```" + answer5_1 + "```"
|
value: "```" + answer5_1 + "```",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: rsq6,
|
name: rsq6,
|
||||||
value: "```" + answer6_1 + "```"
|
value: "```" + answer6_1 + "```",
|
||||||
}
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
footer: {
|
footer: {
|
||||||
iconURL: guild.iconURL(),
|
iconURL: guild.iconURL(),
|
||||||
text: "ID: " + user.id
|
text: "ID: " + user.id,
|
||||||
}
|
},
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
components: [
|
components: [
|
||||||
new ActionRowBuilder().addComponents(
|
new ActionRowBuilder().addComponents(
|
||||||
new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
@@ -427,11 +485,10 @@ module.exports = {
|
|||||||
new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
.setCustomId("staffapplicationdeny")
|
.setCustomId("staffapplicationdeny")
|
||||||
.setLabel("Deny")
|
.setLabel("Deny")
|
||||||
.setStyle(ButtonStyle.Danger)
|
.setStyle(ButtonStyle.Danger),
|
||||||
)
|
),
|
||||||
]
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
);
|
},
|
||||||
}
|
};
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require('discord.js')
|
const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require("discord.js");
|
||||||
const { color } = require('../../config/options.json')
|
const { color } = require("../../config/options.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'verify',
|
name: "verify",
|
||||||
description: 'Configure the bot.',
|
description: "Configure the bot.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
const modal = new ModalBuilder()
|
const modal = new ModalBuilder()
|
||||||
.setTitle("Verification")
|
.setTitle("Verification")
|
||||||
.setCustomId("verifybox")
|
.setCustomId("verifybox")
|
||||||
@@ -20,9 +19,9 @@ module.exports = {
|
|||||||
.setPlaceholder("Enter your ign.")
|
.setPlaceholder("Enter your ign.")
|
||||||
.setRequired(true)
|
.setRequired(true)
|
||||||
.setMinLength(3)
|
.setMinLength(3)
|
||||||
.setMaxLength(16)
|
.setMaxLength(16),
|
||||||
)
|
),
|
||||||
)
|
);
|
||||||
await interaction.showModal(modal)
|
await interaction.showModal(modal);
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,53 +1,50 @@
|
|||||||
const mongoose = require('mongoose');
|
const mongoose = require("mongoose");
|
||||||
const waitinglist = require('../../schemas/waitinglistSchema.js');
|
const waitinglist = require("../../schemas/waitinglistSchema.js");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const key = process.env.HYPIXELAPIKEY;
|
const key = process.env.HYPIXELAPIKEY;
|
||||||
const { hypixelGuildID } = require("../../config/options.json")
|
const { hypixelGuildID } = require("../../config/options.json");
|
||||||
const fetch = require("axios");
|
const fetch = require("axios");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'waitinglistupdate',
|
name: "waitinglistupdate",
|
||||||
description: 'Update the waiting list.',
|
description: "Update the waiting list.",
|
||||||
type: 'button',
|
type: "button",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
await interaction.deferReply({ ephemeral: true });
|
await interaction.deferReply({ ephemeral: true });
|
||||||
|
|
||||||
const user = interaction.user;
|
const user = interaction.user;
|
||||||
const message = interaction.message;
|
const message = interaction.message;
|
||||||
const embed = message.embeds[0];
|
const embed = message.embeds[0];
|
||||||
const accepted = await waitinglist.find()
|
const accepted = await waitinglist.find();
|
||||||
const guildAPI = "https://api.hypixel.net/guild"
|
const guildAPI = "https://api.hypixel.net/guild";
|
||||||
const guild = guildAPI + "?key=" + key + "&player="
|
const guild = guildAPI + "?key=" + key + "&player=";
|
||||||
|
|
||||||
for (let i = 0; i < accepted.length; i++) {
|
for (let i = 0; i < accepted.length; i++) {
|
||||||
|
const uuid = accepted[i].uuid;
|
||||||
const uuid = accepted[i].uuid
|
const check = await fetch(guild + uuid);
|
||||||
const check = await fetch(guild + uuid)
|
|
||||||
|
|
||||||
if (check.data.guild._id === hypixelGuildID) {
|
if (check.data.guild._id === hypixelGuildID) {
|
||||||
await waitinglist.findOneAndDelete({ uuid: uuid })
|
await waitinglist.findOneAndDelete({ uuid: uuid });
|
||||||
continue
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let fields = [];
|
let fields = [];
|
||||||
|
|
||||||
for (let i = 0; i < accepted.length; i++) {
|
for (let i = 0; i < accepted.length; i++) {
|
||||||
|
const timestamp1 = accepted[i].timestamp / 1000;
|
||||||
const timestamp1 = accepted[i].timestamp / 1000
|
const timestamp = Math.floor(timestamp1);
|
||||||
const timestamp = Math.floor(timestamp1)
|
|
||||||
|
|
||||||
fields.push({
|
fields.push({
|
||||||
name: `${i + 1}. ${accepted[i].IGN}`,
|
name: `${i + 1}. ${accepted[i].IGN}`,
|
||||||
value: `TS: <t:${timestamp}:R>`
|
value: `TS: <t:${timestamp}:R>`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
await message.edit({
|
await message.edit({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: embed.title,
|
title: embed.title,
|
||||||
description: embed.description,
|
description: embed.description,
|
||||||
color: embed.color,
|
color: embed.color,
|
||||||
@@ -58,9 +55,10 @@ module.exports = {
|
|||||||
thumbnail: embed.thumbnail,
|
thumbnail: embed.thumbnail,
|
||||||
fields: fields,
|
fields: fields,
|
||||||
timestamp: new Date(),
|
timestamp: new Date(),
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
await interaction.editReply({ content: 'Updated the waiting list', ephemeral: true });
|
await interaction.editReply({ content: "Updated the waiting list", ephemeral: true });
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js');
|
const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js");
|
||||||
const { color } = require('../../config/options.json');
|
const { color } = require("../../config/options.json");
|
||||||
const mongoose = require('mongoose');
|
const mongoose = require("mongoose");
|
||||||
const guildapp = require('../../schemas/guildAppSchema.js');
|
const guildapp = require("../../schemas/guildAppSchema.js");
|
||||||
const fs = require('fs');
|
const fs = require("fs");
|
||||||
const path = require('path');
|
const path = require("path");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'denyreasonbox',
|
name: "denyreasonbox",
|
||||||
description: 'Deny reason box.',
|
description: "Deny reason box.",
|
||||||
type: 'modal',
|
type: "modal",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
if (interaction.type !== InteractionType.ModalSubmit) return;
|
if (interaction.type !== InteractionType.ModalSubmit) return;
|
||||||
if (interaction.customId !== "denyreasonbox") return;
|
if (interaction.customId !== "denyreasonbox") return;
|
||||||
|
|
||||||
@@ -24,7 +23,7 @@ module.exports = {
|
|||||||
const applicantId = embed.footer.text.split(" ")[1];
|
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}`);
|
||||||
|
|
||||||
@@ -45,14 +44,15 @@ module.exports = {
|
|||||||
.setCustomId("checkstats")
|
.setCustomId("checkstats")
|
||||||
.setLabel("Check Stats")
|
.setLabel("Check Stats")
|
||||||
.setStyle(ButtonStyle.Secondary)
|
.setStyle(ButtonStyle.Secondary)
|
||||||
.setDisabled(true)
|
.setDisabled(true),
|
||||||
)
|
),
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const dmMessage = new EmbedBuilder()
|
const dmMessage = new EmbedBuilder()
|
||||||
.setDescription("Your application for the Illegitimate guild has been denied\n" +
|
.setDescription(
|
||||||
"**Reason:** `" + reason + "`")
|
"Your application for the Illegitimate guild has been denied\n" + "**Reason:** `" + reason + "`",
|
||||||
|
)
|
||||||
.setColor(embedColor);
|
.setColor(embedColor);
|
||||||
|
|
||||||
await applicant.send({ embeds: [dmMessage] });
|
await applicant.send({ embeds: [dmMessage] });
|
||||||
@@ -60,19 +60,26 @@ module.exports = {
|
|||||||
await guildapp.findOneAndDelete({ userID: applicantId });
|
await guildapp.findOneAndDelete({ userID: applicantId });
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: "Application Denied",
|
title: "Application Denied",
|
||||||
description: "The application has been denied by <@" + interaction.user.id + ">.\n" +
|
description:
|
||||||
"**Reason:** `" + reason + "`",
|
"The application has been denied by <@" +
|
||||||
|
interaction.user.id +
|
||||||
|
">.\n" +
|
||||||
|
"**Reason:** `" +
|
||||||
|
reason +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: applicant.avatarURL()
|
url: applicant.avatarURL(),
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
iconURL: guild.iconURL(),
|
iconURL: guild.iconURL(),
|
||||||
text: "ID: " + applicant.id
|
text: "ID: " + applicant.id,
|
||||||
}
|
},
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js');
|
const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js");
|
||||||
const { color } = require('../../config/options.json');
|
const { color } = require("../../config/options.json");
|
||||||
const mongoose = require('mongoose');
|
const mongoose = require("mongoose");
|
||||||
const staffapp = require('../../schemas/staffAppSchema.js');
|
const staffapp = require("../../schemas/staffAppSchema.js");
|
||||||
const fs = require('fs');
|
const fs = require("fs");
|
||||||
const path = require('path');
|
const path = require("path");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'staffdenyreasonbox',
|
name: "staffdenyreasonbox",
|
||||||
description: 'Deny reason box.',
|
description: "Deny reason box.",
|
||||||
type: 'modal',
|
type: "modal",
|
||||||
|
|
||||||
async execute(interaction) {
|
async execute(interaction) {
|
||||||
|
|
||||||
if (interaction.type !== InteractionType.ModalSubmit) return;
|
if (interaction.type !== InteractionType.ModalSubmit) return;
|
||||||
if (interaction.customId !== "staffdenyreasonbox") return;
|
if (interaction.customId !== "staffdenyreasonbox") return;
|
||||||
|
|
||||||
@@ -19,13 +18,13 @@ module.exports = {
|
|||||||
|
|
||||||
const channel = interaction.channel;
|
const channel = interaction.channel;
|
||||||
const guild = interaction.guild;
|
const guild = interaction.guild;
|
||||||
const reason = interaction.fields.fields.get('staffdenyreason').value || "No reason provided";
|
const reason = interaction.fields.fields.get("staffdenyreason").value || "No reason provided";
|
||||||
const embedColor = Number(color.replace("#", "0x"));
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
const message = interaction.message;
|
const message = interaction.message;
|
||||||
const embed = message.embeds[0];
|
const embed = message.embeds[0];
|
||||||
const applicantId = embed.footer.text.split(" ")[1]
|
const applicantId = embed.footer.text.split(" ")[1];
|
||||||
const applicant = await guild.members.fetch(applicantId)
|
const applicant = await guild.members.fetch(applicantId);
|
||||||
|
|
||||||
await message.edit({
|
await message.edit({
|
||||||
components: [
|
components: [
|
||||||
@@ -40,13 +39,14 @@ module.exports = {
|
|||||||
.setLabel("Deny")
|
.setLabel("Deny")
|
||||||
.setStyle(ButtonStyle.Danger)
|
.setStyle(ButtonStyle.Danger)
|
||||||
.setDisabled(true),
|
.setDisabled(true),
|
||||||
)
|
),
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const dmMessage = new EmbedBuilder()
|
const dmMessage = new EmbedBuilder()
|
||||||
.setDescription("Your application for the Illegitimate guild staff has been denied\n" +
|
.setDescription(
|
||||||
"**Reason:** `" + reason + "`")
|
"Your application for the Illegitimate guild staff has been denied\n" + "**Reason:** `" + reason + "`",
|
||||||
|
)
|
||||||
.setColor(embedColor);
|
.setColor(embedColor);
|
||||||
|
|
||||||
await applicant.send({ embeds: [dmMessage] });
|
await applicant.send({ embeds: [dmMessage] });
|
||||||
@@ -54,19 +54,26 @@ module.exports = {
|
|||||||
await staffapp.findOneAndDelete({ userID: applicantId });
|
await staffapp.findOneAndDelete({ userID: applicantId });
|
||||||
|
|
||||||
await interaction.editReply({
|
await interaction.editReply({
|
||||||
embeds: [{
|
embeds: [
|
||||||
|
{
|
||||||
title: "Application Denied",
|
title: "Application Denied",
|
||||||
description: "The application has been denied by <@" + interaction.user.id + ">.\n" +
|
description:
|
||||||
"**Reason:** `" + reason + "`",
|
"The application has been denied by <@" +
|
||||||
|
interaction.user.id +
|
||||||
|
">.\n" +
|
||||||
|
"**Reason:** `" +
|
||||||
|
reason +
|
||||||
|
"`",
|
||||||
color: embedColor,
|
color: embedColor,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: applicant.avatarURL()
|
url: applicant.avatarURL(),
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
iconURL: guild.iconURL(),
|
iconURL: guild.iconURL(),
|
||||||
text: "ID: " + applicant.id
|
text: "ID: " + applicant.id,
|
||||||
}
|
},
|
||||||
}],
|
},
|
||||||
});;
|
],
|
||||||
}
|
});
|
||||||
}
|
},
|
||||||
|
};
|
||||||
|
|||||||
133
index.js
133
index.js
@@ -1,21 +1,21 @@
|
|||||||
const { Client, GatewayIntentBits, Partials, ActivityType, Events, Collection } = require('discord.js');
|
const { Client, GatewayIntentBits, Partials, ActivityType, Events, Collection } = require("discord.js");
|
||||||
const { botLogChannel, color } = require('./config/options.json');
|
const { botLogChannel, color } = require("./config/options.json");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const token = process.env.TOKEN;
|
const token = process.env.TOKEN;
|
||||||
const mongoURI = process.env.MONGOURI;
|
const mongoURI = process.env.MONGOURI;
|
||||||
const { connect } = require('mongoose');
|
const { connect } = require("mongoose");
|
||||||
const path = require('path');
|
const path = require("path");
|
||||||
const fs = require('fs');
|
const fs = require("fs");
|
||||||
|
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
intents: [
|
intents: [
|
||||||
GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages,
|
GatewayIntentBits.Guilds,
|
||||||
GatewayIntentBits.GuildMembers, GatewayIntentBits.MessageContent,
|
GatewayIntentBits.GuildMessages,
|
||||||
GatewayIntentBits.DirectMessages
|
GatewayIntentBits.GuildMembers,
|
||||||
|
GatewayIntentBits.MessageContent,
|
||||||
|
GatewayIntentBits.DirectMessages,
|
||||||
],
|
],
|
||||||
partials: [
|
partials: [Partials.GuildMember, Partials.User, Partials.Message, Partials.Channel],
|
||||||
Partials.GuildMember, Partials.User, Partials.Message, Partials.Channel
|
|
||||||
]
|
|
||||||
});
|
});
|
||||||
|
|
||||||
client.commands = new Collection();
|
client.commands = new Collection();
|
||||||
@@ -23,15 +23,14 @@ client.events = new Collection();
|
|||||||
client.modals = new Collection();
|
client.modals = new Collection();
|
||||||
|
|
||||||
//! commands
|
//! commands
|
||||||
const cmdPath = path.join(__dirname, 'commands');
|
const cmdPath = path.join(__dirname, "commands");
|
||||||
const cmdFiles = fs.readdirSync(cmdPath).filter(file => file.endsWith('.js'));
|
const cmdFiles = fs.readdirSync(cmdPath).filter((file) => file.endsWith(".js"));
|
||||||
|
|
||||||
for (const file of cmdFiles) {
|
for (const file of cmdFiles) {
|
||||||
|
|
||||||
const filePath = path.join(cmdPath, file);
|
const filePath = path.join(cmdPath, file);
|
||||||
const cmd = require(filePath);
|
const cmd = require(filePath);
|
||||||
|
|
||||||
if ('data' in cmd && 'execute' in cmd && cmd.type === 'slash') {
|
if ("data" in cmd && "execute" in cmd && cmd.type === "slash") {
|
||||||
client.commands.set(cmd.data.name, cmd);
|
client.commands.set(cmd.data.name, cmd);
|
||||||
} else {
|
} else {
|
||||||
console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`);
|
console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`);
|
||||||
@@ -39,16 +38,14 @@ for (const file of cmdFiles) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//! commands testing
|
//! commands testing
|
||||||
const cmdTestPath = path.join(__dirname, 'commands-testing');
|
const cmdTestPath = path.join(__dirname, "commands-testing");
|
||||||
const cmdTestFiles =
|
const cmdTestFiles = fs.readdirSync(cmdTestPath).filter((file) => file.endsWith(".js"));
|
||||||
fs.readdirSync(cmdTestPath).filter(file => file.endsWith('.js'));
|
|
||||||
|
|
||||||
for (const file of cmdTestFiles) {
|
for (const file of cmdTestFiles) {
|
||||||
|
|
||||||
const filePath = path.join(cmdTestPath, file);
|
const filePath = path.join(cmdTestPath, file);
|
||||||
const cmd = require(filePath);
|
const cmd = require(filePath);
|
||||||
|
|
||||||
if ('data' in cmd && 'execute' in cmd && cmd.type === 'slash') {
|
if ("data" in cmd && "execute" in cmd && cmd.type === "slash") {
|
||||||
client.commands.set(cmd.data.name, cmd);
|
client.commands.set(cmd.data.name, cmd);
|
||||||
} else {
|
} else {
|
||||||
console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`);
|
console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`);
|
||||||
@@ -56,9 +53,8 @@ for (const file of cmdTestFiles) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//! command handler
|
//! command handler
|
||||||
client.on(Events.InteractionCreate, async interaction => {
|
client.on(Events.InteractionCreate, async (interaction) => {
|
||||||
if (!interaction.isChatInputCommand())
|
if (!interaction.isChatInputCommand()) return;
|
||||||
return;
|
|
||||||
|
|
||||||
const command = interaction.client.commands.get(interaction.commandName);
|
const command = interaction.client.commands.get(interaction.commandName);
|
||||||
|
|
||||||
@@ -72,23 +68,21 @@ client.on(Events.InteractionCreate, async interaction => {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
await interaction.reply({
|
await interaction.reply({
|
||||||
content: 'There was an error while executing this command!',
|
content: "There was an error while executing this command!",
|
||||||
ephemeral: true
|
ephemeral: true,
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//! commands
|
//! commands
|
||||||
const contextMenuPath = path.join(__dirname, 'commands-contextmenu');
|
const contextMenuPath = path.join(__dirname, "commands-contextmenu");
|
||||||
const contextMenuFiles =
|
const contextMenuFiles = fs.readdirSync(contextMenuPath).filter((file) => file.endsWith(".js"));
|
||||||
fs.readdirSync(contextMenuPath).filter(file => file.endsWith('.js'));
|
|
||||||
|
|
||||||
for (const file of contextMenuFiles) {
|
for (const file of contextMenuFiles) {
|
||||||
|
|
||||||
const filePath = path.join(contextMenuPath, file);
|
const filePath = path.join(contextMenuPath, file);
|
||||||
const cmd = require(filePath);
|
const cmd = require(filePath);
|
||||||
|
|
||||||
if ('data' in cmd && 'execute' in cmd && cmd.type === 'contextmenu') {
|
if ("data" in cmd && "execute" in cmd && cmd.type === "contextmenu") {
|
||||||
client.commands.set(cmd.data.name, cmd);
|
client.commands.set(cmd.data.name, cmd);
|
||||||
} else {
|
} else {
|
||||||
console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`);
|
console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`);
|
||||||
@@ -96,9 +90,8 @@ for (const file of contextMenuFiles) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//! context menu command handler
|
//! context menu command handler
|
||||||
client.on(Events.InteractionCreate, async interaction => {
|
client.on(Events.InteractionCreate, async (interaction) => {
|
||||||
if (!interaction.isContextMenuCommand())
|
if (!interaction.isContextMenuCommand()) return;
|
||||||
return;
|
|
||||||
|
|
||||||
const command = interaction.client.commands.get(interaction.commandName);
|
const command = interaction.client.commands.get(interaction.commandName);
|
||||||
|
|
||||||
@@ -112,22 +105,21 @@ client.on(Events.InteractionCreate, async interaction => {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
await interaction.reply({
|
await interaction.reply({
|
||||||
content: 'There was an error while executing this command!',
|
content: "There was an error while executing this command!",
|
||||||
ephemeral: true
|
ephemeral: true,
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//! button events
|
//! button events
|
||||||
const btnPath = path.join(__dirname, 'events', 'buttons');
|
const btnPath = path.join(__dirname, "events", "buttons");
|
||||||
const btnFiles = fs.readdirSync(btnPath).filter(file => file.endsWith('.js'));
|
const btnFiles = fs.readdirSync(btnPath).filter((file) => file.endsWith(".js"));
|
||||||
|
|
||||||
for (const file of btnFiles) {
|
for (const file of btnFiles) {
|
||||||
|
|
||||||
const filePath = path.join(btnPath, file);
|
const filePath = path.join(btnPath, file);
|
||||||
const btn = require(filePath);
|
const btn = require(filePath);
|
||||||
|
|
||||||
if ('name' in btn && 'execute' in btn && btn.type === 'button') {
|
if ("name" in btn && "execute" in btn && btn.type === "button") {
|
||||||
client.events.set(btn.name, btn);
|
client.events.set(btn.name, btn);
|
||||||
} else {
|
} else {
|
||||||
console.log(`[WARNING] The button at ${filePath} is missing a required "name", "execute" or "type" property.`);
|
console.log(`[WARNING] The button at ${filePath} is missing a required "name", "execute" or "type" property.`);
|
||||||
@@ -135,9 +127,8 @@ for (const file of btnFiles) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//! button event handler
|
//! button event handler
|
||||||
client.on(Events.InteractionCreate, async event => {
|
client.on(Events.InteractionCreate, async (event) => {
|
||||||
if (!event.isButton())
|
if (!event.isButton()) return;
|
||||||
return;
|
|
||||||
|
|
||||||
const event2 = event.client.events.get(event.customId);
|
const event2 = event.client.events.get(event.customId);
|
||||||
|
|
||||||
@@ -151,57 +142,53 @@ client.on(Events.InteractionCreate, async event => {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
await event.reply({
|
await event.reply({
|
||||||
content: 'There was an error while executing this event!',
|
content: "There was an error while executing this event!",
|
||||||
ephemeral: true
|
ephemeral: true,
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
//! modals
|
//! modals
|
||||||
const modalPath = path.join(__dirname, 'events', 'modals');
|
const modalPath = path.join(__dirname, "events", "modals");
|
||||||
const modalFiles =
|
const modalFiles = fs.readdirSync(modalPath).filter((file) => file.endsWith(".js"));
|
||||||
fs.readdirSync(modalPath).filter(file => file.endsWith('.js'));
|
|
||||||
|
|
||||||
for (const file of modalFiles) {
|
for (const file of modalFiles) {
|
||||||
|
|
||||||
const filePath = path.join(modalPath, file);
|
const filePath = path.join(modalPath, file);
|
||||||
const modal = require(filePath);
|
const modal = require(filePath);
|
||||||
|
|
||||||
if ('name' in modal && 'execute' in modal && modal.type === 'modal') {
|
if ("name" in modal && "execute" in modal && modal.type === "modal") {
|
||||||
client.on(Events.InteractionCreate, modal.execute);
|
client.on(Events.InteractionCreate, modal.execute);
|
||||||
} else {
|
} else {
|
||||||
console.log(`[WARNING] The modal at ${filePath} is missing a required "name", "execute" or "type" property.`);
|
console.log(`[WARNING] The modal at ${filePath} is missing a required "name", "execute" or "type" property.`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
client.on(Events.InteractionCreate, async interaction => {
|
client.on(Events.InteractionCreate, async (interaction) => {
|
||||||
if (interaction.isCommand()) {
|
if (interaction.isCommand()) {
|
||||||
console.log(interaction.user.username + "#" +
|
console.log(
|
||||||
interaction.user.discriminator + " ran " +
|
interaction.user.username + "#" + interaction.user.discriminator + " ran " + interaction.commandName,
|
||||||
interaction.commandName);
|
);
|
||||||
} else if (interaction.isButton()) {
|
} else if (interaction.isButton()) {
|
||||||
console.log(interaction.user.username + "#" +
|
console.log(
|
||||||
interaction.user.discriminator + " clicked " +
|
interaction.user.username + "#" + interaction.user.discriminator + " clicked " + interaction.customId,
|
||||||
interaction.customId);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
client.on(Events.ClientReady, () => {
|
client.on(Events.ClientReady, () => {
|
||||||
console.log("Logged in as " + client.user.tag + "!");
|
console.log("Logged in as " + client.user.tag + "!");
|
||||||
const channel = client.channels.cache.get(botLogChannel);
|
const channel = client.channels.cache.get(botLogChannel);
|
||||||
const embedColor = Number(color.replace('#', '0x'))
|
const embedColor = Number(color.replace("#", "0x"));
|
||||||
|
|
||||||
if (!channel) {
|
if (!channel) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
channel.send(
|
channel.send({ embeds: [{ description: `Bot is online!`, color: embedColor }] });
|
||||||
{ embeds: [{ description: `Bot is online!`, color: embedColor }] });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
client.on(Events.ClientReady, () => {
|
client.on(Events.ClientReady, () => {
|
||||||
client.user.setActivity(
|
client.user.setActivity({ name: "over the Illegitimate Server", type: ActivityType.Watching });
|
||||||
{ name: "over the Illegitimate Server", type: ActivityType.Watching });
|
|
||||||
|
|
||||||
const activities = [
|
const activities = [
|
||||||
{ name: "for Martina's return", type: ActivityType.Watching },
|
{ name: "for Martina's return", type: ActivityType.Watching },
|
||||||
@@ -210,17 +197,17 @@ client.on(Events.ClientReady, () => {
|
|||||||
{ name: "with Perlcence the AI", type: ActivityType.Playing },
|
{ name: "with Perlcence the AI", type: ActivityType.Playing },
|
||||||
{ name: "with ur mom in my bed", type: ActivityType.Playing },
|
{ name: "with ur mom in my bed", type: ActivityType.Playing },
|
||||||
{ name: "with Jone the idiot", type: ActivityType.Playing },
|
{ name: "with Jone the idiot", type: ActivityType.Playing },
|
||||||
{ name: "over the Illegitimate Server", type: ActivityType.Watching }
|
{ name: "over the Illegitimate Server", type: ActivityType.Watching },
|
||||||
];
|
];
|
||||||
|
|
||||||
let i = 0;
|
let i = 0;
|
||||||
setInterval(() =>
|
setInterval(() => client.user.setActivity(activities[i++ % activities.length]), 1000 * 60 * 30);
|
||||||
client.user.setActivity(activities[i++ % activities.length]),
|
});
|
||||||
1000 * 60 * 30)
|
client.on(Events.ClientReady, () => {
|
||||||
|
client.user.setStatus("dnd");
|
||||||
});
|
});
|
||||||
client.on(Events.ClientReady, () => { client.user.setStatus('dnd'); });
|
|
||||||
client.login(token);
|
client.login(token);
|
||||||
|
|
||||||
connect(mongoURI, {}).then(() => {
|
connect(mongoURI, {}).then(() => {
|
||||||
console.log('Connected to MongoDB');
|
console.log("Connected to MongoDB");
|
||||||
})
|
});
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const { Schema, model } = require('mongoose');
|
const { Schema, model } = require("mongoose");
|
||||||
|
|
||||||
const guildAppSchema = new Schema({
|
const guildAppSchema = new Schema({
|
||||||
_id: Schema.Types.ObjectId,
|
_id: Schema.Types.ObjectId,
|
||||||
@@ -6,4 +6,4 @@ const guildAppSchema = new Schema({
|
|||||||
uuid: { type: String, required: true },
|
uuid: { type: String, required: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = model('guildapp', guildAppSchema, 'guildapp');
|
module.exports = model("guildapp", guildAppSchema, "guildapp");
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const { Schema, model } = require('mongoose');
|
const { Schema, model } = require("mongoose");
|
||||||
|
|
||||||
const staffAppSchema = new Schema({
|
const staffAppSchema = new Schema({
|
||||||
_id: Schema.Types.ObjectId,
|
_id: Schema.Types.ObjectId,
|
||||||
@@ -6,4 +6,4 @@ const staffAppSchema = new Schema({
|
|||||||
uuid: { type: String, required: true },
|
uuid: { type: String, required: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = model('staffapp', staffAppSchema, 'staffapp');
|
module.exports = model("staffapp", staffAppSchema, "staffapp");
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const { Schema, model } = require('mongoose');
|
const { Schema, model } = require("mongoose");
|
||||||
|
|
||||||
const verifySchema = new Schema({
|
const verifySchema = new Schema({
|
||||||
_id: Schema.Types.ObjectId,
|
_id: Schema.Types.ObjectId,
|
||||||
@@ -6,4 +6,4 @@ const verifySchema = new Schema({
|
|||||||
uuid: { type: String, required: true },
|
uuid: { type: String, required: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = model('verify', verifySchema, 'verify');
|
module.exports = model("verify", verifySchema, "verify");
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
const { Schema, model } = require('mongoose');
|
const { Schema, model } = require("mongoose");
|
||||||
|
|
||||||
const waitinglistSchema = new Schema({
|
const waitinglistSchema = new Schema({
|
||||||
_id: Schema.Types.ObjectId,
|
_id: Schema.Types.ObjectId,
|
||||||
userID: { type: String, required: true },
|
userID: { type: String, required: true },
|
||||||
uuid: { type: String, required: true },
|
uuid: { type: String, required: true },
|
||||||
IGN: { type: String, required: true },
|
IGN: { type: String, required: true },
|
||||||
timestamp: { type: String, required: true }
|
timestamp: { type: String, required: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = model('waitinglist', waitinglistSchema, 'waitinglist');
|
module.exports = model("waitinglist", waitinglistSchema, "waitinglist");
|
||||||
|
|||||||
@@ -1,20 +1,19 @@
|
|||||||
const { REST, Routes } = require('discord.js');
|
const { REST, Routes } = require("discord.js");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const token = process.env.PRODTOKEN;
|
const token = process.env.PRODTOKEN;
|
||||||
const clientId = process.env.CLIENTID;
|
const clientId = process.env.CLIENTID;
|
||||||
const guildId = process.env.GUILDID;
|
const guildId = process.env.GUILDID;
|
||||||
const fs = require('node:fs');
|
const fs = require("node:fs");
|
||||||
const args = process.argv.slice(2);
|
const args = process.argv.slice(2);
|
||||||
const arg = args[0];
|
const arg = args[0];
|
||||||
|
|
||||||
if (!arg) {
|
if (!arg) {
|
||||||
console.log('Please specify a command to run!');
|
console.log("Please specify a command to run!");
|
||||||
}
|
} else if (arg === "--prod") {
|
||||||
else if (arg === '--prod') {
|
|
||||||
const commands = [];
|
const commands = [];
|
||||||
// Grab all the command files from the commands directory you created earlier
|
// Grab all the command files from the commands directory you created earlier
|
||||||
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
|
const commandFiles = fs.readdirSync("./commands").filter((file) => file.endsWith(".js"));
|
||||||
const contentMenuCommands = fs.readdirSync('./commands-contextmenu').filter(file => file.endsWith('.js'));
|
const contentMenuCommands = fs.readdirSync("./commands-contextmenu").filter((file) => file.endsWith(".js"));
|
||||||
|
|
||||||
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
|
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
|
||||||
for (const file of commandFiles) {
|
for (const file of commandFiles) {
|
||||||
@@ -28,8 +27,7 @@ else if (arg === '--prod') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Construct and prepare an instance of the REST module
|
// Construct and prepare an instance of the REST module
|
||||||
const rest = new REST({ version: '10' }).setToken(token);
|
const rest = new REST({ version: "10" }).setToken(token);
|
||||||
|
|
||||||
|
|
||||||
// and deploy your commands!
|
// and deploy your commands!
|
||||||
(async () => {
|
(async () => {
|
||||||
@@ -37,10 +35,7 @@ else if (arg === '--prod') {
|
|||||||
console.log(`Started refreshing ${commands.length} application (/) commands.`);
|
console.log(`Started refreshing ${commands.length} application (/) commands.`);
|
||||||
|
|
||||||
// The put method is used to fully refresh all commands in the guild with the current set
|
// The put method is used to fully refresh all commands in the guild with the current set
|
||||||
const data = await rest.put(
|
const data = await rest.put(Routes.applicationCommands(clientId), { body: commands });
|
||||||
Routes.applicationCommands(clientId),
|
|
||||||
{ body: commands },
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
|
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -48,11 +43,10 @@ else if (arg === '--prod') {
|
|||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
} else if (arg === "--dev") {
|
||||||
else if (arg === '--dev') {
|
|
||||||
const commands = [];
|
const commands = [];
|
||||||
// Grab all the command files from the commands directory you created earlier
|
// Grab all the command files from the commands directory you created earlier
|
||||||
const commandFiles = fs.readdirSync('./commands-testing').filter(file => file.endsWith('.js'));
|
const commandFiles = fs.readdirSync("./commands-testing").filter((file) => file.endsWith(".js"));
|
||||||
|
|
||||||
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
|
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
|
||||||
for (const file of commandFiles) {
|
for (const file of commandFiles) {
|
||||||
@@ -61,8 +55,7 @@ else if (arg === '--dev') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Construct and prepare an instance of the REST module
|
// Construct and prepare an instance of the REST module
|
||||||
const rest = new REST({ version: '10' }).setToken(token);
|
const rest = new REST({ version: "10" }).setToken(token);
|
||||||
|
|
||||||
|
|
||||||
// and deploy your commands!
|
// and deploy your commands!
|
||||||
(async () => {
|
(async () => {
|
||||||
@@ -70,10 +63,7 @@ else if (arg === '--dev') {
|
|||||||
console.log(`Started refreshing ${commands.length} application (/) commands.`);
|
console.log(`Started refreshing ${commands.length} application (/) commands.`);
|
||||||
|
|
||||||
// The put method is used to fully refresh all commands in the guild with the current set
|
// The put method is used to fully refresh all commands in the guild with the current set
|
||||||
const data = await rest.put(
|
const data = await rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: commands });
|
||||||
Routes.applicationGuildCommands(clientId, guildId),
|
|
||||||
{ body: commands },
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
|
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -81,7 +71,6 @@ else if (arg === '--dev') {
|
|||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
} else if (arg && arg !== "--prod" && arg !== "--dev") {
|
||||||
else if (arg && arg !== '--prod' && arg !== '--dev') {
|
console.log("Invalid argument!");
|
||||||
console.log('Invalid argument!');
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const { REST, Routes } = require('discord.js');
|
const { REST, Routes } = require("discord.js");
|
||||||
const env = require('dotenv').config();
|
const env = require("dotenv").config();
|
||||||
const token = process.env.TOKEN;
|
const token = process.env.TOKEN;
|
||||||
const clientId = process.env.DEVID;
|
const clientId = process.env.DEVID;
|
||||||
const guildId = process.env.GUILDID;
|
const guildId = process.env.GUILDID;
|
||||||
@@ -8,9 +8,7 @@ const commands = [];
|
|||||||
// Grab all the command files from the commands directory you created earlier
|
// Grab all the command files from the commands directory you created earlier
|
||||||
// const commandFiles = fs.readdirSync('./commands-testing').filter(file => file.endsWith('.js'));
|
// const commandFiles = fs.readdirSync('./commands-testing').filter(file => file.endsWith('.js'));
|
||||||
|
|
||||||
const commandFiles = [
|
const commandFiles = ["./commands/config.js"];
|
||||||
'./commands/config.js',
|
|
||||||
]
|
|
||||||
|
|
||||||
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
|
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
|
||||||
for (const file of commandFiles) {
|
for (const file of commandFiles) {
|
||||||
@@ -19,23 +17,19 @@ for (const file of commandFiles) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Construct and prepare an instance of the REST module
|
// Construct and prepare an instance of the REST module
|
||||||
const rest = new REST({ version: '10' }).setToken(token);
|
const rest = new REST({ version: "10" }).setToken(token);
|
||||||
|
|
||||||
|
|
||||||
// and deploy your commands!
|
// and deploy your commands!
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
console.log(`Started refreshing ${commands.length} application (/) commands.`);
|
console.log(`Started refreshing ${commands.length} application (/) commands.`);
|
||||||
|
|
||||||
// The put method is used to fully refresh all commands in the guild with the current set
|
// The put method is used to fully refresh all commands in the guild with the current set
|
||||||
const data = await rest.put(
|
const data = await rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: commands });
|
||||||
Routes.applicationGuildCommands(clientId, guildId),
|
|
||||||
{ body: commands },
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
|
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// And of course, make sure you catch and log any errors!
|
// And of course, make sure you catch and log any errors!
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
/* ---------- bedwars level ---------- */
|
/* ---------- bedwars level ---------- */
|
||||||
function getExpForLevel(level){
|
function getExpForLevel(level) {
|
||||||
if(level == 0) return 0;
|
if (level == 0) return 0;
|
||||||
|
|
||||||
var respectedLevel = getLevelRespectingPrestige(level);
|
var respectedLevel = getLevelRespectingPrestige(level);
|
||||||
if(respectedLevel > EASY_LEVELS){
|
if (respectedLevel > EASY_LEVELS) {
|
||||||
return 5000;
|
return 5000;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(respectedLevel){
|
switch (respectedLevel) {
|
||||||
case 1:
|
case 1:
|
||||||
return 500;
|
return 500;
|
||||||
case 2:
|
case 2:
|
||||||
@@ -20,11 +20,10 @@ function getExpForLevel(level){
|
|||||||
return 5000;
|
return 5000;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLevelRespectingPrestige(level){
|
function getLevelRespectingPrestige(level) {
|
||||||
if(level > HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE){
|
if (level > HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE) {
|
||||||
return level - HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE;
|
return level - HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return level % LEVELS_PER_PRESTIGE;
|
return level % LEVELS_PER_PRESTIGE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,20 +32,20 @@ const EASY_LEVELS_XP = 7000;
|
|||||||
const XP_PER_PRESTIGE = 96 * 5000 + EASY_LEVELS_XP;
|
const XP_PER_PRESTIGE = 96 * 5000 + EASY_LEVELS_XP;
|
||||||
const LEVELS_PER_PRESTIGE = 100;
|
const LEVELS_PER_PRESTIGE = 100;
|
||||||
const HIGHEST_PRESTIGE = 50;
|
const HIGHEST_PRESTIGE = 50;
|
||||||
function getLevelForExp(exp){
|
function getLevelForExp(exp) {
|
||||||
var prestiges = Math.floor(exp / XP_PER_PRESTIGE);
|
var prestiges = Math.floor(exp / XP_PER_PRESTIGE);
|
||||||
var level = prestiges * LEVELS_PER_PRESTIGE;
|
var level = prestiges * LEVELS_PER_PRESTIGE;
|
||||||
var expWithoutPrestiges = exp - (prestiges * XP_PER_PRESTIGE);
|
var expWithoutPrestiges = exp - prestiges * XP_PER_PRESTIGE;
|
||||||
|
|
||||||
for(let i = 1; i <= EASY_LEVELS; ++i){
|
for (let i = 1; i <= EASY_LEVELS; ++i) {
|
||||||
var expForEasyLevel = getExpForLevel(i);
|
var expForEasyLevel = getExpForLevel(i);
|
||||||
if(expWithoutPrestiges < expForEasyLevel){
|
if (expWithoutPrestiges < expForEasyLevel) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
level++;
|
level++;
|
||||||
expWithoutPrestiges -= expForEasyLevel;
|
expWithoutPrestiges -= expForEasyLevel;
|
||||||
}
|
}
|
||||||
return level + expWithoutPrestiges / 5000
|
return level + expWithoutPrestiges / 5000;
|
||||||
}
|
}
|
||||||
// hypixel
|
// hypixel
|
||||||
const BASE = 10000;
|
const BASE = 10000;
|
||||||
@@ -70,8 +69,8 @@ function getExpFromLevelToNext(level) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getTotalExpToLevel(level) {
|
function getTotalExpToLevel(level) {
|
||||||
const lv = Math.floor(level); const
|
const lv = Math.floor(level);
|
||||||
x0 = getTotalExpToFullLevel(lv);
|
const x0 = getTotalExpToFullLevel(lv);
|
||||||
if (level === lv) return x0;
|
if (level === lv) return x0;
|
||||||
return (getTotalExpToFullLevel(lv + 1) - x0) * (level % 1) + x0;
|
return (getTotalExpToFullLevel(lv + 1) - x0) * (level % 1) + x0;
|
||||||
}
|
}
|
||||||
@@ -88,14 +87,14 @@ function getPercentageToNextLevel(exp) {
|
|||||||
/* ---------- skywars level ---------- */
|
/* ---------- skywars level ---------- */
|
||||||
function skywarsLevel(xp) {
|
function skywarsLevel(xp) {
|
||||||
var xps = [0, 20, 70, 150, 250, 500, 1000, 2000, 3500, 6000, 10000, 15000];
|
var xps = [0, 20, 70, 150, 250, 500, 1000, 2000, 3500, 6000, 10000, 15000];
|
||||||
let exactLevel = 0
|
let exactLevel = 0;
|
||||||
if (xp >= 15000) {
|
if (xp >= 15000) {
|
||||||
exactLevel = (xp - 15000) / 10000 + 12;
|
exactLevel = (xp - 15000) / 10000 + 12;
|
||||||
return exactLevel;
|
return exactLevel;
|
||||||
} else {
|
} else {
|
||||||
for (i = 0; i < xps.length; i++) {
|
for (i = 0; i < xps.length; i++) {
|
||||||
if (xp < xps[i]) {
|
if (xp < xps[i]) {
|
||||||
exactLevel = i + (xp - xps[i-1]) / (xps[i] - xps[i-1]);
|
exactLevel = i + (xp - xps[i - 1]) / (xps[i] - xps[i - 1]);
|
||||||
return exactLevel;
|
return exactLevel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -105,5 +104,5 @@ function skywarsLevel(xp) {
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
getExactLevel,
|
getExactLevel,
|
||||||
skywarsLevel,
|
skywarsLevel,
|
||||||
getLevelForExp
|
getLevelForExp,
|
||||||
}
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user