Skip to content

Commit

Permalink
Merge pull request #41 from muricans/mbot-testing
Browse files Browse the repository at this point in the history
7.6.3
  • Loading branch information
muricans authored Jun 11, 2019
2 parents aef7957 + d59ec83 commit d476460
Show file tree
Hide file tree
Showing 15 changed files with 301 additions and 209 deletions.
183 changes: 94 additions & 89 deletions commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ module.exports.getCooldowns = (key) => {
* @param {Discord.Client} client The bots client.
* @param mbot mbot main script.
*/
module.exports.registerCommands = async (client, mbot) => {
module.exports.registerCommands = async (client, mbot, db) => {
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
Expand Down Expand Up @@ -114,7 +114,7 @@ module.exports.registerCommands = async (client, mbot) => {
}
nCmds.sort((a, b) => (a.name > b.name) ? 1 : -1);

function handleOther(command, message, args) {
async function handleOther(command, message, args) {
if (command === 'test') {
message.channel.send("Test recieved").then(async sent => {
sent.react("🔼");
Expand Down Expand Up @@ -148,93 +148,95 @@ module.exports.registerCommands = async (client, mbot) => {
message.delete(1000);
message.channel.stopTyping(true);
break;
}


// porn commands

case "anal":
message.channel.startTyping();
tools.search(anal[Math.floor(Math.random() * anal.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "ass":
message.channel.startTyping();
tools.search(ass[Math.floor(Math.random() * ass.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "blowjob":
message.channel.startTyping();
tools.search(blowjob[Math.floor(Math.random() * blowjob.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "boobs":
message.channel.startTyping();
tools.search(boobs[Math.floor(Math.random() * boobs.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "dick":
message.channel.startTyping();
tools.search(dick[Math.floor(Math.random() * dick.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "gay":
message.channel.startTyping();
tools.search(gay[Math.floor(Math.random() * gay.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "hardcore":
message.channel.startTyping();
tools.search(hardcore[Math.floor(Math.random() * hardcore.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "hentai":
message.channel.startTyping();
tools.search(hentai[Math.floor(Math.random() * hentai.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "nsfw":
message.channel.startTyping();
tools.search(nsfw[Math.floor(Math.random() * nsfw.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "pegging":
message.channel.startTyping();
tools.search(pegging[Math.floor(Math.random() * pegging.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
// rule34 code different than others
case "rule34":
message.channel.startTyping();
if (!args.length) {
tools.search(rule34[Math.floor(Math.random() * rule34.length)], 'all', message, true);
const allowNsfw = await tools.usingNsfwModules(message.guild.id);
if (allowNsfw) {
switch (command) {
case "anal":
message.channel.startTyping();
tools.search(anal[Math.floor(Math.random() * anal.length)], 'all', message, true);
message.delete(1000);
return message.channel.stopTyping(true);
}
tools.find(rule34[Math.floor(Math.random() * rule34.length)], args.toString().replace(' ', '+'), 'all', message, true);
message.channel.stopTyping(true);
break;
case "thighs":
message.channel.startTyping();
tools.search(thighs[Math.floor(Math.random() * thighs.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "trap":
message.channel.startTyping();
tools.search(traps[Math.floor(Math.random() * traps.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
message.channel.stopTyping(true);
break;
case "ass":
message.channel.startTyping();
tools.search(ass[Math.floor(Math.random() * ass.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "blowjob":
message.channel.startTyping();
tools.search(blowjob[Math.floor(Math.random() * blowjob.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "boobs":
message.channel.startTyping();
tools.search(boobs[Math.floor(Math.random() * boobs.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "dick":
message.channel.startTyping();
tools.search(dick[Math.floor(Math.random() * dick.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "gay":
message.channel.startTyping();
tools.search(gay[Math.floor(Math.random() * gay.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "hardcore":
message.channel.startTyping();
tools.search(hardcore[Math.floor(Math.random() * hardcore.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "hentai":
message.channel.startTyping();
tools.search(hentai[Math.floor(Math.random() * hentai.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "nsfw":
message.channel.startTyping();
tools.search(nsfw[Math.floor(Math.random() * nsfw.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "pegging":
message.channel.startTyping();
tools.search(pegging[Math.floor(Math.random() * pegging.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
// rule34 code different than others
case "rule34":
message.channel.startTyping();
if (!args.length) {
tools.search(rule34[Math.floor(Math.random() * rule34.length)], 'all', message, true);
message.delete(1000);
return message.channel.stopTyping(true);
}
tools.find(rule34[Math.floor(Math.random() * rule34.length)], args.toString().replace(' ', '+'), 'all', message, true);
message.channel.stopTyping(true);
break;
case "thighs":
message.channel.startTyping();
tools.search(thighs[Math.floor(Math.random() * thighs.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
case "trap":
message.channel.startTyping();
tools.search(traps[Math.floor(Math.random() * traps.length)], 'all', message, true);
message.delete(1000);
message.channel.stopTyping(true);
break;
}
}
}

Expand All @@ -247,7 +249,7 @@ module.exports.registerCommands = async (client, mbot) => {
const isOwner = bot_owners_id.find(id => id === message.author.id);
if (isOwner) {
try {
return comm.execute(message, args, client, prefix, n);
return comm.execute(message, args, client, prefix, db, n);
} catch (err) {
console.log(err);
}
Expand All @@ -271,7 +273,7 @@ module.exports.registerCommands = async (client, mbot) => {
return message.channel.send(`${message.author} Please wait ${left.toFixed(1)} second(s) before running that command again!`);
}
}
comm.execute(message, args, client, prefix, n);
comm.execute(message, args, client, prefix, db, n);
timestamps.set(message.author.id, now);
setTimeout(() => timestamps.delete(message.author.id), cooldown);
} catch (err) {
Expand Down Expand Up @@ -376,6 +378,9 @@ module.exports.registerCommands = async (client, mbot) => {
return;
}

const allowNsfw = await tools.usingNsfwModules(message.guild.id);
if (comm.nsfw && !allowNsfw) return;

if (comm.roulette && message.guild.id === "264445053596991498") return;

if (comm.owner) {
Expand Down
9 changes: 1 addition & 8 deletions commands/create.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
const tools = require('../tools.js');
const mbot = require('../mbot');
const sqlite = require('sqlite3').verbose();
const cCommands = mbot.cCommands;

const db = new sqlite.Database('./mbot.db', (err) => {
if (err) {
console.error(err.message);
}
});

module.exports = {
name: 'create',
usage: '<commandName> <message>',
description: 'Adds a command to the bot',
cooldown: 600,
args: true,
minArgs: 2,
execute(message, args, client, prefix) {
execute(message, args, client, prefix, db) {
new tools.Tools().getCommandOptions(message.guild.id, (everyone) => {
if (everyone != 1) {
const hasAdmin = message.channel.permissionsFor(message.member).has('ADMINISTRATOR');
Expand Down
9 changes: 1 addition & 8 deletions commands/delete.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
const sqlite = require('sqlite3').verbose();
const mbot = require('../mbot');
const cCommands = mbot.cCommands;

const db = new sqlite.Database('./mbot.db', (err) => {
if (err) {
console.error(err.message);
}
});

module.exports = {
name: 'delete',
usage: '<command>',
Expand All @@ -16,7 +9,7 @@ module.exports = {
args: true,
minArgs: 1,
mod: true,
execute(message, args, client) {
execute(message, args, client, prefix, db) {
const weirdChamp = client.emojis.get("572690273247821824");
const hasAdmin = message.channel.permissionsFor(message.member).has("ADMINISTRATOR");
if (!hasAdmin) {
Expand Down
2 changes: 1 addition & 1 deletion commands/help.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module.exports = {
usage: '[command]',
description: 'Gives you a list of help commands, or info on a specified command.',
cooldown: 3,
execute(message, args, client, prefix, nsfwCmds) {
execute(message, args, client, prefix, db, nsfwCmds) {
if (!args.length) {
const embedBuilder = new EmbedBuilder()
.setChannel(message.channel)
Expand Down
99 changes: 46 additions & 53 deletions commands/roulette/leaderboard.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
const Discord = require('discord.js');
const sqlite = require('sqlite3').verbose();
const EmbedBuilder = require('../../embedbuilder');

const db = new sqlite.Database('./mbot.db', (err) => {
if (err) console.log(err.message);
});
const {
Tools,
} = require('../../tools');
const tools = new Tools();

module.exports = {
name: 'leaderboard',
Expand All @@ -22,55 +21,49 @@ module.exports = {
* @returns {Promise<EmbedBuilder>}
*/
function leaderboard(channel, client) {
return new Promise((resolve) => {
db.all('SELECT points points, id id FROM users ORDER BY points DESC LIMIT 0,50', async (err, rows) => {
if (err) return console.log(err);
const embeds = new EmbedBuilder();
if (!rows.length) return channel.send('No users found!');
const each = new Promise((resolve) => {
const users = [];
rows.forEach((val, i, arr) => {
users.push({
id: arr[i].id,
points: arr[i].points,
});
});
return resolve(users);
return new Promise(async (resolve) => {
const embeds = new EmbedBuilder();
const users = [];
for (let i = 0; i < tools.users(client).length; i++) {
const user = tools.users(client)[i];
const points = await tools.getPoints(user.id);
users.push({
id: user.id,
username: user.username,
points: points,
});
await each.then(async users => {
let pages = 0;
let m = 1;
for (let i = 0; i < 10 * m; i++) {
if (i === 50)
break;
if (!embeds.getEmbeds()[m - 1] && users[i]) {
embeds.addEmbed(new Discord.RichEmbed());
pages++;
}
if (i === (10 * m) - 1)
m++;
}
let multiplier = 1;
for (let i = 0; i < 10 * multiplier; i++) {
if (i === 50) {
break;
}
if (users[i]) {
const user = await client.fetchUser(users[i].id);
embeds.getEmbeds()[multiplier - 1]
.addField(`${i + 1}. ${user.username}`, users[i].points, true)
.setFooter(`Page ${multiplier}/${pages}`);
if (i === (10 * multiplier) - 1) {
multiplier++;
}
}
}
users.sort((a, b) => (a.points > b.points) ? 1 : -1);
let pages = 0;
let m = 1;
for (let i = 0; i < 10 * m; i++) {
if (i === 50)
break;
if (!embeds.getEmbeds()[m - 1] && users[i]) {
embeds.addEmbed(new Discord.RichEmbed());
pages++;
}
if (i === (10 * m) - 1)
m++;
}
let multiplier = 1;
for (let i = 0; i < 10 * multiplier; i++) {
if (i === 50) {
break;
}
if (users[i]) {
embeds.getEmbeds()[multiplier - 1]
.addField(`${i + 1}. ${users[i].username}`, users[i].points, true)
.setFooter(`Page ${multiplier}/${pages}`);
if (i === (10 * multiplier) - 1) {
multiplier++;
}
embeds
.setTitle('Points Leaderboard')
.setTime(2 * 60000)
.setChannel(channel);
});
return resolve(embeds);
});
}
}
embeds
.setTitle('Points Leaderboard')
.setTime(2 * 60000)
.setChannel(channel);
return resolve(embeds);
});
}
Loading

0 comments on commit d476460

Please sign in to comment.