diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-05-22 20:36:26 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-05-22 20:36:26 -0400 |
| commit | fc76d7c73ae9ffec6be86fc7d9d9e8c9a14605ab (patch) | |
| tree | 0f4930fd8655e550c974bc404b93149cf7eab4ac | |
| parent | bbb982243b6564e526fb581f55946704cdf256a3 (diff) | |
| download | AleeBot-fc76d7c73ae9ffec6be86fc7d9d9e8c9a14605ab.tar.gz AleeBot-fc76d7c73ae9ffec6be86fc7d9d9e8c9a14605ab.tar.bz2 AleeBot-fc76d7c73ae9ffec6be86fc7d9d9e8c9a14605ab.zip | |
Added more ALP exclusive logs & cleaning up code
34 files changed, 1342 insertions, 1321 deletions
diff --git a/To be worked on/leave.js b/To be worked on/leave.js index e1584f0..6712a8d 100644 --- a/To be worked on/leave.js +++ b/To be worked on/leave.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Leave: Command for AleeBot * Copyright (C) 2018 AleeCorp * @@ -15,29 +15,28 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - if (!message.member.voiceChannel) return message.reply('You need a voice channel to perform this action.'); + if (!message.member.voiceChannel) return message.reply('You need a voice channel to perform this action.'); - if (!message.guild.me.voiceChannel) return message.reply('Error: The bot isn\'t connected to a voice channel.') + if (!message.guild.me.voiceChannel) return message.reply('Error: The bot isn\'t connected to a voice channel.'); - if (message.guild.me.voiceChannelID !== message.member.voiceChannelID) return message.reply('Error: You aren\'t connected in the same voice channel as the bot...'); + if (message.guild.me.voiceChannelID !== message.member.voiceChannelID) return message.reply('Error: You aren\'t connected in the same voice channel as the bot...'); - message.guild.me.voiceChannel.leave(); + message.guild.me.voiceChannel.leave(); - message.channel.send("Leaving channel...") + message.channel.send('Leaving channel...'); +}; - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'leave', - description: 'Leaves voice chat.', - usage: 'leave', - category: '- Music Commands', - };
\ No newline at end of file +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'leave', + description: 'Leaves voice chat.', + usage: 'leave', + category: '- Music Commands', +}; diff --git a/To be worked on/play.js b/To be worked on/play.js index ddf80db..d885ee2 100644 --- a/To be worked on/play.js +++ b/To be worked on/play.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Play: Command for AleeBot * Copyright (C) 2018 AleeCorp * @@ -15,108 +15,101 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args, ops) => { - const ytdl = require('ytdl-core'); + const ytdl = require('ytdl-core'); - if (!message.member.voiceChannel) return message.reply('Please connect to a voice channel...'); + if (!message.member.voiceChannel) return message.reply('Please connect to a voice channel...'); - if (!args[0]) return message.reply('Please input a url.'); + if (!args[0]) return message.reply('Please input a url.'); - let vaildate = await ytdl.validateURL(args[0]); + const vaildate = await ytdl.validateURL(args[0]); - if (!vaildate) return message.reply('Please input a **valid** url.'); + if (!vaildate) return message.reply('Please input a **valid** url.'); - let info = await ytdl.getInfo(args[0]); + const info = await ytdl.getInfo(args[0]); - let data = ops.active.get(message.guild.id) || {}; + const data = ops.active.get(message.guild.id) || {}; - if (!data.connection) data.connection = await message.member.voiceChannel.join(); - if (!data.queue) data.queue = []; - data.guildID = message.guild.id; + if (!data.connection) data.connection = await message.member.voiceChannel.join(); + if (!data.queue) data.queue = []; + data.guildID = message.guild.id; - data.queue.push({ - songTitle: info.title, - requester: message.author.tag, - url: args[0], - announceChannel: message.channel.id - }); - if (!data.dispatcher) play(client, ops, data); - else { - const { RichEmbed } = require('discord.js'); - const embed = new RichEmbed() - .setTitle('This music has been added to the queue!') - .setAuthor(info.title, client.user.avatarURL) + data.queue.push({ + songTitle: info.title, + requester: message.author.tag, + url: args[0], + announceChannel: message.channel.id, + }); + if (!data.dispatcher) play(client, ops, data); + else { + const {RichEmbed} = require('discord.js'); + const embed = new RichEmbed() + .setTitle('This music has been added to the queue!') + .setAuthor(info.title, client.user.avatarURL) + .setColor(0x00afff) + .setTimestamp() + .addField('Title', info.title) + .addField('Requested by:', message.author.tag) + .setFooter('AleeBot Music Player'); + + message.channel.send({embed}); + } + + ops.active.set(message.guild.id, data); +}; + +async function play(client, ops, data) { + const ytdl = require('ytdl-core'); + const {RichEmbed} = require('discord.js'); + const embed = new RichEmbed() + .setTitle('Now playing!') + .setAuthor(data.queue[0].songTitle, client.user.avatarURL) .setColor(0x00afff) .setTimestamp() - .addField('Title', info.title) - .addField('Requested by:', message.author.tag) + .addField('Title', data.queue[0].songTitle) + .addField('Requested by:', data.queue[0].requester) + // .addField('Link', info.url) + // .addField('Duration', time) .setFooter('AleeBot Music Player'); - - message.channel.send({embed}) - } - - ops.active.set(message.guild.id, data); - - }; - - async function play(client, ops, data) { - const ytdl = require('ytdl-core'); - const { RichEmbed } = require('discord.js'); - const embed = new RichEmbed() - .setTitle('Now playing!') - .setAuthor(data.queue[0].songTitle, client.user.avatarURL) - .setColor(0x00afff) - .setTimestamp() - .addField('Title', data.queue[0].songTitle) - .addField('Requested by:', data.queue[0].requester) - // .addField('Link', info.url) - // .addField('Duration', time) - .setFooter('AleeBot Music Player'); - - client.channels.get(data.queue[0].announceChannel).send({embed}) - - data.dispatcher = await data.connection.playStream(ytdl(data.queue[0].url, { filter: 'audioonly'})); - data.dispatcher.guildID = data.guildID; - - data.dispatcher.once('finish', function () { - finish(client, ops, this); - }); - - }; - - function finish(client, ops, dispatcher) { - let fetched = ops.active.get(dispatcher.guildID); + client.channels.get(data.queue[0].announceChannel).send({embed}); - fetched.queue.shift(); + data.dispatcher = await data.connection.playStream(ytdl(data.queue[0].url, {filter: 'audioonly'})); + data.dispatcher.guildID = data.guildID; - if (fetched.queue.length > 0) { + data.dispatcher.once('finish', function() { + finish(client, ops, this); + }); +}; - ops.active.set(dispatcher.guildID, fetched); +function finish(client, ops, dispatcher) { + const fetched = ops.active.get(dispatcher.guildID); - play(client, ops, fetched); + fetched.queue.shift(); - } else { - ops.active.delete(dispatcher.guildID); + if (fetched.queue.length > 0) { + ops.active.set(dispatcher.guildID, fetched); - let vc = client.guild.get(dispatcher.guildID).me.voiceChannel; + play(client, ops, fetched); + } else { + ops.active.delete(dispatcher.guildID); - if (vc) vc.leave(); + const vc = client.guild.get(dispatcher.guildID).me.voiceChannel; - } + if (vc) vc.leave(); + } +} - } - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'play', - description: 'Plays music.', - usage: 'play [url]', - category: '- Music Commands', - };
\ No newline at end of file +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'play', + description: 'Plays music.', + usage: 'play [url]', + category: '- Music Commands', +}; diff --git a/To be worked on/queue.js b/To be worked on/queue.js index 77d86b7..e1ef7c6 100644 --- a/To be worked on/queue.js +++ b/To be worked on/queue.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Queue: Command for AleeBot * Copyright (C) 2018 AleeCorp * @@ -15,35 +15,33 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args, ops) => { - - let fetched = ops.active.get(message.guild.id); + const fetched = ops.active.get(message.guild.id); - if (!fetched) return message.reply('Currently, there isn\'t any music playing in this guild.'); + if (!fetched) return message.reply('Currently, there isn\'t any music playing in this guild.'); - let queue = fetched.queue - let nowPlaying = queue[0]; + const queue = fetched.queue; + const nowPlaying = queue[0]; - let resp = `__**Now Playing**__\n**${nowPlaying.songTitle}** -- **Requested By:** *${nowPlaying.requester}*\n\n__**Queue**__\n`; + let resp = `__**Now Playing**__\n**${nowPlaying.songTitle}** -- **Requested By:** *${nowPlaying.requester}*\n\n__**Queue**__\n`; - for (var i = 1; i < queue.length; i++) { - resp += `${i}. **${queue[i].songTitle}** -- **Requested By:** *${queue[i].requester}*\n` - } + for (let i = 1; i < queue.length; i++) { + resp += `${i}. **${queue[i].songTitle}** -- **Requested By:** *${queue[i].requester}*\n`; + } - message.channel.send(resp); + message.channel.send(resp); +}; - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'queue', - description: 'Checks what music is in queue.', - usage: 'queue', - category: '- Music Commands', - };
\ No newline at end of file +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'queue', + description: 'Checks what music is in queue.', + usage: 'queue', + category: '- Music Commands', +}; diff --git a/To be worked on/skip.js b/To be worked on/skip.js index 5a6d2b7..44880bd 100644 --- a/To be worked on/skip.js +++ b/To be worked on/skip.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Skip: Command for AleeBot * Copyright (C) 2018 AleeCorp * @@ -15,48 +15,44 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args, ops) => { + const fetched = ops.active.get(message.guild.id); - let fetched = ops.active.get(message.guild.id); - - if (!fetched) return message.reply('Currently, there isn\'t any music playing in this guild.'); - - if (message.member.voiceChannel !== message.guild.me.voiceChannel) return message.reply('Sorry, you are currently not in the same channel as the bot.') - - let userCount = message.member.voiceChannel.members.size; + if (!fetched) return message.reply('Currently, there isn\'t any music playing in this guild.'); - let required = Math.ceil(userCount/2); + if (message.member.voiceChannel !== message.guild.me.voiceChannel) return message.reply('Sorry, you are currently not in the same channel as the bot.'); - if (!fetched.queue[0].voteSkips) fetched.queue[0].voteSkips = []; + const userCount = message.member.voiceChannel.members.size; - if (fetched.queue[0].voteSkips.includes(message.member.id)) return message.reply(`Sorry, you have already voted to skip! ${fetched.queue[0].voteSkips.length}/${required} required.`) + const required = Math.ceil(userCount/2); - fetched.queue[0].voteSkips.push(message.member.id); + if (!fetched.queue[0].voteSkips) fetched.queue[0].voteSkips = []; - ops.active.set(message.guild.id, fetched); + if (fetched.queue[0].voteSkips.includes(message.member.id)) return message.reply(`Sorry, you have already voted to skip! ${fetched.queue[0].voteSkips.length}/${required} required.`); - if (fetched.queue[0].voteSkips.length >= required) { + fetched.queue[0].voteSkips.push(message.member.id); - message.channel.send('Successfully skipped song!'); + ops.active.set(message.guild.id, fetched); - return fetched.dispatcher.emit('finish'); + if (fetched.queue[0].voteSkips.length >= required) { + message.channel.send('Successfully skipped song!'); - } + return fetched.dispatcher.emit('finish'); + } - message.channel.send(`Successfully voted to skip! ${fetched.queue[0].voteSkips.length}/${required} required.`) + message.channel.send(`Successfully voted to skip! ${fetched.queue[0].voteSkips.length}/${required} required.`); +}; - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'skip', - description: 'Skips a music.', - usage: 'skip', - category: '- Music Commands', - };
\ No newline at end of file +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'skip', + description: 'Skips a music.', + usage: 'skip', + category: '- Music Commands', +}; diff --git a/bot_discord.js b/bot_discord.js index 5380db6..5c437c9 100644 --- a/bot_discord.js +++ b/bot_discord.js @@ -1,366 +1,424 @@ -/****************************************
- *
- * AleeBot: Made for discord servers
- * Copyright (C) 2017-2020 Alee Productions
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * *************************************/
-const Discord = require('discord.js');
-const moment = require('moment');
-const readline = require('readline');
-const colors = require('colors');
-const DBL = require("dblapi.js");
-const client = new Discord.Client({
- disableEveryone: true
-});
-const settings = require('./storage/settings.json')
-const fs = require('fs');
-const api = require('./tokens.json');
-const dbl = new DBL(api.dbltoken, client);
-const active = new Map();
-const ownerID = "242775871059001344";
-
-const log = message => {
-
- console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] ${message}`.white);
-
-};
-
-const rl = readline.createInterface({
- input: process.stdin,
- output: process.stdout,
- prompt: '> '.gray
-});
-
-console.log(`AleeBot ${settings.abVersion}: Copyright (C) 2017-2020 Alee Productions`.gray);
-console.log('This program comes with ABSOLUTELY NO WARRANTY; for details type `show w\'.'.gray);
-console.log ('This is free software, and you are welcome to redistribute it'.gray);
-console.log ('under certain conditions; type `show c\' for details.\n'.gray)
-
-if (process.argv.indexOf("--debug") == -1) {
- console.log("Running AleeBot without --debug command line flag. Debug output disabled.\n".yellow);
-} else {
- console.log('[!] Entering debug mode...'.yellow)
- client.on('debug', function(info) {
- log(info.gray);
- });
- client.on('warn', function(info) {
- log(info.red);
- });
-}
-
-if (process.argv.indexOf("--beta") == -1) {
- client.login(api.abtoken).catch(function() {
- console.log('[X] Login failed. The token that you put in is invalid, please put in a new one...'.red);
- process.exit(0);
- });
-
-} else {
- client.login(api.abbtoken).catch(function() {
- console.log('[X] Login failed. The token that you put in is invalid, please put in a new one...'.red);
- process.exit(0);
- });
-}
-
-client.commands = new Discord.Collection();
-client.aliases = new Discord.Collection();
-
-fs.readdir('./commands', (err, files) => {
- if (err) console.error(err);
- log(`[!] Attempting to load a total of ${files.length} commands into the memory.`.cyan);
- files.forEach(file => {
- try {
- const command = require(`./commands/${file}`);
- log(`[!] Attempting to load the command "${command.help.name}".`.cyan);
- client.commands.set(command.help.name, command);
- command.conf.aliases.forEach(alias => {
- client.aliases.set(alias, command.help.name);
- log(`[!] Attempting to load "${alias}" as an alias for "${command.help.name}"`.cyan);
- });
- }
- catch (err) {
- log('[X] An error has occured trying to load a command. Here is the error.'.red);
- console.log(err.stack);
- }
- });
- log('[>] Command Loading complete!'.green);
- console.log('\n');
-});
-
-rl.on('line', function(cmd){
- var args = cmd.split(" ");
- switch(args[0]) {
- case "guilds":
- if (client.guilds.size === 0) {
- console.log(('[!] No guilds found.'.yellow));
- } else {
- console.log('[i] Here\'s the servers that AleeBot is connected to:')
- for ([id, guild] of client.guilds) {
- console.log(` Guild Name: ${guild.name} - ID: ${guild.id}`.blue);
- }
- }
- break;
- case "channels":
- if (!args[1]) {
- console.log('[!] Please insert the guild\'s ID.'.yellow)
- } else {
- var guild = client.guilds.get(args[1]);
- console.log('[i] Here\'s the channels that this guild have:'.blue)
- for ([id, channel, guild] of guild && client.channels) {
- console.log(` Channel: #${channel.name} - ID: ${channel.id}`.blue);
- }
- }
- break;
- case "leave":
- if (!args[1]) {
- console.log('[!] Please insert the guild\'s ID.'.yellow);
- } else {
- var guild = client.guilds.get(args[1]);
- guild.leave();
- }
- break;
- case "broadcast":
- if (!args[1]) {
- console.log('[!] Usage: broadcast [guildID] [channelID].'.yellow);
- } else {
- let broadcast = args.join(" ").slice(48);
- var guild = null;
- guild = client.guilds.get(args[1]);
- var channel = null;
- channel = guild.channels.get(args[2])
- if (channel != null) {
- channel.send(broadcast);
- }
- }
- break;
- case "uptime":
- let uptime = parseInt(client.uptime);
- uptime = Math.floor(uptime / 1000);
- let uptimeMinutes = Math.floor(uptime / 60);
- const minutes = uptime % 60;
- let hours = 0;
- while (uptimeMinutes >= 60) {
- hours++;
- uptimeMinutes = uptimeMinutes - 60;
- }
- const uptimeSeconds = minutes % 60;
- console.log(`[i] AleeBot has been up for ${hours} hours, ${uptimeMinutes} minutes, and ${uptimeSeconds} seconds.`.blue);
- break;
- case "exit":
- console.log('[i] AleeBot will now exit!'.blue)
- const embed = new Discord.RichEmbed()
- .setAuthor("AleeBot Status", client.user.avatarURL)
- .setDescription("AleeBot is now going offline...")
- .setColor("#ff3333")
- client.channels.find('id', '606602551634296968').send({embed});
- client.destroy();
- process.exit(0);
- break;
- case "help":
- var msg = (`AleeBot `+ settings.abVersion +` Console Help\n\n`);
- msg += (`guilds - Shows all guilds that AleeBot's on.\n`)
- msg += (`channels - Shows all the channels that the guilds have.\n`)
- msg += (`leave - Leaves a guild.\n`)
- msg += (`broadcast - Broadcasts a message to a server.\n`)
- msg += (`uptime - Shows the uptime for AleeBot.\n`)
- msg += (`help - Shows this command.\n`)
- msg += (`exit - Exits AleeBot.\n`)
- console.log(msg.cyan);
- break;
- default:
- console.log('Unknown command, type \'help\' to list the commands...'.yellow)
- }
- rl.prompt();
-});
-
-
-client.on('ready', () => {
- log('[>] AleeBot is now ready!'.green);
- log(`[i] Logged in as ${client.user.tag}`.green);
- log(`[i] Default Prefix: ${settings.prefix}`.green)
- log(`[i] Bot ID: ${client.user.id}`.green);
- log(`[i] Token: ${api.abtoken}`.green);
- log(`[i] Running version ${settings.abVersion} and in ${client.guilds.size} guilds`.green);
-
- client.setInterval(function() {
- const games = [
- 'AleeBot ' + settings.abVersion + ' | ' + settings.prefix + 'help',
- 'Annoying Alee',
- 'Coding stuff',
- 'Drawing shapes',
- 'Fighting AstralMod',
- ];
- setInterval(() => {
- dbl.postStats(client.guilds.size, client.shards.Id, client.shards.total);
- }, 1800000);
- client.user.setPresence({
- status: 'online',
- afk: false,
- game: {
- type: 0,
- name: games[Math.floor(Math.random() * games.length)],
- },
- });
- }, 200000);
- client.user.setStatus('online');
- const embed = new Discord.RichEmbed()
- .setAuthor("AleeBot Status", client.user.avatarURL)
- .setDescription("AleeBot has started")
- .setColor("#5cd65c")
- client.channels.find('id', '606602551634296968').send({embed});
- rl.prompt();
-});
-
-client.on('guildMemberAdd', member => {
- if (member.guild.id != '243022206437687296') return 0
- var role = member.guild.roles.find((role) => role.name === "Member");
- member.addRole(role);
- log(`[i] ${member.user.username} joined Alee Productions.`.green);
- log(`[i] I gave ${member.user.username} the "Member" role.`.green);
-});
-
-client.on('messageUpdate', async(oldMessage, newMessage) => {
- if (oldMessage.guild.id != '243022206437687296') return 0
- if (oldMessage.content === newMessage.content){
- return;
- }
- const logEmbed = new Discord.RichEmbed()
- .setAuthor("AleeBot Logging", client.user.avatarURL)
- .setDescription(`A message from ${oldMessage.author.username} was edited`)
- .addField("Before: ", `\`\`\`${oldMessage.content}\`\`\``)
- .addField("After: ", `\`\`\`${newMessage.content}\`\`\``)
- .setColor("#ffff1a")
- .setTimestamp()
-
- let editmessage = newMessage.guild.channels.find(ch => ch.name === "logs")
- if(!editmessage) return;
-
- editmessage.send(logEmbed);
-
-
-})
-
-client.on('guildCreate', guild => {
-
- log(`[i] New guild joined: ${guild.name} (id: ${guild.id}). This guild has ${guild.memberCount} members!`.blue);
-
-});
-
-
-client.on('guildDelete', guild => {
-
- log(`[i] I have been removed from: ${guild.name} (id: ${guild.id})`.red);
-
-});
-
-dbl.on('posted', () => {
- log('Server count posted!'.blue);
-});
-
-dbl.on('error', e => {
- log(`[X | DBL ERROR] ${e}`.red);
-});
-
-client.on('message', (msg) => {
- if (msg.author.bot) return;
-
- if (msg.mentions != null && msg.mentions.users != null) {
- if (msg.mentions.users.has("282547024547545109")){
- if (msg.content.toLowerCase().includes("hello") || (msg.content.toLowerCase().includes("hi"))) {
- msg.reply(`Hello ${msg.author.username}!`);
- } else {
- if (msg.content.toLowerCase().includes("shut") && msg.content.toLowerCase().includes("up")) {
- switch (Math.floor(Math.random() * 1000) % 3) {
- case 0:
- msg.reply("Hey, Can you not speak to me in that tone...")
- break;
- case 1:
- msg.reply("NO! I can talk as much I can!");
- break;
- case 2:
- msg.reply("Nah I won't....");
- break;
- }
- } else if (msg.content.toLowerCase().includes("how") && msg.content.toLowerCase().includes("are") && msg.content.toLowerCase().includes("you")) {
- msg.reply("I'm doing OK, I suppose...");
- } else if (msg.content.toLowerCase().includes("ok") && msg.content.toLowerCase().includes("google")) {
- msg.reply("Erm... I am not google, if you want to use Google here's the link: https://www.google.com");
- } else if (msg.content.toLowerCase().includes("f") && msg.content.toLowerCase().includes("off")) {
- msg.reply("Do you want a hammer? :hammer:");
- } else if (msg.content.toLowerCase().includes("aleearmy")) {
- msg.reply("Oh yeah.. that thing Alee made...");
- }
- }
- }
- };
-
-
- let prefixes = JSON.parse(fs.readFileSync("./storage/prefixes.json", "utf8"));
-
- if(!prefixes[msg.guild.id]){
- prefixes[msg.guild.id] = {
- prefixes: settings.prefix
- };
- }
-
- let prefix = prefixes[msg.guild.id].prefixes
-
-
- if (!msg.content.startsWith(prefix)) return;
- const args = msg.content.slice(prefix.length).trim().split(/ +/g);
- const command = args.shift();
- let cmd;
-
- if (client.commands.has(command)) {
- cmd = client.commands.get(command);
- } else if (client.aliases.has(command)) {
- cmd = client.commands.get(client.aliases.get(command));
- }
-
- if (cmd) {
- if (cmd.conf.guildOnly == true) {
- if (!msg.channel.guild) {
- return msg.channel.createMessage('This command can only be ran in a guild.');
- }
- }
- try {
-
- let ops = {
- ownerID: ownerID,
- active: active
- }
-
- cmd.run(client, msg, args, ops);
- }
- catch (e) {
- console.error(e);
- }
- }
-});
-
-process.on('unhandledRejection', function(err, p) {
-
-log("[X | UNCAUGHT PROMISE] " + err.stack.red);
-
-});
-client.on('reconnecting', function() {
- log("[!] AleeBot has disconnected from Discord and is now attempting to reconnect.".yellow);
-});
-
-client.on('disconnect', function() {
- log("[X] AleeBot has disconnected from Discord and will not attempt to reconnect.".red);
- console.log("At this point, you'll need to restart AleeBot.".red);
- process.exit(0);
-});
+/** ************************************** + * + * AleeBot: Made for discord servers + * Copyright (C) 2017-2020 Alee Productions + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * *************************************/ +const Discord = require('discord.js'); +const moment = require('moment'); +const readline = require('readline'); +const colors = require('colors'); +const DBL = require('dblapi.js'); +const i18next = require('i18next'); +const client = new Discord.Client({ + disableEveryone: true, +}); +const settings = require('./storage/settings.json'); +const fs = require('fs'); +const api = require('./tokens.json'); +const dbl = new DBL(api.dbltoken, client); +const active = new Map(); +const ownerID = '242775871059001344'; + +const log = (message) => { + console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] ${message}`.white); +}; + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, + prompt: '> '.gray, +}); + +console.log(`AleeBot ${settings.abVersion}: Copyright (C) 2017-2020 Alee Productions`.gray); +console.log('This program comes with ABSOLUTELY NO WARRANTY; for details type `show w\'.'.gray); +console.log('This is free software, and you are welcome to redistribute it'.gray); +console.log('under certain conditions; type `show c\' for details.\n'.gray); + +if (process.argv.indexOf('--debug') == -1) { + console.log('Running AleeBot without --debug command line flag. Debug output disabled.\n'.yellow); +} else { + console.log('[!] Entering debug mode...'.yellow); + client.on('debug', function(info) { + log(info.gray); + }); + client.on('warn', function(info) { + log(info.red); + }); +} + +if (process.argv.indexOf('--beta') == -1) { + client.login(api.abtoken).catch(function() { + console.log('[X] Login failed. The token that you put in is invalid, please put in a new one...'.red); + process.exit(0); + }); +} else { + client.login(api.abbtoken).catch(function() { + console.log('[X] Login failed. The token that you put in is invalid, please put in a new one...'.red); + process.exit(0); + }); +} + +client.commands = new Discord.Collection(); +client.aliases = new Discord.Collection(); + +fs.readdir('./commands', (err, files) => { + if (err) console.error(err); + log(`[!] Attempting to load a total of ${files.length} commands into the memory.`.cyan); + files.forEach((file) => { + try { + const command = require(`./commands/${file}`); + log(`[!] Attempting to load the command "${command.help.name}".`.cyan); + client.commands.set(command.help.name, command); + command.conf.aliases.forEach((alias) => { + client.aliases.set(alias, command.help.name); + log(`[!] Attempting to load "${alias}" as an alias for "${command.help.name}"`.cyan); + }); + } catch (err) { + log('[X] An error has occured trying to load a command. Here is the error.'.red); + console.log(err.stack); + } + }); + log('[>] Command Loading complete!'.green); + console.log('\n'); +}); + +rl.on('line', function(cmd) { + const args = cmd.split(' '); + switch (args[0]) { + case 'guilds': + if (client.guilds.size === 0) { + console.log(('[!] No guilds found.'.yellow)); + } else { + console.log('[i] Here\'s the servers that AleeBot is connected to:'); + for ([id, guild] of client.guilds) { + console.log(` Guild Name: ${guild.name} - ID: ${guild.id}`.blue); + } + } + break; + case 'channels': + if (!args[1]) { + console.log('[!] Please insert the guild\'s ID.'.yellow); + } else { + var guild = client.guilds.get(args[1]); + console.log('[i] Here\'s the channels that this guild have:'.blue); + for ([id, channel, guild] of guild && client.channels) { + console.log(` Channel: #${channel.name} - ID: ${channel.id}`.blue); + } + } + break; + case 'leave': + if (!args[1]) { + console.log('[!] Please insert the guild\'s ID.'.yellow); + } else { + var guild = client.guilds.get(args[1]); + guild.leave(); + } + break; + case 'broadcast': + if (!args[1]) { + console.log('[!] Usage: broadcast [guildID] [channelID].'.yellow); + } else { + const broadcast = args.join(' ').slice(48); + var guild = null; + guild = client.guilds.get(args[1]); + var channel = null; + channel = guild.channels.get(args[2]); + if (channel != null) { + channel.send(broadcast); + } + } + break; + case 'uptime': + let uptime = parseInt(client.uptime); + uptime = Math.floor(uptime / 1000); + let uptimeMinutes = Math.floor(uptime / 60); + const minutes = uptime % 60; + let hours = 0; + while (uptimeMinutes >= 60) { + hours++; + uptimeMinutes = uptimeMinutes - 60; + } + const uptimeSeconds = minutes % 60; + console.log(`[i] AleeBot has been up for ${hours} hours, ${uptimeMinutes} minutes, and ${uptimeSeconds} seconds.`.blue); + break; + case 'exit': + console.log('[i] AleeBot will now exit!'.blue); + const asyncPowerOff = async () => { + const embed = new Discord.RichEmbed() + .setAuthor('AleeBot Status', client.user.avatarURL) + .setDescription('AleeBot is now going offline...') + .setColor('#ff3333'); + await client.channels.find('id', '606602551634296968').send({embed}); + }; + asyncPowerOff(); + client.destroy(); + process.exit(0); + break; + case 'help': + let msg = (`AleeBot `+ settings.abVersion +` Console Help\n\n`); + msg += (`guilds - Shows all guilds that AleeBot's on.\n`); + msg += (`channels - Shows all the channels that the guilds have.\n`); + msg += (`leave - Leaves a guild.\n`); + msg += (`broadcast - Broadcasts a message to a server.\n`); + msg += (`uptime - Shows the uptime for AleeBot.\n`); + msg += (`help - Shows this command.\n`); + msg += (`exit - Exits AleeBot.\n`); + console.log(msg.cyan); + break; + default: + console.log('Unknown command, type \'help\' to list the commands...'.yellow); + } + rl.prompt(); +}); + + +client.on('ready', () => { + log('[>] AleeBot is now ready!'.green); + log(`[i] Logged in as ${client.user.tag}`.green); + log(`[i] Default Prefix: ${settings.prefix}`.green); + log(`[i] Bot ID: ${client.user.id}`.green); + log(`[i] Token: ${api.abtoken}`.green); + log(`[i] Running version ${settings.abVersion} and in ${client.guilds.size} guilds`.green); + + client.setInterval(function() { + const games = [ + 'AleeBot ' + settings.abVersion + ' | ' + settings.prefix + 'help', + 'Annoying Alee', + 'Coding stuff', + 'Drawing shapes', + 'Fighting AstralMod', + ]; + /* + setInterval(() => { + dbl.postStats(client.guilds.size, client.shards.Id, client.shards.total); + }, 1800000);*/ + client.user.setPresence({ + status: 'online', + afk: false, + game: { + type: 0, + name: games[Math.floor(Math.random() * games.length)], + }, + }); + }, 200000); + client.user.setStatus('online'); + const embed = new Discord.RichEmbed() + .setAuthor('AleeBot Status', client.user.avatarURL) + .setDescription('AleeBot has started') + .setColor('#5cd65c'); + client.channels.find('id', '606602551634296968').send({embed}); + rl.prompt(); +}); + +client.on('guildMemberAdd', (member) => { + if (member.guild.id != '243022206437687296') return 0; + const role = member.guild.roles.find((role) => role.name === 'Member'); + member.addRole(role); + log(`[i] ${member.user.username} joined Alee Productions.`.green); + log(`[i] I gave ${member.user.username} the "Member" role.`.green); +}); + +client.on('messageUpdate', async (oldMessage, newMessage) => { + if (oldMessage.guild.id != '243022206437687296') return 0; + if (oldMessage.content === newMessage.content) { + return; + } + const logEmbed = new Discord.RichEmbed() + .setAuthor('AleeBot Logging', client.user.avatarURL) + .setDescription(`A message from ${oldMessage.author.username} was edited`) + .addField('Before: ', `\`\`\`${oldMessage.content}\`\`\``) + .addField('After: ', `\`\`\`${newMessage.content}\`\`\``) + .setColor('#ffff1a') + .setTimestamp() + .setFooter(`Author ID: ${oldMessage.author.id}`); + + const editMessage = newMessage.guild.channels.find((ch) => ch.name === 'logs'); + if (!editMessage) return; + + editMessage.send(logEmbed); +}); + +client.on('messageDelete', (message) => { + if (message.guild.id != '243022206437687296') return 0; + const logEmbed = new Discord.RichEmbed() + .setAuthor('AleeBot Logging', client.user.avatarURL) + .setDescription(`A message from ${message.author.username} was deleted`) + .addField('Deleted Message: ', `\`\`\`${message.content}\`\`\``) + .setColor('#ff021b') + .setTimestamp() + .setFooter(`Author ID: ${message.author.id}`); + + const deleteMessage = message.guild.channels.find((ch) => ch.name === 'logs'); + if (!deleteMessage) return; + + deleteMessage.send(logEmbed); +}); + +client.on('guildBanAdd', (guild, user) => { + if (guild.id != '243022206437687296') return 0; + const logEmbed = new Discord.RichEmbed() + .setAuthor('AleeBot Logging', client.user.avatarURL) + .setDescription(`This user got banned from ${guild.name}`) + .addField(`User:`, `${user.tag}`) + .addField(`User ID:`, `${user.id}`) + .setColor('#ff021b') + .setTimestamp(); + + const banMessage = guild.channels.find((ch) => ch.name === 'logs'); + if (!banMessage) return; + + banMessage.send(logEmbed); +}); + +client.on('guildBanRemove', (guild, user) => { + if (guild.id != '243022206437687296') return 0; + const logEmbed = new Discord.RichEmbed() + .setAuthor('AleeBot Logging', client.user.avatarURL) + .setDescription(`This user got unbanned from ${guild.name}`) + .addField(`User:`, `${user.tag}`) + .addField(`User ID:`, `${user.id}`) + .setColor('#ff021b') + .setTimestamp(); + + const banMessage = guild.channels.find((ch) => ch.name === 'logs'); + if (!banMessage) return; + + banMessage.send(logEmbed); +}); + +client.on('guildCreate', (guild) => { + log(`[i] New guild joined: ${guild.name} (id: ${guild.id}). This guild has ${guild.memberCount} members!`.blue); + /* + const logEmbed = new Discord.RichEmbed() + .setAuthor("AleeBot", client.user.avatarURL) + .setDescription(`I got added to this server!`) + .addField(`Server Name:`, `${guild.name}`) + .addField(`Server ID:`, `${guild.id}`) + .setColor("#5cd65c") + + client.channels.find('id', '606602551634296968').send({logEmbed});*/ +}); + + +client.on('guildDelete', (guild) => { + log(`[i] I have been removed from: ${guild.name} (id: ${guild.id})`.red); + /* + const logEmbed = new Discord.RichEmbed() + .setAuthor("AleeBot", client.user.avatarURL) + .setDescription(`I got removed from server...`) + .addField(`Server Name:`, `${guild.name}`) + .addField(`Server ID:`, `${guild.id}`) + .setColor("#5cd65c") + + client.channels.find('id', '606602551634296968').send({logEmbed});*/ +}); + +dbl.on('posted', () => { + log('Server count posted!'.blue); +}); + +dbl.on('error', (e) => { + log(`[X | DBL ERROR] ${e}`.red); +}); + +client.on('message', (msg) => { + if (msg.author.bot) return; + + if (msg.mentions != null && msg.mentions.users != null) { + if (msg.mentions.users.has('282547024547545109')) { + if (msg.content.toLowerCase().includes('hello') || (msg.content.toLowerCase().includes('hi'))) { + msg.reply(`Hello ${msg.author.username}!`); + } else { + if (msg.content.toLowerCase().includes('shut') && msg.content.toLowerCase().includes('up')) { + switch (Math.floor(Math.random() * 1000) % 3) { + case 0: + msg.reply('Hey, Can you not speak to me in that tone...'); + break; + case 1: + msg.reply('NO! I can talk as much I can!'); + break; + case 2: + msg.reply('Nah I won\'t....'); + break; + } + } else if (msg.content.toLowerCase().includes('how') && msg.content.toLowerCase().includes('are') && msg.content.toLowerCase().includes('you')) { + msg.reply('I\'m doing OK, I suppose...'); + } else if (msg.content.toLowerCase().includes('ok') && msg.content.toLowerCase().includes('google')) { + msg.reply('Erm... I am not google, if you want to use Google here\'s the link: https://www.google.com'); + } else if (msg.content.toLowerCase().includes('f') && msg.content.toLowerCase().includes('off')) { + msg.reply('Do you want a hammer? :hammer:'); + } else if (msg.content.toLowerCase().includes('aleearmy')) { + msg.reply('Oh yeah.. that thing Alee made...'); + } + } + } + }; + + + const prefixes = JSON.parse(fs.readFileSync('./storage/prefixes.json', 'utf8')); + + if (!prefixes[msg.guild.id]) { + prefixes[msg.guild.id] = { + prefixes: settings.prefix, + }; + } + + const prefix = prefixes[msg.guild.id].prefixes; + + + if (!msg.content.startsWith(prefix)) return; + const args = msg.content.slice(prefix.length).trim().split(/ +/g); + const command = args.shift(); + let cmd; + + if (client.commands.has(command)) { + cmd = client.commands.get(command); + } else if (client.aliases.has(command)) { + cmd = client.commands.get(client.aliases.get(command)); + } + + if (cmd) { + if (cmd.conf.guildOnly == true) { + if (!msg.channel.guild) { + return msg.channel.createMessage('This command can only be ran in a guild.'); + } + } + try { + const ops = { + ownerID: ownerID, + active: active, + }; + + cmd.run(client, msg, args, ops); + } catch (e) { + console.error(e); + } + } +}); + +process.on('unhandledRejection', function(err, p) { + log('[X | UNCAUGHT PROMISE] ' + err.stack.red); +}); +client.on('reconnecting', function() { + log('[!] AleeBot has disconnected from Discord and is now attempting to reconnect.'.yellow); +}); + +client.on('disconnect', function() { + log('[X] AleeBot has disconnected from Discord and will not attempt to reconnect.'.red); + console.log('At this point, you\'ll need to restart AleeBot.'.red); + process.exit(0); +}); diff --git a/commands/addquote.js b/commands/addquote.js index 04df3f4..7782b91 100644 --- a/commands/addquote.js +++ b/commands/addquote.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * AddQuote: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,19 +15,19 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { /* const moment = require('moment'); const log = message => { - + console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] ${message}`); - + }; const fs = require('fs'); if(!args[0]) return message.reply(`Usage: ab:addquote [author] [authorImage] [quote] [year]`); - + let quotes = JSON.parse(fs.readFileSync("./storage/quotes.json", "utf8")); quotes = { @@ -36,25 +36,25 @@ module.exports.run = async (client, message, args) => { quote: args[2], year: args[3] }; - + fs.writeFile("./storage/quotes.json", JSON.stringify(quotes), (err) =>{ if (err) log(err) }) - + message.reply(`You just added a new quote!`); - log(`[i] A quote has been added to quotes.json...`) + log(`[i] A quote has been added to quotes.json...`) */ - message.reply('Command is broken for now'); - }; - - exports.conf = { - aliases: [], - guildOnly: true, - }; - exports.help = { - name: 'addquote', - description: 'Sets the guild prefix.', - usage: 'addquote [author] [authorImage] [quote] [year]', - category: '- Quote Commands', - }; - + message.reply('Command is broken for now'); +}; + +exports.conf = { + aliases: [], + guildOnly: true, +}; +exports.help = { + name: 'addquote', + description: 'Sets the guild prefix.', + usage: 'addquote [author] [authorImage] [quote] [year]', + category: '- Quote Commands', +}; + diff --git a/commands/ask.js b/commands/ask.js index db9e10e..0bc0761 100644 --- a/commands/ask.js +++ b/commands/ask.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Ask: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,35 +15,34 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - let abaskanswer = [ - "Yes.", - "Nope. Just kidding :P", - "Definitely!", - "No.", - "Yep. Just kidding :P", - "I doubt it.", - "Maybe?", - "I don't know?", - "Hmm let me think :thinking:" - ]; - if (args[1]) { - message.channel.sendMessage(abaskanswer[Math.floor(Math.random() * abaskanswer.length)]); - } else { - message.channel.sendMessage("Sorry, I don't know what your saying.") - } - }; - - exports.conf = { - aliases: ['8ball'], - guildOnly: false, - }; - exports.help = { - name: 'ask', - description: 'Give AleeBot a question!', - usage: 'ask [args]', - category: '- Fun Commands', - }; -
\ No newline at end of file + const abaskanswer = [ + 'Yes.', + 'Nope. Just kidding :P', + 'Definitely!', + 'No.', + 'Yep. Just kidding :P', + 'I doubt it.', + 'Maybe?', + 'I don\'t know?', + 'Hmm let me think :thinking:', + ]; + if (args[1]) { + message.channel.sendMessage(abaskanswer[Math.floor(Math.random() * abaskanswer.length)]); + } else { + message.channel.sendMessage('Sorry, I don\'t know what your saying.'); + } +}; + +exports.conf = { + aliases: ['8ball'], + guildOnly: false, +}; +exports.help = { + name: 'ask', + description: 'Give AleeBot a question!', + usage: 'ask [args]', + category: '- Fun Commands', +}; diff --git a/commands/avatarurl.js b/commands/avatarurl.js index 018bc7a..7f9c256 100644 --- a/commands/avatarurl.js +++ b/commands/avatarurl.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * AvatarURL: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,12 +15,12 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message) => { - message.reply(message.author.avatarURL); + message.reply(message.author.avatarURL); }; - + exports.conf = { aliases: [], guildOnly: false, diff --git a/commands/balance.js b/commands/balance.js index ae575cc..7b340b2 100644 --- a/commands/balance.js +++ b/commands/balance.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Balance: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,37 +15,36 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message) => { - const db = require('quick.db'); - const { RichEmbed } = require('discord.js'); + const db = require('quick.db'); + const {RichEmbed} = require('discord.js'); + + const user = message.mentions.users.first() || message.author; - let user = message.mentions.users.first() || message.author; + let balance = await db.fetch(`userBalance_${user.id}`); - let balance = await db.fetch(`userBalance_${user.id}`); + if (balance === null) { + db.set(`userBalance_${message.author.id}`, 0); + balance = 0; + } + const embed = new RichEmbed() + .setDescription(`**AleeCorp Bank**`) + .addField('Account Holder: ', user.username, true) + .addField('Account Balance: ', balance, true) + .setColor('#1fd619'); - if (balance === null) { - db.set(`userBalance_${message.author.id}`, 0); - balance = 0; - } - const embed = new RichEmbed() - .setDescription(`**AleeCorp Bank**`) - .addField('Account Holder: ', user.username, true) - .addField('Account Balance: ', balance, true) - .setColor('#1fd619') + message.channel.send({embed}); +}; - message.channel.send({embed}) - }; - - exports.conf = { - aliases: ['bal', 'money'], - guildOnly: false, - }; - exports.help = { - name: 'balance', - description: 'Checks the balance of AleeBot', - usage: 'balance [@someone (optional)]', - category: '- Economy Commands', - }; -
\ No newline at end of file +exports.conf = { + aliases: ['bal', 'money'], + guildOnly: false, +}; +exports.help = { + name: 'balance', + description: 'Checks the balance of AleeBot', + usage: 'balance [@someone (optional)]', + category: '- Economy Commands', +}; diff --git a/commands/ban.js b/commands/ban.js index 6331347..354dcaa 100644 --- a/commands/ban.js +++ b/commands/ban.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Ban: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,22 +15,22 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - const Discord = require('discord.js'); - const mreason = args.join(" ").slice(22); - if (!message.member.permissions.has('BAN_MEMBERS')) return message.reply("It looks like that you don't have the permissions to ban people.") - if (!message.guild.member(client.user).hasPermission('BAN_MEMBERS')) return message.reply('Uhh... I don\'t have permission to ban members.'); - const member = message.mentions.members.first(); - if (!member) return message.reply("Uhh... Please mention a member first."); - member.ban(`Banned by ${message.author.tag} Reason: ` + mreason); - const embed = new Discord.RichEmbed() - .setTitle('User Banned!') - .setColor('#1fd619') - .addField('**User:**', `${member.user.tag}`) - .addField('**Reason:**', `\`\`\`${mreason}\`\`\``) - await message.channel.send({ embed }); + const Discord = require('discord.js'); + const mreason = args.join(' ').slice(22); + if (!message.member.permissions.has('BAN_MEMBERS')) return message.reply('It looks like that you don\'t have the permissions to ban people.'); + if (!message.guild.member(client.user).hasPermission('BAN_MEMBERS')) return message.reply('Uhh... I don\'t have permission to ban members.'); + const member = message.mentions.members.first(); + if (!member) return message.reply('Uhh... Please mention a member first.'); + member.ban(`Banned by ${message.author.tag} Reason: ` + mreason); + const embed = new Discord.RichEmbed() + .setTitle('User Banned!') + .setColor('#1fd619') + .addField('**User:**', `${member.user.tag}`) + .addField('**Reason:**', `\`\`\`${mreason}\`\`\``); + await message.channel.send({embed}); }; exports.conf = { diff --git a/commands/eval.js b/commands/eval.js index 90b7030..2147376 100644 --- a/commands/eval.js +++ b/commands/eval.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Eval: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions & jtsshieh + PokeWorld * @@ -15,72 +15,70 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - if (!['242775871059001344',].includes(message.author.id)) return message.reply('Nope! You need the person who created this bot to use this command.'); - const { RichEmbed } = require('discord.js'); - const code = args.join(' '); - - let evaled; - let remove; - - try { - remove = text => { - if (typeof(text) === 'string') { - return text.replace(/`/g, '`' + String.fromCharCode(8203)).replace(/@/g, '@' + String.fromCharCode(8203)); - } else { - return text; - } - }; - - evaled = eval(code); - - if (typeof evaled !== 'string') { - evaled = require('util').inspect(evaled); + if (!['242775871059001344'].includes(message.author.id)) return message.reply('Nope! You need the person who created this bot to use this command.'); + const {RichEmbed} = require('discord.js'); + const code = args.join(' '); + + let evaled; + let remove; + + try { + remove = (text) => { + if (typeof(text) === 'string') { + return text.replace(/`/g, '`' + String.fromCharCode(8203)).replace(/@/g, '@' + String.fromCharCode(8203)); + } else { + return text; } - - } catch (err) { - const embed = new RichEmbed() + }; + + evaled = eval(code); + + if (typeof evaled !== 'string') { + evaled = require('util').inspect(evaled); + } + } catch (err) { + const embed = new RichEmbed() .setAuthor('Eval Error') .setDescription('Eval\'s result') .addField(':inbox_tray: Input:', `\`\`\`js\n${code}\n\`\`\``) .addField(':outbox_tray: Output:', `\`\`\`${err}\`\`\``) .setFooter('Eval', client.user.avatarURL) .setColor('RED'); - return message.channel.send({ embed }); - } - - try { - const embed = new RichEmbed() + return message.channel.send({embed}); + } + + try { + const embed = new RichEmbed() .setAuthor('Eval Success') .setDescription('Eval\'s result') .addField(':inbox_tray: Input:', `\`\`\`js\n${code}\n\`\`\``) .addField(':outbox_tray: Output:', `\`\`\`js\n${remove(evaled)}\n\`\`\``) .setFooter('Eval', client.user.avatarURL) .setColor('GREEN'); - - return message.channel.send({ embed }); - } catch (err) { - const embed = new RichEmbed() + + return message.channel.send({embed}); + } catch (err) { + const embed = new RichEmbed() .setAuthor('Eval Error') .setDescription('Eval\'s result') .addField(':inbox_tray: Input:', `\`\`\`js\n${code}\n\`\`\``) .addField(':outbox_tray: Output:', `\`\`\`${err}\`\`\``) .setFooter('Eval', client.user.avatarURL) .setColor('RED'); - return message.channel.send({ embed }); - } - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'eval', - description: 'Evalulates commands.', - usage: '<code>', - category: '- Owners Only', - }; -
\ No newline at end of file + return message.channel.send({embed}); + } +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'eval', + description: 'Evalulates commands.', + usage: '<code>', + category: '- Owners Only', +}; diff --git a/commands/git.js b/commands/git.js index d6bed8b..cf754f4 100644 --- a/commands/git.js +++ b/commands/git.js @@ -1,43 +1,43 @@ -/****************************************
- *
- * Git: Command for AleeBot
- * Copyright (C) 2017-2020 Alee Productions
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * *************************************/
-module.exports.run = async (client, message) => {
- const Discord = require('discord.js');
- const git = require('git-last-commit');
- git.getLastCommit(function(err, commit) {
- const embed = new Discord.RichEmbed()
- .setTitle('GitHub Information')
- .addField('**Repository:**', 'https://github.com/aleeproductions/AleeBot-JS')
- .addField('**Last Commit:**', commit.subject)
- .addField('**Commited By:**', commit.author.name)
- .setColor('#1fd619')
- message.channel.send({ embed });
- })
-};
-
-exports.conf = {
- aliases: [],
- guildOnly: false,
-};
-exports.help = {
- name: 'git',
- description: 'Get the git info.',
- usage: 'git',
- category: '- General Commands',
-};
+/** ************************************** + * + * Git: Command for AleeBot + * Copyright (C) 2017-2020 Alee Productions + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * *************************************/ +module.exports.run = async (client, message) => { + const Discord = require('discord.js'); + const git = require('git-last-commit'); + git.getLastCommit(function(err, commit) { + const embed = new Discord.RichEmbed() + .setTitle('GitHub Information') + .addField('**Repository:**', 'https://github.com/aleeproductions/AleeBot-JS') + .addField('**Last Commit:**', commit.subject) + .addField('**Commited By:**', commit.author.name) + .setColor('#1fd619'); + message.channel.send({embed}); + }); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'git', + description: 'Get the git info.', + usage: 'git', + category: '- General Commands', +}; diff --git a/commands/help.js b/commands/help.js index eb53b40..9d94c80 100644 --- a/commands/help.js +++ b/commands/help.js @@ -1,70 +1,70 @@ -/****************************************
- *
- * Help: Command for AleeBot
- * Copyright (C) 2017-2020 Alee Productions
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * *************************************/
-const Discord = require('discord.js');
-const fs = require('fs');
-module.exports.run = async (client, message) => {
- const categories = [];
- const commands = Array.from(client.commands.keys());
- const settings = require('../storage/settings.json');
- commands.forEach(function(x) {
- if (!categories.includes(client.commands.get(x).help.category)) {
- categories.push(client.commands.get(x).help.category);
- }
- });
-
- let prefixes = JSON.parse(fs.readFileSync("./storage/prefixes.json", "utf8"));
-
- if(!prefixes[message.guild.id]){
- prefixes[message.guild.id] = {
- prefixes: settings.prefix
- };
- }
-
- let prefix = prefixes[message.guild.id].prefixes
- if (!message.guild.member(client.user).hasPermission('EMBED_LINKS')) return message.reply('ERROR: AleeBot doesn\'t have the permission to send embed links please enable them to use the full help.');
- const embed = new Discord.RichEmbed()
- .setAuthor('AleeBot ' + require('../storage/settings.json').abVersion + ` Help and on ${client.guilds.size} servers`, client.user.avatarURL)
- .setDescription('Every command you input into AleeBot is `' + prefix + '`')
- .setColor('#1fd619')
- .setFooter('© Copyright 2017-2020 Alee Productions, Licensed with GPL-3.0');
-
- categories.forEach(function(x) {
- let cat = '';
- commands.forEach(function(command) {
- if (client.commands.get(command).help.category == x) {
- cat = cat + command + '\n';
- }
- });
- embed.addField(x, cat, true);
- });
-
- await message.channel.send({ embed });
-};
-
-exports.conf = {
- aliases: ['h'],
- guildOnly: false,
-};
-exports.help = {
- name: 'help',
- description: 'Displays all the commands or a page with information for 1 command.',
- usage: 'help (command:command-name)',
- category: '- General Commands',
-};
+/** ************************************** + * + * Help: Command for AleeBot + * Copyright (C) 2017-2020 Alee Productions + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * *************************************/ +const Discord = require('discord.js'); +const fs = require('fs'); +module.exports.run = async (client, message) => { + const categories = []; + const commands = Array.from(client.commands.keys()); + const settings = require('../storage/settings.json'); + commands.forEach(function(x) { + if (!categories.includes(client.commands.get(x).help.category)) { + categories.push(client.commands.get(x).help.category); + } + }); + + const prefixes = JSON.parse(fs.readFileSync('./storage/prefixes.json', 'utf8')); + + if (!prefixes[message.guild.id]) { + prefixes[message.guild.id] = { + prefixes: settings.prefix, + }; + } + + const prefix = prefixes[message.guild.id].prefixes; + if (!message.guild.member(client.user).hasPermission('EMBED_LINKS')) return message.reply('ERROR: AleeBot doesn\'t have the permission to send embed links please enable them to use the full help.'); + const embed = new Discord.RichEmbed() + .setAuthor('AleeBot ' + require('../storage/settings.json').abVersion + ` Help and on ${client.guilds.size} servers`, client.user.avatarURL) + .setDescription('Every command you input into AleeBot is `' + prefix + '`') + .setColor('#1fd619') + .setFooter('© Copyright 2017-2020 Alee Productions, Licensed with GPL-3.0'); + + categories.forEach(function(x) { + let cat = ''; + commands.forEach(function(command) { + if (client.commands.get(command).help.category == x) { + cat = cat + command + '\n'; + } + }); + embed.addField(x, cat, true); + }); + + await message.channel.send({embed}); +}; + +exports.conf = { + aliases: ['h'], + guildOnly: false, +}; +exports.help = { + name: 'help', + description: 'Displays all the commands or a page with information for 1 command.', + usage: 'help (command:command-name)', + category: '- General Commands', +}; diff --git a/commands/info.js b/commands/info.js index 162a1cf..5487a14 100644 --- a/commands/info.js +++ b/commands/info.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Info: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,29 +15,28 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message) => { - const Discord = require('discord.js'); - const os = require('os'); - const embed = new Discord.RichEmbed() + const Discord = require('discord.js'); + const os = require('os'); + const embed = new Discord.RichEmbed() .setTitle('Information on AleeBot\'s Host') - .addField('OS Hostname: ', os.hostname() , true) - .addField('NodeJS Version: ', process.versions.node , true) - .addField('OS Platform: ', os.platform() , true) - .addField('OS Version: ', os.release() , true) + .addField('OS Hostname: ', os.hostname(), true) + .addField('NodeJS Version: ', process.versions.node, true) + .addField('OS Platform: ', os.platform(), true) + .addField('OS Version: ', os.release(), true) .setColor('#1fd619'); - message.channel.send({embed}); - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'info', - description: 'Tells you information about the bot', - usage: 'info', - category: '- Information Commands', - }; -
\ No newline at end of file + message.channel.send({embed}); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'info', + description: 'Tells you information about the bot', + usage: 'info', + category: '- Information Commands', +}; diff --git a/commands/interrogate.js b/commands/interrogate.js index ea7de53..c015f2c 100644 --- a/commands/interrogate.js +++ b/commands/interrogate.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Interrogate: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,29 +15,28 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - if (message.guild.id != '243022206437687296') return message.reply ('This is a ALP exclusive command.'); + if (message.guild.id != '243022206437687296') return message.reply('This is a ALP exclusive command.'); - if (!message.member.hasPermission('BAN_MEMBERS')) return message.reply('It looks like that you don\'t have the permissions to jail members.'); - if (!message.guild.member(client.user).hasPermission('MANAGE_ROLES')) return message.reply('Uhh... I don\'t have permission to jail members.'); + if (!message.member.hasPermission('BAN_MEMBERS')) return message.reply('It looks like that you don\'t have the permissions to jail members.'); + if (!message.guild.member(client.user).hasPermission('MANAGE_ROLES')) return message.reply('Uhh... I don\'t have permission to jail members.'); - const member = message.mentions.members.first(); - if (!member) return await message.reply('Uhh... Please mention a member first.'); + const member = message.mentions.members.first(); + if (!member) return await message.reply('Uhh... Please mention a member first.'); - member.addRole(message.guild.roles.find('name', 'Interrogation')); - message.reply(`Alright, I just interrogated ${member.user.tag}.`) + member.addRole(message.guild.roles.find('name', 'Interrogation')); + message.reply(`Alright, I just interrogated ${member.user.tag}.`); }; exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'interrogate', - description: 'Interrogates a member', - usage: 'interrogate [user]', - category: '- ALP Exclusive Commands', - }; -
\ No newline at end of file + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'interrogate', + description: 'Interrogates a member', + usage: 'interrogate [user]', + category: '- ALP Exclusive Commands', +}; diff --git a/commands/invite.js b/commands/invite.js index 38094b4..a6ce5a8 100644 --- a/commands/invite.js +++ b/commands/invite.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Invite: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,37 +15,37 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message) => { - const Discord = require('discord.js'); - const embed = new Discord.RichEmbed() - message.channel.send({embed: { + const Discord = require('discord.js'); + const embed = new Discord.RichEmbed(); + message.channel.send({embed: { color: 2086425, - title: "Invite Command", + title: 'Invite Command', fields: [{ - name: "Invite AleeBot", - value: "[Invite AleeBot to your server.](https://top.gg/bot/282547024547545109)" - }, - { - name: "Join the Alee Productions Community", - value: "[If there's any bugs you can join Alee Community guild and explain the bug...](https://discord.gg/EFhRDqG)" - } + name: 'Invite AleeBot', + value: '[Invite AleeBot to your server.](https://top.gg/bot/282547024547545109)', + }, + { + name: 'Join the Alee Productions Community', + value: '[If there\'s any bugs you can join Alee Community guild and explain the bug...](https://discord.gg/EFhRDqG)', + }, ], - } -}); - - // message.channel.send('Want AleeBot in your server? Here\'s the link: https://discordapp.com/api/oauth2/authorize?client_id=282547024547545109&permissions=2080375863&scope=bot'); - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'invite', - description: 'Gives you an invite to the guild and the bot.', - usage: 'invite', - category: '- General Commands', - }; - + }, + }); + + // message.channel.send('Want AleeBot in your server? Here\'s the link: https://discordapp.com/api/oauth2/authorize?client_id=282547024547545109&permissions=2080375863&scope=bot'); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'invite', + description: 'Gives you an invite to the guild and the bot.', + usage: 'invite', + category: '- General Commands', +}; + diff --git a/commands/jail.js b/commands/jail.js index e1ba85f..199ae20 100644 --- a/commands/jail.js +++ b/commands/jail.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Jail: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,29 +15,28 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - if (message.guild.id != '243022206437687296') return message.reply ('This is a ALP exclusive command.'); + if (message.guild.id != '243022206437687296') return message.reply('This is a ALP exclusive command.'); - if (!message.member.hasPermission('BAN_MEMBERS')) return message.reply('It looks like that you don\'t have the permissions to jail members.'); - if (!message.guild.member(client.user).hasPermission('MANAGE_ROLES')) return message.reply('Uhh... I don\'t have permission to jail members.'); + if (!message.member.hasPermission('BAN_MEMBERS')) return message.reply('It looks like that you don\'t have the permissions to jail members.'); + if (!message.guild.member(client.user).hasPermission('MANAGE_ROLES')) return message.reply('Uhh... I don\'t have permission to jail members.'); - const member = message.mentions.members.first(); - if (!member) return await message.reply('Uhh... Please mention a member first.'); + const member = message.mentions.members.first(); + if (!member) return await message.reply('Uhh... Please mention a member first.'); - member.addRole(message.guild.roles.find('name', 'Jail')); - message.reply(`Alright, I just jailed ${member.user.tag}.`) + member.addRole(message.guild.roles.find('name', 'Jail')); + message.reply(`Alright, I just jailed ${member.user.tag}.`); }; exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'jail', - description: 'Jails a member', - usage: 'jail [user]', - category: '- ALP Exclusive Commands', - }; -
\ No newline at end of file + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'jail', + description: 'Jails a member', + usage: 'jail [user]', + category: '- ALP Exclusive Commands', +}; diff --git a/commands/kick.js b/commands/kick.js index dbb1eb1..bfacd92 100644 --- a/commands/kick.js +++ b/commands/kick.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Kick: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,23 +15,23 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - const Discord = require('discord.js'); - const mreason = args.join(" ").slice(22); - if (!message.member.permissions.has('KICK_MEMBERS')) return message.reply("It looks like that you don't have the permissions to ban people."); - if (!message.guild.member(client.user).hasPermission('KICK_MEMBERS')) return message.reply('Uhh... I don\'t have permission to kick members.'); - const member = message.mentions.members.first(); - if (!member) return message.reply("Uhh... Please mention a member first."); - member.kick(`Kicked by: ${message.author.tag} Reason: ` + mreason); - const embed = new Discord.RichEmbed() - .setTitle('User Kicked!') - .setColor('#1fd619') - .addField('**User:**', `${member.user.tag}`) - .addField('**Reason:**', `\`\`\`${mreason}\`\`\``) - await message.channel.send({ embed }); - }; + const Discord = require('discord.js'); + const mreason = args.join(' ').slice(22); + if (!message.member.permissions.has('KICK_MEMBERS')) return message.reply('It looks like that you don\'t have the permissions to ban people.'); + if (!message.guild.member(client.user).hasPermission('KICK_MEMBERS')) return message.reply('Uhh... I don\'t have permission to kick members.'); + const member = message.mentions.members.first(); + if (!member) return message.reply('Uhh... Please mention a member first.'); + member.kick(`Kicked by: ${message.author.tag} Reason: ` + mreason); + const embed = new Discord.RichEmbed() + .setTitle('User Kicked!') + .setColor('#1fd619') + .addField('**User:**', `${member.user.tag}`) + .addField('**Reason:**', `\`\`\`${mreason}\`\`\``); + await message.channel.send({embed}); +}; exports.conf = { aliases: [], diff --git a/commands/leaveguild.js b/commands/leaveguild.js index 4a77b0c..fd77509 100644 --- a/commands/leaveguild.js +++ b/commands/leaveguild.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * LeaveGuild: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,22 +15,21 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message) => { - if (!['242775871059001344', message.guild.owner.user.id].includes(message.author.id)) return message.reply('Nope! You need the person who created this bot or the owner of this guild to use this command.'); - message.channel.send('Alright, I\'m leaving the server now. Bye everyone!') - message.guild.leave(); - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'leaveguild', - description: 'Makes the bot leave the server', - usage: 'leaveguild', - category: '- Owners Only', - }; -
\ No newline at end of file + if (!['242775871059001344', message.guild.owner.user.id].includes(message.author.id)) return message.reply('Nope! You need the person who created this bot or the owner of this guild to use this command.'); + message.channel.send('Alright, I\'m leaving the server now. Bye everyone!'); + message.guild.leave(); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'leaveguild', + description: 'Makes the bot leave the server', + usage: 'leaveguild', + category: '- Owners Only', +}; diff --git a/commands/pay.js b/commands/pay.js index 633e4db..2d0aa89 100644 --- a/commands/pay.js +++ b/commands/pay.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Pay: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,46 +15,46 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - const db = require('quick.db'); - if (!message.mentions.members.first()) return message.reply('Please mention a user...'); - - let targetMember = message.mentions.members.first(), - amount = parseInt(args.join(' ').replace(targetMember, '')); - - if (isNaN(amount)) return message.reply('Please define an amount.') - - let targetBalance = await db.fetch(`userBalance_${targetMember.id}`), - selfBalance = await db.fetch(`userBalance_${message.author.id}`); - - if (targetBalance === null) { - db.set(`userBalance_${targetMember.id}`, 0); - targetBalance = 0 - } - - if (selfBalance === null) { - db.set(`userBalance_${message.author.id}`, 0); - selfBalance = 0 - } - - if (amount > selfBalance) return message.reply('Sorry you don\'t have enough money.'); - - db.add(`userBalance_${targetMember.id}`, amount); - db.subtract(`userBalance_${message.author.id}`, amount); - - message.reply(`Successfully transfered $${amount} to ${targetMember.user}`) - }; - - exports.conf = { - aliases: ['transfer'], - guildOnly: false, - }; - exports.help = { - name: 'pay', - description: 'You can pay others!', - usage: 'pay [@user] [interger]', - category: '- Economy Commands', - };
\ No newline at end of file + const db = require('quick.db'); + if (!message.mentions.members.first()) return message.reply('Please mention a user...'); + + const targetMember = message.mentions.members.first(); + const amount = parseInt(args.join(' ').replace(targetMember, '')); + + if (isNaN(amount)) return message.reply('Please define an amount.'); + + let targetBalance = await db.fetch(`userBalance_${targetMember.id}`); + let selfBalance = await db.fetch(`userBalance_${message.author.id}`); + + if (targetBalance === null) { + db.set(`userBalance_${targetMember.id}`, 0); + targetBalance = 0; + } + + if (selfBalance === null) { + db.set(`userBalance_${message.author.id}`, 0); + selfBalance = 0; + } + + if (amount > selfBalance) return message.reply('Sorry you don\'t have enough money.'); + + db.add(`userBalance_${targetMember.id}`, amount); + db.subtract(`userBalance_${message.author.id}`, amount); + + message.reply(`Successfully transfered $${amount} to ${targetMember.user}`); +}; + +exports.conf = { + aliases: ['transfer'], + guildOnly: false, +}; +exports.help = { + name: 'pay', + description: 'You can pay others!', + usage: 'pay [@user] [interger]', + category: '- Economy Commands', +}; diff --git a/commands/ping.js b/commands/ping.js index fa1fd10..afb3807 100644 --- a/commands/ping.js +++ b/commands/ping.js @@ -1,33 +1,33 @@ -/****************************************
- *
- * Ping: Command for AleeBot
- * Copyright (C) 2017-2020 Alee Productions
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * *************************************/
-module.exports.run = async (client, message) => {
- message.reply('**PONG!** :ping_pong: ' + Math.round(client.ping) + ' ms');
-};
-
-exports.conf = {
- aliases: [],
- guildOnly: false,
-};
-exports.help = {
- name: 'ping',
- description: 'Ping the bot.',
- usage: 'ping',
- category: '- General Commands',
-};
+/** ************************************** + * + * Ping: Command for AleeBot + * Copyright (C) 2017-2020 Alee Productions + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * *************************************/ +module.exports.run = async (client, message) => { + message.reply('**PONG!** :ping_pong: ' + Math.round(client.ping) + ' ms'); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'ping', + description: 'Ping the bot.', + usage: 'ping', + category: '- General Commands', +}; diff --git a/commands/poweroff.js b/commands/poweroff.js index 3af23b8..3f60f8a 100644 --- a/commands/poweroff.js +++ b/commands/poweroff.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Poweroff: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,29 +15,28 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { const Discord = require('discord.js'); - if (!['242775871059001344',].includes(message.author.id)) return message.reply('Nope! You need the person who created this bot to use this command.'); - const embed = new Discord.RichEmbed() - .setAuthor("AleeBot Status", client.user.avatarURL) - .setDescription("AleeBot is now going offline...") - .setColor("#ff3333") - await client.channels.find('id', '606602551634296968').send({embed}); - await message.reply(':warning: AleeBot will now exit!'); - client.destroy(); - process.exit(0); - }; - - exports.conf = { - aliases: ['reboot'], - guildOnly: false, - }; - exports.help = { - name: 'poweroff', - description: 'Turns off AleeBot.', - usage: 'poweroff', - category: '- Owners Only', - }; -
\ No newline at end of file + if (!['242775871059001344'].includes(message.author.id)) return message.reply('Nope! You need the person who created this bot to use this command.'); + const embed = new Discord.RichEmbed() + .setAuthor('AleeBot Status', client.user.avatarURL) + .setDescription('AleeBot is now going offline...') + .setColor('#ff3333'); + await client.channels.find('id', '606602551634296968').send({embed}); + await message.reply(':warning: AleeBot will now exit!'); + client.destroy(); + process.exit(0); +}; + +exports.conf = { + aliases: ['reboot'], + guildOnly: false, +}; +exports.help = { + name: 'poweroff', + description: 'Turns off AleeBot.', + usage: 'poweroff', + category: '- Owners Only', +}; diff --git a/commands/purge.js b/commands/purge.js index 9a510f9..6122083 100644 --- a/commands/purge.js +++ b/commands/purge.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Purge: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,26 +15,25 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - if (!message.member.permissions.has('MANAGE_MESSAGES')) return message.reply("It looks like that you don't have the permissions to delete messages.") - if (isNaN(args[0])) return message.reply("Please put the valid number of messages to purge."); + if (!message.member.permissions.has('MANAGE_MESSAGES')) return message.reply('It looks like that you don\'t have the permissions to delete messages.'); + if (isNaN(args[0])) return message.reply('Please put the valid number of messages to purge.'); + + if (args[0] > 100) return message.channel.send('Please put a number less than 100.'); - if (args[0] > 100) return message.channel.send("Please put a number less than 100."); + message.channel.bulkDelete(args[0]) + .then( (messages) => message.channel.send(`Successfully deleted ${messages.size} messages.`)); +}; - message.channel.bulkDelete(args[0]) - .then( messages => message.channel.send(`Successfully deleted ${messages.size} messages.`)) - }; - - exports.conf = { - aliases: ['rm'], - guildOnly: false, - }; - exports.help = { - name: 'purge', - description: 'Removes messages in a bulk.', - usage: 'purge [number]', - category: '- Moderation Commands', - }; -
\ No newline at end of file +exports.conf = { + aliases: ['rm'], + guildOnly: false, +}; +exports.help = { + name: 'purge', + description: 'Removes messages in a bulk.', + usage: 'purge [number]', + category: '- Moderation Commands', +}; diff --git a/commands/quote.js b/commands/quote.js index 9aa9be0..ce7b56a 100644 --- a/commands/quote.js +++ b/commands/quote.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Quote: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,16 +15,16 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message) => { -const Discord = require('discord.js'); + const Discord = require('discord.js'); -let NewQuote; + let NewQuote; function GetNewQuote(quoteNum = -1) { NewQuote = new Discord.RichEmbed(); - + let quo = require('../storage/quotes.json').quotes; if (quoteNum == -1) { @@ -47,19 +47,18 @@ let NewQuote; return NewQuote; } - const newquote = GetNewQuote(); - message.reply('Alright, here\'s your quote.') - message.channel.send(newquote); + const newquote = GetNewQuote(); + message.reply('Alright, here\'s your quote.'); + message.channel.send(newquote); }; exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'quote', - description: 'Tells you quotes', - usage: 'quote', - category: '- Quote Commands', - }; -
\ No newline at end of file + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'quote', + description: 'Tells you quotes', + usage: 'quote', + category: '- Quote Commands', +}; diff --git a/commands/say.js b/commands/say.js index 4f25aec..774e9e3 100644 --- a/commands/say.js +++ b/commands/say.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Say: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,23 +15,22 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - if (!['242775871059001344',].includes(message.author.id)) return message.reply('Nope! You need the person who created this bot to use this command.'); - let absay = args.join(" "); - message.delete().catch(); - message.channel.send(absay); - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'say', - description: 'You can control AleeBot now!', - usage: 'say [context]', - category: '- Owners Only', - }; -
\ No newline at end of file + if (!['242775871059001344'].includes(message.author.id)) return message.reply('Nope! You need the person who created this bot to use this command.'); + const absay = args.join(' '); + message.delete().catch(); + message.channel.send(absay); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'say', + description: 'You can control AleeBot now!', + usage: 'say [context]', + category: '- Owners Only', +}; diff --git a/commands/setprefix.js b/commands/setprefix.js index f9aac08..1c53509 100644 --- a/commands/setprefix.js +++ b/commands/setprefix.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * SetPrefix: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,41 +15,38 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { const moment = require('moment'); - const log = message => { - + const log = (message) => { console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] ${message}`); - }; - const fs = require('fs'); - if(!message.member.hasPermission("ADMINISTRATOR")) return message.reply('Sorry you need admin to set my prefix') - if(!args[0] || args[0 == "help"]) return message.reply(`Usage: <your prefix>setprefix <prefix>`) + const fs = require('fs'); + if (!message.member.hasPermission('ADMINISTRATOR')) return message.reply('Sorry you need admin to set my prefix'); + if (!args[0] || args[0 == 'help']) return message.reply(`Usage: <your prefix>setprefix <prefix>`); - let prefixes = JSON.parse(fs.readFileSync("./storage/prefixes.json", "utf8")); + const prefixes = JSON.parse(fs.readFileSync('./storage/prefixes.json', 'utf8')); - prefixes[message.guild.id] = { - prefixes: args[0] - }; + prefixes[message.guild.id] = { + prefixes: args[0], + }; - fs.writeFile("./storage/prefixes.json", JSON.stringify(prefixes), (err) =>{ - if (err) log(err) - }) + fs.writeFile('./storage/prefixes.json', JSON.stringify(prefixes), (err) =>{ + if (err) log(err); + }); - message.reply(`AleeBot's Prefix in this guild is now \`${args[0]}\``); - log(`[i] The guild ${message.guild.name} has changed AleeBot's prefix to ${args[0]}`) - }; - - exports.conf = { - aliases: [], - guildOnly: true, - }; - exports.help = { - name: 'setprefix', - description: 'Sets the guild prefix.', - usage: 'setprefix [prefix]', - category: '- Settings Commands', - }; -
\ No newline at end of file + message.reply(`AleeBot's Prefix in this guild is now \`${args[0]}\``); + log(`[i] The guild ${message.guild.name} has changed AleeBot's prefix to ${args[0]}`); +}; + +exports.conf = { + aliases: [], + guildOnly: true, +}; +exports.help = { + name: 'setprefix', + description: 'Sets the guild prefix.', + usage: 'setprefix [prefix]', + category: '- Settings Commands', +}; diff --git a/commands/suggest.js b/commands/suggest.js index 1b2d814..6fb4289 100644 --- a/commands/suggest.js +++ b/commands/suggest.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Suggest: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,32 +15,31 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { - if (message.guild.id != '243022206437687296') return message.reply ('This is a ALP exclusive command.'); - const { RichEmbed } = require('discord.js'); - client.channels.find('id', '427495678390960148').send( - new RichEmbed() - .setColor ('#1fd619') + if (message.guild.id != '243022206437687296') return message.reply('This is a ALP exclusive command.'); + const {RichEmbed} = require('discord.js'); + client.channels.find('id', '427495678390960148').send( + new RichEmbed() + .setColor('#1fd619') .setTitle('Suggestion') .setDescription(`This is a suggestion from `+ message.author.username +` please react to it using the following emojis.`) - .addField('Suggestion Contents', args.join(' ')) - ).then(message => { - message.react('\u2705'); - message.react('\u274E'); - }); - message.reply("Your suggestion has been shown in the suggestions channel.") - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'suggest', - description: 'Suggest a feature in ACN.', - usage: 'suggest [suggestion]', - category: '- ALP Exclusive Commands', - }; -
\ No newline at end of file + .addField('Suggestion Contents', args.join(' ')), + ).then((message) => { + message.react('\u2705'); + message.react('\u274E'); + }); + message.reply('Your suggestion has been shown in the suggestions channel.'); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'suggest', + description: 'Suggest a feature in ACN.', + usage: 'suggest [suggestion]', + category: '- ALP Exclusive Commands', +}; diff --git a/commands/suggestfeature.js b/commands/suggestfeature.js index 95e1c2d..fac82a6 100644 --- a/commands/suggestfeature.js +++ b/commands/suggestfeature.js @@ -19,6 +19,7 @@ * *************************************/ module.exports.run = async (client, message, args) => { const { RichEmbed } = require('discord.js'); + client.channels.find('id', '427495678390960148').send( new RichEmbed() .setColor ('#1fd619') diff --git a/commands/uptime.js b/commands/uptime.js index 7c8d9fe..8f97d02 100644 --- a/commands/uptime.js +++ b/commands/uptime.js @@ -1,45 +1,43 @@ -/****************************************
- *
- * Uptime: Command for AleeBot
- * Copyright (C) 2017-2020 Alee Productions & OfficialRain
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * *************************************/
-module.exports.run = async (client, message) => {
-
- let uptime = parseInt(client.uptime);
- uptime = Math.floor(uptime / 1000);
- let uptimeMinutes = Math.floor(uptime / 60);
- const minutes = uptime % 60;
- let hours = 0;
- while (uptimeMinutes >= 60) {
- hours++;
- uptimeMinutes = uptimeMinutes - 60;
- }
- const uptimeSeconds = minutes % 60;
- message.channel.send(':clock3: AleeBot has been up for ' + hours + ' hours, ' + uptimeMinutes + ' minutes, and ' + uptimeSeconds + ' seconds.');
-
-};
-
-exports.conf = {
- aliases: [],
- guildOnly: false,
-};
-exports.help = {
- name: 'uptime',
- description: 'Displays Uptime.',
- usage: 'uptime',
- category: '- General Commands',
-};
+/** ************************************** + * + * Uptime: Command for AleeBot + * Copyright (C) 2017-2020 Alee Productions & OfficialRain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * *************************************/ +module.exports.run = async (client, message) => { + let uptime = parseInt(client.uptime); + uptime = Math.floor(uptime / 1000); + let uptimeMinutes = Math.floor(uptime / 60); + const minutes = uptime % 60; + let hours = 0; + while (uptimeMinutes >= 60) { + hours++; + uptimeMinutes = uptimeMinutes - 60; + } + const uptimeSeconds = minutes % 60; + message.channel.send(':clock3: AleeBot has been up for ' + hours + ' hours, ' + uptimeMinutes + ' minutes, and ' + uptimeSeconds + ' seconds.'); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'uptime', + description: 'Displays Uptime.', + usage: 'uptime', + category: '- General Commands', +}; diff --git a/commands/userinfo.js b/commands/userinfo.js index 2eebd8b..3b79beb 100644 --- a/commands/userinfo.js +++ b/commands/userinfo.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * UserInfo: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,30 +15,28 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message) => { - const Discord = require('discord.js'); - var embed = new Discord.RichEmbed() - .setAuthor(message.author.tag, message.author.avatarURL) - .setDescription("User Information") - .setThumbnail(message.author.avatarURL) - .addField("Names", "**Username:** " + message.author.username + "\n**Current Nickname:** " + message.member.displayName) - .addField("Identity", `**User ID:** ${message.author.id} `) - .addField("Create and Join Times", "**Created At:** " + message.member.user.createdAt.toUTCString() + "\n**Joined Guild At:** " + message.member.joinedAt.toUTCString()) - .setColor('#1fd619') - message.channel.send({embed}); + const Discord = require('discord.js'); + const embed = new Discord.RichEmbed() + .setAuthor(message.author.tag, message.author.avatarURL) + .setDescription('User Information') + .setThumbnail(message.author.avatarURL) + .addField('Names', '**Username:** ' + message.author.username + '\n**Current Nickname:** ' + message.member.displayName) + .addField('Identity', `**User ID:** ${message.author.id} `) + .addField('Create and Join Times', '**Created At:** ' + message.member.user.createdAt.toUTCString() + '\n**Joined Guild At:** ' + message.member.joinedAt.toUTCString()) + .setColor('#1fd619'); + message.channel.send({embed}); +}; - }; - - exports.conf = { - aliases: ['uinfo'], - guildOnly: false, - }; - exports.help = { - name: 'userinfo', - description: 'Tells your info.', - usage: 'userinfo', - category: '- Information Commands', - }; -
\ No newline at end of file +exports.conf = { + aliases: ['uinfo'], + guildOnly: false, +}; +exports.help = { + name: 'userinfo', + description: 'Tells your info.', + usage: 'userinfo', + category: '- Information Commands', +}; diff --git a/commands/vtquote.js b/commands/vtquote.js index e21db08..7d1ccd0 100644 --- a/commands/vtquote.js +++ b/commands/vtquote.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * VTQuote: Command for AleeBot * Copyright (C) 2017-2020 Alee Productions * @@ -15,51 +15,50 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message) => { - const Discord = require('discord.js'); - - let VictorQuote; - - function GetVictorQuote(quoteNum = -1) { - VictorQuote = new Discord.RichEmbed(); - - let quo = require('../storage/vtquotes.json').quotes - - if (quoteNum == -1) { - quoteNum = Math.floor(Math.random() * 1000) % quo.length; - quo=quo[quoteNum]; - } - - const author = quo.author; - const authorImage = quo.authorImage; - const quote = quo.quote; - const year = quo.year; - const url = quo.url; - - VictorQuote.setAuthor(author, authorImage); - VictorQuote.setColor('#1fd619'); - VictorQuote.setDescription(quote); - VictorQuote.setFooter('- ' + year); - VictorQuote.setURL(url); - - return VictorQuote; - } - - const victorquote = GetVictorQuote(); - message.reply('Alright, here\'s your Victor quote.') - message.channel.send(victorquote); - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'vtquote', - description: 'Tells you quotes when victor accidentaly swore.', - usage: 'vtquote', - category: '- Quote Commands', - }; -
\ No newline at end of file + const Discord = require('discord.js'); + + let VictorQuote; + + function GetVictorQuote(quoteNum = -1) { + VictorQuote = new Discord.RichEmbed(); + + let quo = require('../storage/vtquotes.json').quotes; + + if (quoteNum == -1) { + quoteNum = Math.floor(Math.random() * 1000) % quo.length; + quo=quo[quoteNum]; + } + + const author = quo.author; + const authorImage = quo.authorImage; + const quote = quo.quote; + const year = quo.year; + const url = quo.url; + + VictorQuote.setAuthor(author, authorImage); + VictorQuote.setColor('#1fd619'); + VictorQuote.setDescription(quote); + VictorQuote.setFooter('- ' + year); + VictorQuote.setURL(url); + + return VictorQuote; + } + + const victorquote = GetVictorQuote(); + message.reply('Alright, here\'s your Victor quote.'); + message.channel.send(victorquote); +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'vtquote', + description: 'Tells you quotes when victor accidentaly swore.', + usage: 'vtquote', + category: '- Quote Commands', +}; diff --git a/deprecated/buy.js b/deprecated/buy.js index e5b8fee..8e52f08 100644 --- a/deprecated/buy.js +++ b/deprecated/buy.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Buy: Command for AleeBot * Copyright (C) 2018 AleeCorp * @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ module.exports.run = async (client, message, args) => { /* @@ -23,27 +23,27 @@ const Discord = require('discord.js'); const fs = require('fs') const db = require('quick.db'); const items = JSON.parse(fs.readFileSync('./storage/items.json', 'utf8')); - - let categories = []; - if (!args.join(" ")) { + let categories = []; + + if (!args.join(" ")) { + + + for (var i in items) { - - for (var i in items) { - if (!categories.includes(items[i].type)) { categories.push(items[i].type) } } - + const embed = new Discord.RichEmbed() .setDescription(`Available Items`) .setColor('#1fd619') - for (var i = 0; i < categories.length; i++) { + for (var i = 0; i < categories.length; i++) { var tempDesc = ''; @@ -60,7 +60,7 @@ const items = JSON.parse(fs.readFileSync('./storage/items.json', 'utf8')); } - + return message.channel.send({ embed }); @@ -72,15 +72,15 @@ const items = JSON.parse(fs.readFileSync('./storage/items.json', 'utf8')); let itemPrice = 0; let itemDesc = ''; - for (var i in items) { - if (args.join(" ").trim().toUpperCase() === items[i].name.toUpperCase()) { + for (var i in items) { + if (args.join(" ").trim().toUpperCase() === items[i].name.toUpperCase()) { itemName = items[i].name; itemPrice = items[i].price; itemDesc = items[i].desc; } } - + if (itemName === '') { return message.channel.send(`Item ${args.join(" ").trim()} not found.`) } @@ -90,10 +90,10 @@ const items = JSON.parse(fs.readFileSync('./storage/items.json', 'utf8')); if (selfBalance === null) { db.set(`userBalance_${message.author.id}`, 0); selfBalance = 0 - } + } if (itemPrice > selfBalance) return message.reply('You don\'t have enough money for this item.') - + db.subtract(`userBalance_${message.author.id}`, itemPrice); if (itemName === 'Programmer Role') { @@ -102,17 +102,16 @@ const items = JSON.parse(fs.readFileSync('./storage/items.json', 'utf8')); message.channel.send('You bought ' + itemName + '!'); */ - message.reply('Command is broken for now'); + message.reply('Command is broken for now'); }; exports.conf = { - aliases: [], - guildOnly: false, + aliases: [], + guildOnly: false, }; exports.help = { - name: 'buy', - description: 'Buy things.', - usage: 'buy [item]', - category: '- Economy Commands', + name: 'buy', + description: 'Buy things.', + usage: 'buy [item]', + category: '- Economy Commands', }; -
\ No newline at end of file diff --git a/deprecated/daily.js b/deprecated/daily.js index 0d844a2..efb6c2e 100644 --- a/deprecated/daily.js +++ b/deprecated/daily.js @@ -1,5 +1,5 @@ -/**************************************** - * +/** ************************************** + * * Daily: Command for AleeBot * Copyright (C) 2018 AleeCorp * @@ -15,45 +15,42 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * * *************************************/ const db = require('quick.db'); - ms = require('parse-ms'); +ms = require('parse-ms'); module.exports.run = async (client, message) => { + const cooldown = 8.64e+7; + const amount = 100; - let cooldown = 8.64e+7, - amount = 100; - - let lastDaily = await db.fetch(`lastDaily_${message.author.id}`); - - if (lastDaily !== null && cooldown - (Date.now() - lastDaily) > 0) { - let timeObj = ms(cooldown - (Date.now() - lastDaily)); + const lastDaily = await db.fetch(`lastDaily_${message.author.id}`); - message.reply(`You already collected your money, please wait **${timeObj.hours}h ${timeObj.minutes}m**!`) - } else { - message.channel.send(`You have successfully collected $${amount} dollars!`); + if (lastDaily !== null && cooldown - (Date.now() - lastDaily) > 0) { + const timeObj = ms(cooldown - (Date.now() - lastDaily)); - let balance = await db.fetch(`userBalance_${message.author.id}`); + message.reply(`You already collected your money, please wait **${timeObj.hours}h ${timeObj.minutes}m**!`); + } else { + message.channel.send(`You have successfully collected $${amount} dollars!`); - if (balance == null) { - db.set(`userBalance_${message.author.id}`, 0); - } + const balance = await db.fetch(`userBalance_${message.author.id}`); - db.set(`lastDaily_${message.author.id}`, Date.now()); - db.add(`userBalance_${message.author.id}`, 100); + if (balance == null) { + db.set(`userBalance_${message.author.id}`, 0); } - }; - - exports.conf = { - aliases: [], - guildOnly: false, - }; - exports.help = { - name: 'daily', - description: 'This gives you money everyday.', - usage: 'daily', - category: '- Economy Commands', - }; -
\ No newline at end of file + db.set(`lastDaily_${message.author.id}`, Date.now()); + db.add(`userBalance_${message.author.id}`, 100); + } +}; + +exports.conf = { + aliases: [], + guildOnly: false, +}; +exports.help = { + name: 'daily', + description: 'This gives you money everyday.', + usage: 'daily', + category: '- Economy Commands', +}; diff --git a/package.json b/package.json index 9631ca5..c982509 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "discord.js": "^11.3.1", "fs": "0.0.1-security", "git-last-commit": "^0.3.0", + "i18next": "^19.4.4", "moment": "^2.21.0", "node-opus": "^0.3.0", "os": "^0.1.1", |
