From 6b9b9ba5568258f083636c489723889ff44c2b40 Mon Sep 17 00:00:00 2001 From: Derek <19647340+derekdinan@users.noreply.github.com> Date: Wed, 11 May 2022 11:12:00 +1000 Subject: [PATCH] Switch const variables to lets in embeds #219 --- commands/50.js | 2 +- commands/8ball.js | 4 +-- commands/avatar.js | 7 ++-- commands/ban.js | 6 ++-- commands/blacklist.wip | 6 ++-- commands/bot.js | 21 +++++++---- commands/button.js | 67 ++++++++++++++++++++++++++++++++++++ commands/cat.js | 2 +- commands/classicube.js | 20 +++++++---- commands/color.js | 2 +- commands/commands.js | 16 ++++----- commands/config.js | 35 +++++++++---------- commands/covid.js | 10 +++--- commands/createchannel.js | 4 +-- commands/dog.js | 2 +- commands/donate.js | 2 +- commands/fish.js | 18 ++++++---- commands/forceban.js | 6 ++-- commands/harvest.js | 2 +- commands/help.js | 19 ++-------- commands/hextorgb.js | 20 ++++++++--- commands/info.js | 10 +++--- commands/inventory.js | 12 +++---- commands/joke.js | 2 +- commands/kick.js | 8 ++--- commands/leaderboard.js | 6 ++-- commands/lockdown.js | 15 ++++---- commands/math.js | 2 +- commands/meme.js | 2 +- commands/pay.js | 10 +++--- commands/ping.js | 2 +- commands/pingwords.js | 10 +++--- commands/plant.js | 2 +- commands/poll.js | 8 ++--- commands/process.js | 6 ++-- commands/profile.js | 48 +++++++++++++------------- commands/purge.js | 6 ++-- commands/remind.js | 2 +- commands/rep.js | 2 +- commands/rhyme.js | 2 +- commands/rps.js | 2 +- commands/say.js | 6 ++-- commands/server.js | 2 +- commands/shop.js | 6 ++-- commands/suggestions.js | 12 +++---- commands/tempban.js | 8 ++--- commands/tempmute.js | 8 ++--- commands/unban.js | 6 ++-- commands/urban.js | 2 +- commands/warn.js | 8 ++--- commands/where.js | 2 +- events/channelCreate.js | 2 +- events/channelDelete.js | 2 +- events/guildBanAdd.js | 2 +- events/guildCreate.js | 12 +++++-- events/guildMemberAdd.js | 2 +- events/guildMemberRemove.js | 2 +- events/guildMemberUpdate.js | 4 +-- events/messageCreate.js | 2 +- events/messageDelete.js | 2 +- events/messageUpdate.js | 2 +- lib/img/icons/pingwords.png | Bin 0 -> 1316 bytes modules/web.js | 10 +++--- modules/webhooks.js | 39 +++++++-------------- routes/me.js | 16 ++++++--- 65 files changed, 332 insertions(+), 253 deletions(-) create mode 100644 commands/button.js create mode 100644 lib/img/icons/pingwords.png diff --git a/commands/50.js b/commands/50.js index f8ca8a75..8ec63a79 100644 --- a/commands/50.js +++ b/commands/50.js @@ -15,7 +15,7 @@ exports.run = async (client, message, args, level) => { if (message.channel.nsfw === false) return message.channel.send('You need to be in an NSFW channel to use this command.') random('fiftyfifty').then(url => { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Reddit 50/50', 'https://www.redditinc.com/assets/images/site/reddit-logo.png', url) .setColor('#FF4300') .setImage(`${url}`) diff --git a/commands/8ball.js b/commands/8ball.js index c56eeed5..1b66e215 100644 --- a/commands/8ball.js +++ b/commands/8ball.js @@ -15,7 +15,7 @@ exports.run = async (client, message, args) => { if (!input) { let command = client.commands.get("8ball") - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.red) .setTitle(lang.InvalidSyntax) .setDescription(`\`${prefix}${command.help.usage}\`\n\n${command.help.description}`) @@ -33,7 +33,7 @@ exports.run = async (client, message, args) => { message.channel.send(`${result}`); } var member = message.guild.members.cache.random(); - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .setThumbnail(member.avatarURL) .addField(member.displayName, `<@${member.id}>`) diff --git a/commands/avatar.js b/commands/avatar.js index 68868520..dceaa771 100644 --- a/commands/avatar.js +++ b/commands/avatar.js @@ -9,7 +9,7 @@ exports.run = async (client, message, args, level) => { const lang = require("../lib/languages/" + language + ".json") try { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .setImage(`${message.author.displayAvatarURL()}`) .addField(lang.YourAvatar, `[${lang.ImageURL}](${message.author.avatarURL()})`, true) @@ -26,9 +26,8 @@ exports.run = async (client, message, args, level) => { embed = new MessageEmbed() .setColor(colors.default) - .setImage(`${user.avatarURL}`) - .setThumbnail(`${user.avatarURL}`) - .addField(`${user.username}${lang.UsersAvatar}`, `${user.avatarURL()}`, true) + .setImage(`${user.avatarURL()}`) + .addField(`${user.username}${lang.UsersAvatar}`, `[${lang.ImageURL}](${user.avatarURL()})`, true) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() diff --git a/commands/ban.js b/commands/ban.js index 72092e15..c531e8e9 100644 --- a/commands/ban.js +++ b/commands/ban.js @@ -8,8 +8,8 @@ exports.run = async (client, message, args, level) => { try { const user = message.mentions.users.first() const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -20,7 +20,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } diff --git a/commands/blacklist.wip b/commands/blacklist.wip index 56326c82..4d876c50 100644 --- a/commands/blacklist.wip +++ b/commands/blacklist.wip @@ -19,7 +19,7 @@ exports.run = async (client, message, args) => { const cmds = client.blacklist.cache.cache.get(`${message.guild.id}`, 'commands') client.blacklist.set(`${message.guild.id}`, `${cmds.replace("null", "")} + , + ${args[1].toLowerCase()} `, "commands") - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Blacklist') .setColor(colors.green) .setDescription(`Blacklisted \`;;${args[1].toLowerCase()}\` in this server.`) @@ -33,7 +33,7 @@ exports.run = async (client, message, args) => { if (commands === null) return message.channel.send('This command is not blacklisted.') var newList = commands client.pingwords.set(`${message.author.id}`, newList, 'pingOne') - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Ping Words') .setCmessage.channel.send({ embeds: [embed] @@ -45,7 +45,7 @@ exports.run = async (client, message, args) => { } if (args[0] === 'list') { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Ping Words') .setCmessage.channel.send({ embeds: [embed] diff --git a/commands/bot.js b/commands/bot.js index 0bd650ad..1616980d 100644 --- a/commands/bot.js +++ b/commands/bot.js @@ -13,18 +13,25 @@ exports.run = (client, message, args, level) => { try { const duration = moment.duration(client.uptime).format(' D [days], H [hrs], m [mins], s [secs]') + console.log(lang.SupportServer, '[Click here](https://discord.gg/3hbeQgY)', true) + console.log(lang.TotalGuilds, client.guilds.cache.size, true) + console.log(lang.HostedIn, `:flag_us: ${lang.UnitedStates}`, true) + console.log(lang.Uptime, duration, true) + console.log(lang.ID, message.client.user.id, true) + console.log(lang.CreatedBy, '<@191517443519152129>', true) + console.log(lang.TotalMembers, client.users.cache.size, true) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(lang.BotInformation) .setColor(colors.default) - .setThumbnail(client.user.avatarURL) - .addField(lang.TotalGuilds, message.client.guilds.cache.size, true) - .addField(lang.TotalMembers, `${message.client.users.cache.size}`, true) + .setThumbnail(client.user.avatarURL()) + .addField(lang.TotalGuilds, `${client.guilds.cache.size}`, true) + .addField(lang.TotalMembers, `${client.users.cache.size}`, true) .addField(lang.ID, `${message.client.user.id}`, true) - .addField(lang.HostedIn, `:flag_gb: ${lang.London}`, true) - .addField(lang.Uptime, `${duration}`, true) + .addField(lang.HostedIn, `:flag_us: ${lang.UnitedStates}`, true) + .addField(lang.Uptime, duration, true) .addField(lang.CreatedBy, '<@191517443519152129>', true) - .addField(lang.SupportServer, '[Click here](https://discord.gg/3hbeQgY)') + .addField(lang.SupportServer, '[Click here](https://discord.gg/3hbeQgY)', true) .setImage("https://i.imgur.com/sCNV086.png") .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() diff --git a/commands/button.js b/commands/button.js new file mode 100644 index 00000000..90422f94 --- /dev/null +++ b/commands/button.js @@ -0,0 +1,67 @@ +const { + Client, + Message, + MessageEmbed +} = require('discord.js') + +const { + pagination +} = require('reconlx') + +exports.run = async (client, message, args, level) => { // eslint-disable-line no-unused-vars + const language = client.getSettings(message.guild.id).language + const lang = require("../lib/languages/" + language + ".json") + + try { + let embed1 = new MessageEmbed().setTitle('one') + let embed2 = new MessageEmbed().setTitle('two') + let embed3 = new MessageEmbed().setTitle('three') + let embed4 = new MessageEmbed().setTitle('four') + let embed5 = new MessageEmbed().setTitle('five') + let embed6 = new MessageEmbed().setTitle('six') + let embed7 = new MessageEmbed().setTitle('seven') + let embed8 = new MessageEmbed().setTitle('eight') + let embed9 = new MessageEmbed().setTitle('nine') + let embed10 = new MessageEmbed().setTitle('ten') + + let embeds = [ + embed1, + embed2, + embed3, + embed4, + embed5, + embed6, + embed7, + embed8, + embed9, + embed10 + ] + + pagination({ + embeds: embeds, + channel: message.channel, + author: message.author, + fastSkip: true, + pageTravel: true, + max: 0 + }) + + } catch (err) { + const errors = require('../modules/errors.js') + errors.embedError(err, lang, message) + } +} + +exports.conf = { + enabled: false, + aliases: ['btn'], + guildOnly: false, + permLevel: 'User' +} + +exports.help = { + name: 'button', + category: 'Utility', + description: 'Example button navigation menu.', + usage: 'button' +} \ No newline at end of file diff --git a/commands/cat.js b/commands/cat.js index 6fa7b64c..17a403e3 100644 --- a/commands/cat.js +++ b/commands/cat.js @@ -12,7 +12,7 @@ exports.run = async (client, message, args, level) => { try { request('http://aws.random.cat/meow', function(error, body) { var result = JSON.parse(body.body) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .setImage(result.file) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) diff --git a/commands/classicube.js b/commands/classicube.js index b51d4595..2dcab14e 100644 --- a/commands/classicube.js +++ b/commands/classicube.js @@ -22,12 +22,18 @@ exports.run = async (client, message, args) => { var result = JSON.parse(body.body) if (!result || result.username === null) return message.channel.send(lang.InvalidUser) - const embed = new MessageEmbed() + const unixTimestamp = result.registered + const milliseconds = unixTimestamp * 1000 + const dateObject = new Date(milliseconds) + const humanDateFormat = dateObject.toLocaleString() //2019-12-9 10:30:15 + + let embed = new MessageEmbed() .setTitle(result.username) .setColor(lavender) .setThumbnail(`https://www.classicube.net/face/${result.username}.png`) - .addField(lang.ID, result.id, true) - .addField(lang.Premium, result.premium, true) + .addField(lang.ID, `${result.id}`, true) + .addField(lang.Registered, `${humanDateFormat}`, true) + .addField(lang.Premium, `${result.premium}`, true) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() @@ -45,9 +51,9 @@ exports.run = async (client, message, args) => { if (args[1].startsWith('+')) { const skin = args[1].replace('+', '') - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(skin + lang.UsersSkin) - .setTitle(lang.SkinUrl) + .setTitle(`${lang.SkinURL}`) .setURL(`https://minotar.net/skin/${skin}.png`) .setColor('#3BCE3B') .setImage(`https://minotar.net/skin/${skin}.png`) @@ -62,9 +68,9 @@ exports.run = async (client, message, args) => { var result = JSON.parse(body.body) if (!result || result.username === null) return message.channel.send(`\`${args[1]}\` is not a registered user.`) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(result.username + `'s skin`) - .setTitle(lang.SkinUrl) + .setTitle(`${lang.SkinURL}`) .setURL(`https://www.classicube.net/skins/${result.username}.png`) .setColor(lavender) .setImage(`https://www.classicube.net/skins/${result.username}.png`) diff --git a/commands/color.js b/commands/color.js index abf638ab..11e9cb70 100644 --- a/commands/color.js +++ b/commands/color.js @@ -11,7 +11,7 @@ exports.run = async (client, message, args, level) => { const color = !args[0] ? hex : args[0] - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(hex) .setDescription(`${lang.RandomHex} \`#${hex}\``) .setTitle("#" + hex) diff --git a/commands/commands.js b/commands/commands.js index d96c2736..608a95f4 100644 --- a/commands/commands.js +++ b/commands/commands.js @@ -49,49 +49,49 @@ exports.run = (client, message, args, level) => { } }) - const embed1 = new MessageEmbed() + let embed1 = new MessageEmbed() .setTitle(lang.Commands) .setColor(colors.default) .addField(`${lang.Type} ${prefix}commands <${lang.Category}> ${lang.InThatCategory}.`, `\n${lang.ValidCategories}:\n\`admin\`, \`economy\`, \`fun\`, \`moderation\`, \`utility\``) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() - const embed2 = new MessageEmbed() + let embed2 = new MessageEmbed() .setTitle('🔮 Admin') .setColor(colors.default) .addField(`${lang.Type} ${prefix}help <${lang.Command}> ${lang.MoreInfoOnHowToUse}.`, output) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() - const embed3 = new MessageEmbed() + let embed3 = new MessageEmbed() .setTitle('💰 Economy') .setColor(colors.default) .addField(`${lang.Type} ${prefix}help <${lang.Command}> ${lang.MoreInfoOnHowToUse}.`, output2) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() - const embed4 = new MessageEmbed() + let embed4 = new MessageEmbed() .setTitle('🎉 Fun') .setColor(colors.default) .addField(`${lang.Type} ${prefix}help <${lang.Command}> ${lang.MoreInfoOnHowToUse}.`, output3) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() - const embed5 = new MessageEmbed() + let embed5 = new MessageEmbed() .setTitle('👮‍♂️ Moderation') .setColor(colors.default) .addField(`${lang.Type} ${prefix}help <${lang.Command}> ${lang.MoreInfoOnHowToUse}.`, output4) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() - const embed6 = new MessageEmbed() + let embed6 = new MessageEmbed() .setTitle('🔨 Utility') .setColor(colors.default) .addField(`${lang.Type} ${prefix}help <${lang.Command}> ${lang.MoreInfoOnHowToUse}.`, output5) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() - const embeds = [ + let embeds = [ embed1, embed2, embed3, @@ -142,7 +142,7 @@ exports.run = (client, message, args, level) => { if (!output) return message.reply(lang.InvalidCategory) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(lang.Commands) .setColor(colors.default) .setThumbnail(client.user.avatarURL) diff --git a/commands/config.js b/commands/config.js index 2eb7515b..b0fc63c9 100644 --- a/commands/config.js +++ b/commands/config.js @@ -9,9 +9,17 @@ exports.run = async (client, message, args, level) => { const settings = client.getSettings(message.guild.id) const defaults = client.config.defaultSettings const overrides = client.settings.get(message.guild.id) + + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) + + // Ensure admin role actually exists + + if (!adminRole) { + return message.channel.send(lang.NoAdminRole) + } if (!client.settings.has(message.guild.id)) client.settings.set(message.guild.id, client.config.defaultSettings) - if (!message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } @@ -28,31 +36,20 @@ exports.run = async (client, message, args, level) => { else client.settings.set(message.guild.id, args.slice(2).join(' '), args[1]) message.channel.send(`${args[1]} ${lang.EditedTo} ${args.slice(2).join(' ')}!`) - } else - - if (args[0] === 'del' || args[0] === 'reset') { - if (!args[1]) return message.channel.send(lang.NoOptionSpecified) - if (!defaults[args[1]]) return message.channel.send(lang.InvalidOption) - if (!overrides[args[1]]) return message.channel.send(lang.NoOverrideUsingDefaults) - - const response = await client.awaitchannel.send(message, `${lang.ConfirmReset} ${args[1]} ${lang.ToDefaultValue}`) - - if (['y', 'yes', '1'].includes(response.toLowerCase())) { - client.settings.delete(message.guild.id, args[1]) - message.channel.send(`${args[1]} ${lang.SuccessfullyReset}.`) - } else - if (['n', 'no', 'cancel', '0'].includes(response)) { - message.channel.send(`${lang.Setting} \`${args[1]}\` ${lang.RemainsAt} \`${settings[args[1]]}\`.`) - } } else { let embed = new Discord.MessageEmbed() .setTitle(`⚙️ ${lang.ServerSettings}`) .setColor(colors.default) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() - Object.keys(client.getSettings(message.guild.id)).forEach((setting) => embed = embed.addField(setting, settings[setting], true)) - await message.channel.send(embed) + Object.keys(client.getSettings(message.guild.id)).forEach((setting) => { + embed = embed.addField(setting, `${settings[setting]}`, true) + }) + + await message.channel.send({ + embeds: [embed] + }) } } catch (err) { message.channel.send(client.errors.genericError + err.stack).catch(); diff --git a/commands/covid.js b/commands/covid.js index 3dc2e9a4..77ffad44 100644 --- a/commands/covid.js +++ b/commands/covid.js @@ -22,13 +22,13 @@ exports.run = async (client, message, args, level) => { // eslint-disable-line n const covidData = payload.data.pop(); const country = args[0].charAt(0).toUpperCase() + args[0].substr(1).toLowerCase() - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`${lang.CovidStatisticsFor} ${country}`) .setColor(colors.default) - .addField(lang.Confirmed, covidData.Confirmed, true) - .addField(lang.Deaths, covidData.Deaths, true) - .addField(lang.Recovered, covidData.Recovered, true) - .addField(lang.Active, covidData.Active, true) + .addField(lang.Confirmed, `${covidData.Confirmed}`, true) + .addField(lang.Deaths, `${covidData.Deaths}`, true) + .addField(lang.Recovered, `${covidData.Recovered}`, true) + .addField(lang.Active, `${covidData.Active}`, true) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() diff --git a/commands/createchannel.js b/commands/createchannel.js index bfa9ca03..38bf7114 100644 --- a/commands/createchannel.js +++ b/commands/createchannel.js @@ -3,7 +3,7 @@ exports.run = async (client, message, args, level) => { const lang = require("../lib/languages/" + language + ".json") try { - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure admin role actually exists @@ -11,7 +11,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } if (!args[1]) return message.reply(lang.NoArgumentSpecified) diff --git a/commands/dog.js b/commands/dog.js index bf615cb7..68d7202e 100644 --- a/commands/dog.js +++ b/commands/dog.js @@ -12,7 +12,7 @@ exports.run = async (client, message, args, level) => { try { request('https://dog.ceo/api/breeds/image/random', function(error, body) { var result = JSON.parse(body.body) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .setImage(result.message) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) diff --git a/commands/donate.js b/commands/donate.js index 32a49817..c7435fd0 100644 --- a/commands/donate.js +++ b/commands/donate.js @@ -8,7 +8,7 @@ exports.run = (client, message, args, level) => { const lang = require("../lib/languages/" + language + ".json") try { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(`💰 ${lang.Donating}`) .setColor(colors.default) .setThumbnail('https://cdn.discordapp.com/avatars/492871769485475840/6164d0068b8e76e497af9b0e1746f671.png?size=2048') diff --git a/commands/fish.js b/commands/fish.js index 28aedcad..a39671da 100644 --- a/commands/fish.js +++ b/commands/fish.js @@ -31,29 +31,31 @@ exports.run = async (client, message, args) => { const choices = ["fish", "nothing"]; const random = Math.floor(Math.random() * choices.length); - fish = choices[random]; + fish = choices[random] } else if (d < 0.8) { const choices = ["tropical_fish", "blowfish", "lobster", "moneybag", "crab"]; const random = Math.floor(Math.random() * choices.length); - fish = choices[random]; + fish = choices[random] } else if (d < 0.95) { const choices = ["frog", "chest", "octopus", "squid"]; const random = Math.floor(Math.random() * choices.length); - fish = choices[random]; + fish = choices[random] } else if (d < 0.98) { const choices = ["seal", "dolphin", "turtle", ]; const random = Math.floor(Math.random() * choices.length); - fish = choices[random]; + fish = choices[random] } else if (d < 0.99) { const choices = ["person_surfing", "clownfish", "whale2", "merperson"]; const random = Math.floor(Math.random() * choices.length); - fish = choices[random]; + fish = choices[random] } + + client.inventory.set(message.author.id, worms - 1, 'worms') var rarity if (fish === "fish") rarity = "common" @@ -67,7 +69,7 @@ exports.run = async (client, message, args) => { rarity = "common" worth = 0 } - if (rarity === "common") worth = 25 + if (rarity === "common" && fish !== "nothing") worth = 25 if (rarity === "uncommon") worth = 50 if (rarity === "rare") worth = 100 if (rarity === "very rare") worth = 250 @@ -78,10 +80,12 @@ exports.run = async (client, message, args) => { money: 0 }) + console.log(fish + " " + rarity + " " + worth) + const money = client.money.get(message.author.id, 'money') client.money.set(`${message.author.id}`, money + worth, 'money') - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`🎣 ${lang.Fishing}`) .setColor(colors.default) .setDescription(`${lang.FoundAndSold} **${rarity}** :${fish}: ${lang.For} **${worth}**!`) diff --git a/commands/forceban.js b/commands/forceban.js index 2a63c303..3dbbb503 100644 --- a/commands/forceban.js +++ b/commands/forceban.js @@ -8,8 +8,8 @@ exports.run = async (client, message, args, level) => { try { const user = args[0] const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -20,7 +20,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } diff --git a/commands/harvest.js b/commands/harvest.js index c32ea6bd..cc39ac64 100644 --- a/commands/harvest.js +++ b/commands/harvest.js @@ -67,7 +67,7 @@ exports.run = async (client, message, args) => { const money = client.money.get(message.author.id, 'money') client.money.set(`${message.author.id}`, money + worth, 'money') - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`🌼 ${lang.Garden}`) .setColor(colors.default) .setDescription(`${lang.HarvestedAndSold} **${rarity}** :${getPlant}: ${lang.For} **${worth}**!`) diff --git a/commands/help.js b/commands/help.js index 0b1834d5..9f44883c 100644 --- a/commands/help.js +++ b/commands/help.js @@ -12,7 +12,7 @@ exports.run = (client, message, args, level) => { try { if (!args[0]) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(lang.Help) .setColor(colors.default) .setThumbnail(client.user.avatarURL) @@ -46,22 +46,7 @@ exports.run = (client, message, args, level) => { message.channel.send({ embeds: [embed] }) - } else { - const currentCategory = '' - let output = '' - const userCommands = client.commands.filter(cmd => client.levelCache[cmd.conf.permLevel] <= level) - - const sorted = userCommands.array().sort((p, c) => p.help.category > c.help.category ? 1 : p.help.name > c.help.name && p.help.category === c.help.category ? 1 : -1) - sorted.forEach(c => { - const cat = c.help.category.toLowerCase() - if (cat == args[0].toLowerCase()) { - if (level < client.levelCache[c.conf.permLevel]) return - output += '`' + c.help.name + '` ' - } - }) - - if (!output) return message.reply(lang.InvalidCommand) - } + } else return message.reply(lang.InvalidCommand) } } catch (err) { const errors = require('../modules/errors.js') diff --git a/commands/hextorgb.js b/commands/hextorgb.js index 6be1ac04..9f083308 100644 --- a/commands/hextorgb.js +++ b/commands/hextorgb.js @@ -5,10 +5,22 @@ exports.run = async (client, message, args, level) => { try { if (!args[0]) return message.channel.send(lang.NoArgumentSpecified) - const hex = args.join(' ').replace('#', '') - const r = Number(hex.substring(0, 2)) - const g = parseInt(hex.substring(2, 4)) - const b = parseInt(hex.substring(4, 6)) + function hexToRGB(hex) { + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + return result ? { + r: parseInt(result[1], 16), + g: parseInt(result[2], 16), + b: parseInt(result[3], 16) + } : null; + } + + const hex = args[0] + + if (hexToRGB(hex) == null) return message.channel.send(lang.InvalidArgument) + + const r = hexToRGB(hex).r + const g = hexToRGB(hex).g + const b = hexToRGB(hex).b message.channel.send(`${lang.RGBCode} rgb(${r}, ${g}, ${b})`) } catch (err) { diff --git a/commands/info.js b/commands/info.js index 6aede76a..9190c786 100644 --- a/commands/info.js +++ b/commands/info.js @@ -32,12 +32,12 @@ exports.run = async (client, message, args, level) => { // eslint-disable-line n const married = client.life.get(user.id, 'spouse') === 0 ? lang.Nobody : `<@${client.life.get(user.id, 'spouse')}>` - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(`${user.tag}`) - .addField(lang.ID, user.id, true) - .addField(lang.AccountCreated, user.createdAt, true) - .addField(lang.Status, user.presence.status, true) - .addField(lang.MarriedTo, married, true) + .addField(lang.ID, `${user.id}`, true) + .addField(lang.AccountCreated, `${user.createdAt}`, true) + .addField(lang.Status, `${user.presence?.status}`, true) + .addField(lang.MarriedTo, `${married}`, true) .addField(lang.Reputation, `+${client.reputation.get(user.id, 'reputation')}`, true) //.addField(`Job`, user.user, true) //.addField(`Achievements`, user.user, true) diff --git a/commands/inventory.js b/commands/inventory.js index e0db9147..da52669e 100644 --- a/commands/inventory.js +++ b/commands/inventory.js @@ -19,13 +19,13 @@ exports.run = async (client, message, args) => { worms: 0 }) - const embed = new MessageEmbed() - .setTitle(`🎒`) + let embed = new MessageEmbed() + .setTitle(`🎒 ${lang.YourInventory}`) .setColor(colors.default) - .addField(`💍 ${lang.WeddingRings}`, client.inventory.get(key, 'rings')) - .addField(`🌰 ${lang.Seeds}`, client.inventory.get(key, 'seeds')) - .addField(`🥫 ${lang.PetFood}`, client.inventory.get(key, 'petfood') + ' cans') - .addField(`🪱 ${lang.Worms}`, client.inventory.get(key, 'worms') + ' worms') + .addField(`💍 ${lang.WeddingRings}`, `${client.inventory.get(key, 'rings')}`, true) + .addField(`🌰 ${lang.Seeds}`, `${client.inventory.get(key, 'seeds')}`, true) + .addField(`🥫 ${lang.PetFood}`, `${client.inventory.get(key, 'petfood')}`, true) + .addField(`🪱 ${lang.Worms}`, `${client.inventory.get(key, 'worms')}`, true) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() diff --git a/commands/joke.js b/commands/joke.js index a0d9ea92..7d045bb8 100644 --- a/commands/joke.js +++ b/commands/joke.js @@ -9,7 +9,7 @@ exports.run = async (client, message, args, level) => { // eslint-disable-line n const language = client.getSettings(message.guild.id).language const lang = require("../lib/languages/" + language + ".json") try { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .setDescription(joke({ exclude_tags: ['dirty', 'racist', 'marriage', 'sex', 'death'] diff --git a/commands/kick.js b/commands/kick.js index a45ea461..29c3a729 100644 --- a/commands/kick.js +++ b/commands/kick.js @@ -11,8 +11,8 @@ exports.run = async (client, message, args, level) => { try { const user = message.mentions.users.first() const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -23,7 +23,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } @@ -35,7 +35,7 @@ exports.run = async (client, message, args, level) => { const modLogChannel = settings.modLogChannel if (modLogChannel && message.guild.channels.cache.find(c => c.name === settings.modLogChannel)) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(lang.UserKicked) .setColor(colors.red) .setDescription(`${lang.Name}: ${user.username}\n${lang.ID}: ${user.id}\n${lang.Reason}: ${args.slice(1).join(' ')}\n${lang.Moderator}: ${message.author.username}`) diff --git a/commands/leaderboard.js b/commands/leaderboard.js index 36bc08bf..30fbe3d9 100644 --- a/commands/leaderboard.js +++ b/commands/leaderboard.js @@ -34,7 +34,7 @@ exports.run = async (client, message, args) => { const filtered = !isGlobal ? client.points.filter(p => p.guild === message.guild.id).array() : client.points.array(); const sorted = filtered.sort((a, b) => b.points - a.points) const top10 = sorted.splice(0, 10); - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(`${globalName} ${lang.Leaderboard}`) .setDescription(lang.TopTenXP) .setColor(colors.default) @@ -68,7 +68,7 @@ exports.run = async (client, message, args) => { const filtered = !isGlobal ? client.money.filter(p => p.guild === message.guild.id).array() : client.money.array(); const sorted = filtered.sort((a, b) => b.money - a.money) const top10 = sorted.splice(0, 10); - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(`${globalName} ${lang.Leaderboard}`) .setTimestamp() .setDescription(lang.TopTenMoney) @@ -98,7 +98,7 @@ exports.run = async (client, message, args) => { exports.conf = { enabled: true, - aliases: ['l', 'top', 'most', 'baltop', 'leaderboards'], + aliases: ['l', 'lb', 'top', 'most', 'baltop', 'leaderboards'], guildOnly: false, permLevel: 'User' } diff --git a/commands/lockdown.js b/commands/lockdown.js index f2a92da8..48f9e44d 100644 --- a/commands/lockdown.js +++ b/commands/lockdown.js @@ -11,7 +11,7 @@ exports.run = async (client, message, args, level) => { var originalChannel function unlockChannel(channel) { - channel.updateOverwrite(channel.guild.roles.everyone, { + channel.permissionOverwrites.edit(channel.guild.roles.everyone, { SEND_MESSAGES: null }).then(() => { clearTimeout(client.lockit[channel.id]); @@ -20,13 +20,13 @@ exports.run = async (client, message, args, level) => { } function lockChannel(channel) { - channel.updateOverwrite(message.channel.guild.roles.everyone, { + channel.permissionOverwrites.edit(message.channel.guild.roles.everyone, { SEND_MESSAGES: false }).then(() => { - //originalChannel.send(`Channel locked down for ${ms(ms(args[0]), { long:true })}. To lift, run **${settings.prefix}lockdown ${validUnlocks[Math.floor(Math.random() * validUnlocks.length)]}**`).then(() => { + originalChannel.send(`Channel locked down for ${ms(ms(args[0]), { long:true })}.`) client.lockit[channel.id] = setTimeout(() => { - channel.updateOverwrite(channel.guild.roles.everyone, { + channel.permissionOverwrites.edit(channel.guild.roles.everyone, { SEND_MESSAGES: null }).catch(console.error); delete client.lockit[channel.id]; @@ -35,15 +35,16 @@ exports.run = async (client, message, args, level) => { } try { - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === settings.modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === settings.adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === settings.modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === settings.adminRole.toLowerCase()) + // Ensure admin role actually exists if (!adminRole) { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } diff --git a/commands/math.js b/commands/math.js index f184ea9c..d26d80b5 100644 --- a/commands/math.js +++ b/commands/math.js @@ -7,7 +7,7 @@ exports.run = async (client, message, args, level) => { try { if (!args[0]) return message.reply(lang.NoArgumentSpecified) - message.channel.send(`**${lang.Answer}:** ${math.eval(args.join(' '))}`) + message.channel.send(`**${lang.Answer}:** ${math.evaluate(args.join(' '))}`) } catch (err) { const errors = require('../modules/errors.js') errors.embedError(err, lang, message) diff --git a/commands/meme.js b/commands/meme.js index 0b1a0621..06437268 100644 --- a/commands/meme.js +++ b/commands/meme.js @@ -15,7 +15,7 @@ exports.run = async (client, message, args, level) => { const img = await randomPuppy(random) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .setImage(img) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) diff --git a/commands/pay.js b/commands/pay.js index ffcb1854..83493f71 100644 --- a/commands/pay.js +++ b/commands/pay.js @@ -3,12 +3,12 @@ exports.run = async (client, message, args) => { const lang = require("../lib/languages/" + language + ".json") try { - const user = message.mentions.users.first() || client.users.get(args[0]) + const user = message.mentions.users.first() || client.users.cache.get(args[0]) if (!user) return message.channel.send(lang.NoUserSpecified) if (user.bot === true) return message.channel.send(lang.BotsMoney) if (!args[1]) return message.channel.send(lang.NoAmountSpecified) if (message.mentions.users.first() === message.author) return message.channel.send(lang.GiveSelfMoney) - if (isNaN(args[1])) return message.channel.send(lang.InvalidAmount) + if (isNaN(args[1]) || args[1] <= 0) return message.channel.send(lang.InvalidAmount) client.money.ensure(`${message.author.id}`, { user: message.author.id, @@ -25,11 +25,9 @@ exports.run = async (client, message, args) => { const money = client.money.get(`${user.id}`, 'money') client.money.set(`${user.id}`, parseInt(money) + parseInt(args[1]), 'money') - console.log(parseInt(money)) - console.log(parseInt(args[1])) - console.log(parseInt(money) + parseInt(args[1])) + client.money.set(`${message.author.id}`, parseInt(yourMoney) - parseInt(args[1]), 'money') - message.channel.send(`${lang.YoUGave} **${user.tag}** \`${parseInt(args[1])}\`\n**${user.tag}${lang.UsersBalance}:** $${parseInt(args[1])}\n**${lang.YourBalance}:** $${parseInt(yourMoney) - parseInt(args[1])}`) + message.channel.send(`${lang.YouGave} **${user.tag}** \`${parseInt(args[1])}\`\n**${user.tag}${lang.UsersBalance}:** $${parseInt(money) + parseInt(args[1])}\n**${lang.YourBalance}:** $${parseInt(yourMoney) - parseInt(args[1])}`) } catch (err) { const errors = require('../modules/errors.js') errors.embedError(err, lang, message) diff --git a/commands/ping.js b/commands/ping.js index 47326a37..23984151 100644 --- a/commands/ping.js +++ b/commands/ping.js @@ -19,7 +19,7 @@ exports.run = async (client, message, args, level) => { embeds: [pingEmbed] }) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .addField(lang.MessageTrip, `${msg.createdTimestamp - message.createdTimestamp}ms`) diff --git a/commands/pingwords.js b/commands/pingwords.js index 9a81e06a..b947e1ab 100644 --- a/commands/pingwords.js +++ b/commands/pingwords.js @@ -35,7 +35,7 @@ exports.run = async (client, message, args) => { if (args[2] > 3) return message.channel.send('You can only have 3 ping words.') client.pingwords.set(`${message.author.id}`, args[1].toLowerCase(), slot) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Ping Words') .setColor(colors.green) .setDescription(`Set your pingword in slot \`${args[2]}\` to \`${args[1].toLowerCase()}\`.`) @@ -54,7 +54,7 @@ exports.run = async (client, message, args) => { if (args[1] === '1') { if (pingOne === null) return message.channel.send('You do not have a pingword in this slot.') client.pingwords.set(`${message.author.id}`, null, 'pingOne') - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Ping Words') .setColor(colors.green) .setDescription(`Set your pingword in slot \`${args[1]}\` to \`null\`.`) @@ -69,7 +69,7 @@ exports.run = async (client, message, args) => { if (pingTwo === null) return message.channel.send('You do not have a pingword in this slot.') client.pingwords.set(`${message.author.id}`, null, 'pingTwo') - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Ping Words') .setColor(colors.green) .setDescription(`Set your pingword in slot \`${args[1]}\` to \`null\`.`) @@ -85,7 +85,7 @@ exports.run = async (client, message, args) => { if (pingThree === null) return message.channel.send('You do not have a pingword in this slot.') client.pingwords.set(`${message.author.id}`, null, 'pingThree') - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Ping Words') .setColor(colors.green) .setDescription(`Set your pingword in slot \`${args[1]}\` to \`null\`.`) @@ -102,7 +102,7 @@ exports.run = async (client, message, args) => { } if (args[0] === 'list') { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor('Ping Words') .setColor(colors.default) .addField('Slot 1:', pingOne, true) diff --git a/commands/plant.js b/commands/plant.js index 49b66cf8..62705aeb 100644 --- a/commands/plant.js +++ b/commands/plant.js @@ -91,7 +91,7 @@ exports.run = async (client, message, args) => { client.garden.set(`${message.author.id}`, plant, slot) client.garden.set(`${message.author.id}`, "1", stage) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`🌼 ${lang.Garden}`) .setColor(colors.green) .setDescription(`${lang.PlantedSeed}\`${args[0]}\`. ${lang.WaterSeed} \`` + prefix + 'water`.') diff --git a/commands/poll.js b/commands/poll.js index 3313138a..f612373b 100644 --- a/commands/poll.js +++ b/commands/poll.js @@ -12,8 +12,8 @@ exports.run = async (client, message, args, level) => { const yesEmoji = '✅' const noEmoji = message.client.emojis.cache.get('637573919204966410') const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -24,12 +24,12 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } const input = message.content.split(`${settings.prefix}poll `) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(`🗳 ${lang.Poll}`) .setColor(colors.default) .addField(`${lang.ReactWith} ✅ ${lang.Or} ${noEmoji} ${lang.ToVote}`, input, true) diff --git a/commands/process.js b/commands/process.js index 03be16f6..273aca3b 100644 --- a/commands/process.js +++ b/commands/process.js @@ -16,9 +16,9 @@ exports.run = (client, message, args, level) => { const duration = moment .duration(client.uptime) .format(" D [days], H [hrs], m [mins], s [secs]") - const port = process.env.port || 3000 + const port = process.env.port || 8080 - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(lang.ProcessInformation) .setColor(colors.default) .setThumbnail(client.user.avatarURL) @@ -27,7 +27,7 @@ exports.run = (client, message, args, level) => { .addField(`NPM ${lang.Version}`, `${process.version}`, true) .addField(lang.Uptime, `${duration}`, true) .addField(lang.DashboardURL, `${ip.address()}:${port}`, true) - .addField(lang.VoteURL, `${ip.address()}:80`, true) + .addField(lang.VoteURL, `${ip.address()}:2245`, true) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() diff --git a/commands/profile.js b/commands/profile.js index 725cfb8a..d26b8d1f 100644 --- a/commands/profile.js +++ b/commands/profile.js @@ -10,12 +10,14 @@ exports.run = async (client, message, args, level) => { // eslint-disable-line n function delay(delayInms) { return new Promise(resolve => { setTimeout(() => { - resolve(2); - }, delayInms); - }); + resolve(2) + }, delayInms) + }) } - rankuser = message.mentions.users.first() || message.author; + const rankuser = guild.members.fetch().then(members => { + const online = members.filter((member) => !member.user?.bot && member.presence?.status != 'offline').map((member) => member); + }) client.points.ensure(`${message.guild.id}-${rankuser.id}`, { user: rankuser.id, @@ -24,27 +26,27 @@ exports.run = async (client, message, args, level) => { // eslint-disable-line n level: 1 }) - const filtered = client.points.filter(p => p.guild === message.guild.id).array(); - const sorted = filtered.sort((a, b) => b.points - a.points); - const top10 = sorted.splice(0, message.guild.memberCount); - let i = 0; + const filtered = client.points.filter(p => p.guild === message.guild.id).array() + const sorted = filtered.sort((a, b) => b.points - a.points) + const top10 = sorted.splice(0, message.guild.memberCount) + let i = 0 for (const data of top10) { - await delay(15); + await delay(15) try { - i++; - if (client.users.cache.get(data.user).tag === rankuser.tag) break; + i++ + if (client.users.cache.get(data.user).tag === rankuser.tag) break } catch { - i = lang.ErrorCountingRank; - break; + i = lang.ErrorCountingRank + break } } - const key = `${message.guild.id}-${rankuser.id}`; - let curpoints = Number(client.points.get(key, `points`).toFixed(2)); - let curnextlevel = Number(((Number(1) + Number(client.points.get(key, `level`).toFixed(2))) * Number(10)) * ((Number(1) + Number(client.points.get(key, `level`).toFixed(2))) * Number(10))); - if (client.points.get(key, `level`) === undefined) i = lang.NoRank; + const key = `${message.guild.id}-${rankuser.id}` + let curpoints = Number(client.points.get(key, `points`).toFixed(2)) + let curnextlevel = Number(((Number(1) + Number(client.points.get(key, `level`).toFixed(2))) * Number(10)) * ((Number(1) + Number(client.points.get(key, `level`).toFixed(2))) * Number(10))) + if (client.points.get(key, `level`) === undefined) i = lang.NoRank - let status = rankuser.presence.status; + let status = rankuser.presence.status !== null ? rankuser.presence.status : "offline" const rank = new canvacord.Rank() .setAvatar(rankuser.displayAvatarURL({ @@ -61,13 +63,13 @@ exports.run = async (client, message, args, level) => { // eslint-disable-line n .setUsername(rankuser.username, colors.default) .setRank(Number(i), "Rank", true) .setLevel(Number(client.points.get(key, `level`)), lang.Level, true) - .setDiscriminator(rankuser.discriminator, colors.default); + .setDiscriminator(rankuser.discriminator, colors.default) rank.build() .then(async data => { - const attachment = new Discord.MessageAttachment(data, "RankCard.png"); - message.channel.send(attachment); - return; - }); + const attachment = new Discord.MessageAttachment(data, "RankCard.png") + message.channel.send(attachment) + return + }) } catch (err) { const errors = require('../modules/errors.js') errors.embedError(err, lang, message) diff --git a/commands/purge.js b/commands/purge.js index a949e7e8..15e0a200 100644 --- a/commands/purge.js +++ b/commands/purge.js @@ -4,8 +4,8 @@ exports.run = async (client, message, args, level) => { const lang = require("../lib/languages/" + language + ".json") try { - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { return message.channel.send(lang.NoModRole) @@ -15,7 +15,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } let num diff --git a/commands/remind.js b/commands/remind.js index dc24c9ad..fb489709 100644 --- a/commands/remind.js +++ b/commands/remind.js @@ -12,7 +12,7 @@ exports.run = async (client, message, args) => { try { const reminderTime = args[0] if (!reminderTime) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.red) .setTitle(lang.InvalidSyntax) .setDescription(`\`${client.getSettings(message.guild.id).prefix}remind <${lang.Time}> <${lang.Message}>\`\n\n${lang.RemindFormats}`) diff --git a/commands/rep.js b/commands/rep.js index 180f3739..debf1ec7 100644 --- a/commands/rep.js +++ b/commands/rep.js @@ -31,7 +31,7 @@ exports.run = async (client, message, args) => { const rep = client.reputation.get(`${user.id}`, 'reputation') - client.reputation.set(`${user.id}`, rep + 1, 'reputation') + client.reputation.set(`${user.id}`, parseInt(rep) + 1, 'reputation') message.channel.send(`${lang.YouGave} ${user.tag} +1 ${lang.Reputation}.`) client.cooldown.set(`${message.author.id}`, date, 'rep') // Activate 24 hour cooldown } catch (err) { diff --git a/commands/rhyme.js b/commands/rhyme.js index 48bb68e7..2282d17b 100644 --- a/commands/rhyme.js +++ b/commands/rhyme.js @@ -12,7 +12,7 @@ exports.run = async (client, message, args, level) => { // eslint-disable-line n try { if (!args[0]) return message.channel.send(lang.NoArgumentSpecified) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .setDescription(lang.FindingRhymes) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) diff --git a/commands/rps.js b/commands/rps.js index e8d3f6b9..6f49536e 100644 --- a/commands/rps.js +++ b/commands/rps.js @@ -46,7 +46,7 @@ exports.run = (client, message, args, level) => { } } else { let command = client.commands.get("rps") - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.red) .setTitle(lang.InvalidSyntax) .setDescription(`\`${prefix}${command.help.usage}\`\n\n${command.help.description}`) diff --git a/commands/say.js b/commands/say.js index d4b5ccff..beb34714 100644 --- a/commands/say.js +++ b/commands/say.js @@ -3,8 +3,8 @@ exports.run = async (client, message, args, level) => { const lang = require("../lib/languages/" + language + ".json") try { - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -15,7 +15,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } diff --git a/commands/server.js b/commands/server.js index 4b796766..b60b1a24 100644 --- a/commands/server.js +++ b/commands/server.js @@ -30,7 +30,7 @@ exports.run = async (client, message, args, level) => { if (message.guild.region === 'us-south') region = `:flag_us: ${lang.USSouth}` if (message.guild.region === 'us-west') region = `:flag_us: ${lang.USWest}` - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .setThumbnail(Icon) .setFooter(`${message.guild.id}`, diff --git a/commands/shop.js b/commands/shop.js index db30df60..28a8a175 100644 --- a/commands/shop.js +++ b/commands/shop.js @@ -11,14 +11,14 @@ exports.run = async (client, message, args) => { try { const prefix = message.guild === null ? ';;' : client.getSettings(message.guild.id).prefix - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(`🛒 ${lang.Shop}`) - .setDescription(`${lang.PurchaseItem} \`${prefix}buy <${lang.item}>\``) + .setDescription(`${lang.PurchaseItem} \`${prefix}buy <${lang.Item}>\``) .setColor(colors.default) .addField(`💍 ${lang.WeddingRing} ($1,300)`, `${lang.WeddingRingDesc} \`${prefix}marry\`.`, true) .addField(`🥫 ${lang.PetFood} ($50)`, `${lang.PetFoodDesc} \`${prefix}pet\`.`, true) .addField(`🌰 ${lang.Seed} ($5)`, `${lang.SeedDesc} \`${prefix}garden\`.`, true) - .addField(`🪱 ${lang.Worm}($10)`, `${lang.WormDesc} \`${prefix}fish\`.`, true) + .addField(`🪱 ${lang.Worm} ($20)`, `${lang.WormDesc} \`${prefix}fish\`.`, true) //.addField('🚗 Car ($25,000)', `Go fast.`, true) .setFooter(`${lang.RespondingTo} ${message.author.tag}`, message.author.avatarURL()) .setTimestamp() diff --git a/commands/suggestions.js b/commands/suggestions.js index 9132220f..990af307 100644 --- a/commands/suggestions.js +++ b/commands/suggestions.js @@ -13,8 +13,8 @@ exports.run = async (client, message, args, level) => { const noEmoji = message.client.emojis.cache.get('637573919204966410') const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -25,7 +25,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } @@ -39,7 +39,7 @@ exports.run = async (client, message, args, level) => { const input = message.content.startsWith(`${settings.prefix}sg add`) ? message.content.split(`${settings.prefix}sg add `) : message.content.split(`${settings.prefix}suggestions add`) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(message.author.tag, message.author.avatarURL) .setColor(colors.default) .setDescription(input) @@ -78,7 +78,7 @@ exports.run = async (client, message, args, level) => { message.channel.fetchMessage(args[1]) .then(suggestion => { - const embed = suggestion.embeds[0]; + let embed = suggestion.embeds[0]; const newEmbed = new Discord.MessageEmbed(embed) .setColor(colors.red) .setTimestamp() @@ -104,7 +104,7 @@ exports.run = async (client, message, args, level) => { message.channel.fetchMessage(args[1]) .then(suggestion => { - const embed = suggestion.embeds[0]; + let embed = suggestion.embeds[0]; const newEmbed = new Discord.MessageEmbed(embed) .setColor(colors.green) .setTimestamp() diff --git a/commands/tempban.js b/commands/tempban.js index 3875a6e7..b2f3f349 100644 --- a/commands/tempban.js +++ b/commands/tempban.js @@ -12,8 +12,8 @@ exports.run = async (client, message, args, level) => { try { const user = message.mentions.users.first() const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -24,7 +24,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } @@ -37,7 +37,7 @@ exports.run = async (client, message, args, level) => { const modLogChannel = settings.modLogChannel if (modLogChannel && message.guild.channels.cache.find(c => c.name === settings.modLogChannel)) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(lang.UserTempBanned) .setColor(colors.red) .setDescription(`${lang.Name}: ${user.username}\n${lang.ID}: ${user.id}\n${lang.Time}: ${args.slice(1).join(' ')}\n${lang.Moderator}: ${message.author.username}`) diff --git a/commands/tempmute.js b/commands/tempmute.js index 83e2ed8d..98b5b806 100644 --- a/commands/tempmute.js +++ b/commands/tempmute.js @@ -12,8 +12,8 @@ exports.run = async (client, message, args, level) => { try { const user = message.mentions.users.first() const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -24,7 +24,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } @@ -37,7 +37,7 @@ exports.run = async (client, message, args, level) => { const modLogChannel = settings.modLogChannel if (modLogChannel && message.guild.channels.cache.find(c => c.name === settings.modLogChannel)) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(lang.UserTempMuted) .setColor(colors.red) .setDescription(`${lang.Name}: ${user.username}\n${lang.ID}: ${user.id}\n${lang.Moderator}: ${message.author.username}`) diff --git a/commands/unban.js b/commands/unban.js index 38a3a997..11efd24d 100644 --- a/commands/unban.js +++ b/commands/unban.js @@ -7,8 +7,8 @@ exports.run = async (client, message, args, level) => { try { const user = args[0] const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -19,7 +19,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } diff --git a/commands/urban.js b/commands/urban.js index fc4520e6..bd0fbea4 100644 --- a/commands/urban.js +++ b/commands/urban.js @@ -33,7 +33,7 @@ exports.run = async (client, message, args, level) => { ) } - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor('#1D2439') .setThumbnail('https://i.imgur.com/D19IeLX.png') .setTitle(result.word) diff --git a/commands/warn.js b/commands/warn.js index d6350ffe..31460a64 100644 --- a/commands/warn.js +++ b/commands/warn.js @@ -11,8 +11,8 @@ exports.run = async (client, message, args, level) => { try { const user = message.mentions.users.first() const settings = client.getSettings(message.guild.id) - const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()); - const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()); + const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase()) + const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase()) // Ensure mod/admin roles actually exist if (!modRole) { @@ -23,7 +23,7 @@ exports.run = async (client, message, args, level) => { return message.channel.send(lang.NoAdminRole) } - if (!message.member.roles.cache.has(modRole.id) && !message.member.hasPermission("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.hasPermission("ADMINISTRATOR")) { + if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) { return message.channel.send(lang.NoPermission) } @@ -38,7 +38,7 @@ exports.run = async (client, message, args, level) => { const modLogChannel = settings.modLogChannel if (modLogChannel && message.guild.channels.cache.find(c => c.name === settings.modLogChannel)) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(lang.UserWarned) .setColor(colors.red) .setDescription(`${lang.Name}: ${user.username}\n${lang.ID}: ${user.id}\n${lang.Moderator}: ${message.author.username}`) diff --git a/commands/where.js b/commands/where.js index 865dbe24..04dc2e8e 100644 --- a/commands/where.js +++ b/commands/where.js @@ -13,7 +13,7 @@ exports.run = async (client, message, args, level) => { if (!client.channels.cache.get(args[0])) return message.channel.send(lang.NoChannel) const channel = client.channels.cache.find(ch => ch.id === args[0]) - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setColor(colors.default) .addField(lang.Guild, channel.guild.name) .addField(lang.Channel, channel.name) diff --git a/events/channelCreate.js b/events/channelCreate.js index 07495cc7..75216272 100644 --- a/events/channelCreate.js +++ b/events/channelCreate.js @@ -15,7 +15,7 @@ module.exports = (client, channel) => { const modLogChannel = channel.guild.channels.cache.find(c => c.name == settings.modLogChannel) if (!modLogChannel.permissionsFor(channel.guild.me).has('VIEW_CHANNEL')) return if (!modLogChannel.permissionsFor(channel.guild.me).has('SEND_MESSAGES')) return - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`🔨 ${lang.ChannelCreated}`) .setColor(colors.green) .setDescription(`${lang.CreatedChannel} ${channel}`) diff --git a/events/channelDelete.js b/events/channelDelete.js index 1b8b8e82..7a20c1db 100644 --- a/events/channelDelete.js +++ b/events/channelDelete.js @@ -15,7 +15,7 @@ module.exports = (client, channel) => { if (!modLogChannel.permissionsFor(channel.guild.me).has('VIEW_CHANNEL')) return if (!modLogChannel.permissionsFor(channel.guild.me).has('SEND_MESSAGES')) return - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`🗑️ ${lang.ChannelDeleted}`) .setColor(colors.red) .setDescription(`${lang.DeletedChannel} \`${channel.name}\``) diff --git a/events/guildBanAdd.js b/events/guildBanAdd.js index 2e40da42..4faa7258 100644 --- a/events/guildBanAdd.js +++ b/events/guildBanAdd.js @@ -18,7 +18,7 @@ module.exports = (client, guild, user) => { if (!modLogChannel.permissionsFor(guild.me).has('VIEW_CHANNEL')) return if (!modLogChannel.permissionsFor(guild.me).has('SEND_MESSAGES')) return - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(`🔨 ${lang.UserBanned}`) .setColor(colors.red) .setDescription(`**${lang.TotalMemberCount}:** \`${guild.memberCount}\`\n<@${user.id}> ${lang.BannedFromDiscord}`) diff --git a/events/guildCreate.js b/events/guildCreate.js index 102caf66..ebffe6f1 100644 --- a/events/guildCreate.js +++ b/events/guildCreate.js @@ -1,3 +1,11 @@ module.exports = (client, guild) => { - // client.logger.cmd(`[GUILD JOIN]: ${guild.name} (${guild.id}). Owner: ${guild.owner.user.tag} (${guild.owner.user.id})`); -} + let channelToSend + + guild.channels.cache.forEach((channel) => { + if (channel.type === "GUILD_TEXT" && !channelToSend && channel.permissionsFor(guild.me).has("SEND_MESSAGES")) channelToSend = channel + }) + + const confetti = client.emojis.cache.get("635377353849176064"); + + channelToSend.send(confetti + " **Thanks for adding me!**\nYour server is the `117th` server to invite me.\n\n**Commands**\nAll commands have a default prefix of `;;` but this can be changed to whatever you like. See the **FAQ** section below.\n\n**FAQ**\n`Q` How can I configure the bot to match my server's needs?\n`A` You can change the bot's prefix and many other options through the `;;config` command. For example, `;;config set prefix .` would set the prefix for commands to `.`.\n\n`Q` Is there a dashboard?\n`A` There most certainly is! You can access it via **https://tsuyo.xyz**.\n\n`Q` I have a question, what can I do?\n`A` For starters, be sure to check out `;;help` and `;;faq`. If you still need assistance, please feel free to join our **support server** @ **https://discord.gg/3hbeQgY**.") +} \ No newline at end of file diff --git a/events/guildMemberAdd.js b/events/guildMemberAdd.js index 3b4ee12c..c3b093dc 100644 --- a/events/guildMemberAdd.js +++ b/events/guildMemberAdd.js @@ -28,7 +28,7 @@ module.exports = (client, member) => { if (!modLogChannel.permissionsFor(member.guild.me).has('VIEW_CHANNEL')) return if (!modLogChannel.permissionsFor(member.guild.me).has('SEND_MESSAGES')) return - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`📥 ${lang.MemberJoined}`) .setColor(colors.green) .setDescription(`**${lang.TotalMemberCount}:** \`${member.guild.memberCount}\`\n<@${member.user.id}> ${lang.JoinedTheDiscord}.`) diff --git a/events/guildMemberRemove.js b/events/guildMemberRemove.js index 4808cbc0..cd8d90d5 100644 --- a/events/guildMemberRemove.js +++ b/events/guildMemberRemove.js @@ -15,7 +15,7 @@ module.exports = (client, member) => { if (!modLogChannel.permissionsFor(member.guild.me).has('VIEW_CHANNEL')) return if (!modLogChannel.permissionsFor(member.guild.me).has('SEND_MESSAGES')) return - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`📤 ${lang.MemberLeft}`) .setColor(colors.red) .setDescription(`**${lang.TotalMemberCount}:** \`${member.guild.memberCount}\`\n<@${member.user.id}> ${lang.LeftTheDiscord}`) diff --git a/events/guildMemberUpdate.js b/events/guildMemberUpdate.js index 71af1087..8b754d79 100644 --- a/events/guildMemberUpdate.js +++ b/events/guildMemberUpdate.js @@ -18,7 +18,7 @@ module.exports = (client, oldMember, newMember) => { if (!modLogChannel.permissionsFor(oldMember.guild.me).has('SEND_MESSAGES')) return if (oldMember.nickname !== newMember.nickname) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`👤 ${lang.NickChanged}`) .setColor(colors.default) .setDescription(`<@${newMember.id}> ${lang.ChangedNick}`) @@ -33,7 +33,7 @@ module.exports = (client, oldMember, newMember) => { } if (oldMember.user.name !== newMember.user.name) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`👤 ${lang.UsernameChanged}`) .setColor(colors.default) .setDescription(`<@${newMember.id}> ${lang.ChangedUsername}`) diff --git a/events/messageCreate.js b/events/messageCreate.js index 814143e0..ee143c02 100644 --- a/events/messageCreate.js +++ b/events/messageCreate.js @@ -21,7 +21,7 @@ module.exports = async (client, message) => { // checks if message mentions the bot, if so responds with prefix const prefixMention = new RegExp(`^<@!?${client.user.id}>( |)$`) if (message.content.match(prefixMention)) { - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setTitle(lang.Help) .setColor(colors.default) .setThumbnail('https://cdn.discordapp.com/avatars/492871769485475840/6164d0068b8e76e497af9b0e1746f671.png?size=2048') diff --git a/events/messageDelete.js b/events/messageDelete.js index 7f8f7593..9584c229 100644 --- a/events/messageDelete.js +++ b/events/messageDelete.js @@ -18,7 +18,7 @@ module.exports = (client, message) => { if (!modLogChannel.permissionsFor(message.guild.me).has('VIEW_CHANNEL')) return if (!modLogChannel.permissionsFor(message.guild.me).has('SEND_MESSAGES')) return - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`🗑️ ${lang.MessageDeleted}`) .setColor(colors.default) .setDescription(`${lang.MessageDeletedBy} <@${message.author.id}> ${lang.In} ${message.channel}`) diff --git a/events/messageUpdate.js b/events/messageUpdate.js index 0df74a72..5d4c53fb 100644 --- a/events/messageUpdate.js +++ b/events/messageUpdate.js @@ -21,7 +21,7 @@ module.exports = (client, message, messageNew) => { if (!modLogChannel.permissionsFor(message.guild.me).has('VIEW_CHANNEL')) return if (!modLogChannel.permissionsFor(message.guild.me).has('SEND_MESSAGES')) return - const embed = new MessageEmbed() + let embed = new MessageEmbed() .setAuthor(`📝 ${lang.MessageEdited}`) .setColor(colors.default) .setDescription(`${lang.MessageEditedBy} <@${messageNew.author.id}> ${lang.In} ${message.channel}`) diff --git a/lib/img/icons/pingwords.png b/lib/img/icons/pingwords.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd76a95b8203acbde661331ee3f79ac962ef210 GIT binary patch literal 1316 zcmV+<1>5?GP)GMAnldx*t2!nuo@;pTZQ zq7ueA2(X0(Jp1aqYY8^tGXgyN;;Yc!(E%hlAlFB_wS=ZAd{EbTyY)Xk3hcd*`i&*P4O(WwzWZHVtH0A=xYw7n6Rw^LE3OMPEbISx^cr3ej|LZjYpj|+r z=IP>50RdS7U$cUQn?@>hVv9N>-z9`{8ba7y2L^-j=f7{pni7e|5aOmA_1kc}ni z_nx3K3lF0JXHVl+6n7j%J{=HW?=?fR$jgQ(<)h>T3a(ra%xn zm#&2L>_xD7q5(J02q{g4+0nqJAzzrUwg6J2bl_sx z3%KXJOV^g}_T+U7xO&pcO18vK&?NvVw!u_WvsLKChBMn#BshjY{s4n}P(ol+)TACW zwFn@6g@qkgS7Q?nPZc3v`@-AedIj|Lul)?eGn**5VIjq_2OHeBkD(c!VFgIu7*Q9{ z(}P17m(NJ36J+`abK24}0jC@|-${VU2ndMZ8q+V}8NxWccObfjexngA6L8tYKDL<=S#@BH3_>ZRVHB9j7BE`hK2(YN&+m^ z^Fd#B4X^_A9Ffr=-~`nZVhAfh@sN~_BY;i;IfVlh7H1?75pbQP0Haa?rW>0!Z(Tcz zr$n(M6cMo2_Xi~z2`1GMiU=6z|D&?}5rXXpa0N*7nc`t-?@PF1)+)DozzLE9@M`go z1iBgAFlBX({9%HTfD5CGCM>1HTmSpN%wQp-fywLzeWl)<4GTrC#c# aUj74mn1&A+AX_*90000 { app.set("view engine", "ejs"); app.set('trust proxy', true); app.use(express.static("static")); - // app.use( - // cookieParser() - // ); + app.use( + cookieParser() + ) app.use( cors({ credentials: true @@ -78,7 +78,7 @@ const initWeb = (client) => { }); app.get("/invite", (req, res) => res.send( - '' + '' ) ); diff --git a/modules/webhooks.js b/modules/webhooks.js index 4302ee34..eef9a61c 100644 --- a/modules/webhooks.js +++ b/modules/webhooks.js @@ -1,30 +1,17 @@ -const dblapi = require("top.gg"); -const express = require("express"); -const dash = express(); -const verify = express(); -const http = require("http"); -const server = http.createServer(dash); -const get = require("superagent"); -const colors = require("colors"); +const express = require('express') +const Topgg = require('@top-gg/sdk') +const fetch = require('node-fetch') + +const app = express() + +const webhook = new Topgg.Webhook('testPassword123') module.exports = (client) => { // Discord Bot List (now top.gg) API, used for communicating server count and receiving vote hooks - if (!process.env.DBL_TOKEN) return; - const dbl = new dblapi(process.env.DBL_TOKEN, { - webhookPort: 521, // Replace this with whatever port you want to run the webhook on - webhookAuth: process.env.DBL_AUTH, - }); - - dbl.webhook.on("ready", hook => { - console.log(colors.magenta(`Top.gg API running at `) + colors.white(`http://${hook.hostname}:${hook.port}${hook.path}`)); - }); - dbl.webhook.on("test", vote => { - const settings = client.getSettings(channel.guild.id); - const logs = client.channels.cache.get(settings.modLogChannel); - console.log("foo") - if (!logs) return; - console.log("bar?") - logs.send(`User with ID ${vote.user} just voted!`); - }); -}; \ No newline at end of file + app.post('/vote', webhook.listener(vote => { + console.log("User with ID " + vote.user + " voted!") + })) + app.listen(2245) + console.log("Ready to log votes.") +} \ No newline at end of file diff --git a/routes/me.js b/routes/me.js index 1d3c8fb7..d00586a1 100644 --- a/routes/me.js +++ b/routes/me.js @@ -1,8 +1,14 @@ -const router = require('express').Router(); +const router = require('express').Router() router.get('/', (req, res) => { - if (!req.session.user) { res.redirect('/'); return } - res.render('me', { pageTitle: 'Home - Tsuyo', user: req.session.user || null }); -}); + if (!req.session.user) { + res.redirect('/') + return + } + res.render('me', { + pageTitle: 'Home - Tsuyo', + user: req.session.user || null + }) +}) -module.exports = router; +module.exports = router \ No newline at end of file