Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { Command } = require('discord.js-commando');
- module.exports = class command extends Command {
- constructor(client) {
- super(client, {
- name: 'assign',
- group: 'moderation',
- memberName: 'assign',
- aliases:['a'],
- format:'assign <@member> <clan name>',
- description: 'Assigns a member to clan',
- examples:['assign @evilpauwse#9985 Cult of the Bots'],
- details:"{'userPermission':'MANAGE_ROLES','description':''}"
- });
- }
- run(message) {
- const {examples, format, client} = this
- const db = require("quick.db")
- const args = message.argString.trim().split(/ +/g);
- const bot = require("../../bot.js")
- const config = require('../../config.json')
- function errorMessage(title, content) {
- message.channel.send({
- embed: {
- color: 0xff0000,
- title: title,
- description: content,
- fields: [{
- name: "Usage",
- value: "```" + client.options.commandPrefix + format.replace("|| ",("|| " + client.options.commandPrefix)) + "```"
- },
- {
- name: "Examples",
- value: client.options.commandPrefix + examples[0].split("\n").join("\n" + client.options.commandPrefix)
- },
- ],
- footer: {
- text: "This message will auto-delete in 10 seconds.",
- },
- }
- }).then(msg => {
- msg.delete(10000)
- });
- }
- function missingPermissions() {
- message.channel.send({
- embed: {
- color: 0xff0000,
- title: "No permission!",
- description: "You do not have permission to use this command!",
- footer: {
- text: "This message will auto-delete in 10 seconds.",
- },
- }
- }).then(msg => {
- msg.delete(10000)
- });
- }
- function alreadyAssigned() {
- message.channel.send({
- embed: {
- color: 0xff0000,
- title: "An error occured",
- description: "This member is already a part of a clan!",
- footer: {
- text: "This message will auto-delete in 10 seconds.",
- },
- }
- }).then(msg => {
- msg.delete(10000)
- });
- }
- //
- //!Mod+
- let aroles = message.member.roles.array();
- let arole = message.guild.roles.get("385744602231078923") //admin role
- let mrole = message.guild.roles.get("385744604886204416") //mod role
- if(aroles.indexOf(arole) === -1 && aroles.indexOf(mrole) === -1) {
- return;
- }
- let theNumber;
- let oauth = message.guild.member(message.author);
- let z;
- if(!args[0]) {
- return errorMessage("Invalid member", "Please mention a valid member of the server!");
- }
- let targetMember;
- try {
- targetMember = message.guild.member(message.mentions.members.first());
- } catch(err) {
- return errorMessage("Invalid member", "Please mention a valid member of the server!");
- }
- if(!args[1]) {
- return errorMessage("Invalid clan", "Please include a valid clan to assign the member to!");
- }
- let clanName = message.content.slice(8+args[0].length).toLowerCase().trim();
- // db format: clanArray: [{name: "something", members: [{id: <id>, name: "evilpauwse", dateAdded: <date>}], role: {enabled: true/false, id: <id>}}]
- db.fetch("assignedUsers").then(p => {
- if(p != undefined && p != null && p.includes(targetMember.id)) {
- return alreadyAssigned();
- }
- db.fetch("clanArrayb").then(i => {
- if(!i || i === undefined || i === null) {
- return message.reply("unexcepted error, please contact ``evilpauwse#9985`` asap!")
- }
- for(z=0; z<i.length; z++) {
- if(i[z].toLowerCase() === clanName) {
- console.log(i[z]);
- return theNumber = z;
- }
- }
- });
- db.fetch("clanArray").then(o => {
- if(o[theNumber]===undefined){
- return errorMessage("An error occured", "There are no clans that match this name!");
- }
- let role = false;
- let collector;
- //-console.log(o[z]);
- message.channel.send({embed : {description :"Would you like to assign **"+targetMember.user.username+"** to the clan: **"+o[z].name+"**"}}).then(message => {message.react("✅")
- setTimeout(function() {message.react("✅")}, 500);
- message.react("❌")
- const filter = (reaction, user) => user.id === oauth.id
- const collector = message.createReactionCollector(filter, { time: 1500000 });
- collector.on('collect', r => {collector.stop();});
- collector.on('end', collected => {
- console.log(collected.last().emoji.name);
- if(collector.collected.last().emoji.name ==="✅") {
- //check if role exists:
- console.log(o[theNumber])
- targetMember.addRole(message.guild.roles.get(o[theNumber].branchId)).catch(err => {message.reply("There was an error in adding this role. Please contact evilpauwse#9985 if this occurs.")})
- if(o[theNumber].role.enabled === true) {
- //if role exists:
- targetMember.addRole(message.guild.roles.get(o[theNumber].role.id)).catch(err => {message.reply("There was an error in adding this role. Please contact evilpauwse#9985 if this occurs.")})
- }
- //date getting:
- var date = new Date();
- var hour = date.getHours();
- hour = (hour < 10 ? "0" : "") + hour;
- var min = date.getMinutes();
- min = (min < 10 ? "0" : "") + min;
- var sec = date.getSeconds();
- sec = (sec < 10 ? "0" : "") + sec;
- var year = date.getFullYear();
- var month = date.getMonth() + 1;
- month = (month < 10 ? "0" : "") + month;
- var day = date.getDate();
- day = (day < 10 ? "0" : "") + day;
- var date = month + "/" + day + "/" + year + " - " + hour + ":" + min + ":" + sec;
- // logic for a confirm:
- let memberarray = {id: targetMember.id, name: targetMember.name, dateAdded: date}
- var objdupe = o;
- var members = objdupe[z].members;
- //console.log(objdupe);
- members.push(memberarray);
- objdupe[z].members = members;
- db.set("clanArray", objdupe);
- db.push("assignedUsers", targetMember.id);
- db.fetch("modAssignsb").then(i => {
- let p = i.indexOf(oauth.id);
- if(i === null || i === undefined) {
- db.push("modAssigns", {id: oauth.id, count: 1});
- db.push("modAssignsb", oauth.id);
- }
- else if(!i.includes(oauth.id)) {
- db.push("modAssigns", {id: oauth.id, count: 1});
- db.push("modAssignsb", oauth.id);
- } else {
- db.fetch("modAssigns").then(i => {
- console.log(i);
- let newarray = i;
- console.log(p)
- newarray[p] = newarray[p].count + 1;
- db.set("modAssigns", newarray);
- })
- /*
- let newEmbed = message.guild.channels.get(channel_id).fetchMessage(message_id).embeds[0]
- newEmbed.fields[i.indexOf(message.author.id)].value = `${newarray[i.indexOf(message.author.id)].count} assigns`
- message.guild.channels.get(channel_id).fetchMessage(message_id).edit(newEmbed);
- */
- }
- })
- message.guild.channels.get(config.modFeed).send({embed:{title: `Alliance Member has been Assigned`, color: config.success, description: `Moderator Info: ${oauth.displayName} (${oauth.id})\nMember Info: <@!${targetMember.id}> (${targetMember.id}) - ${targetMember.displayName}\nClan: ${clanName}\nBranch Role: <@&${o[theNumber].branchId}>`}})
- return message.edit({embed : { color: 65280, description :`Successfully added **${targetMember.user.username}** to the clan **${o[z].name}**.`}});
- }
- else {
- return message.edit({embed : { description :`Clan assignment has been canceled.`}});
- }
- });
- });
- })
- })
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement