Updated update discord members subcommand
This commit is contained in:
@@ -1,191 +1,57 @@
|
|||||||
import verify = require("../../schemas/verifySchema")
|
import verify = require("../../schemas/verifySchema")
|
||||||
import { color, hypixelGuildID } from "../../../config/options.json"
|
import { color } from "../../../config/options.json"
|
||||||
import {
|
import {
|
||||||
admin,
|
|
||||||
gm,
|
gm,
|
||||||
manager,
|
manager,
|
||||||
moderator,
|
|
||||||
beast,
|
beast,
|
||||||
elite,
|
elite,
|
||||||
member,
|
member,
|
||||||
guildRole,
|
guildRole,
|
||||||
guildStaff,
|
guildStaff
|
||||||
defaultMember,
|
|
||||||
} from "../../../config/roles.json"
|
} from "../../../config/roles.json"
|
||||||
const removeThese = [gm, manager, beast, elite, member, guildRole, guildStaff]
|
const removeThese = [gm, manager, beast, elite, member, guildRole, guildStaff]
|
||||||
import { getGuild } from "../../utils/Hypixel"
|
|
||||||
import { ChatInputCommandInteraction, GuildMember } from "discord.js"
|
import { ChatInputCommandInteraction, GuildMember } from "discord.js"
|
||||||
import { GuildData } from "../../interfaces/Guild"
|
import env from "../../utils/Env"
|
||||||
|
|
||||||
export async function updateDiscordRoles(
|
|
||||||
interaction: ChatInputCommandInteraction,
|
|
||||||
): Promise<void> {
|
|
||||||
await interaction.deferReply()
|
|
||||||
|
|
||||||
const user = interaction.member as GuildMember
|
|
||||||
|
|
||||||
if (!user.roles.cache.has(admin)) {
|
|
||||||
await interaction.editReply(
|
|
||||||
"You do not have permission to use this command.",
|
|
||||||
)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
|
export async function updateDiscordRoles( interaction: ChatInputCommandInteraction,): Promise<void> {
|
||||||
|
const discordMember = interaction.member as GuildMember
|
||||||
const embedColor = Number(color.replace("#", "0x"))
|
const embedColor = Number(color.replace("#", "0x"))
|
||||||
const guildMembers = await interaction.guild!.members.fetch()
|
await interaction.deferReply({ ephemeral: true })
|
||||||
const memberList = guildMembers.map(member => {
|
|
||||||
return {
|
|
||||||
id: member.user.id,
|
|
||||||
member: member,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
for (const guildMember of memberList) {
|
if (discordMember.user.id !== env.prod.dev) {
|
||||||
const memberData = await verify.findOne({
|
await interaction.editReply({
|
||||||
userID: guildMember.id,
|
|
||||||
})
|
|
||||||
|
|
||||||
if (!memberData) {
|
|
||||||
for (const role of removeThese) {
|
|
||||||
guildMember.member.roles.remove(role)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (memberData) {
|
|
||||||
const isGuildMember = getGuild(memberData.uuid)
|
|
||||||
|
|
||||||
if (!isGuildMember) {
|
|
||||||
for (const role of removeThese) {
|
|
||||||
guildMember.member.roles.remove(role)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
const hypixelGuildMember = isGuildMember as unknown as GuildData
|
|
||||||
|
|
||||||
const guildId = hypixelGuildMember!._id
|
|
||||||
const guildRank = hypixelGuildMember!.members!.find(
|
|
||||||
member => member.uuid === memberData.uuid,
|
|
||||||
)!.rank
|
|
||||||
|
|
||||||
if (guildId === hypixelGuildID) {
|
|
||||||
if (guildRank === "Guild Master") {
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildRole,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildStaff,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
gm,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
defaultMember,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if (guildRank === "Manager") {
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildRole,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildStaff,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
manager,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
defaultMember,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if (guildRank === "Moderator") {
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildRole,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildStaff,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
moderator,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
defaultMember,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if (guildRank === "Beast") {
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildRole,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
beast,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
defaultMember,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if (guildRank === "Elite") {
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildRole,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
elite,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
defaultMember,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if (guildRank === "Member") {
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
guildRole,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
member,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
guildMember.member.roles.add(
|
|
||||||
defaultMember,
|
|
||||||
"All users updated forcefully by staff",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (const role of removeThese) {
|
|
||||||
guildMember.member.roles.remove(role)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interaction.editReply({
|
|
||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
color: embedColor,
|
description: `You do not have permission to use this command.`,
|
||||||
description: "Successfully updated all users.",
|
color: embedColor
|
||||||
footer: {
|
|
||||||
text: interaction.guild!.name,
|
|
||||||
icon_url: interaction.guild!.iconURL({
|
|
||||||
forceStatic: false,
|
|
||||||
})!,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const guildMembersUnfiltered = await interaction.guild!.members.fetch().then(members => members.map(member => {
|
||||||
|
return {
|
||||||
|
id: member.id,
|
||||||
|
member: member
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
const guildMembers = guildMembersUnfiltered.filter(gmember => gmember.member.roles.cache.has(guildRole))
|
||||||
|
console.log(guildMembers.length)
|
||||||
|
|
||||||
|
for (const gmember of guildMembers) {
|
||||||
|
const memberData = await verify.findOne({ userID: gmember.id })
|
||||||
|
|
||||||
|
if (!memberData) {
|
||||||
|
await gmember.member.roles.remove(removeThese)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await interaction.editReply({
|
||||||
|
embeds: [{
|
||||||
|
description: `Successfully updated all roles.`,
|
||||||
|
color: embedColor
|
||||||
|
}]
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user