generated from nhcarrigan/template
feat: separate admin and mod categories
This commit is contained in:
@@ -29,6 +29,7 @@ interface Guild {
|
||||
}
|
||||
|
||||
interface Stats {
|
||||
admin: Array<string>;
|
||||
community: Array<string>;
|
||||
moderating: Array<string>;
|
||||
owned: Array<string>;
|
||||
@@ -62,7 +63,8 @@ const printReport = (stats: Stats): void => {
|
||||
console.log(`Total Servers Joined: ${stats.total.toString()}\n`);
|
||||
|
||||
printList("Owned Servers", stats.owned, "👑");
|
||||
printList("Moderating (Non-Owned)", stats.moderating, "🛡️ ");
|
||||
printList("Admin (Non-Owned)", stats.admin, "⚙️ ");
|
||||
printList("Moderating (Non-Admin/Non-Owned)", stats.moderating, "🛡️ ");
|
||||
printList("Partnered Servers", stats.partnered, "🤝");
|
||||
printList("Verified Servers", stats.verified, "✅");
|
||||
printList("Community/Public Servers", stats.community, "🌍");
|
||||
@@ -78,6 +80,7 @@ const checkForPermission = (perms: bigint, permission: bigint): boolean => {
|
||||
const analyzeGuilds = (guilds: Array<Guild>): void => {
|
||||
// Arrays to store names instead of just counts
|
||||
const stats: Stats = {
|
||||
admin: [],
|
||||
community: [],
|
||||
moderating: [],
|
||||
owned: [],
|
||||
@@ -96,18 +99,17 @@ const analyzeGuilds = (guilds: Array<Guild>): void => {
|
||||
stats.owned.push(name ?? "Unknown");
|
||||
}
|
||||
|
||||
/*
|
||||
* 2. Moderation
|
||||
* We consider you a "Moderator" if you have specific mod permissions,
|
||||
* Even if you don't own the server.
|
||||
*/
|
||||
const isModerator
|
||||
= checkForPermission(perms, permissions.administrator)
|
||||
const isAdmin = checkForPermission(perms, permissions.administrator);
|
||||
const hasModeratorPermissions
|
||||
= isAdmin
|
||||
|| checkForPermission(perms, permissions.manageGuild)
|
||||
|| checkForPermission(perms, permissions.banMembers)
|
||||
|| checkForPermission(perms, permissions.kickMembers)
|
||||
|| checkForPermission(perms, permissions.moderateMembers);
|
||||
if (isModerator && owner !== true) {
|
||||
|
||||
if (isAdmin && owner !== true) {
|
||||
stats.admin.push(name ?? id);
|
||||
} else if (hasModeratorPermissions && owner !== true && !isAdmin) {
|
||||
stats.moderating.push(name ?? id);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user