diff --git a/commands/levelchannel.js b/commands/levelchannel.js new file mode 100644 index 0000000..a531f46 --- /dev/null +++ b/commands/levelchannel.js @@ -0,0 +1,49 @@ +const Discord = require('discord.js'); + +const UserData = require('../models/user'); +const LXP = require('../models/localxp'); + +module.exports = { + name: "levelchannel", + aliases: ['lvch', 'lvlch', 'levelch', 'lvmsgch'], + meta: { + category: 'Leveling', + description: "Set the channel to send levelup messages to", + syntax: '`levelchannel [#channel]`', + extra: null, + guildOnly: true + }, + help: new Discord.MessageEmbed() + .setTitle("Help -> Level Message Channel") + .setDescription("Specify a channel for me to send levelup messages to, or `clear` it to have me send the message in the same channel as the user.") + .addField("Syntax", "`levelchannel [#channel]`") + .addField("Notice", "You must be an administrator or have the specified staff role in your server to be able to use this command.") + .addField("See Also", "Looking for how to turn off level up messages in the server? Use `levelmessage`"), + async execute(message, msg, args, cmd, prefix, mention, client) { + if (!args.length) {return message.channel.send(`Syntax: \`${prefix}levelchannel [#channel]\``);} + let tu = await UserData.findOne({uid: message.author.id}); + if ((!tu || !tu.staffrole || !tu.staffrole.length || !message.member.roles.cache.has(tu.staffrole)) && !message.member.permissions.has("ADMINISTRATOR")) {return message.channel.send("You don't have the permissions to do that in this server!");} + + let xp = await LXP.findOne({gid: message.guild.id}); + if (!xp) {return message.channel.send("Leveling isn't enabled in this server!");} + + if (['s', 'set'].includes(args[0].toLowerCase())) { + args.shift(); + if (!args.length) {return message.channel.send("Please try again and provide a channel to set the level up messages to be sent to.");} + let ch = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]); + if (!ch) {return message.reply("I couldn't find that channel! Try again?");} + xp.lvch = ch.id; + xp.save(); + return message.channel.send(`Got it! I'll send levelup messages to <#${ch.id}>`); + } + + if (['c', 'clear'].includes(args[0].toLowerCase())) { + if (!xp.lvch.length) {return message.channel.send("I'm already not sending levelup messages to any specific channel!");} + xp.lvch = ''; + xp.save(); + return message.channel.send("Level up message channel cleared. I'll now send messages to the channel where the member levels up in."); + } + + return message.channel.send("Invalid arg! Use `set` or `clear`."); + } +}; \ No newline at end of file