forked from embee/woomy
Added yodish.
This commit is contained in:
parent
76d6230e97
commit
5d8a81523f
11 changed files with 136 additions and 32 deletions
|
@ -1,2 +1,10 @@
|
|||
Added a yodish command (terry)
|
||||
Links to avatars now lead to the original file size
|
||||
Bots now get a bot badge in the userinfo command
|
||||
Added dogfact and catfact command (terry)
|
||||
index.js now has better logging of when things fail to load/initialize (terry)
|
||||
added `dice`, rolls a 6 sided die (terry)
|
||||
Help command changed, the amount of commands in each category and overall is now displayed
|
||||
added `inspire` as an alias for inspirobot
|
||||
ship command
|
||||
added find by mention to functions
|
28
index.js
28
index.js
|
@ -9,35 +9,35 @@ const client = new Discord.Client();
|
|||
try {
|
||||
client.config = require('./config');
|
||||
} catch (err) {
|
||||
console.log('Could not load config.js. \n', err);
|
||||
console.log('Could not load config.js: \n', err);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
try{
|
||||
client.version = require('./version.json');
|
||||
} catch (err) {
|
||||
console.log('Could not load version.json. \n', err);
|
||||
console.log('Could not load version.json: \n', err);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
try{
|
||||
client.logger = require('./src/modules/Logger');
|
||||
} catch (err) {
|
||||
console.log('Could not load Logger.js. \n', err);
|
||||
console.log('Could not load Logger.js: \n', err);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
try{
|
||||
require("./src/modules/functions")(client);
|
||||
} catch (err) {
|
||||
console.log('Could not load functions.js. \n', err);
|
||||
console.log('Could not load functions.js: \n', err);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
try{
|
||||
client.logger.setClient(client);
|
||||
} catch (err) {
|
||||
console.log('Logger failed to initialize. \n', err);
|
||||
console.log('Logger failed to initialize: \n', err);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
@ -45,34 +45,36 @@ if(process.env['USER'] != 'container') {
|
|||
client.devmode = true;
|
||||
} else {
|
||||
client.devmode = false;
|
||||
const dblapi = new DBL(client.config.dblkey, client);
|
||||
if(client.config.dblkey.length == 0) {
|
||||
const dblapi = new DBL(client.config.dblkey, client);
|
||||
}
|
||||
}
|
||||
|
||||
try{
|
||||
client.commands = new Enmap();
|
||||
} catch (err) {
|
||||
console.log('Failed to create the commands map. \n', err);
|
||||
console.log('Failed to create the commands database: \n', err);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
try{
|
||||
client.aliases = new Enmap();
|
||||
} catch (err) {
|
||||
console.log('Failed to create the aliases map. \n', err);
|
||||
console.log('Failed to create the aliases database: \n', err);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
try{
|
||||
client.settings = new Enmap({name: 'settings'});
|
||||
} catch (err) {
|
||||
console.log('Failed to initialize the settings database. \n', err);
|
||||
console.log('Failed to initialize the settings database: \n', err);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
try{
|
||||
client.blacklist = new Enmap({name: 'blacklist'});
|
||||
} catch (err) {
|
||||
console.log('Failed to initialize the blacklist database. \n', err);
|
||||
console.log('Failed to initialize the blacklist database: \n', err);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
@ -108,7 +110,7 @@ const init = async () => {
|
|||
client.levelCache[thisLevel.name] = thisLevel.level;
|
||||
};
|
||||
} catch (err) {
|
||||
console.log('Level cache failed to initialize. \n', err);
|
||||
console.log('Level cache failed to initialize: \n', err);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
|
@ -119,12 +121,12 @@ const init = async () => {
|
|||
client.login(client.config.token);
|
||||
};
|
||||
} catch (err) {
|
||||
console.log('Unable to login to Discord. \n', err);
|
||||
console.log('Could not login to Discord: \n', err);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
init();
|
||||
} catch (err) {
|
||||
console.log('Initialization failed. \n', err);
|
||||
console.log('Initialization failed: \n', err);
|
||||
process.exit(1);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
const request = require("request");
|
||||
|
||||
exports.run = async (bot, message, args) => {
|
||||
message.channel.startTyping();
|
||||
try{
|
||||
request({ uri: "https://catfact.ninja/facts", json: true }, (error, response, body) => {
|
||||
if (error) throw new Error(error);
|
||||
message.channel.send(`**Did you know?**\n ${body.data[0].fact}`);
|
||||
message.channel.startTyping();
|
||||
});
|
||||
} catch(err) {
|
||||
message.channel.send(`<:error:466995152976871434> API error: ${err}`);
|
||||
message.channel.stopTyping();
|
||||
};
|
||||
};
|
||||
|
||||
exports.conf = {
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
const request = require("request");
|
||||
|
||||
exports.run = async (bot, message, args) => {
|
||||
message.channel.startTyping();
|
||||
try{
|
||||
request({ uri: "https://dog-api.kinduff.com/api/facts", json: true }, (error, response, body) => {
|
||||
if (error) throw new Error(error);
|
||||
message.channel.stopTyping();
|
||||
message.channel.send(`**Did you know?**\n ${body.facts[0]}`);
|
||||
});
|
||||
} catch(err) {
|
||||
message.channel.send(`<:error:466995152976871434> API error: ${err}`);
|
||||
message.channel.stopTyping();
|
||||
};
|
||||
};
|
||||
|
||||
exports.conf = {
|
||||
|
|
|
@ -4,6 +4,7 @@ exports.run = (client, message, args, level) => {
|
|||
|
||||
var ran = false;
|
||||
var output = "";
|
||||
var commands = 0;
|
||||
var prefix;
|
||||
var currentCategory;
|
||||
|
||||
|
@ -14,7 +15,7 @@ exports.run = (client, message, args, level) => {
|
|||
};
|
||||
|
||||
if(!args[0]) {
|
||||
embed.setTitle("Command list");
|
||||
embed.setTitle(`Commands [${client.commands.size}]`);
|
||||
embed.setDescription(`For more information on a specific command use \`${prefix}help <command>\`\nFor the full command list use \`${prefix}help all\`\n`);
|
||||
|
||||
const myCommands = message.guild ? client.commands.filter(
|
||||
|
@ -37,16 +38,18 @@ exports.run = (client, message, args, level) => {
|
|||
const cat = c.help.category.toProperCase();
|
||||
if (currentCategory !== cat) {
|
||||
if(ran == true) {
|
||||
embed.addField(currentCategory + ":", output.slice(0, -6))
|
||||
embed.addField(currentCategory + ` [${commands}]`, output.slice(0, -2))
|
||||
output = "";
|
||||
commands = 0;
|
||||
}
|
||||
currentCategory = cat;
|
||||
ran = true
|
||||
}
|
||||
output += `\`${prefix}${c.help.name}\`**,** `;
|
||||
output += `\`${prefix}${c.help.name}\`, `;
|
||||
commands = commands + 1;
|
||||
});
|
||||
|
||||
embed.addField(currentCategory + ":", output.slice(0, -6));
|
||||
embed.addField(currentCategory + ` [${commands}]`, output.slice(0, -2));
|
||||
|
||||
embed.addField(
|
||||
"Invite me",
|
||||
|
@ -65,7 +68,7 @@ exports.run = (client, message, args, level) => {
|
|||
};
|
||||
|
||||
if(args[0].toLowerCase() == "all") {
|
||||
embed.setTitle("Command list");
|
||||
embed.setTitle(`Commands [${client.commands.size}]`);
|
||||
embed.setDescription(`For more information on a specific command use \`${prefix}help <command>\`\nFor the full command list use \`${prefix}help all\`\n`);
|
||||
|
||||
const myCommands = client.commands
|
||||
|
@ -84,16 +87,18 @@ exports.run = (client, message, args, level) => {
|
|||
const cat = c.help.category.toProperCase();
|
||||
if (currentCategory !== cat) {
|
||||
if(ran == true) {
|
||||
embed.addField(currentCategory + ":", output.slice(0, -6))
|
||||
embed.addField(currentCategory + ` [${commands}]`, output.slice(0, -2))
|
||||
output = "";
|
||||
commands = 0;
|
||||
}
|
||||
currentCategory = cat;
|
||||
ran = true
|
||||
}
|
||||
output += `\`${prefix}${c.help.name}\`**,** `;
|
||||
output += `\`${prefix}${c.help.name}\`, `;
|
||||
commands = commands + 1;
|
||||
});
|
||||
|
||||
embed.addField(currentCategory + ":", output.slice(0, -6));
|
||||
embed.addField(currentCategory + ` [${commands}]`, output.slice(0, -2));
|
||||
|
||||
embed.addField(
|
||||
"Invite me",
|
||||
|
|
|
@ -20,7 +20,7 @@ exports.run = async (client, message) => {
|
|||
exports.conf = {
|
||||
enabled: true,
|
||||
guildOnly: false,
|
||||
aliases: [],
|
||||
aliases: ["inspire"],
|
||||
permLevel: "User",
|
||||
requiredPerms: []
|
||||
};
|
||||
|
|
37
src/commands/ship.js
Normal file
37
src/commands/ship.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
const request = require('request')
|
||||
exports.run = async (client, message, args) => {
|
||||
message.channel.startTyping();
|
||||
|
||||
var user = client.getUserFromMention(args[0])
|
||||
var user2 = client.getUserFromMention(args[1])
|
||||
|
||||
var secondLength = Math.floor(user2.username.length / 2);
|
||||
|
||||
var first = user.username.substr(0, user.username.length / 2)
|
||||
var second = user2.username.substr(secondLength, user2.username.length / 2)
|
||||
|
||||
try {
|
||||
var attachment = new Discord.MessageAttachment(`https://api.alexflipnote.dev/ship?user=${user.avatarURL({format: "png"})}&user2=${user2.avatarURL({format: "png"})}`)
|
||||
message.channel.send(`Your ship name is **${first+second}!**`, attachment)
|
||||
message.channel.stopTyping();
|
||||
} catch(err) {
|
||||
message.channel.send(`<:error:466995152976871434> API error: ${err}`);
|
||||
message.channel.stopTyping();
|
||||
};
|
||||
};
|
||||
|
||||
exports.conf = {
|
||||
enabled: true,
|
||||
guildOnly: false,
|
||||
aliases: [],
|
||||
permLevel: "User",
|
||||
requiredPerms: []
|
||||
};
|
||||
|
||||
exports.help = {
|
||||
name: "ship",
|
||||
category: "Fun",
|
||||
description: "Ship two people together <3",
|
||||
usage: "ship name name2"
|
||||
};
|
||||
|
|
@ -50,13 +50,6 @@ exports.run = (client, message, args) => {
|
|||
if(badges.length > 0) {
|
||||
badges += "\n"
|
||||
}
|
||||
|
||||
createdTimestamp = user.user.createdTimestamp;
|
||||
var date = new Date(createdTimestamp * 1000);
|
||||
var hours = date.getHours();
|
||||
var minutes = "0" + date.getMinutes();
|
||||
var seconds = "o" + date.getSeconds();
|
||||
console.log(date)
|
||||
|
||||
user.roles.cache.forEach((role) => {
|
||||
roles = roles + role.name + "`, `"
|
||||
|
|
31
src/commands/yoda.js
Normal file
31
src/commands/yoda.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
const request = require('request')
|
||||
exports.run = async (client, message, args) => {
|
||||
const speech = args.join(' ');
|
||||
if (!args[0]) {
|
||||
return message.channel.send(`<:error:466995152976871434> Please include text for me to convert to yodish. Yes.`)
|
||||
}
|
||||
try {
|
||||
const { text } = request({ uri: `http://yoda-api.appspot.com/api/v1/yodish?text=${encodeURIComponent(speech.toLowerCase())}`, json: true }, (error, response, body) => {
|
||||
message.channel.send(JSON.parse(text).yodish)
|
||||
});
|
||||
} catch(err) {
|
||||
message.channel.send(`<:error:466995152976871434> API error: ${err}`);
|
||||
message.channel.stopTyping();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
exports.conf = {
|
||||
enabled: true,
|
||||
guildOnly: false,
|
||||
aliases: ["yoda","yodasay"],
|
||||
permLevel: "User",
|
||||
requiredPerms: []
|
||||
};
|
||||
|
||||
exports.help = {
|
||||
name: "yodish",
|
||||
category: "Fun",
|
||||
description: "Turns any text you input into yodish. Yes.",
|
||||
usage: "yodish <text>"
|
||||
};
|
|
@ -133,6 +133,22 @@ module.exports = client => {
|
|||
return a;
|
||||
};
|
||||
|
||||
// USER OBJECT FROM MENTION
|
||||
client.getUserFromMention = mention => {
|
||||
if (!mention) return;
|
||||
|
||||
if (mention.startsWith('<@') && mention.endsWith('>')) {
|
||||
mention = mention.slice(2, -1);
|
||||
|
||||
if (mention.startsWith('!')) {
|
||||
mention = mention.slice(1);
|
||||
}
|
||||
|
||||
return client.users.cache.get(mention);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// MUSIC
|
||||
client.music = {guilds: {}};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"number": "1.1.0",
|
||||
"number": "1.2.0",
|
||||
"changelog": "**1.1.0 CHANGELOG:**\n> • Added `~softban`, bans and unbans a user to clear messages\n> • Added `~emoji`, enlarges custom emojis\n> • Added `~inspirobot`, generates an inspirational quote\n> • `~serverinfo` has been changed to be more consistent, and also now displays boosts and if the server is partnered and stuff\n> • `~userinfo` has been changed to be more consistent, also added some stuff\n> • `~about` has been changed, added a thumbnail and removed the description\n> • `~colour` has been changed, it can now generate colours from text\n> • `~hackban` no longer has its own embed\n> • `~eval` now logs to hastebin if output is too large\n> • role names are no longer case sensitive\n> • `~echo` renamed `~say`\n> • Users with the ADMINISTRATOR permission now automatically recieve woomy admin\n> • Fixed `~flip`, `~purge`, `~bohemian_rhapsody` and `~creeper`\n> • Guild join/leave messages no longer include the guild name\n> • Some emojis have been changed\n> • Woomy now supports discord.js v12\n> • Files have been restructured\n> • Logger now logs error stack\n> • Restart now exits with code 0"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue