From b5367c5c60563572b09802e65ce9f7cf3d405db9 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 29 Dec 2024 19:07:56 +0100 Subject: [PATCH 1/2] Updated logger function --- src/utils/Logger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/Logger.ts b/src/utils/Logger.ts index 33cf23d..83267b5 100644 --- a/src/utils/Logger.ts +++ b/src/utils/Logger.ts @@ -33,7 +33,7 @@ export function log(m: string, t: LogType, c?: CustomColorProps): void { const logType = AllLogs[t].m const logColor = AllLogs[t].c - const message = `[${logType}] ${time} | ${m}` + const message = `${time} - [${logType}] | ${m}` if (!c) { if (t === "info") { console.log(message) From 78e26db043351e680e3f9d81ce604ddf3e629e2d Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 29 Dec 2024 19:08:32 +0100 Subject: [PATCH 2/2] Moved guild rank function to seperate module --- src/commands-contextmenu/updateuser.ts | 56 ++++--------------- src/commands/forceupdate.ts | 49 +++-------------- src/commands/forceverify.ts | 32 ++--------- src/commands/staff/updateall.ts | 29 ++-------- src/commands/update.ts | 50 +++-------------- src/commands/verify.ts | 32 ++--------- src/components/buttons/guildinactivitylog.ts | 4 +- src/components/modals/verifyModal.ts | 32 ++--------- src/config/roles.ts | 8 +-- src/utils/Functions/guildrank.ts | 57 ++++++++++++++++++++ src/utils/Functions/rolesmanage.ts | 22 ++++---- 11 files changed, 114 insertions(+), 257 deletions(-) create mode 100644 src/utils/Functions/guildrank.ts diff --git a/src/commands-contextmenu/updateuser.ts b/src/commands-contextmenu/updateuser.ts index da92501..b297e02 100644 --- a/src/commands-contextmenu/updateuser.ts +++ b/src/commands-contextmenu/updateuser.ts @@ -3,6 +3,7 @@ import { getVerify } from "src/drizzle/functions.js" import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js" import { waitingListRole } from "~/config/roles.js" import { IContextMenu } from "~/interfaces" +import getGuildRank from "~/utils/Functions/guildrank.js" import roleManage from "~/utils/Functions/rolesmanage.js" import { getGuild, getHeadURL, getIGN } from "~/utils/Hypixel.js" @@ -102,55 +103,16 @@ export default { const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid)!.rank let replyRank: string | null = null + const rank = getGuildRank(guildRank) + if (rank) { + await user.roles.remove(rank.rolesToRemove, "User was force updated.") + await user.roles.add(rank.rolesToAdd, "User was force updated.") + replyRank = rank.rank + } + + await user.roles.remove(waitingListRole, "User was force updated.") await user.roles.add(roleManage("default").rolesToAdd, "User was force updated.") - if (guildRank === "Guild Master") { - const roles = roleManage("gm") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Guild Master" - } - - if (guildRank === "Manager") { - const roles = roleManage("manager") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Manager" - } - - if (guildRank === "Moderator") { - const roles = roleManage("moderator") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Moderator" - } - - if (guildRank === "Beast") { - const roles = roleManage("beast") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Beast" - } - - if (guildRank === "Elite") { - const roles = roleManage("elite") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Elite" - } - - if (guildRank === "Member") { - const roles = roleManage("member") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Member" - } - - // FIXME: check if user is on waiting list - if (user.roles.cache.has(waitingListRole)) { - await user.roles.remove(waitingListRole, "User was force updated.") - } - await user.setNickname(ign, "User was force updated.").catch(() => { // Do nothing }) diff --git a/src/commands/forceupdate.ts b/src/commands/forceupdate.ts index 573f01d..771de7b 100644 --- a/src/commands/forceupdate.ts +++ b/src/commands/forceupdate.ts @@ -3,6 +3,7 @@ import { getVerify } from "src/drizzle/functions.js" import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js" import { waitingListRole } from "~/config/roles.js" import { ICommand } from "~/interfaces" +import getGuildRank from "~/utils/Functions/guildrank.js" import roleManage from "~/utils/Functions/rolesmanage.js" import { getGuild, getHeadURL, getIGN } from "~/utils/Hypixel.js" @@ -107,51 +108,15 @@ export default { const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid)!.rank let replyRank: string | null = null - await user.roles.add(roleManage("default").rolesToAdd, "User was force updated.") - - if (guildRank === "Guild Master") { - const roles = roleManage("gm") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Guild Master" - } - - if (guildRank === "Manager") { - const roles = roleManage("manager") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Manager" - } - - if (guildRank === "Moderator") { - const roles = roleManage("moderator") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Moderator" - } - - if (guildRank === "Beast") { - const roles = roleManage("beast") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Beast" - } - - if (guildRank === "Elite") { - const roles = roleManage("elite") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Elite" - } - - if (guildRank === "Member") { - const roles = roleManage("member") - await user.roles.remove(roles.rolesToRemove, "User was force updated.") - await user.roles.add(roles.rolesToAdd, "User was force updated.") - replyRank = "Member" + const rank = getGuildRank(guildRank) + if (rank) { + await user.roles.remove(rank.rolesToRemove, "User was force updated.") + await user.roles.add(rank.rolesToAdd, "User was force updated.") + replyRank = rank.rank } await user.roles.remove(waitingListRole, "User was force updated.") + await user.roles.add(roleManage("default").rolesToAdd, "User was force updated.") await user.setNickname(ign, "User was force updated.").catch(() => { // Do nothing }) diff --git a/src/commands/forceverify.ts b/src/commands/forceverify.ts index beb93c7..2bebfd0 100644 --- a/src/commands/forceverify.ts +++ b/src/commands/forceverify.ts @@ -2,6 +2,7 @@ import { GuildMember, InteractionContextType, PermissionFlagsBits, SlashCommandB import { addVerify, getVerify } from "src/drizzle/functions.js" import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js" import { ICommand } from "~/interfaces" +import getGuildRank from "~/utils/Functions/guildrank.js" import logToChannel from "~/utils/Functions/logtochannel.js" import roleManage from "~/utils/Functions/rolesmanage.js" import { getGuild, getHeadURL, getPlayer, getUUID } from "~/utils/Hypixel.js" @@ -102,34 +103,9 @@ export default { const GuildMembers = guild!.members const guildRank = GuildMembers.find(member => member.uuid === player.uuid)!.rank - if (guildRank === "Guild Master") { - const roles = roleManage("gm") - await user.roles.add(roles.rolesToAdd, "User was force verified by " + modName) - } - - if (guildRank === "Manager") { - const roles = roleManage("manager") - await user.roles.add(roles.rolesToAdd, "User was force verified by " + modName) - } - - if (guildRank === "Moderator") { - const roles = roleManage("moderator") - await user.roles.add(roles.rolesToAdd, "User was force verified by " + modName) - } - - if (guildRank === "Beast") { - const roles = roleManage("beast") - await user.roles.add(roles.rolesToAdd, "User was force verified by " + modName) - } - - if (guildRank === "Elite") { - const roles = roleManage("elite") - await user.roles.add(roles.rolesToAdd, "User was force verified by " + modName) - } - - if (guildRank === "Member") { - const roles = roleManage("member") - await user.roles.add(roles.rolesToAdd, "User was force verified by " + modName) + const rank = getGuildRank(guildRank) + if (rank) { + await user.roles.add(rank.rolesToAdd, "User was force verified by " + modName) } } diff --git a/src/commands/staff/updateall.ts b/src/commands/staff/updateall.ts index 7e45542..ef0a9e9 100644 --- a/src/commands/staff/updateall.ts +++ b/src/commands/staff/updateall.ts @@ -3,6 +3,7 @@ import { getVerifies } from "src/drizzle/functions.js" import { embedColor, hypixelGuildID } from "~/config/options.js" import { IGuildData } from "~/interfaces" import env from "~/utils/Env.js" +import getGuildRank from "~/utils/Functions/guildrank.js" import roleManage from "~/utils/Functions/rolesmanage.js" import { getGuild, getIGN } from "~/utils/Hypixel.js" import { log } from "~/utils/Logger.js" @@ -94,30 +95,10 @@ export default async function updateAll(interaction: ChatInputCommandInteraction const guildMemberRank = hypixelGuildMembers.find(gmember => gmember.uuid === memberData!.uuid)!.rank log(" Updating roles for " + gmember.member.user.username, "info", { type: "preset", color: "lavender" }) - if (guildMemberRank === "Guild Master") { - const rolesmanage = roleManage("gm") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members") - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members") - } else if (guildMemberRank === "Manager") { - const rolesmanage = roleManage("manager") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members") - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members") - } else if (guildMemberRank === "Moderator") { - const rolesmanage = roleManage("moderator") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members") - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members") - } else if (guildMemberRank === "Beast") { - const rolesmanage = roleManage("beast") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members") - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members") - } else if (guildMemberRank === "Elite") { - const rolesmanage = roleManage("elite") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members") - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members") - } else if (guildMemberRank === "Member") { - const rolesmanage = roleManage("member") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members") - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members") + const rank = getGuildRank(guildMemberRank) + if (rank) { + await gmember.member.roles.remove(rank.rolesToRemove, "Updating all discord members") + await gmember.member.roles.add(rank.rolesToAdd, "Updating all discord members") } } await gmember.member.setNickname(ign, "Updating all discord members").catch(() => { diff --git a/src/commands/update.ts b/src/commands/update.ts index 51427b7..887ad54 100644 --- a/src/commands/update.ts +++ b/src/commands/update.ts @@ -3,6 +3,7 @@ import { getVerify } from "src/drizzle/functions.js" import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js" import { waitingListRole } from "~/config/roles.js" import { ICommand } from "~/interfaces" +import getGuildRank from "~/utils/Functions/guildrank.js" import roleManage from "~/utils/Functions/rolesmanage.js" import { getGuild, getHeadURL, getIGN } from "~/utils/Hypixel.js" @@ -90,52 +91,15 @@ export default { const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid)!.rank let replyRank: string | null = null - await user.roles.add(roleManage("default").rolesToAdd, "User used the update command") - - if (guildRank === "Guild Master") { - const roles = roleManage("gm") - await user.roles.remove(roles.rolesToRemove, "User used the update command") - await user.roles.add(roles.rolesToAdd, "User used the update command") - replyRank = "Guild Master" - } - - if (guildRank === "Manager") { - const roles = roleManage("manager") - await user.roles.remove(roles.rolesToRemove, "User used the update command") - await user.roles.add(roles.rolesToAdd, "User used the update command") - replyRank = "Manager" - } - - if (guildRank === "Moderator") { - const roles = roleManage("moderator") - await user.roles.remove(roles.rolesToRemove, "User used the update command") - await user.roles.add(roles.rolesToAdd, "User used the update command") - replyRank = "Moderator" - } - - if (guildRank === "Beast") { - const roles = roleManage("beast") - await user.roles.remove(roles.rolesToRemove, "User used the update command") - await user.roles.add(roles.rolesToAdd, "User used the update command") - replyRank = "Beast" - } - - if (guildRank === "Elite") { - const roles = roleManage("elite") - await user.roles.remove(roles.rolesToRemove, "User used the update command") - await user.roles.add(roles.rolesToAdd, "User used the update command") - replyRank = "Elite" - } - - if (guildRank === "Member") { - const roles = roleManage("member") - await user.roles.remove(roles.rolesToRemove, "User used the update command") - await user.roles.add(roles.rolesToAdd, "User used the update command") - replyRank = "Member" + const rank = getGuildRank(guildRank) + if (rank) { + await user.roles.remove(rank.rolesToRemove, "User used the update command") + await user.roles.add(rank.rolesToAdd, "User used the update command") + replyRank = rank.rank } await user.roles.remove(waitingListRole, "User used the update command") - + await user.roles.add(roleManage("default").rolesToAdd, "User used the update command") await user.setNickname(ign, "Verification").catch(() => { // Do nothing }) diff --git a/src/commands/verify.ts b/src/commands/verify.ts index 00f27c2..6c8aea2 100644 --- a/src/commands/verify.ts +++ b/src/commands/verify.ts @@ -4,6 +4,7 @@ import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js" import { ICommand } from "~/interfaces" import { IPlayerData } from "~/interfaces" import { IGuildData } from "~/interfaces" +import getGuildRank from "~/utils/Functions/guildrank.js" import roleManage from "~/utils/Functions/rolesmanage.js" import { getGuild, getHeadURL, getPlayer, getUUID } from "~/utils/Hypixel.js" @@ -127,34 +128,9 @@ export default { const GuildMembers = guild!.members const guildRank = GuildMembers.find(member => member.uuid === player.uuid)!.rank - if (guildRank === "Guild Master") { - const roles = roleManage("gm") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Manager") { - const roles = roleManage("manager") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Moderator") { - const roles = roleManage("moderator") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Beast") { - const roles = roleManage("beast") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Elite") { - const roles = roleManage("elite") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Member") { - const roles = roleManage("member") - await user.roles.add(roles.rolesToAdd, "Verification") + const rank = getGuildRank(guildRank) + if (rank) { + await user.roles.add(rank.rolesToAdd, "Verification") } } diff --git a/src/components/buttons/guildinactivitylog.ts b/src/components/buttons/guildinactivitylog.ts index 582f880..a9096ee 100644 --- a/src/components/buttons/guildinactivitylog.ts +++ b/src/components/buttons/guildinactivitylog.ts @@ -2,10 +2,10 @@ import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel import { ignM, largeM, smallM } from "~/config/limitmessages.js" import { embedColor, inactivityLogChannel } from "~/config/options.js" import { inactivity } from "~/config/questions.js" -import { beast, gm, guildRole, guildStaff, manager, member, moderator } from "~/config/roles.js" +import { beast, gm, guildRole, guildStaff, leader, member, staff } from "~/config/roles.js" import { IButton } from "~/interfaces" import applicationQuestions from "~/utils/Functions/applicationquestions.js" -const guildRoles = [gm, manager, moderator, beast, member, guildStaff, guildRole] +const guildRoles = [gm, leader, staff, beast, member, guildStaff, guildRole] export default { name: "guildinactivitylog", diff --git a/src/components/modals/verifyModal.ts b/src/components/modals/verifyModal.ts index 4074d17..112eda7 100644 --- a/src/components/modals/verifyModal.ts +++ b/src/components/modals/verifyModal.ts @@ -2,6 +2,7 @@ import { GuildMember } from "discord.js" import { addVerify, getVerify } from "src/drizzle/functions.js" import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js" import { IModal } from "~/interfaces" +import getGuildRank from "~/utils/Functions/guildrank.js" import roleManage from "~/utils/Functions/rolesmanage.js" import { getGuild, getHeadURL, getPlayer, getUUID } from "~/utils/Hypixel.js" @@ -109,34 +110,9 @@ export default { const GuildMembers = guild!.members const guildRank = GuildMembers.find(member => member.uuid === player.uuid)!.rank - if (guildRank === "Guild Master") { - const roles = roleManage("gm") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Manager") { - const roles = roleManage("manager") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Moderator") { - const roles = roleManage("moderator") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Beast") { - const roles = roleManage("beast") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Elite") { - const roles = roleManage("elite") - await user.roles.add(roles.rolesToAdd, "Verification") - } - - if (guildRank === "Member") { - const roles = roleManage("member") - await user.roles.add(roles.rolesToAdd, "Verification") + const rank = getGuildRank(guildRank) + if (rank) { + await user.roles.add(rank.rolesToAdd, "Verification") } await user.roles.add(roleManage("default").rolesToAdd, "Verification") diff --git a/src/config/roles.ts b/src/config/roles.ts index 9f8e364..ffef069 100644 --- a/src/config/roles.ts +++ b/src/config/roles.ts @@ -1,6 +1,6 @@ const gm = "815893218246787080" -const manager = "815880752683679824" -const moderator = "815880910019887134" +const leader = "815880752683679824" +const staff = "815880910019887134" const elite = "1137654165884129310" const beast = "815880942345519104" const member = "815880984301404190" @@ -24,10 +24,10 @@ export { guildRole, guildStaff, helper, - manager, + leader, member, - moderator, muted, + staff, verifyTick, waitingListRole } diff --git a/src/utils/Functions/guildrank.ts b/src/utils/Functions/guildrank.ts new file mode 100644 index 0000000..b88b6ca --- /dev/null +++ b/src/utils/Functions/guildrank.ts @@ -0,0 +1,57 @@ +import roleManage from "./rolesmanage.js" + +export default function getGuildRank(rank: string) { + if (rank === "Guild Master") { + const roles = roleManage("gm") + return { + rolesToRemove: roles.rolesToRemove, + rolesToAdd: roles.rolesToAdd, + rank: "Guild Master" + } + } + + if (rank === "Leader") { + const roles = roleManage("leader") + return { + rolesToRemove: roles.rolesToRemove, + rolesToAdd: roles.rolesToAdd, + rank: "Leader" + } + } + + if (rank === "Staff") { + const roles = roleManage("staff") + return { + rolesToRemove: roles.rolesToRemove, + rolesToAdd: roles.rolesToAdd, + rank: "Staff" + } + } + + if (rank === "Beast") { + const roles = roleManage("beast") + return { + rolesToRemove: roles.rolesToRemove, + rolesToAdd: roles.rolesToAdd, + rank: "Beast" + } + } + + if (rank === "Elite") { + const roles = roleManage("elite") + return { + rolesToRemove: roles.rolesToRemove, + rolesToAdd: roles.rolesToAdd, + rank: "Elite" + } + } + + if (rank === "Member") { + const roles = roleManage("member") + return { + rolesToRemove: roles.rolesToRemove, + rolesToAdd: roles.rolesToAdd, + rank: "Member" + } + } +} diff --git a/src/utils/Functions/rolesmanage.ts b/src/utils/Functions/rolesmanage.ts index ca33ca1..25aea80 100644 --- a/src/utils/Functions/rolesmanage.ts +++ b/src/utils/Functions/rolesmanage.ts @@ -1,8 +1,8 @@ -import { beast, defaultMember, elite, gm, guildRole, guildStaff, manager, member, moderator, verifyTick } from "~/config/roles.js" +import { beast, defaultMember, elite, gm, guildRole, guildStaff, leader, member, staff, verifyTick } from "~/config/roles.js" const roles = [ gm, - manager, - moderator, + leader, + staff, beast, elite, member, @@ -12,8 +12,8 @@ const roles = [ type RoleType = | "gm" - | "manager" - | "moderator" + | "leader" + | "staff" | "beast" | "elite" | "member" @@ -28,15 +28,15 @@ export default function roleManage(role: RoleType): { rolesToRemove: string[], r return { rolesToRemove, rolesToAdd } } - if (role === "manager") { - const rolesToRemove = roles.filter(role => role !== manager && role !== guildStaff && role !== guildRole) - const rolesToAdd = [manager, guildStaff, guildRole, verifyTick] + if (role === "leader") { + const rolesToRemove = roles.filter(role => role !== leader && role !== guildStaff && role !== guildRole) + const rolesToAdd = [leader, guildStaff, guildRole, verifyTick] return { rolesToRemove, rolesToAdd } } - if (role === "moderator") { - const rolesToRemove = roles.filter(role => role !== moderator && role !== guildStaff && role !== guildRole) - const rolesToAdd = [moderator, guildStaff, guildRole, verifyTick] + if (role === "staff") { + const rolesToRemove = roles.filter(role => role !== staff && role !== guildStaff && role !== guildRole) + const rolesToAdd = [staff, guildStaff, guildRole, verifyTick] return { rolesToRemove, rolesToAdd } }