mirror of
https://github.com/System-End/Discord-Bot.git
synced 2026-04-19 20:55:16 +00:00
Added warn reason! (w.i.p.)
This commit is contained in:
parent
3d622cc370
commit
09315185b1
10 changed files with 276 additions and 84 deletions
|
|
@ -11,10 +11,19 @@ module.exports = async (client, interaction, args) => {
|
||||||
if (perms == false) return;
|
if (perms == false) return;
|
||||||
|
|
||||||
var member = interaction.options.getUser('user');
|
var member = interaction.options.getUser('user');
|
||||||
|
var Case = interaction.options.getInteger('case');
|
||||||
|
|
||||||
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
data.Warns -= 1;
|
var warn = data.Warnings.find(x => x.Case == Case);
|
||||||
|
if (!warn) {
|
||||||
|
client.errNormal({
|
||||||
|
error: "This user doesn't have a warning with this case number!",
|
||||||
|
type: 'editreply'
|
||||||
|
}, interaction);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
data.Warnings.splice(data.Warnings.indexOf(warn), 1);
|
||||||
data.save();
|
data.save();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,59 @@
|
||||||
const Discord = require('discord.js');
|
const Discord = require('discord.js');
|
||||||
|
|
||||||
const Schema = require("../../database/models/warnings");
|
const Schema = require("../../database/models/warnings");
|
||||||
|
const Case = require("../../database/models/warnCase");
|
||||||
module.exports = async (client, interaction, args) => {
|
module.exports = async (client, interaction, args) => {
|
||||||
const perms = await client.checkUserPerms({
|
const perms = await client.checkUserPerms({
|
||||||
flags: [Discord.PermissionsBitField.Flags.ManageMessages],
|
flags: [Discord.PermissionsBitField.Flags.ManageMessages],
|
||||||
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
||||||
}, interaction);
|
}, interaction);
|
||||||
|
|
||||||
if (perms == false) return;
|
if (perms == false) {
|
||||||
|
client.errNormal({
|
||||||
|
error: "You don't have the required permissions to use this command!",
|
||||||
|
type: 'editreply'
|
||||||
|
}, interaction);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var member = interaction.options.getUser('user');
|
var member = interaction.options.getUser('user');
|
||||||
|
var reason = interaction.options.getString('reason');
|
||||||
|
var caseNumber;
|
||||||
|
await Case.findOne({ Guild: interaction.guild.id }).then(async data => {
|
||||||
|
if (!data) {
|
||||||
|
new Case({
|
||||||
|
Guild: interaction.guild.id,
|
||||||
|
Case: 1
|
||||||
|
}).save();
|
||||||
|
caseNumber = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data.Case += 1;
|
||||||
|
data.save();
|
||||||
|
caseNumber = data.Case;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
data.Warns += 1
|
data.Warnings.push({
|
||||||
|
Moderator: interaction.user.id,
|
||||||
|
Reason: reason,
|
||||||
|
Date: Date.now(),
|
||||||
|
Case: caseNumber
|
||||||
|
});
|
||||||
data.save();
|
data.save();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
new Schema({
|
new Schema({
|
||||||
Guild: interaction.guild.id,
|
Guild: interaction.guild.id,
|
||||||
User: member.id,
|
User: member.id,
|
||||||
Warns: 1
|
Warnings: [{
|
||||||
|
Moderator: interaction.user.id,
|
||||||
|
Reason: reason,
|
||||||
|
Date: Date.now(),
|
||||||
|
Case: caseNumber
|
||||||
|
}]
|
||||||
}).save();
|
}).save();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -35,10 +67,15 @@ module.exports = async (client, interaction, args) => {
|
||||||
value: interaction.user.tag,
|
value: interaction.user.tag,
|
||||||
inline: true
|
inline: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "📄┆Reason",
|
||||||
|
value: reason,
|
||||||
|
inline: true
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}, member).catch(() => {})
|
}, member).catch(() => { })
|
||||||
|
|
||||||
client.emit('warnAdd', member, interaction.user)
|
client.emit('warnAdd', member, interaction.user, reason)
|
||||||
client.succNormal({
|
client.succNormal({
|
||||||
text: `User has received a warning!`,
|
text: `User has received a warning!`,
|
||||||
fields: [
|
fields: [
|
||||||
|
|
@ -46,6 +83,16 @@ module.exports = async (client, interaction, args) => {
|
||||||
name: "👤┆User",
|
name: "👤┆User",
|
||||||
value: `${member}`,
|
value: `${member}`,
|
||||||
inline: true
|
inline: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "👤┆Moderator",
|
||||||
|
value: `${interaction.user}`,
|
||||||
|
inline: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "📄┆Reason",
|
||||||
|
value: reason,
|
||||||
|
inline: false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
type: 'editreply'
|
type: 'editreply'
|
||||||
|
|
|
||||||
|
|
@ -8,22 +8,36 @@ module.exports = async (client, interaction, args) => {
|
||||||
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
||||||
}, interaction);
|
}, interaction);
|
||||||
|
|
||||||
if (perms == false) return;
|
if (perms == false) {
|
||||||
|
client.errNormal({
|
||||||
|
error: "You don't have the required permissions to use this command!",
|
||||||
|
type: 'editreply'
|
||||||
|
}, interaction);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const member = interaction.options.getUser('user');
|
const member = interaction.options.getUser('user');
|
||||||
|
|
||||||
|
|
||||||
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
|
var fields = [];
|
||||||
|
data.Warnings.forEach(element => {
|
||||||
|
fields.push({
|
||||||
|
name: "Warning **" + element.Case + "**",
|
||||||
|
value: "Reason: " + element.Reason + "\nModerator <@!" + element.Moderator + ">",
|
||||||
|
inline: true
|
||||||
|
})
|
||||||
|
});
|
||||||
client.embed({
|
client.embed({
|
||||||
title: `${client.emotes.normal.error}・Warnings`,
|
title: `${client.emotes.normal.error}・Warnings`,
|
||||||
desc: `The warnings of **${member.tag}**`,
|
desc: `The warnings of **${member.tag}**`,
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: "Total",
|
name: "Total",
|
||||||
value: `${data.Warns}`,
|
value: `${data.Warnings.length}`,
|
||||||
inline: false
|
},
|
||||||
}
|
...fields
|
||||||
],
|
],
|
||||||
type: 'editreply'
|
type: 'editreply'
|
||||||
}, interaction)
|
}, interaction)
|
||||||
|
|
@ -31,18 +45,10 @@ module.exports = async (client, interaction, args) => {
|
||||||
else {
|
else {
|
||||||
client.embed({
|
client.embed({
|
||||||
title: `${client.emotes.normal.error}・Warnings`,
|
title: `${client.emotes.normal.error}・Warnings`,
|
||||||
desc: `The warnings of **${member.tag}**`,
|
desc: `User ${member.user.tag} has no warnings!`,
|
||||||
fields: [
|
|
||||||
{
|
|
||||||
name: "Total",
|
|
||||||
value: "0",
|
|
||||||
inline: false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
type: 'editreply'
|
type: 'editreply'
|
||||||
}, interaction)
|
}, interaction)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
8
src/database/models/warnCase.js
Normal file
8
src/database/models/warnCase.js
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
const mongoose = require('mongoose');
|
||||||
|
|
||||||
|
const Schema = new mongoose.Schema({
|
||||||
|
Guild: String,
|
||||||
|
Case: Number
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = mongoose.model("warnCase", Schema);
|
||||||
|
|
@ -3,7 +3,7 @@ const mongoose = require('mongoose');
|
||||||
const Schema = new mongoose.Schema({
|
const Schema = new mongoose.Schema({
|
||||||
Guild: String,
|
Guild: String,
|
||||||
User: String,
|
User: String,
|
||||||
Warns: Number
|
Warnings: [Object]
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = mongoose.model("warnings", Schema);
|
module.exports = mongoose.model("warnings", Schema);
|
||||||
|
|
@ -1,6 +1,13 @@
|
||||||
const discord = require('discord.js');
|
const discord = require('discord.js');
|
||||||
|
|
||||||
module.exports = async (client, user, mod) => {
|
/**
|
||||||
|
* @param {discord.Client} client
|
||||||
|
* @param {discord.GuildMember} user
|
||||||
|
* @param {discord.User} mod
|
||||||
|
* @param {string} reason
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
module.exports = async (client, user, mod, reason) => {
|
||||||
const logsChannel = await client.getLogs(user.guild.id);
|
const logsChannel = await client.getLogs(user.guild.id);
|
||||||
if (!logsChannel) return;
|
if (!logsChannel) return;
|
||||||
|
|
||||||
|
|
@ -23,7 +30,13 @@ module.exports = async (client, user, mod) => {
|
||||||
{
|
{
|
||||||
name: `> Moderator`,
|
name: `> Moderator`,
|
||||||
value: `${mod} (${mod.id})`
|
value: `${mod} (${mod.id})`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `> Reason`,
|
||||||
|
value: `${reason}`
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}, logsChannel).catch(() => { })
|
}, logsChannel).catch(() => {
|
||||||
|
console.log
|
||||||
|
})
|
||||||
};
|
};
|
||||||
|
|
@ -105,12 +105,14 @@ module.exports = {
|
||||||
.setName('warn')
|
.setName('warn')
|
||||||
.setDescription('Warn a user')
|
.setDescription('Warn a user')
|
||||||
.addUserOption(option => option.setName('user').setDescription('Select a user').setRequired(true))
|
.addUserOption(option => option.setName('user').setDescription('Select a user').setRequired(true))
|
||||||
|
.addStringOption(option => option.setName('reason').setDescription('The reason for the warn').setRequired(true))
|
||||||
)
|
)
|
||||||
.addSubcommand(subcommand =>
|
.addSubcommand(subcommand =>
|
||||||
subcommand
|
subcommand
|
||||||
.setName('unwarn')
|
.setName('unwarn')
|
||||||
.setDescription('Unwarn a user')
|
.setDescription('Unwarn a user')
|
||||||
.addUserOption(option => option.setName('user').setDescription('Select a user').setRequired(true))
|
.addUserOption(option => option.setName('user').setDescription('Select a user').setRequired(true))
|
||||||
|
.addIntegerOption(option => option.setName('case').setDescription('Give a case number').setRequired(true))
|
||||||
)
|
)
|
||||||
.addSubcommand(subcommand =>
|
.addSubcommand(subcommand =>
|
||||||
subcommand
|
subcommand
|
||||||
|
|
|
||||||
|
|
@ -16,54 +16,88 @@ module.exports = {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
run: async (client, interaction, args) => {
|
run: async (client, interaction, args) => {
|
||||||
await interaction.deferReply({ fetchReply: true });
|
|
||||||
const perms = await client.checkPerms({
|
const perms = await client.checkPerms({
|
||||||
flags: [Discord.PermissionsBitField.Flags.ManageMessages],
|
flags: [Discord.PermissionsBitField.Flags.ManageMessages],
|
||||||
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
||||||
}, interaction)
|
}, interaction)
|
||||||
|
|
||||||
if (perms == false) return;
|
if (perms == false) {
|
||||||
|
client.errNormal({
|
||||||
|
error: "You don't have the required permissions to use this command!",
|
||||||
|
type: 'ephemeral'
|
||||||
|
}, interaction);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await interaction.deferReply({ ephemeral: true });
|
||||||
|
|
||||||
const member = interaction.guild.members.cache.get(interaction.targetId);
|
const member = interaction.guild.members.cache.get(interaction.targetId);
|
||||||
|
|
||||||
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
data.Warns -= 1;
|
const menu = new Discord.StringSelectMenuBuilder()
|
||||||
data.save();
|
.setCustomId('unwarn')
|
||||||
}
|
.setPlaceholder('Select a warning to remove');
|
||||||
else {
|
// Get all warnings and add them to a stringselectmenu
|
||||||
|
data.Warnings.forEach(element => {
|
||||||
|
menu.addOptions({
|
||||||
|
label: `Case ${element.Case}`,
|
||||||
|
value: element.Case.toString(),
|
||||||
|
description: "Reason: " + element.Reason
|
||||||
|
})
|
||||||
|
});
|
||||||
|
// Create a new message with the menu
|
||||||
|
client.embed({
|
||||||
|
title: `🔨・Unwarn`,
|
||||||
|
desc: `Select a warning to remove from **${member.user.tag}**`,
|
||||||
|
components: [new Discord.ActionRowBuilder().addComponents(menu)],
|
||||||
|
type: 'ephemeraledit'
|
||||||
|
}, interaction);
|
||||||
|
|
||||||
|
// Create a new collector for the menu
|
||||||
|
const filter = i => i.user.id === interaction.user.id;
|
||||||
|
const collector = interaction.channel.createMessageComponentCollector({ filter, time: 15000 });
|
||||||
|
|
||||||
|
collector.on('collect', async i => {
|
||||||
|
if (i.customId === 'unwarn') {
|
||||||
|
// Remove the warning from the database
|
||||||
|
data.Warnings.splice(data.Warnings.findIndex(element => element.Case == i.values[0]), 1);
|
||||||
|
data.save();
|
||||||
|
// Remove the menu from the message
|
||||||
|
i.update({
|
||||||
|
components: []
|
||||||
|
});
|
||||||
|
// Send a success message
|
||||||
|
client.succNormal({
|
||||||
|
text: `The warning has been successfully removed`,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: "👤┆User",
|
||||||
|
value: `${member}`,
|
||||||
|
inline: true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
type: 'ephemeraledit'
|
||||||
|
}, interaction);
|
||||||
|
client.emit('warnRemove', member, interaction.user)
|
||||||
|
client.embed({
|
||||||
|
title: `🔨・Unwarn`,
|
||||||
|
desc: `You've been unwarned in **${interaction.guild.name}**`,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: "👤┆Moderator",
|
||||||
|
value: interaction.user.tag,
|
||||||
|
inline: true
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}, member).catch(() => { })
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
client.errNormal({
|
client.errNormal({
|
||||||
error: "User has no warnings!",
|
error: "User has no warnings!",
|
||||||
type: 'editreply'
|
type: 'ephemeraledit'
|
||||||
}, interaction);
|
}, interaction);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
client.embed({
|
|
||||||
title: `🔨・Unwarn`,
|
|
||||||
desc: `You've been unwarned in **${interaction.guild.name}**`,
|
|
||||||
fields: [
|
|
||||||
{
|
|
||||||
name: "👤┆Moderator",
|
|
||||||
value: interaction.user.tag,
|
|
||||||
inline: true
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}, member).catch(() => { })
|
|
||||||
|
|
||||||
client.emit('warnRemove', member, interaction.user)
|
|
||||||
client.succNormal({
|
|
||||||
text: `The user's warning has been successfully removed`,
|
|
||||||
fields: [
|
|
||||||
{
|
|
||||||
name: "👤┆User",
|
|
||||||
value: `${member}`,
|
|
||||||
inline: true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
type: 'editreply'
|
|
||||||
}, interaction);
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3,6 +3,7 @@ const { ContextMenuCommandBuilder } = require('discord.js');
|
||||||
const Discord = require('discord.js');
|
const Discord = require('discord.js');
|
||||||
|
|
||||||
const Schema = require("../../database/models/warnings");
|
const Schema = require("../../database/models/warnings");
|
||||||
|
const Case = require("../../database/models/warnCase");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
data: new ContextMenuCommandBuilder()
|
data: new ContextMenuCommandBuilder()
|
||||||
|
|
@ -14,28 +15,80 @@ module.exports = {
|
||||||
* @param {CommandInteraction} interaction
|
* @param {CommandInteraction} interaction
|
||||||
* @param {String[]} args
|
* @param {String[]} args
|
||||||
*/
|
*/
|
||||||
|
|
||||||
run: async (client, interaction, args) => {
|
run: async (client, interaction, args) => {
|
||||||
await interaction.deferReply({ fetchReply: true });
|
|
||||||
const perms = await client.checkPerms({
|
const perms = await client.checkPerms({
|
||||||
flags: [Discord.PermissionsBitField.Flags.ManageMessages],
|
flags: [Discord.PermissionsBitField.Flags.ManageMessages],
|
||||||
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
||||||
}, interaction)
|
}, interaction)
|
||||||
|
if (perms === false) {
|
||||||
|
client.errNormal({
|
||||||
|
error: `You don't have the required permissions to use this command!`,
|
||||||
|
type: 'ephemeral'
|
||||||
|
}, interaction);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Create modal to give a reason
|
||||||
|
const modal = new Discord.ModalBuilder()
|
||||||
|
.setTitle('Warn')
|
||||||
|
.setCustomId('warn')
|
||||||
|
.addComponents(
|
||||||
|
new Discord.ActionRowBuilder().addComponents(
|
||||||
|
new Discord.TextInputBuilder()
|
||||||
|
.setCustomId('reason')
|
||||||
|
.setPlaceholder('Reason')
|
||||||
|
.setLabel('Reason')
|
||||||
|
.setMinLength(1)
|
||||||
|
.setStyle(Discord.TextInputStyle.Short)
|
||||||
|
.setMaxLength(100)),
|
||||||
|
);
|
||||||
|
await interaction.showModal(modal);
|
||||||
|
|
||||||
if (perms == false) return;
|
const submitted = await interaction.awaitModalSubmit({
|
||||||
|
time: 60000,
|
||||||
|
filter: i => i.user.id === interaction.user.id,
|
||||||
|
}).catch(() => { });
|
||||||
|
|
||||||
|
if (!submitted) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const member = interaction.guild.members.cache.get(interaction.targetId);
|
const member = interaction.guild.members.cache.get(interaction.targetId);
|
||||||
|
var caseNumber;
|
||||||
|
await Case.findOne({ Guild: interaction.guild.id }).then(async data => {
|
||||||
|
if(!data) {
|
||||||
|
new Case({
|
||||||
|
Guild: interaction.guild.id,
|
||||||
|
Case: 1
|
||||||
|
}).save();
|
||||||
|
caseNumber = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data.Case += 1;
|
||||||
|
data.save();
|
||||||
|
caseNumber = data.Case;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
data.Warns += 1
|
data.Warnings.push({
|
||||||
|
Moderator: interaction.user.id,
|
||||||
|
Reason: submitted.fields.getTextInputValue("reason"),
|
||||||
|
Date: Date.now(),
|
||||||
|
Case: caseNumber
|
||||||
|
});
|
||||||
data.save();
|
data.save();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
new Schema({
|
new Schema({
|
||||||
Guild: interaction.guild.id,
|
Guild: interaction.guild.id,
|
||||||
User: member.id,
|
User: member.id,
|
||||||
Warns: 1
|
Warnings: [{
|
||||||
|
Moderator: interaction.user.id,
|
||||||
|
Reason: submitted.fields.getTextInputValue("reason"),
|
||||||
|
Date: Date.now(),
|
||||||
|
Case: caseNumber
|
||||||
|
}]
|
||||||
}).save();
|
}).save();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -49,10 +102,15 @@ module.exports = {
|
||||||
value: interaction.user.tag,
|
value: interaction.user.tag,
|
||||||
inline: true
|
inline: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "📄┆Reason",
|
||||||
|
value: submitted.fields.getTextInputValue("reason"),
|
||||||
|
inline: true
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}, member).catch(() => {})
|
}, member).catch(() => { })
|
||||||
|
|
||||||
client.emit('warnAdd', member, interaction.user)
|
client.emit('warnAdd', member, interaction.user, submitted.fields.getTextInputValue("reason"));
|
||||||
client.succNormal({
|
client.succNormal({
|
||||||
text: `User has received a warning!`,
|
text: `User has received a warning!`,
|
||||||
fields: [
|
fields: [
|
||||||
|
|
@ -60,11 +118,20 @@ module.exports = {
|
||||||
name: "👤┆User",
|
name: "👤┆User",
|
||||||
value: `${member}`,
|
value: `${member}`,
|
||||||
inline: true
|
inline: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "👤┆Moderator",
|
||||||
|
value: `${interaction.user}`,
|
||||||
|
inline: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "📄┆Reason",
|
||||||
|
value: submitted.fields.getTextInputValue("reason"),
|
||||||
|
inline: false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
type: 'editreply'
|
type: 'ephemeral'
|
||||||
}, interaction);
|
}, submitted);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -14,29 +14,42 @@ module.exports = {
|
||||||
* @param {CommandInteraction} interaction
|
* @param {CommandInteraction} interaction
|
||||||
* @param {String[]} args
|
* @param {String[]} args
|
||||||
*/
|
*/
|
||||||
|
|
||||||
run: async (client, interaction, args) => {
|
run: async (client, interaction, args) => {
|
||||||
await interaction.deferReply({ fetchReply: true });
|
|
||||||
const perms = await client.checkPerms({
|
const perms = await client.checkPerms({
|
||||||
flags: [Discord.PermissionsBitField.Flags.ManageMessages],
|
flags: [Discord.PermissionsBitField.Flags.ManageMessages],
|
||||||
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
perms: [Discord.PermissionsBitField.Flags.ManageMessages]
|
||||||
}, interaction)
|
}, interaction)
|
||||||
|
|
||||||
if (perms == false) return;
|
if (perms == false){
|
||||||
|
client.errNormal({
|
||||||
|
error: "You don't have the required permissions to use this command!",
|
||||||
|
type: 'ephemeral'
|
||||||
|
}, interaction);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await interaction.deferReply({ ephemeral: false });
|
||||||
|
|
||||||
const member = interaction.guild.members.cache.get(interaction.targetId);
|
const member = interaction.guild.members.cache.get(interaction.targetId);
|
||||||
|
|
||||||
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
Schema.findOne({ Guild: interaction.guild.id, User: member.id }, async (err, data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
|
var fields = [];
|
||||||
|
data.Warnings.forEach(element => {
|
||||||
|
fields.push({
|
||||||
|
name: "Warning **" + element.Case + "**",
|
||||||
|
value: "Reason: " + element.Reason + "\nModerator <@!" + element.Moderator + ">",
|
||||||
|
inline: true
|
||||||
|
})
|
||||||
|
});
|
||||||
client.embed({
|
client.embed({
|
||||||
title: `${client.emotes.normal.error}・Warnings`,
|
title: `${client.emotes.normal.error}・Warnings`,
|
||||||
desc: `The warnings of **${member.tag}**`,
|
desc: `The warnings of **${member.user.tag}**`,
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: "Total",
|
name: "Total",
|
||||||
value: `${data.Warns}`,
|
value: `${data.Warnings.length}`,
|
||||||
innline: false
|
},
|
||||||
}
|
...fields
|
||||||
],
|
],
|
||||||
type: 'editreply'
|
type: 'editreply'
|
||||||
}, interaction)
|
}, interaction)
|
||||||
|
|
@ -44,14 +57,7 @@ module.exports = {
|
||||||
else {
|
else {
|
||||||
client.embed({
|
client.embed({
|
||||||
title: `${client.emotes.normal.error}・Warnings`,
|
title: `${client.emotes.normal.error}・Warnings`,
|
||||||
desc: `The warnings of **${member.tag}**`,
|
desc: `User ${member.user.tag} has no warnings!`,
|
||||||
fields: [
|
|
||||||
{
|
|
||||||
name: "Total",
|
|
||||||
value: "0",
|
|
||||||
innline: false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
type: 'editreply'
|
type: 'editreply'
|
||||||
}, interaction)
|
}, interaction)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue