Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 54 additions & 0 deletions src/commands/checkmembers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
const { SlashCommandBuilder, PermissionsBitField } = require("discord.js");
const Command = require("../structures/command.js");
const config = require("../config.js");

class CheckMembersCommand extends Command {
constructor() {
super({
data: new SlashCommandBuilder()
.setName("checkmembers")
.setDescription("Faça um checkup de todos os membros do servidor.")
.setDMPermission(false)
.setDefaultMemberPermissions(PermissionsBitField.Flags.Administrator),
});
}

/**
* @param {import('discord.js').ChatInputCommandInteraction} interaction
*/
async execute(interaction) {
await interaction.deferReply({ ephemeral: true });

const memberModel = require("../models/member.js");
const memberDocs = await memberModel.find({});

// @vitoUwu: how tf are we suposed to paginate this? skill issue asf
// remember to update this code when we achieve more than 1000 members
const members = await interaction.guild.members.fetch({ limit: 1000 });
const warnings = [];

for (const [id, member] of members) {
if (member.roles.cache.hasAny(...config.levels)) {
const userDocs = memberDocs.filter((doc) => doc.user === id);
if (!userDocs.length) {
warnings.push(
`**<@${id}> (${id})** have a moderator/admin/owner role but is not in any server!`,
);
}
}

if (member.roles.cache.has(config.guestRole)) {
warnings.push(
`**<@${id}> (${id})** is a guest!`,
);
}
}

// i'm praying that this content doesn't reach the discord limit
await interaction.editReply({
content: warnings.join("\n"),
});
}
}

module.exports = new CheckMembersCommand();
1 change: 1 addition & 0 deletions src/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,5 @@ module.exports = {
suggestionsChannel: '1025927402800558090',
pendingTag: '1040402827064922155',
guildsChangeLog: "1049034683968663612",
guestRole: "921091439876780052"
};