feat(bot-discord): moderation commands

This commit is contained in:
GramingFoxTeam
2023-07-31 19:47:45 +03:00
parent 9ed5365811
commit df363224e7
7 changed files with 131 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
export function checkForPerms(config, member) {
for (let role in config.discord.trainRoles) {
for (const role in config.discord.modRoles) {
if (member.roles.cache.get(role)) {
return true;
}

View File

@@ -0,0 +1,8 @@
export function checkForPerms(config, member) {
for (const role in config.discord.trainRoles) {
if (member.roles.cache.get(role)) {
return true;
}
}
return false;
}

View File

@@ -0,0 +1,33 @@
import { EmbedBuilder, messageLink } from 'discord.js';
export default async function reportToLogs(config, client, action, message, { reason, expire, actionTo, actionBy }, channel) {
const channel = await client.channels.fetch(config.logs.channelId);
const thread = await channel.threads.fetch(config.logs.threadId);
const actionEmbed = new EmbedBuilder()
.setThumbnail(actionTo.user.avatarURL());
const fields = [
{ name: 'Action', value: `${actionTo.toString()} was ${action} by ${actionBy.toString()}` }
];
if (action === 'banned' || action === 'muted') fields.push({
name: 'Reason',
value: reason ? reason : 'No reason provided'
});
if (expire) fields.push({ name: 'Expires', value: `<t:${expire}:F>`});
if (!message) fields.push({ name: 'Reference', value: `[Jump to message](${messageLink(
message.channelId,
message.id,
message.guild.id)})`
});
actionEmbed.setFields(fields);
if (channel) {
const msg = await channel.send({ embeds: [actionEmbed] });
reportToLogs(config, client, action, msg, { reason, expire, actionTo, actionBy });
} else thread.send({ embeds: [actionEmbed] });
}