lots of changes
This commit is contained in:
parent
304d0ccb96
commit
f7fd3b99a4
60 changed files with 3029 additions and 878 deletions
|
@ -1,90 +1,80 @@
|
|||
const Command = require("../../src/structures/Command");
|
||||
const { table } = require("quick.db");
|
||||
const Servers = new table("servers");
|
||||
const Users = new table("users");
|
||||
const Command = require('../../src/structures/Command');
|
||||
const { table } = require('quick.db');
|
||||
const Servers = new table('servers');
|
||||
const Users = new table('users');
|
||||
const Bot = new table('bot');
|
||||
|
||||
const clean = text => {
|
||||
if (typeof text == "string")
|
||||
return text
|
||||
.replace(/`/g, "`" + String.fromCharCode(8203))
|
||||
.replace(/@/g, "@" + String.fromCharCode(8203));
|
||||
else return text;
|
||||
const clean = (text) => {
|
||||
if (typeof text == 'string')
|
||||
return text.replace(/`/g, '`' + String.fromCharCode(8203)).replace(/@/g, '@' + String.fromCharCode(8203));
|
||||
else return text;
|
||||
};
|
||||
|
||||
module.exports = class Eval extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: "eval",
|
||||
description: "Run JavaScript code directly from the process.",
|
||||
aliases: ["ev", "e"],
|
||||
module: "Developers",
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: true
|
||||
});
|
||||
}
|
||||
constructor() {
|
||||
super({
|
||||
name: 'eval',
|
||||
description: 'Run JavaScript code directly from the process.',
|
||||
aliases: [ 'ev', 'e' ],
|
||||
module: 'Developers',
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (!ctx.args.length) return;
|
||||
async command(ctx) {
|
||||
if (!ctx.args.length) return;
|
||||
|
||||
const client = ctx.client;
|
||||
const client = ctx.client;
|
||||
|
||||
let code = ctx.args.join(" ");
|
||||
let silent = false;
|
||||
let code = ctx.args.join(' ');
|
||||
let silent = false;
|
||||
|
||||
if (code.endsWith("-s")) (code = code.split("-s")[0]), (silent = true);
|
||||
if (code.endsWith("--silent"))
|
||||
(code = code.split("--silent")[0]), (silent = true);
|
||||
if (code.endsWith('-s')) (code = code.split('-s')[0]), (silent = true);
|
||||
if (code.endsWith('--silent')) (code = code.split('--silent')[0]), (silent = true);
|
||||
|
||||
try {
|
||||
let evaled = await eval(code);
|
||||
try {
|
||||
let evaled = await eval(code);
|
||||
|
||||
if (typeof evaled != "string") evaled = require("util").inspect(evaled);
|
||||
if (typeof evaled != 'string')
|
||||
evaled = require('util').inspect(evaled, false, await ctx.db.backend.get('eval'));
|
||||
|
||||
evaled.replace(
|
||||
new RegExp(client.token.replace(/\./g, "\\.", "g")),
|
||||
"uwu"
|
||||
);
|
||||
evaled.replace(new RegExp(client.token.replace(/\./g, '\\.', 'g')), 'uwu');
|
||||
|
||||
if (!silent) {
|
||||
ctx
|
||||
.send(`\`\`\`js\n${clean(evaled)}\n\`\`\``)
|
||||
.then(async m => {
|
||||
await m.react("📥");
|
||||
await m.react("🗑");
|
||||
})
|
||||
.catch(err => {
|
||||
ctx
|
||||
.send(
|
||||
`\`Content is over 2,000 characters: react to upload to Hastebin\``
|
||||
)
|
||||
.then(async m => {
|
||||
client.lastEval = clean(evaled);
|
||||
if (!silent) {
|
||||
ctx
|
||||
.send(`\`\`\`js\n${clean(evaled)}\n\`\`\``)
|
||||
.then(async (m) => {
|
||||
await m.react('📥');
|
||||
await m.react('🗑');
|
||||
})
|
||||
.catch((err) => {
|
||||
ctx
|
||||
.send(`\`Content is over 2,000 characters: react to upload to Hastebin\``)
|
||||
.then(async (m) => {
|
||||
client.lastEval = clean(evaled);
|
||||
|
||||
await m.react("📥");
|
||||
await m.react("🗑");
|
||||
});
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
ctx
|
||||
.send(`\`\`\`js\n${clean(error)}\n\`\`\``)
|
||||
.then(async m => {
|
||||
await m.react("📥");
|
||||
await m.react("🗑");
|
||||
})
|
||||
.catch(err => {
|
||||
ctx
|
||||
.send(
|
||||
`\`Content is over 2,000 characters: react to upload to Hastebin\``
|
||||
)
|
||||
.then(async m => {
|
||||
client.lastEval = clean(error);
|
||||
await m.react('📥');
|
||||
await m.react('🗑');
|
||||
});
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
ctx
|
||||
.send(`\`\`\`js\n${clean(error)}\n\`\`\``)
|
||||
.then(async (m) => {
|
||||
await m.react('📥');
|
||||
await m.react('🗑');
|
||||
})
|
||||
.catch((err) => {
|
||||
ctx.send(`\`Content is over 2,000 characters: react to upload to Hastebin\``).then(async (m) => {
|
||||
client.lastEval = clean(error);
|
||||
|
||||
await m.react("📥");
|
||||
await m.react("🗑");
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
await m.react('📥');
|
||||
await m.react('🗑');
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,39 +1,38 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
|
||||
module.exports = class Reload extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'reload',
|
||||
description: 'Reload a command without restarting the process.',
|
||||
aliases: ['re'],
|
||||
module: 'Developers',
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: true
|
||||
});
|
||||
}
|
||||
constructor() {
|
||||
super({
|
||||
name: 'reload',
|
||||
description: 'Reload a command without restarting the process.',
|
||||
aliases: [ 're' ],
|
||||
module: 'Developers',
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (!ctx.args.length) return;
|
||||
const date = Date.now();
|
||||
async command(ctx) {
|
||||
if (!ctx.args.length) return;
|
||||
const date = Date.now();
|
||||
|
||||
const data = ctx.args[0];
|
||||
const [module,command] = data.split('/');
|
||||
const data = ctx.args[0];
|
||||
const [ module, command ] = data.split('/');
|
||||
|
||||
if (!module || !command) return;
|
||||
if (!module || !command) return;
|
||||
|
||||
try {
|
||||
delete require.cache[require.resolve(`../${module}/${command}`)];
|
||||
delete ctx.client.commands.get(command);
|
||||
try {
|
||||
delete require.cache[require.resolve(`../${module}/${command}`)];
|
||||
delete ctx.client.commands.get(command);
|
||||
|
||||
const cmd = require(`../${module}/${command}`);
|
||||
const Command = new cmd();
|
||||
ctx.client.commands.set(Command.name, Command);
|
||||
const cmd = require(`../${module}/${command}`);
|
||||
const Command = new cmd();
|
||||
ctx.client.commands.set(Command.name, Command);
|
||||
|
||||
console.log(`Reloaded \`${Command.name}\` in ${(Date.now() - date) / 1000}s.`)
|
||||
return ctx.send(`Reloaded \`${Command.name}\` in ${(Date.now() - date) / 1000}s.`);
|
||||
} catch(err) {
|
||||
return ctx.send(`Failed to reload the command.\n\`${err}\``);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ctx.send(`Reloaded \`${Command.name}\` in ${(Date.now() - date) / 1000}s.`);
|
||||
} catch (err) {
|
||||
return ctx.send(`Failed to reload the command.\n\`${err}\``);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
const Command = require("../../src/structures/Command");
|
||||
module.exports = class Setup extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: "setup",
|
||||
description: "x",
|
||||
aliases: ["s"],
|
||||
module: "Developers",
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
let x = await ctx.utils.db.prefix
|
||||
.remove(ctx)
|
||||
.catch(err => console.error(err));
|
||||
//' console.log(x);
|
||||
}
|
||||
};
|
|
@ -1,18 +1,19 @@
|
|||
const Command = require("../../src/structures/Command");
|
||||
const Command = require('../../src/structures/Command');
|
||||
module.exports = class Stop extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: "stop",
|
||||
description: "Stops the bot",
|
||||
aliases: [],
|
||||
module: "Developers",
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: true
|
||||
});
|
||||
}
|
||||
constructor() {
|
||||
super({
|
||||
name: 'stop',
|
||||
description: 'Stops the bot',
|
||||
aliases: [],
|
||||
module: 'Developers',
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
process.exit();
|
||||
}
|
||||
async command(ctx) {
|
||||
await ctx.send('Restarting.');
|
||||
process.exit();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,104 +1,126 @@
|
|||
const Command = require("../../src/structures/Command");
|
||||
const { MessageEmbed } = require("discord.js");
|
||||
const Command = require('../../src/structures/Command');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Help extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: "help",
|
||||
description:
|
||||
"View a list of available commands, or view information on a specific command.",
|
||||
aliases: ["h"],
|
||||
module: "General",
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
constructor() {
|
||||
super({
|
||||
name: 'help',
|
||||
description: 'View a list of available commands or information on a specific command.',
|
||||
aliases: [ 'h' ],
|
||||
module: 'General',
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (!ctx.args.length) {
|
||||
const commands = [
|
||||
[
|
||||
"General",
|
||||
ctx.client.commands
|
||||
.filter(command => command.module == "General")
|
||||
.map(command => `**${command.name}** - ${command.description}`)
|
||||
.join("\n")
|
||||
]
|
||||
];
|
||||
async command(ctx) {
|
||||
if (!ctx.args.length) {
|
||||
const commands = [
|
||||
[
|
||||
'General',
|
||||
ctx.client.commands
|
||||
.filter((command) => command.module == 'General')
|
||||
.map((command) => `${command.name}`)
|
||||
.join(' | ')
|
||||
],
|
||||
/* [
|
||||
'Images',
|
||||
ctx.client.commands
|
||||
.filter((command) => command.module == 'Images')
|
||||
.map((command) => `${command.name}`)
|
||||
.join(' | ')
|
||||
], */
|
||||
[
|
||||
'Images',
|
||||
ctx.client.commands
|
||||
.filter((command) => command.module == 'Images')
|
||||
.map((command) => `${command.name}`)
|
||||
.join(' | ')
|
||||
],
|
||||
[
|
||||
'Roleplay',
|
||||
ctx.client.commands
|
||||
.filter((command) => command.module == 'Roleplay')
|
||||
.map((command) => `${command.name}`)
|
||||
.join(' | ')
|
||||
],
|
||||
[
|
||||
'Settings',
|
||||
ctx.client.commands
|
||||
.filter((command) => command.module == 'Settings')
|
||||
.map((command) => `${command.name}`)
|
||||
.join(' | ')
|
||||
]
|
||||
];
|
||||
|
||||
if (ctx.isDeveloper)
|
||||
commands.push([
|
||||
"Developers",
|
||||
ctx.client.commands
|
||||
.filter(command => command.module == "Developers")
|
||||
.map(command => command.name)
|
||||
.join(", ")
|
||||
]);
|
||||
if (ctx.isDeveloper)
|
||||
commands.push([
|
||||
'Developers',
|
||||
ctx.client.commands
|
||||
.filter((command) => command.module == 'Developers')
|
||||
.map((command) => `${command.name}`)
|
||||
.join(' | ')
|
||||
]);
|
||||
|
||||
return ctx.send({
|
||||
embed: {
|
||||
fields: commands.map(group => {
|
||||
return new Object({
|
||||
name: group[0],
|
||||
value: group[1]
|
||||
});
|
||||
}),
|
||||
color: 0xff873f
|
||||
}
|
||||
});
|
||||
} else {
|
||||
const command = ctx.client.commands.find(
|
||||
c =>
|
||||
c.name == ctx.args[0].toLowerCase() ||
|
||||
(c.aliases && c.aliases.includes(ctx.args[0].toLowerCase()))
|
||||
);
|
||||
return ctx.send({
|
||||
embed: {
|
||||
description: `Use \`'help command\` to get help on a specific command`,
|
||||
fields: commands.map((group) => {
|
||||
return new Object({
|
||||
name: group[0],
|
||||
value: group[1]
|
||||
});
|
||||
}),
|
||||
color: 0xff873f
|
||||
}
|
||||
});
|
||||
} else {
|
||||
const command = ctx.client.commands.find(
|
||||
(c) =>
|
||||
c.name == ctx.args[0].toLowerCase() || (c.aliases && c.aliases.includes(ctx.args[0].toLowerCase()))
|
||||
);
|
||||
|
||||
let fields = [
|
||||
{
|
||||
name: "Module",
|
||||
value: command.module,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "Aliases",
|
||||
value:
|
||||
command.aliases.length == 0
|
||||
? "No aliases"
|
||||
: command.aliases.join(", "),
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "Cooldown",
|
||||
value: command.cooldown == 0 ? "No cooldown" : `${command.cooldown}s`,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "Server only?",
|
||||
value: command.guildOnly ? "Yes" : "No",
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: "Developers only?",
|
||||
value: command.developerOnly ? "Yes" : "No",
|
||||
inline: true
|
||||
}
|
||||
];
|
||||
let fields = [
|
||||
{
|
||||
name: 'Module',
|
||||
value: command.module,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: 'Aliases',
|
||||
value: command.aliases.length == 0 ? 'No aliases' : command.aliases.join(', '),
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: 'Cooldown',
|
||||
value: command.cooldown == 0 ? 'No cooldown' : `${command.cooldown}s`,
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: 'Server only?',
|
||||
value: command.guildOnly ? 'Yes' : 'No',
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: 'Developers only?',
|
||||
value: command.developerOnly ? 'Yes' : 'No',
|
||||
inline: true
|
||||
}
|
||||
];
|
||||
|
||||
if (!command)
|
||||
return ctx.send(
|
||||
`That command couldn't be found. See the \`help\` command for valid commands.`
|
||||
);
|
||||
if (!command)
|
||||
return ctx.send(`That command couldn't be found. See the \`help\` command for valid commands.`);
|
||||
|
||||
let embed = new MessageEmbed()
|
||||
.setTitle(command.name)
|
||||
.setDescription(command.description)
|
||||
.setColor(0xff873f);
|
||||
fields.forEach(i => {
|
||||
embed.addField(i.name, i.value, i.inline);
|
||||
});
|
||||
let embed = new MessageEmbed()
|
||||
.setTitle(command.name)
|
||||
.setDescription(command.description)
|
||||
.setColor(0xff873f);
|
||||
fields.forEach((i) => {
|
||||
embed.addField(i.name, i.value, i.inline);
|
||||
});
|
||||
|
||||
return ctx.send(embed);
|
||||
}
|
||||
}
|
||||
return ctx.send(embed);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,42 +1,53 @@
|
|||
const Command = require("../../src/structures/Command");
|
||||
const { MessageEmbed } = require("discord.js");
|
||||
const { developers, contributors, source } = require("../../config");
|
||||
const { version: DiscordVersion } = require("discord.js");
|
||||
|
||||
const Command = require('../../src/structures/Command');
|
||||
const { MessageEmbed, version: DiscordVersion } = require('discord.js');
|
||||
const { developers, contributors, source, color } = require('../../config');
|
||||
const db = require('quick.db');
|
||||
const Backend = new db.table('backend');
|
||||
module.exports = class Info extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: "info",
|
||||
description: "Show the Makers and Contributors of the Bot",
|
||||
aliases: ["about"],
|
||||
module: "General",
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
constructor() {
|
||||
super({
|
||||
name: 'info',
|
||||
description: 'Show the Makers and Contributors of the Bot',
|
||||
aliases: [ 'about' ],
|
||||
module: 'General',
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
let result;
|
||||
const contribs = [];
|
||||
for (const { id, nick, reason } of contributors) {
|
||||
const user = await ctx.client.users.fetch(id);
|
||||
contribs.push(`${user} (${nick}) - ${reason}`);
|
||||
}
|
||||
const Contributors = contribs.join("\n");
|
||||
let CreditEmbed = new MessageEmbed()
|
||||
.setTitle(`Thaldrin, a Random Image and Utility Bot`)
|
||||
.setDescription(
|
||||
`Made by ${ctx.utils.format.bold(
|
||||
ctx.client.users.find(user => user.id === "318044130796109825").tag
|
||||
)}`
|
||||
)
|
||||
.addField("Language", "Javascript", true)
|
||||
.addField("Library", `d.js - v${DiscordVersion}`, true)
|
||||
.addField("Node", `${process.version}`, true)
|
||||
.addField("Contributors", Contributors)
|
||||
.addField("Source", `[gitdab.com/r/thaldrin](${source})`);
|
||||
async command(ctx) {
|
||||
let result;
|
||||
const contribs = [];
|
||||
for (const { id, nick, reason } of contributors) {
|
||||
const user = await ctx.client.users.fetch(id);
|
||||
contribs.push(`${user} (${nick}) - ${reason}`);
|
||||
}
|
||||
const Contributors = contribs.join('\n');
|
||||
let CreditEmbed = new MessageEmbed()
|
||||
.setTitle(`${ctx.client.user.username}, a Random Image and Utility Bot`)
|
||||
.setColor(color)
|
||||
.setDescription(
|
||||
`Made by ${ctx.utils.format.bold(
|
||||
ctx.client.users.find((user) => user.id === '318044130796109825').tag
|
||||
)}`
|
||||
)
|
||||
/* .addField('Language', 'Javascript', true)
|
||||
.addField('Library', `d.js - v${DiscordVersion}`, true)
|
||||
.addField('Node', `${process.version}`, true)
|
||||
.addField('Servers', ctx.client.guilds.size, true)
|
||||
.addField('Users', ctx.client.users.size, true) */
|
||||
.addField('Contributors', Contributors)
|
||||
.addField('Source', `[gd/r/thaldrin](${source})`, true)
|
||||
.addField(
|
||||
'Support Server',
|
||||
`[${ctx.client.guilds.get('438316852347666432').name}](https://discord.gg/${ctx.db.backend.get(
|
||||
'Info.invite'
|
||||
)})`,
|
||||
true
|
||||
)
|
||||
.addField('Website', `[thaldr.in](https://thaldr.in)`, true);
|
||||
|
||||
ctx.send(CreditEmbed);
|
||||
}
|
||||
ctx.send(CreditEmbed);
|
||||
}
|
||||
};
|
||||
|
|
70
DiscordModules/General/serverinfo.js
Normal file
70
DiscordModules/General/serverinfo.js
Normal file
|
@ -0,0 +1,70 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
|
||||
module.exports = class ServerInfo extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'serverinfo',
|
||||
description: 'Shows Information about your Server!',
|
||||
aliases: [ 'server', 'sinfo', 'si' ],
|
||||
module: 'General',
|
||||
cooldown: 0,
|
||||
guildOnly: true,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const total = ctx.guild.members.size;
|
||||
const users = ctx.guild.members.filter((m) => !m.user.bot).size;
|
||||
const bots = ctx.guild.members.filter((m) => m.user.bot).size;
|
||||
const Features = ctx.guild.features;
|
||||
let OnlineUsers =
|
||||
ctx.utils.emotes.MemberStatus['online'] +
|
||||
ctx.guild.members.filter((m) => m.presence.status === 'online').size;
|
||||
let DNDUsers =
|
||||
ctx.utils.emotes.MemberStatus['dnd'] + ctx.guild.members.filter((m) => m.presence.status === 'dnd').size;
|
||||
let IdleUsers =
|
||||
ctx.utils.emotes.MemberStatus['idle'] + ctx.guild.members.filter((m) => m.presence.status === 'idle').size;
|
||||
let OfflineUsers =
|
||||
ctx.utils.emotes.MemberStatus['offline'] +
|
||||
ctx.guild.members.filter((m) => m.presence.status === 'offline').size;
|
||||
|
||||
let features = [];
|
||||
Features.forEach((f) => features.push(ctx.utils.emotes.features[f.toLowerCase()] || f));
|
||||
|
||||
let Embed = new ctx.utils.discord.MessageEmbed();
|
||||
Embed.setTitle(ctx.guild.name)
|
||||
.setColor(ctx.config.color)
|
||||
.setThumbnail(ctx.guild.iconURL())
|
||||
.addField(
|
||||
'Members',
|
||||
`${ctx.utils.format.bold(`Total:`)} ${ctx.utils.format.code(total)}\n${ctx.utils.format.bold(
|
||||
`Users:`
|
||||
)} ${ctx.utils.format.code(users)}\n${ctx.utils.format.bold(`Bots:`)} ${ctx.utils.format.code(bots)}
|
||||
|
||||
${OnlineUsers}
|
||||
${DNDUsers}
|
||||
${IdleUsers}
|
||||
${OfflineUsers}`
|
||||
)
|
||||
.addField('Owner', ctx.guild.owner, true)
|
||||
.addField('Large?', ctx.guild.large ? ctx.utils.emotes.settings.on : ctx.utils.emotes.settings.off, true)
|
||||
.addField(
|
||||
'Boost Level / Boosters',
|
||||
`${ctx.guild.premiumTier} / ${ctx.guild.premiumSubscriptionCount}`,
|
||||
true
|
||||
)
|
||||
.addField('Region', ctx.utils.emotes.regions[ctx.guild.region] || ctx.guild.region, true)
|
||||
.addField('Features', features.join(' **|** '));
|
||||
if (ctx.guild.vanityURLCode) {
|
||||
Embed.addField(
|
||||
'Vanity URL',
|
||||
`[discord.gg/${ctx.guild.vanityURLCode}](https://discord.gg/${ctx.guild.vanityURLCode})`
|
||||
);
|
||||
}
|
||||
/* .addField('Large?')
|
||||
.addField('Large?'); */
|
||||
|
||||
ctx.send(Embed);
|
||||
}
|
||||
};
|
50
DiscordModules/General/system.js
Normal file
50
DiscordModules/General/system.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const { MessageEmbed, version: DiscordVersion } = require('discord.js');
|
||||
const os = require('os');
|
||||
const { developers, contributors, source, color } = require('../../config');
|
||||
const db = require('quick.db');
|
||||
const Backend = new db.table('backend');
|
||||
function format(seconds) {
|
||||
function pad(s) {
|
||||
return (s < 10 ? '0' : '') + s;
|
||||
}
|
||||
var hours = Math.floor(seconds / (60 * 60));
|
||||
var minutes = Math.floor((seconds % (60 * 60)) / 60);
|
||||
var seconds = Math.floor(seconds % 60);
|
||||
|
||||
return pad(hours) + 'h ' + pad(minutes) + 'm ' + pad(seconds) + 's';
|
||||
}
|
||||
|
||||
module.exports = class Info extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'system',
|
||||
description: 'Show System Info',
|
||||
aliases: [ 'sys', 'sysinfo' ],
|
||||
module: 'General',
|
||||
cooldown: 0,
|
||||
guildOnly: false,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
let SystemEmbed = new MessageEmbed()
|
||||
.setTitle(`${ctx.client.user.username} | v${ctx.config.version}`)
|
||||
.setColor(color)
|
||||
.setDescription(
|
||||
`Made by ${ctx.utils.format.bold(
|
||||
ctx.client.users.find((user) => user.id === '318044130796109825').tag
|
||||
)}`
|
||||
)
|
||||
.addField('Language', 'Javascript', true)
|
||||
.addField('Library', `d.js - v${DiscordVersion}`, true)
|
||||
.addField('Uptime', `${format(process.uptime())}`, true)
|
||||
.addField('Node', `${process.version}`, true)
|
||||
.addField('Servers', ctx.client.guilds.size, true)
|
||||
.addField('Users', ctx.client.users.size, true)
|
||||
.addField('Total sauce found', ctx.db.backend.get('SourceFynnder.found'), true);
|
||||
|
||||
ctx.send(SystemEmbed);
|
||||
}
|
||||
};
|
59
DiscordModules/General/userinfo.js
Normal file
59
DiscordModules/General/userinfo.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
module.exports = class Userinfo extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'userinfo',
|
||||
description: 'Shows User Information',
|
||||
aliases: [ 'user', 'ui', 'uinfo' ],
|
||||
module: 'General',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
let User;
|
||||
let Game;
|
||||
let Embed = new ctx.utils.discord.MessageEmbed();
|
||||
User = ctx.msg.mentions.members.first() || /* ctx.args[0] || */ ctx.member;
|
||||
|
||||
if (User.presence.activity === null) {
|
||||
Game = 'Playing Nothing';
|
||||
} else {
|
||||
if (User.presence.activity.name === 'Custom Status') {
|
||||
Game = `• ${User.presence.activity.state || 'Error'}`;
|
||||
} else {
|
||||
if (User.presence.activity.details === null) {
|
||||
User.presence.activity.details = '*_ _*';
|
||||
User.presence.activity.state = '*_ _*';
|
||||
} else {
|
||||
Game = `
|
||||
${User.presence.activity.name}
|
||||
${User.presence.activity.details}
|
||||
${User.presence.activity.state}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
let Roles = [];
|
||||
let x = 0;
|
||||
for (const role of User.roles) {
|
||||
Roles.push(`<@&${role[0]}>`);
|
||||
}
|
||||
|
||||
Embed.setTitle(`Info on ${User.nickname}`)
|
||||
.setColor(ctx.config.color)
|
||||
.addField('Username', User.user.tag, true)
|
||||
.addField('ID', User.user.id, true)
|
||||
.addField(`Status | ${ctx.utils.emotes.status[User.presence.status]}`, Game);
|
||||
if (Roles.length > 15) {
|
||||
Embed.addField(`Roles [${Roles.length}]`, 'Too many to list' || 'Error');
|
||||
} else {
|
||||
Embed.addField(`Roles [${Roles.length}]`, Roles.join(' **|** '));
|
||||
}
|
||||
Embed.setThumbnail(User.user.avatarURL());
|
||||
|
||||
ctx.send(Embed).catch((err) => ctx.send('```js\n' + err + '```'));
|
||||
}
|
||||
};
|
41
DiscordModules/Images/birb.js
Normal file
41
DiscordModules/Images/birb.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Birb extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'bird',
|
||||
description: 'Get a random birb',
|
||||
aliases: [ 'birb' ],
|
||||
module: 'Images',
|
||||
cooldown: 2,
|
||||
guildOnly: false,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.shibe.birds().then((E) => (req = E));
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by shibe.online`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
41
DiscordModules/Images/cat.js
Normal file
41
DiscordModules/Images/cat.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Cat extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'cat',
|
||||
description: 'Get a random cat',
|
||||
aliases: [ 'meow' ],
|
||||
module: 'Images',
|
||||
cooldown: 2,
|
||||
guildOnly: false,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.shibe.cats().then((E) => (req = E));
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by shibe.online`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
|
@ -1,58 +1,46 @@
|
|||
const Command = require("../../src/structures/Command");
|
||||
const yiff = require("yiff");
|
||||
const { MessageEmbed } = require("discord.js");
|
||||
let Icon =
|
||||
"https://cdn6.aptoide.com/imgs/0/7/f/07f23fe390d6d20f47839932ea23c678_icon.png?w=240";
|
||||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
let Icon = 'https://werewoof.tech/e621.png';
|
||||
|
||||
module.exports = class E621 extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: "e621",
|
||||
description: "Get Images from e621",
|
||||
aliases: ["e6"],
|
||||
module: "Images",
|
||||
cooldown: 5,
|
||||
guildOnly: false,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
let Embed = new MessageEmbed().setColor("RED");
|
||||
if (!ctx.channel.nsfw) {
|
||||
Embed.setTitle("NSFW").setDescription(
|
||||
`This channel is not marked as NSFW, please mark it as such and rerun this command.`
|
||||
);
|
||||
return ctx.send(Embed);
|
||||
}
|
||||
if (ctx.args < 1) {
|
||||
Embed.setTitle("Search Terms").setDescription(
|
||||
"I need more tags than that to search for an Image."
|
||||
);
|
||||
return ctx.send(Embed);
|
||||
}
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
|
||||
let message = await ctx.send(`Searching...`);
|
||||
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.e621.CubFilter(ctx.args.join(" ")).then(E => (req = E));
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed().setImage(req.image);
|
||||
|
||||
message.delete();
|
||||
} else {
|
||||
Message = `${req.image}`;
|
||||
message.delete();
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
constructor() {
|
||||
super({
|
||||
name: 'e621',
|
||||
description: 'Get Images from e621',
|
||||
aliases: [ 'e6' ],
|
||||
module: 'Images',
|
||||
cooldown: 5,
|
||||
guildOnly: false,
|
||||
developerOnly: false,
|
||||
nsfw: true
|
||||
});
|
||||
}
|
||||
async command(ctx) {
|
||||
let Embed = new MessageEmbed().setColor('RED');
|
||||
if (ctx.args < 1) {
|
||||
Embed.setTitle('Search Terms').setDescription('I need more tags than that to search for an Image.');
|
||||
return ctx.send(Embed);
|
||||
}
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.e621.CubFilter(ctx.args.join(' ')).then((E) => (req = E));
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setImage(req.image)
|
||||
.setColor(ctx.config.color)
|
||||
.setAuthor('e621.net', Icon, `https://e621.net/post/show/${req.postID}`)
|
||||
.setFooter(`${ctx.client.user.username} - e621.net`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `<https://e621.net/post/show/${req.postID}>\n${req.image}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
||||
|
|
46
DiscordModules/Images/e926.js
Normal file
46
DiscordModules/Images/e926.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
let Icon = 'https://werewoof.tech/e621.png';
|
||||
|
||||
module.exports = class E621 extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'e926',
|
||||
description: 'Get Images from e621',
|
||||
aliases: [ 'e9' ],
|
||||
module: 'Images',
|
||||
cooldown: 5,
|
||||
guildOnly: false,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
async command(ctx) {
|
||||
let Embed = new MessageEmbed().setColor('RED');
|
||||
if (ctx.args < 1) {
|
||||
Embed.setTitle('Search Terms').setDescription('I need more tags than that to search for an Image.');
|
||||
return ctx.send(Embed);
|
||||
}
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.e926.request(ctx.args.join(' ')).then((E) => (req = E));
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setImage(req.image)
|
||||
.setColor(ctx.config.color)
|
||||
.setAuthor('e621.net', Icon, `https://e926.net/post/show/${req.postID}`)
|
||||
.setFooter(`${ctx.client.user.username} - e926.net`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `<https://e926.net/post/show/${req.postID}>\n${req.image}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
41
DiscordModules/Images/fox.js
Normal file
41
DiscordModules/Images/fox.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Fox extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'fox',
|
||||
description: 'Get a random fox',
|
||||
aliases: [ 'yip' ],
|
||||
module: 'Images',
|
||||
cooldown: 2,
|
||||
guildOnly: false,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.sheri.animals.fox().then((E) => (req = E));
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req.url)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by sheri.bot`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
42
DiscordModules/Images/shibe.js
Normal file
42
DiscordModules/Images/shibe.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Shibe extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'shiba',
|
||||
description: 'Get a random shibe',
|
||||
aliases: [ 'shib', 'shibe' ],
|
||||
module: 'Images',
|
||||
cooldown: 2,
|
||||
guildOnly: false,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.shibe.shibes().then((E) => (req = E));
|
||||
console.log(req);
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by shibe.online`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
41
DiscordModules/Images/wolf.js
Normal file
41
DiscordModules/Images/wolf.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Wolf extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'wolf',
|
||||
description: 'Get a random wolf',
|
||||
aliases: [ 'woof', 'wolves', 'awoo' ],
|
||||
module: 'Images',
|
||||
cooldown: 2,
|
||||
guildOnly: false,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.sheri.animals.wolf().then((E) => (req = E));
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setImage(req.url)
|
||||
.setColor(ctx.config.color)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by sheri.bot`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
65
DiscordModules/Roleplay/bang.js
Normal file
65
DiscordModules/Roleplay/bang.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Bang extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'bang',
|
||||
description: 'Cuddle a user',
|
||||
aliases: [ 'fuck' ],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't bang me! Bang someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to bang someone other than yourself?`);
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.bang[parseInt(Math.random() * ctx.utils.int.bang.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.nsfw.bang().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
65
DiscordModules/Roleplay/boop.js
Normal file
65
DiscordModules/Roleplay/boop.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Boop extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'boop',
|
||||
description: 'Boop a user',
|
||||
aliases: [],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't boop me! boop someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to boop someone other than yourself?`);
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.boop[parseInt(Math.random() * ctx.utils.int.boop.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.sfw.boop().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
59
DiscordModules/Roleplay/bulge.js
Normal file
59
DiscordModules/Roleplay/bulge.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Bulge extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'bulge',
|
||||
description: `Look at a User's Bulge`,
|
||||
aliases: [],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: false,
|
||||
developerOnly: false,
|
||||
nsfw: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
let Line;
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
if (ctx.msg.mentions.members.size > 0 && Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.bulge[parseInt(Math.random() * ctx.utils.int.bulge.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.nsfw.bulge().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
66
DiscordModules/Roleplay/cuddle.js
Normal file
66
DiscordModules/Roleplay/cuddle.js
Normal file
|
@ -0,0 +1,66 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Cuddle extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'cuddle',
|
||||
description: 'Cuddle a user',
|
||||
aliases: [ 'snug', 'snuggle' ],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't cuddle me! Cuddle someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to cuddle someone other than yourself?`);
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.cuddle[parseInt(Math.random() * ctx.utils.int.cuddle.length)];
|
||||
console.log(LineFromUtils);
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.sfw.cuddle().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
65
DiscordModules/Roleplay/hold.js
Normal file
65
DiscordModules/Roleplay/hold.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Hold extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'hold',
|
||||
description: 'Hold a user',
|
||||
aliases: [],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't hold me! Hold someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to hold someone other than yourself?`);
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.hold[parseInt(Math.random() * ctx.utils.int.hold.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.sfw.hold().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
54
DiscordModules/Roleplay/hug.js
Normal file
54
DiscordModules/Roleplay/hug.js
Normal file
|
@ -0,0 +1,54 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Hug extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'hug',
|
||||
description: 'Hug a user',
|
||||
aliases: [],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't hug me! Hug someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to hug someone other than yourself?`);
|
||||
|
||||
const LineFromUtils = ctx.utils.int.hug[parseInt(Math.random() * ctx.utils.int.hug.length)];
|
||||
let Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.sfw.hug().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setDescription(Line)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
59
DiscordModules/Roleplay/kiss.js
Normal file
59
DiscordModules/Roleplay/kiss.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Kiss extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'kiss',
|
||||
description: 'Kiss a user',
|
||||
aliases: [ 'smooch' ],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't kiss me! Kiss someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to kiss someone other than yourself?`);
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.kiss[parseInt(Math.random() * ctx.utils.int.kiss.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.sfw.kiss().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setDescription(Line)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
65
DiscordModules/Roleplay/lick.js
Normal file
65
DiscordModules/Roleplay/lick.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class Lick extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'lick',
|
||||
description: 'lick a user',
|
||||
aliases: [ 'mlem' ],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't lick me! Lick someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to Lick someone other than yourself?`);
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.lick[parseInt(Math.random() * ctx.utils.int.lick.length)];
|
||||
console.log(LineFromUtils);
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.sfw.lick().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
65
DiscordModules/Roleplay/ncuddle.js
Normal file
65
DiscordModules/Roleplay/ncuddle.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class nCuddle extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'ncuddle',
|
||||
description: 'Cuddle a user',
|
||||
aliases: [ 'nsnug', 'nsnuggle' ],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't cuddle me! Cuddle someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to cuddle someone other than yourself?`);
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.cuddle[parseInt(Math.random() * ctx.utils.int.cuddle.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.nsfw.cuddle().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
65
DiscordModules/Roleplay/nhold.js
Normal file
65
DiscordModules/Roleplay/nhold.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class nHold extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'nhold',
|
||||
description: 'Hold a user',
|
||||
aliases: [],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't hold me! Hold someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to hold someone other than yourself?`);
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.hold[parseInt(Math.random() * ctx.utils.int.hold.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.nsfw.hold().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
64
DiscordModules/Roleplay/nhug.js
Normal file
64
DiscordModules/Roleplay/nhug.js
Normal file
|
@ -0,0 +1,64 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class nHug extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'nhug',
|
||||
description: 'Hug a user',
|
||||
aliases: [],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't hug me! Hug someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to hug someone other than yourself?`);
|
||||
let Line;
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.hug[parseInt(Math.random() * ctx.utils.int.hug.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.nsfw.hug().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
64
DiscordModules/Roleplay/nkiss.js
Normal file
64
DiscordModules/Roleplay/nkiss.js
Normal file
|
@ -0,0 +1,64 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class nKiss extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'nkiss',
|
||||
description: 'Kiss a user',
|
||||
aliases: [ 'nsmooch' ],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't kiss me! Kiss someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to kiss someone other than yourself?`);
|
||||
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.kiss[parseInt(Math.random() * ctx.utils.int.kiss.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.nsfw.kiss().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
64
DiscordModules/Roleplay/nlick.js
Normal file
64
DiscordModules/Roleplay/nlick.js
Normal file
|
@ -0,0 +1,64 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
const yiff = require('yiff');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class nLick extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'nlick',
|
||||
description: 'lick a user',
|
||||
aliases: [ 'nmlem' ],
|
||||
module: 'Roleplay',
|
||||
cooldown: 2,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
nsfw: true
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
|
||||
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
|
||||
return ctx.send("Don't lick me! Lick someone else!");
|
||||
if (ctx.msg.mentions.members.first().id === ctx.author.id)
|
||||
return ctx.send(`Don't you want to Lick someone other than yourself?`);
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
let Line;
|
||||
if (Server.rp_text) {
|
||||
const LineFromUtils = ctx.utils.int.lick[parseInt(Math.random() * ctx.utils.int.lick.length)];
|
||||
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
|
||||
/1/g,
|
||||
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
|
||||
);
|
||||
} else {
|
||||
Line = undefined;
|
||||
}
|
||||
|
||||
let Settings;
|
||||
if (Server === null) {
|
||||
Settings = ctx.utils.db.defaults.server;
|
||||
} else {
|
||||
Settings = Server;
|
||||
}
|
||||
let req;
|
||||
let Message;
|
||||
await yiff.furrybot.nsfw.lick().then((E) => (req = E));
|
||||
|
||||
if (Settings.embeds) {
|
||||
Message = new MessageEmbed()
|
||||
.setColor(ctx.config.color)
|
||||
.setImage(req)
|
||||
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
|
||||
if (Line) {
|
||||
Message.setDescription(Line);
|
||||
}
|
||||
} else {
|
||||
if (Line) {
|
||||
Message = `${Line}\n${req}`;
|
||||
} else {
|
||||
Message = `${req}`;
|
||||
}
|
||||
}
|
||||
ctx.send(Message);
|
||||
}
|
||||
};
|
59
DiscordModules/Settings/prefix.js
Normal file
59
DiscordModules/Settings/prefix.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
module.exports = class Prefix extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'prefix',
|
||||
description: 'Add or Remove a prefix',
|
||||
aliases: [],
|
||||
module: 'Settings',
|
||||
cooldown: 10,
|
||||
guildOnly: true,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const PrefixEmbed = new ctx.utils.discord.MessageEmbed();
|
||||
PrefixEmbed.setColor(ctx.config.color);
|
||||
let ARG = ctx.args[0];
|
||||
ctx.args.shift();
|
||||
let Prefix = ctx.args.join(' ');
|
||||
let Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
Server.prefix.shift();
|
||||
Server.prefix.shift();
|
||||
Server.prefix.shift();
|
||||
switch (ARG) {
|
||||
case 'a':
|
||||
case 'add':
|
||||
if (ctx.args === [] || ctx.args.join(' ').trim() === '') return ctx.send('No Prefix was given');
|
||||
|
||||
ctx.utils.db.prefix
|
||||
.add(ctx, Prefix)
|
||||
.then(async () => {
|
||||
let NServer = await ctx.db.servers.get(ctx.guild.id);
|
||||
PrefixEmbed.setTitle(`Prefixes for ${ctx.guild.name}`);
|
||||
PrefixEmbed.setDescription(`${NServer.prefix.join(', ') || ctx.db.defaults.server.prefix}`);
|
||||
ctx.send(PrefixEmbed);
|
||||
})
|
||||
.catch((err) => ctx.send(err));
|
||||
break;
|
||||
case 'r':
|
||||
case 'remove':
|
||||
if (ctx.args === [] || ctx.args.join(' ').trim() === '') return ctx.send('No Prefix was given');
|
||||
ctx.utils.db.prefix
|
||||
.remove(ctx, Prefix)
|
||||
.then(async (r) => {
|
||||
let NServer = await ctx.db.servers.get(ctx.guild.id);
|
||||
ctx.send('Current Prefixes are:\n' + NServer.prefix.join(', '));
|
||||
})
|
||||
.catch((err) => ctx.send(err));
|
||||
break;
|
||||
default:
|
||||
PrefixEmbed.setTitle('Help');
|
||||
PrefixEmbed.addField('a / add <prefix>', 'Add a Prefix', true);
|
||||
PrefixEmbed.addField('r / remove <prefix>', 'Remove a Prefix', true);
|
||||
ctx.send(PrefixEmbed);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
|
@ -1,62 +1,54 @@
|
|||
const Command = require("../../src/structures/Command");
|
||||
const Command = require('../../src/structures/Command');
|
||||
module.exports = class Settings extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: "settings",
|
||||
description: "Show the Settings of this Server",
|
||||
aliases: ["config"],
|
||||
module: "Settings",
|
||||
cooldown: 5,
|
||||
guildOnly: true,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
constructor() {
|
||||
super({
|
||||
name: 'settings',
|
||||
description: 'Show the Settings of this Server',
|
||||
aliases: [ 'config' ],
|
||||
module: 'Settings',
|
||||
cooldown: 5,
|
||||
guildOnly: true,
|
||||
developerOnly: false
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const SettingsEmbed = new ctx.utils.discord.MessageEmbed();
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
// console.log(Server);
|
||||
if (Server !== null) {
|
||||
SettingsEmbed.setTitle(`Settings for ${ctx.guild.name}`)
|
||||
.addField("Prefixes", Server.prefix.join(", "), false)
|
||||
.addField(
|
||||
"SourceFynnder",
|
||||
Server.SourceFynnder
|
||||
? ctx.utils.emotes.settings.on
|
||||
: ctx.utils.emotes.settings.off,
|
||||
true
|
||||
)
|
||||
.addField(
|
||||
"Shortlinks",
|
||||
Server.Shortlinks
|
||||
? ctx.utils.emotes.settings.on
|
||||
: ctx.utils.emotes.settings.off,
|
||||
true
|
||||
)
|
||||
.addBlankField(true)
|
||||
.addField(
|
||||
"Image Embeds",
|
||||
Server.embeds
|
||||
? ctx.utils.emotes.settings.on
|
||||
: ctx.utils.emotes.settings.off,
|
||||
true
|
||||
)
|
||||
.addField(
|
||||
"Image Text",
|
||||
Server.rp_text
|
||||
? ctx.utils.emotes.settings.on
|
||||
: ctx.utils.emotes.settings.off,
|
||||
true
|
||||
)
|
||||
.addField("Default Yiff", Server.default_yiff, true);
|
||||
ctx.send(SettingsEmbed);
|
||||
} else {
|
||||
SettingsEmbed.setTitle(
|
||||
`No Settings for ${ctx.guild.name}`
|
||||
).setDescription(
|
||||
`You shouldn't see this.\n Your Server might not have been set up Properly when you invited me.\n\nPlease [join my support server](https://discord.gg/xNAcF8m) and notify my Developer`
|
||||
);
|
||||
ctx.send(SettingsEmbed);
|
||||
}
|
||||
}
|
||||
async command(ctx) {
|
||||
const SettingsEmbed = new ctx.utils.discord.MessageEmbed();
|
||||
SettingsEmbed.setColor(ctx.config.color);
|
||||
const Server = await ctx.db.servers.get(ctx.guild.id);
|
||||
// console.log(Server);
|
||||
if (Server !== null) {
|
||||
SettingsEmbed.setTitle(`Settings for ${ctx.guild.name}`)
|
||||
.addField('Prefixes', Server.prefix.join(', ') || `<@${ctx.client.user.id}> or \`'\``, false)
|
||||
.addField(
|
||||
'SourceFynnder',
|
||||
Server.SourceFynnder ? ctx.utils.emotes.settings.on : ctx.utils.emotes.settings.off,
|
||||
true
|
||||
)
|
||||
.addField(
|
||||
'Shortlinks',
|
||||
Server.Shortlinks ? ctx.utils.emotes.settings.on : ctx.utils.emotes.settings.off,
|
||||
true
|
||||
)
|
||||
.addBlankField(true)
|
||||
.addField(
|
||||
'Image Embeds',
|
||||
Server.embeds ? ctx.utils.emotes.settings.on : ctx.utils.emotes.settings.off,
|
||||
true
|
||||
)
|
||||
.addField(
|
||||
'Image Text',
|
||||
Server.rp_text ? ctx.utils.emotes.settings.on : ctx.utils.emotes.settings.off,
|
||||
true
|
||||
);
|
||||
// .addField('Default Yiff', Server.default_yiff, true);
|
||||
ctx.send(SettingsEmbed);
|
||||
} else {
|
||||
SettingsEmbed.setTitle(`No Settings for ${ctx.guild.name}`).setDescription(
|
||||
`You shouldn't see this.\n Your Server might not have been set up Properly when you invited me.\n\nPlease [join my support server](https://discord.gg/xNAcF8m) and notify my Developer`
|
||||
);
|
||||
|
||||
ctx.send(SettingsEmbed);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
75
DiscordModules/Settings/toggle.js
Normal file
75
DiscordModules/Settings/toggle.js
Normal file
|
@ -0,0 +1,75 @@
|
|||
const Command = require('../../src/structures/Command');
|
||||
module.exports = class Toggle extends Command {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'toggle',
|
||||
description: 'Toggle various Settings',
|
||||
aliases: [ 't' ],
|
||||
module: 'Settings',
|
||||
cooldown: 5,
|
||||
guildOnly: true,
|
||||
developerOnly: false,
|
||||
AuthorPermissions: [ 'MANAGE_GUILD' ]
|
||||
});
|
||||
}
|
||||
|
||||
async command(ctx) {
|
||||
const Embed = new ctx.utils.discord.MessageEmbed().setColor(ctx.config.color);
|
||||
let ARG = ctx.args[0];
|
||||
switch (ARG) {
|
||||
case 'source':
|
||||
case 'sauce':
|
||||
case 'sf':
|
||||
case 'sourcefynnder':
|
||||
await ctx.utils.db.toggle.SourceFynnder(ctx);
|
||||
Embed.setTitle(`Changed SourceFynnder Setting`).setDescription(
|
||||
`Now set to ${ctx.db.servers.get(ctx.guild.id).SourceFynnder
|
||||
? ctx.utils.emotes.settings.on
|
||||
: ctx.utils.emotes.settings.off}`
|
||||
);
|
||||
ctx.send(Embed);
|
||||
break;
|
||||
case 'shortlinks':
|
||||
case 'shortlink':
|
||||
case 'sl':
|
||||
await ctx.utils.db.toggle.Shortlinks(ctx);
|
||||
Embed.setTitle(`Changed Shortlink Setting`).setDescription(
|
||||
`Now set to ${ctx.db.servers.get(ctx.guild.id).Shortlinks
|
||||
? ctx.utils.emotes.settings.on
|
||||
: ctx.utils.emotes.settings.off}`
|
||||
);
|
||||
ctx.send(Embed);
|
||||
|
||||
break;
|
||||
case 'embed':
|
||||
case 'embeds':
|
||||
await ctx.utils.db.toggle.Embeds(ctx);
|
||||
Embed.setTitle(`Changed Image Embed Setting`).setDescription(
|
||||
`Now set to ${ctx.db.servers.get(ctx.guild.id).embeds
|
||||
? ctx.utils.emotes.settings.on
|
||||
: ctx.utils.emotes.settings.off}`
|
||||
);
|
||||
ctx.send(Embed);
|
||||
break;
|
||||
case 'text':
|
||||
case 'rp_text':
|
||||
await ctx.utils.db.toggle.Text(ctx);
|
||||
Embed.setTitle(`Changed Image Text Setting`).setDescription(
|
||||
`Now set to ${ctx.db.servers.get(ctx.guild.id).rp_text
|
||||
? ctx.utils.emotes.settings.on
|
||||
: ctx.utils.emotes.settings.off}`
|
||||
);
|
||||
ctx.send(Embed);
|
||||
break;
|
||||
default:
|
||||
Embed.setTitle('Help')
|
||||
.setDescription(`All settings have their own Toggles, see the list below to know which one's which`)
|
||||
.addField('SourceFynnder', 'sf sauce source sourcefynnder', true)
|
||||
.addField('Shortlinks', 'sl shortlink shortlinks', true)
|
||||
.addField('Image Embeds', 'embed embeds', true)
|
||||
.addField('Image Text', 'text rp_text', true);
|
||||
ctx.send(Embed);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue