update to v13

master
Kit Kasune 3 years ago
parent 897d064699
commit 573ed8d162
  1. 1
      .gitignore
  2. 1
      .idea/.name
  3. 4
      .idea/Natsuki.iml
  4. 3
      .idea/discord.xml
  5. 6
      .idea/jsLibraryMappings.xml
  6. 2
      .idea/modules.xml
  7. 65
      .idea/workspace.xml
  8. 5
      bot.js
  9. 6
      commands/anime/anime.js
  10. 2
      commands/dev/admin.js
  11. 2
      commands/dev/developer.js
  12. 4
      commands/dev/eval.js
  13. 8
      commands/dev/execute.js
  14. 2
      commands/dev/support.js
  15. 4
      commands/dev/vip.js
  16. 5
      commands/fun/8ball.js
  17. 4
      commands/fun/bite.js
  18. 6
      commands/fun/deathnote.js
  19. 8
      commands/fun/kiss.js
  20. 4
      commands/fun/nowplaying.js
  21. 10
      commands/fun/secretsanta.js
  22. 4
      commands/fun/slap.js
  23. 4
      commands/leveling/leaderboard.js
  24. 4
      commands/leveling/levelrole.js
  25. 6
      commands/leveling/setupleveling.js
  26. 6
      commands/leveling/stats.js
  27. 10
      commands/misc/ar.js
  28. 2
      commands/misc/avatar.js
  29. 2
      commands/misc/commands.js
  30. 6
      commands/misc/emoji.js
  31. 2
      commands/misc/help.js
  32. 7
      commands/misc/info.js
  33. 4
      commands/misc/ingorear.js
  34. 4
      commands/misc/invite.js
  35. 4
      commands/misc/mem.js
  36. 4
      commands/misc/prefix.js
  37. 6
      commands/misc/serverinfo.js
  38. 4
      commands/misc/supportserver.js
  39. 6
      commands/misc/uptime.js
  40. 2
      commands/misc/userinfo.js
  41. 2
      commands/moderation/ban.js
  42. 4
      commands/moderation/checkwarnings.js
  43. 8
      commands/moderation/leave.js
  44. 4
      commands/moderation/response.js
  45. 4
      commands/moderation/staffrole.js
  46. 4
      commands/moderation/warn.js
  47. 8
      commands/moderation/welcome.js
  48. 8
      commands/social/bio.js
  49. 4
      commands/social/blush.js
  50. 8
      commands/social/bonk.js
  51. 2
      commands/social/clearstatus.js
  52. 8
      commands/social/creampie.js
  53. 4
      commands/social/cry.js
  54. 4
      commands/social/dance.js
  55. 4
      commands/social/dodge.js
  56. 8
      commands/social/feed.js
  57. 8
      commands/social/fuck.js
  58. 8
      commands/social/handhold.js
  59. 8
      commands/social/heal.js
  60. 8
      commands/social/hug.js
  61. 8
      commands/social/kill.js
  62. 8
      commands/social/kiss.js
  63. 4
      commands/social/laugh.js
  64. 8
      commands/social/pat.js
  65. 4
      commands/social/run.js
  66. 10
      commands/social/simp.js
  67. 4
      commands/social/sip.js
  68. 4
      commands/social/smile.js
  69. 4
      commands/social/spank.js
  70. 8
      commands/social/wink.js
  71. 2
      commands/utility/coinflip.js
  72. 2
      commands/utility/monitor.js
  73. 4
      commands/utility/randnum.js
  74. 18
      commands/utility/robemote.js
  75. 34
      commands/utility/todo.js
  76. 4
      events/channelCreate.js
  77. 4
      events/channelDelete.js
  78. 8
      events/guildCreate.js
  79. 8
      events/guildDelete.js
  80. 19
      events/messageCreate.js
  81. 6
      events/messageDelete.js
  82. 4
      events/messageReactionAdd.js
  83. 6
      events/messageUpdate.js
  84. 20
      events/voiceStateUpdate.js
  85. 16
      handle/command.js
  86. 1391
      package-lock.json
  87. 7
      package.json
  88. 6
      responses/wubzy.js
  89. 2
      util/ask.js
  90. 9
      util/pagination.js
  91. 2
      util/response/filterresponse.js
  92. 2
      util/response/sendresponse.js
  93. 10
      util/ts/pagination.ts

1
.gitignore vendored

@ -2,3 +2,4 @@ node_modules/
config.json config.json
auth.json auth.json
test.js test.js
/.idea/

@ -1 +0,0 @@
guild.js

@ -2,12 +2,12 @@
<module type="WEB_MODULE" version="4"> <module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" /> <excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" /> <excludeFolder url="file://$MODULE_DIR$/tmp" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="death" /> <orderEntry type="module" module-name="Natsukiv13" />
</component> </component>
</module> </module>

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="DiscordProjectSettings"> <component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" /> <option name="show" value="ASK" />
<option name="description" value="" />
</component> </component>
</project> </project>

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<includedPredefinedLibrary name="Node.js Core" />
</component>
</project>

@ -3,7 +3,7 @@
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Natsuki.iml" filepath="$PROJECT_DIR$/.idea/Natsuki.iml" /> <module fileurl="file://$PROJECT_DIR$/.idea/Natsuki.iml" filepath="$PROJECT_DIR$/.idea/Natsuki.iml" />
<module fileurl="file://$USER_HOME$/WebstormProjects/death/.idea/death.iml" filepath="$USER_HOME$/WebstormProjects/death/.idea/death.iml" /> <module fileurl="file://$PROJECT_DIR$/../Natsukiv13/.idea/Natsukiv13.iml" filepath="$PROJECT_DIR$/../Natsukiv13/.idea/Natsukiv13.iml" />
</modules> </modules>
</component> </component>
</project> </project>

@ -1,81 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="977e7f53-d837-472d-98d5-0d19ca269f67" name="Default Changelist" comment=""> <list default="true" id="826c705b-a7fa-4ece-b82a-e278fca7d494" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.name" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/Natsuki.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/Natsuki.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/discord.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/discord.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/jsLibraryMappings.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<<<<<<< HEAD <change beforePath="$PROJECT_DIR$/handle/command.js" beforeDir="false" afterPath="$PROJECT_DIR$/handle/command.js" afterDir="false" />
======= <change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/commands/clearwarnings.js" beforeDir="false" afterPath="$PROJECT_DIR$/commands/clearwarnings.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/commands/response.js" beforeDir="false" afterPath="$PROJECT_DIR$/commands/response.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/commands/welcome.js" beforeDir="false" afterPath="$PROJECT_DIR$/commands/welcome.js" afterDir="false" />
>>>>>>> 36ede9d7de87f20d905c506a6f9eb8a6f9d2816d
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="JavaScript File" />
</list>
</option>
</component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component> </component>
<component name="ProjectId" id="1n9IiG5kVrDYP7HFa5wLZZI14pG" /> <component name="ProjectId" id="1wWIAa3TuwhYwX0w4tzIs42s0ZG" />
<component name="ProjectViewState"> <component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" /> <option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" /> <option name="showLibraryContents" value="true" />
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="NEW_TOOLWINDOW_STRIPE_DEFAULTS" value="true" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="javascript.nodejs.core.library.configured.version" value="12.18.3" />
<property name="javascript.nodejs.core.library.typings.version" value="12.19.15" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="node.js.detected.package.eslint" value="true" /> <property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.detected.package.tslint" value="true" /> <property name="node.js.detected.package.tslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.path.for.package.tslint" value="project" />
<property name="node.js.selected.package.eslint" value="(autodetect)" /> <property name="node.js.selected.package.eslint" value="(autodetect)" />
<property name="node.js.selected.package.tslint" value="(autodetect)" /> <property name="node.js.selected.package.tslint" value="(autodetect)" />
<property name="nodejs_package_manager_path" value="npm" /> <property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
<property name="vue.rearranger.settings.migration" value="true" /> <property name="vue.rearranger.settings.migration" value="true" />
</component> </component>
<component name="RunManager"> <component name="RunManager" selected="Node.js.bot.js (1)">
<configuration name="test.js" type="NodeJSConfigurationType" temporary="true" nameIsGenerated="true" path-to-js-file="$USER_HOME$/WebstormProjects/death/test.js" working-dir="$USER_HOME$/WebstormProjects/death"> <configuration name="bot.js (1)" type="NodeJSConfigurationType" temporary="true" nameIsGenerated="true" path-to-js-file="$PROJECT_DIR$/../Natsukiv13/bot.js" working-dir="$PROJECT_DIR$/../Natsukiv13">
<method v="2" />
</configuration>
<configuration name="bot.js" type="NodeJSConfigurationType" temporary="true" nameIsGenerated="true" path-to-js-file="$PROJECT_DIR$/bot.js" working-dir="$PROJECT_DIR$">
<method v="2" /> <method v="2" />
</configuration> </configuration>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Node.js.test.js" /> <item itemvalue="Node.js.bot.js (1)" />
<item itemvalue="Node.js.bot.js" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" /> <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager"> <component name="TaskManager">
<task active="true" id="Default" summary="Default task"> <task active="true" id="Default" summary="Default task">
<changelist id="977e7f53-d837-472d-98d5-0d19ca269f67" name="Default Changelist" comment="" /> <changelist id="826c705b-a7fa-4ece-b82a-e278fca7d494" name="Changes" comment="" />
<created>1610796005269</created> <created>1628567777733</created>
<option name="number" value="Default" /> <option name="number" value="Default" />
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1610796005269</updated> <updated>1628567777733</updated>
<workItem from="1610796007081" duration="78000" /> <workItem from="1628567780803" duration="1293000" />
<workItem from="1610796096772" duration="93000" /> <workItem from="1628630503078" duration="47000" />
<workItem from="1610796205825" duration="1950000" />
<<<<<<< HEAD
<workItem from="1610841807978" duration="1714000" />
=======
<workItem from="1610841807978" duration="1127000" />
<workItem from="1611872285922" duration="326000" />
<workItem from="1611931047924" duration="34000" />
<workItem from="1612003645899" duration="25000" />
>>>>>>> 36ede9d7de87f20d905c506a6f9eb8a6f9d2816d
</task> </task>
<servers /> <servers />
</component> </component>

@ -1,10 +1,13 @@
const Discord = require('discord.js'); const Discord = require('discord.js');
const client = new Discord.Client();
const chalk = require('chalk'); const chalk = require('chalk');
const ora = require('ora'); const ora = require('ora');
const mongoose = require('mongoose'); const mongoose = require('mongoose');
const flags = Discord.Intents.FLAGS;
let fl = []; Object.keys(flags).forEach(flag => fl.push(flags[flag]))
const client = new Discord.Client({intents: fl, partials: ["CHANNEL", "REACTION", "MESSAGE"]});
client.misc = { client.misc = {
savers: ['497598953206841375', '480535078150340609', '468903364533420074'], savers: ['497598953206841375', '480535078150340609', '468903364533420074'],
activeDMs: new Discord.Collection(), activeDMs: new Discord.Collection(),

@ -150,15 +150,15 @@ module.exports = {
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp(); .setTimestamp();
try { try {
am = await message.channel.send(amEmbed); am = await message.channel.send({embeds: [amEmbed]});
await am.react('👍'); await am.react('👍');
await am.react('👎'); await am.react('👎');
} catch {return message.channel.send(":thinking: hmmm... something went wrong there. I might not have permissions to add reactions to messages, and this could be the issue.");} } catch {return message.channel.send(":thinking: hmmm... something went wrong there. I might not have permissions to add reactions to messages, and this could be the issue.");}
try { try {
let rc = am.createReactionCollector((r, u) => ['👍', '👎'].includes(r.emoji.name) && u.id === message.author.id, {max: 1, time: 60000}); let rc = am.createReactionCollector({filter: (r, u) => ['👍', '👎'].includes(r.emoji.name) && u.id === message.author.id, max: 1, time: 60000});
rc.on("collect", async r => { rc.on("collect", async r => {
if (r.emoji.name !== '👎') { if (r.emoji.name !== '👎') {
client.guilds.fetch('762707532417335296').then(g => g.channels.cache.get('817466729293938698').send(amEmbed)); client.guilds.fetch('762707532417335296').then(g => g.channels.cache.get('817466729293938698').send({embeds: [amEmbed]}));
while (true) {options.id = require('../../util/makeid')(4); if (!await AniData.findOne({id: options.id})) {break;}} while (true) {options.id = require('../../util/makeid')(4); if (!await AniData.findOne({id: options.id})) {break;}}
await new AniData(options).save(); await new AniData(options).save();
return message.author.send(`Your anime has been ${!queue ? "added" : "submitted"}`); return message.author.send(`Your anime has been ${!queue ? "added" : "submitted"}`);

@ -36,7 +36,7 @@ module.exports = {
.setColor("e8da3a") .setColor("e8da3a")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp(); .setTimestamp();
client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')); client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')]});
return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} an admin!`); return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} an admin!`);
} }
}; };

@ -38,7 +38,7 @@ module.exports = {
.setColor("e8da3a") .setColor("e8da3a")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp(); .setTimestamp();
client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')); client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')]});
return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} a developer!`); return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} a developer!`);
} }
}; };

@ -34,12 +34,12 @@ module.exports = {
.replace(client.config.database.password, 'Database Password') .replace(client.config.database.password, 'Database Password')
.replace(client.config.database.cluster, 'Database Cluster'); .replace(client.config.database.cluster, 'Database Cluster');
return options.silent ? null : message.channel.send(new Discord.MessageEmbed() return options.silent ? null : message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle('Client Evaluation') .setTitle('Client Evaluation')
.setDescription(`\`\`\`js\n${output}\n\`\`\``) .setDescription(`\`\`\`js\n${output}\n\`\`\``)
.setColor('c375f0') .setColor('c375f0')
.setFooter(`Natsuki | Evaluated in ${new Date().getTime() - timer}ms`, client.user.avatarURL()) .setFooter(`Natsuki | Evaluated in ${new Date().getTime() - timer}ms`, client.user.avatarURL())
.setTimestamp()); .setTimestamp()]});
}).catch(error => {return message.channel.send(`Error: \`${error}\`.`);}); }).catch(error => {return message.channel.send(`Error: \`${error}\`.`);});
} catch (error) { } catch (error) {
let date = new Date; date = date.toString().slice(date.toString().search(":") - 2, date.toString().search(":") + 6); let date = new Date; date = date.toString().slice(date.toString().search(":") - 2, date.toString().search(":") + 6);

@ -18,21 +18,21 @@ module.exports = {
if (args.join(" ").match(/^rm\s+/gm)) {return message.channel.send(":(");} if (args.join(" ").match(/^rm\s+/gm)) {return message.channel.send(":(");}
return cp.exec(args.join(" "), function(error, stdout, stderr) { return cp.exec(args.join(" "), function(error, stdout, stderr) {
if (error) { if (error) {
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Error") .setTitle("Error")
.setDescription(`\`\`\`${error}\`\`\``) .setDescription(`\`\`\`${error}\`\`\``)
.setColor("ff446a") .setColor("ff446a")
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
); );
} }
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Execution Successful") .setTitle("Execution Successful")
.setDescription(`\`\`\`${stdout}\`\`\``) .setDescription(`\`\`\`${stdout}\`\`\``)
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
); );
}); });
} }

@ -36,7 +36,7 @@ module.exports = {
.setColor("e8da3a") .setColor("e8da3a")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp(); .setTimestamp();
client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')); client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')]});
return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} a Support Team member!`); return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} a Support Team member!`);
} }
}; };

@ -36,14 +36,14 @@ module.exports = {
if (tguild.vip === true) {return message.reply("This server is already a VIP server.");} if (tguild.vip === true) {return message.reply("This server is already a VIP server.");}
tguild.vip = true; tguild.vip = true;
tguild.save(); tguild.save();
client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb("Added")); client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb("Added")]});
return message.reply("This server is now a VIP server!"); return message.reply("This server is now a VIP server!");
} else if (['remove', 'r', 'delete', 'd'].includes(args[0])) { } else if (['remove', 'r', 'delete', 'd'].includes(args[0])) {
let tguild = await GuildSettings.findOne({gid: message.guild.id}); let tguild = await GuildSettings.findOne({gid: message.guild.id});
if (tguild) { if (tguild) {
if (tguild.vip === false) {return message.reply("This server wasn't a VIP server anyways...");} if (tguild.vip === false) {return message.reply("This server wasn't a VIP server anyways...");}
await GuildSettings.findOneAndUpdate({gid: message.guild.id, vip: false}); await GuildSettings.findOneAndUpdate({gid: message.guild.id, vip: false});
client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb("Removed")); client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb("Removed")]});
} else {return message.reply("This server wasn't a VIP server anyways...");} } else {return message.reply("This server wasn't a VIP server anyways...");}
return message.reply("This server is no longer a VIP server!"); return message.reply("This server is no longer a VIP server!");
} else if (['check', 'c', 'view', 'v'].includes(args[0])) { } else if (['check', 'c', 'view', 'v'].includes(args[0])) {

@ -25,11 +25,12 @@ module.exports = {
]; ];
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
return message.reply(new Discord.MessageEmbed() return message.reply({embeds: [new Discord.MessageEmbed()
.setAuthor("8ball Question", message.author.avatarURL()) .setAuthor("8ball Question", message.author.avatarURL())
.setDescription("**Question:** " + question + "\n**Answer:** " + responses[Math.floor(Math.random() * responses.length)]) .setDescription("**Question:** " + question + "\n**Answer:** " + responses[Math.floor(Math.random() * responses.length)])
.setColor("c375f0") .setColor("c375f0")
.setFooter(`Asked by ${name} | Natsuki`) .setFooter(`Asked by ${name} | Natsuki`)
.setTimestamp()); .setTimestamp()]}
);
} }
}; };

@ -24,11 +24,11 @@ module.exports = {
if (!message.guild) {return message.reply("Oi! I get it if you don't like me but you can't just waltz into my DMs and bite me!");} if (!message.guild) {return message.reply("Oi! I get it if you don't like me but you can't just waltz into my DMs and bite me!");}
if (!message.guild.members.cache.has(mention.id)) {return message.reply("That user is not in this server!");} if (!message.guild.members.cache.has(mention.id)) {return message.reply("That user is not in this server!");}
if (message.author.id === mention.id) {return message.reply("Ew quit tryna bite yourself, that's weird.");} if (message.author.id === mention.id) {return message.reply("Ew quit tryna bite yourself, that's weird.");}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} bites ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} bites ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('d93846') .setColor('d93846')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -104,12 +104,12 @@ module.exports = {
let pretext = before[Math.floor(Math.random() * before.length)].replace(/{p}/g, victim); let pretext = before[Math.floor(Math.random() * before.length)].replace(/{p}/g, victim);
let note = await message.channel.send(new Discord.MessageEmbed() let note = await message.channel.send({embeds: [new Discord.MessageEmbed()
.setDescription(pretext) .setDescription(pretext)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
await require('../../util/wait')(2500); await require('../../util/wait')(2500);
@ -139,6 +139,6 @@ module.exports = {
if (mention) {finalEmbed.setThumbnail(mention.avatarURL({size: 1024}));} if (mention) {finalEmbed.setThumbnail(mention.avatarURL({size: 1024}));}
return note.edit(finalEmbed); return note.edit({embeds: [finalEmbed]});
} }
}; };

@ -16,24 +16,24 @@ module.exports = {
let savess = await Saves.findOne({name: 'kiss'}) ? await Saves.findOne({name: 'kiss'}) : new Saves({name: 'kiss'}); let savess = await Saves.findOne({name: 'kiss'}) ? await Saves.findOne({name: 'kiss'}) : new Saves({name: 'kiss'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} wants a kiss!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} wants a kiss!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them a little kiss with \`${prefix}kiss @${message.member.displayName}\`!`) .setDescription(`Give them a little kiss with \`${prefix}kiss @${message.member.displayName}\`!`)
.setColor('c375f0') .setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "I'm not really into that kind of thing. Maybe try asking in a server?" : "I'm not really into that kind of thing. Maybe try asking in a server?"
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
if (!message.guild) {return message.reply("Please make sure you're in a server so you can mention someone other than me to kiss!");} if (!message.guild) {return message.reply("Please make sure you're in a server so you can mention someone other than me to kiss!");}
if (!message.guild.members.cache.has(mention.id)) {return message.reply("That user is not in this server!");} if (!message.guild.members.cache.has(mention.id)) {return message.reply("That user is not in this server!");}
if (message.author.id === mention.id) {return message.reply("A self-kiss ought to be a little hard, don't you think?");} if (message.author.id === mention.id) {return message.reply("A self-kiss ought to be a little hard, don't you think?");}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} kisses ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} kisses ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('d428a0') .setColor('d428a0')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -28,14 +28,14 @@ module.exports = {
let stream = client.lfm.stream(saves.get(user.id)); let stream = client.lfm.stream(saves.get(user.id));
stream.on('nowPlaying', t => { stream.on('nowPlaying', t => {
clearTimeout(timeout); clearTimeout(timeout);
message.channel.send(new Discord.MessageEmbed() message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(message.guild ? message.guild.members.cache.get(user.id) ? message.guild.members.cache.get(user.id).displayName : user.username : user.username, user.avatarURL()) .setAuthor(message.guild ? message.guild.members.cache.get(user.id) ? message.guild.members.cache.get(user.id).displayName : user.username : user.username, user.avatarURL())
.setTitle(`${saves.get(user.id)} | Now Playing`) .setTitle(`${saves.get(user.id)} | Now Playing`)
.setDescription(`<@${user.id}> is currently listening to **${t.name}** by **${t.artist['#text']}**.\nView the song [here](${t.url}).`) .setDescription(`<@${user.id}> is currently listening to **${t.name}** by **${t.artist['#text']}**.\nView the song [here](${t.url}).`)
.setColor("c375f0") .setColor("c375f0")
.setThumbnail(t.image[3]['#text']) .setThumbnail(t.image[3]['#text'])
.setTimestamp() .setTimestamp()
) ]})
found = true; found = true;
stream.stop(); stream.stop();
return resolve(undefined); return resolve(undefined);

@ -75,7 +75,7 @@ module.exports = {
tss.save(); tss.save();
clearDM(); clearDM();
return dmch.send(new Discord.MessageEmbed() return dmch.send({embeds: [new Discord.MessageEmbed()
.setTitle("Secret Santa Created!") .setTitle("Secret Santa Created!")
.setDescription("Your Secret Santa has been completed! Have your members join by using `n?secretsanta join <ID>` where the ID is the ID displayed below. You can start your secret santa when you have at least 3 members with `n?secretsanta start <ID>`. If someone joins that you don't want in your secret santa, use `n?secretsanta kick <ID> <@member|userID>`. If you want to also participate, just join the same way as everyone else.") .setDescription("Your Secret Santa has been completed! Have your members join by using `n?secretsanta join <ID>` where the ID is the ID displayed below. You can start your secret santa when you have at least 3 members with `n?secretsanta start <ID>`. If someone joins that you don't want in your secret santa, use `n?secretsanta kick <ID> <@member|userID>`. If you want to also participate, just join the same way as everyone else.")
.setThumbnail(message.author.avatarURL({size: 1024})) .setThumbnail(message.author.avatarURL({size: 1024}))
@ -84,7 +84,7 @@ module.exports = {
.setColor("01bd2f") .setColor("01bd2f")
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
if (['j', 'join'].includes(args[0].toLowerCase())) { if (['j', 'join'].includes(args[0].toLowerCase())) {
@ -105,7 +105,7 @@ module.exports = {
let o = await client.users.fetch(tss.owner); let o = await client.users.fetch(tss.owner);
await dmch.send(new Discord.MessageEmbed() await dmch.send({embeds: [new Discord.MessageEmbed()
.setTitle("This Secret Santa!") .setTitle("This Secret Santa!")
.setDescription("This is the one you're trying to join!") .setDescription("This is the one you're trying to join!")
.addField("Start", tss.start) .addField("Start", tss.start)
@ -115,11 +115,11 @@ module.exports = {
.addField("Anonymous Gifters", tss.anon ? "Yes" : "No") .addField("Anonymous Gifters", tss.anon ? "Yes" : "No")
.addField("ID", `\`${tss.ssid}\``, true) .addField("ID", `\`${tss.ssid}\``, true)
.addField("Owner", o.username, true) .addField("Owner", o.username, true)
.addField("Members", tss.members ? tss.members.length : 0, true) .addField("Members", `${tss.members ? tss.members.length : 0}`, true)
.setColor("01bd2f") .setColor("01bd2f")
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
let name = await ask(mesg, "What is your name? This can be seen by everyone in the secret santa.", 60000, true); if (!name) {return clearDM();} let name = await ask(mesg, "What is your name? This can be seen by everyone in the secret santa.", 60000, true); if (!name) {return clearDM();}
if (name.length > 50) {clearDM(); return dmch.send("Maybe just the *first* name? I doubt it's over 50 characters.");} if (name.length > 50) {clearDM(); return dmch.send("Maybe just the *first* name? I doubt it's over 50 characters.");}

@ -30,13 +30,13 @@ module.exports = {
slaps.total++; slaps.total++;
slaps.markModified(`against.${mention.id}`); slaps.markModified(`against.${mention.id}`);
slaps.save(); slaps.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} slaps ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} slaps ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL())
.setDescription(`That makes slap **#${slaps.against[mention.id]}** from you to them!`) .setDescription(`That makes slap **#${slaps.against[mention.id]}** from you to them!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('d93846') .setColor('d93846')
.setFooter(`${slaps.total} slap${slaps.total === 1 ? '' : 's'} total`) .setFooter(`${slaps.total} slap${slaps.total === 1 ? '' : 's'} total`)
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -26,14 +26,14 @@ module.exports = {
let i; for (i=0; i<lvl.length; i++) {lvls += `${i+1}. <@${lvl[i]}> -> **Level ${xp[lvl[i]][1]}**\n`;} let i; for (i=0; i<lvl.length; i++) {lvls += `${i+1}. <@${lvl[i]}> -> **Level ${xp[lvl[i]][1]}**\n`;}
lvls += `\n${cfmh} *You are ranked **#${lvlp.indexOf(message.author.id) + 1}** at Level ${xp[lvlp[lvlp.indexOf(message.author.id)]][1]}.*`; lvls += `\n${cfmh} *You are ranked **#${lvlp.indexOf(message.author.id) + 1}** at Level ${xp[lvlp[lvlp.indexOf(message.author.id)]][1]}.*`;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Server Leaderboard") .setTitle("Server Leaderboard")
.setThumbnail(message.guild.iconURL({size: 2048, dynamic: true})) .setThumbnail(message.guild.iconURL({size: 2048, dynamic: true}))
.addField("Level", lvls) .addField("Level", lvls)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki | Stats may be up to 2 minutes out of sync") .setFooter("Natsuki | Stats may be up to 2 minutes out of sync")
.setTimestamp() .setTimestamp()
); ]});
/*u = Object.keys(tm.messages.members).sort((a, b) => {return tm.messages.members[a] - tm.messages.members[b];}).reverse().slice(0, Object.keys(tm.messages.members).length >= 5 ? 5 : Object.keys(tm.messages.members).length); /*u = Object.keys(tm.messages.members).sort((a, b) => {return tm.messages.members[a] - tm.messages.members[b];}).reverse().slice(0, Object.keys(tm.messages.members).length >= 5 ? 5 : Object.keys(tm.messages.members).length);
us = ``; us = ``;

@ -59,14 +59,14 @@ module.exports = {
rs.sort((a, b) => a.level - b.level); rs.sort((a, b) => a.level - b.level);
for (let i = 0; i < rs.length; i++) {s += `**${i + 1}.** Level ${rs[i].level} - <@&${rs[i].role.id}>\n`;} for (let i = 0; i < rs.length; i++) {s += `**${i + 1}.** Level ${rs[i].level} - <@&${rs[i].role.id}>\n`;}
if (!s.length) {return message.channel.send("Hmm, there was some kind of error there. It may be that your server's leveling roles were deleted, or there was some internal error when trying to read them. Contact my devs if the problem persists.");} if (!s.length) {return message.channel.send("Hmm, there was some kind of error there. It may be that your server's leveling roles were deleted, or there was some internal error when trying to read them. Contact my devs if the problem persists.");}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Server Leveling Roles") .setTitle("Server Leveling Roles")
.setThumbnail(message.guild.iconURL({size: 2048})) .setThumbnail(message.guild.iconURL({size: 2048}))
.setDescription(s) .setDescription(s)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
if (['d', 'delete', 'r', 'remove'].includes(args[0].toLowerCase())) { if (['d', 'delete', 'r', 'remove'].includes(args[0].toLowerCase())) {

@ -27,20 +27,20 @@ module.exports = {
await am.react('👎'); await am.react('👎');
} catch {return message.channel.send(":thinking: hmmm... something went wrong there. I might not have permissions to add reactions to messages, and this could be the issue.");} } catch {return message.channel.send(":thinking: hmmm... something went wrong there. I might not have permissions to add reactions to messages, and this could be the issue.");}
try { try {
let rc = am.createReactionCollector((r, u) => ['👍', '👎'].includes(r.emoji.name) && u.id === message.author.id, {max: 1, time: 60000}); let rc = am.createReactionCollector({filter: (r, u) => ['👍', '👎'].includes(r.emoji.name) && u.id === message.author.id, max: 1, time: 60000});
rc.on("collect", async r => { rc.on("collect", async r => {
let xp = new LXP({gid: message.guild.id}); let xp = new LXP({gid: message.guild.id});
xp.msg = r.emoji.name === "👍"; xp.msg = r.emoji.name === "👍";
xp.save(); xp.save();
client.misc.cache.lxp.enabled.push(message.guild.id); client.misc.cache.lxp.enabled.push(message.guild.id);
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("XP System Enabled!") .setTitle("XP System Enabled!")
.setThumbnail(message.guild.iconURL({size: 2048})) .setThumbnail(message.guild.iconURL({size: 2048}))
.setDescription(`Your server now has its leveling system enabled! If you enabled level up messages, you can set the channel for that using \`${prefix}levelchannel\`.`) //TODO update this with info on how the shiz works .setDescription(`Your server now has its leveling system enabled! If you enabled level up messages, you can set the channel for that using \`${prefix}levelchannel\`.`) //TODO update this with info on how the shiz works
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
}); });
rc.on("end", collected => {if (!collected.size) {return message.channel.send("Looks like you ran out of time! Try again?");}}); rc.on("end", collected => {if (!collected.size) {return message.channel.send("Looks like you ran out of time! Try again?");}});
} catch {return message.channel.send("Hmm... there was some error problem thingy that happened when I tried to enable XP for your server. If it keeps not working, then go yell at my devs!");} } catch {return message.channel.send("Hmm... there was some error problem thingy that happened when I tried to enable XP for your server. If it keeps not working, then go yell at my devs!");}

@ -27,15 +27,15 @@ module.exports = {
if (!txp.xp[u.id]) {return message.channel.send(`${u.id === message.author.id ? "You" : "That user"} doesn't have any leveling info available!`);} if (!txp.xp[u.id]) {return message.channel.send(`${u.id === message.author.id ? "You" : "That user"} doesn't have any leveling info available!`);}
xp = {xp: txp.xp[u.id][0], level: txp.xp[u.id][1]}; xp = {xp: txp.xp[u.id][0], level: txp.xp[u.id][1]};
} else {xp = client.misc.cache.lxp.xp[message.guild.id][u.id];} } else {xp = client.misc.cache.lxp.xp[message.guild.id][u.id];}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${u.displayName}${u.displayName.toLowerCase().endsWith('s') ? "'" : "'s"} Stats`) .setTitle(`${u.displayName}${u.displayName.toLowerCase().endsWith('s') ? "'" : "'s"} Stats`)
.setDescription("Local leveling stats") .setDescription("Local leveling stats")
.addField("Level", xp.level, true) .addField("Level", `${xp.level}`, true)
.addField("XP", `**${xp.xp}** of **${Math.ceil(100 + (((xp.level / 3) ** 2) * 2))}** needed to level up`, true) .addField("XP", `**${xp.xp}** of **${Math.ceil(100 + (((xp.level / 3) ** 2) * 2))}** needed to level up`, true)
.setThumbnail(client.users.cache.get(u.id).avatarURL({size: 2048})) .setThumbnail(client.users.cache.get(u.id).avatarURL({size: 2048}))
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
) ]})
} }
}; };

@ -64,9 +64,9 @@ module.exports = {
if (!tar || !tar.triggers.length) {return message.channel.send("You can't edit any auto-responses... because there aren't any here...");} if (!tar || !tar.triggers.length) {return message.channel.send("You can't edit any auto-responses... because there aren't any here...");}
let sar = sortARs(tar); let sar = sortARs(tar);
await message.channel.send(viewARs(sar).addField("Editing", "Please say the **number** of the AR you wish to edit.")); await message.channel.send({embeds: [viewARs(sar).addField("Editing", "Please say the **number** of the AR you wish to edit.")]});
let collected; let collected;
try {collected = await message.channel.awaitMessages(m => m.author.id === message.author.id, {errors: ['time'], time: 60001, max: 1});} try {collected = await message.channel.awaitMessages({filter: m => m.author.id === message.author.id, errors: ['time'], time: 60001, max: 1});}
catch {return message.channel.send("This question has timed out. Please try again!");} catch {return message.channel.send("This question has timed out. Please try again!");}
collected = collected.first().content.trim(); collected = collected.first().content.trim();
if (isNaN(Number(collected))) {return message.channel.send("Hmmm, maybe try replying with a *number*!");} if (isNaN(Number(collected))) {return message.channel.send("Hmmm, maybe try replying with a *number*!");}
@ -89,9 +89,9 @@ module.exports = {
if (!tar || !tar.triggers.length) {return message.channel.send("It's not like this server has any ARs for me to delete in the first place!");} if (!tar || !tar.triggers.length) {return message.channel.send("It's not like this server has any ARs for me to delete in the first place!");}
let sar = sortARs(tar); let sar = sortARs(tar);
await message.channel.send(viewARs(sar).addField("Deletion", "Please say the **number** of the AR you wish to delete.")); await message.channel.send({embeds: [viewARs(sar).addField("Deletion", "Please say the **number** of the AR you wish to delete.")]});
let collected; let collected;
try {collected = await message.channel.awaitMessages(m => m.author.id === message.author.id, {errors: ['time'], time: 60000, max: 1});} try {collected = await message.channel.awaitMessages({filter: m => m.author.id === message.author.id, errors: ['time'], time: 60000, max: 1});}
catch {return message.channel.send("This question has timed out. Please try again!");} catch {return message.channel.send("This question has timed out. Please try again!");}
collected = collected.first().content.trim(); collected = collected.first().content.trim();
if (isNaN(Number(collected))) {return message.channel.send("You didn't reply with a number!");} if (isNaN(Number(collected))) {return message.channel.send("You didn't reply with a number!");}
@ -113,7 +113,7 @@ module.exports = {
if (['v', 'view', 'l', 'list'].includes(args[0].toLowerCase())) { if (['v', 'view', 'l', 'list'].includes(args[0].toLowerCase())) {
let tar = await AR.findOne({gid: message.guild.id}); let tar = await AR.findOne({gid: message.guild.id});
if (!tar || !tar.triggers.length) {return message.channel.send("This server has no ARs!");} if (!tar || !tar.triggers.length) {return message.channel.send("This server has no ARs!");}
return message.channel.send(viewARs(sortARs(tar))); return message.channel.send({embeds: [viewARs(sortARs(tar))]});
} }
if (['s', 'settings'].includes(args[0].toLowerCase())) { if (['s', 'settings'].includes(args[0].toLowerCase())) {

@ -26,7 +26,7 @@ module.exports = {
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
if (!options.vsmall) {avem.setTimestamp();} if (!options.vsmall) {avem.setTimestamp();}
return message.channel.send(avem); return message.channel.send({embeds: [avem]});
} catch {return message.reply("Hmm, there seems to have been an error while I tried to show you that user's avatar.");} } catch {return message.reply("Hmm, there seems to have been an error while I tried to show you that user's avatar.");}
} }
}; };

@ -20,6 +20,6 @@ module.exports = {
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp(); .setTimestamp();
categories.forEach(category => ce.addField(category, Array.from(client.commands.values()).filter(command => command.meta ? command.meta.category === category : category === "Uncategorized").map(cmd => `\`${cmd.name}\``).join(', '))); categories.forEach(category => ce.addField(category, Array.from(client.commands.values()).filter(command => command.meta ? command.meta.category === category : category === "Uncategorized").map(cmd => `\`${cmd.name}\``).join(', ')));
return message.channel.send(ce); return message.channel.send({embeds: [ce]});
} }
}; };

@ -74,13 +74,13 @@ module.exports = {
} else { } else {
let page = ''; let page = '';
for (let i = 0; i < lookup.size; i++) {page += `<${emotes[i].animated ? 'a' : ''}:${emotes[i].name}:${emotes[i].id}> \`:${emotes[i].name}:\` -> ${emotes[i].id}\n`;} for (let i = 0; i < lookup.size; i++) {page += `<${emotes[i].animated ? 'a' : ''}:${emotes[i].name}:${emotes[i].id}> \`:${emotes[i].name}:\` -> ${emotes[i].id}\n`;}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`Emoji Lookup Results - ${lookup.size}`) .setTitle(`Emoji Lookup Results - ${lookup.size}`)
.setDescription(page) .setDescription(page)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
} }
let name; let id; let animated; let url; let name; let id; let animated; let url;
@ -114,7 +114,7 @@ module.exports = {
.setTimestamp(); .setTimestamp();
if (access) {finEm.setThumbnail(client.emojis.cache.get(id).guild.iconURL({size: 1024}));} if (access) {finEm.setThumbnail(client.emojis.cache.get(id).guild.iconURL({size: 1024}));}
if (access && client.emojis.cache.get(id).guild.members.cache.has(message.author.id) && client.emojis.cache.get(id).guild.id !== (message.guild ? message.guild.id : 1)) {finEm.addField("Server", `You're in the server this emoji is from: **${client.emojis.cache.get(id).guild.name}**`);} if (access && client.emojis.cache.get(id).guild.members.cache.has(message.author.id) && client.emojis.cache.get(id).guild.id !== (message.guild ? message.guild.id : 1)) {finEm.addField("Server", `You're in the server this emoji is from: **${client.emojis.cache.get(id).guild.name}**`);}
return message.channel.send(finEm); return message.channel.send({embeds: [finEm]});
} catch { } catch {
return message.channel.send("There was an error getting info for that emoji. You may not have given a valid emoji, or the ID you gave doesn't lead to a real emoji."); return message.channel.send("There was an error getting info for that emoji. You may not have given a valid emoji, or the ID you gave doesn't lead to a real emoji.");
} }

@ -54,7 +54,7 @@ module.exports = {
if (pages.length > 1) { if (pages.length > 1) {
let help = new Pagination(message.channel, pages, message, client, true); let help = new Pagination(message.channel, pages, message, client, true);
return await help.start({endTime: 120000, user: message.author.id}); return await help.start({endTime: 120000, user: message.author.id});
} else {return message.channel.send(pages[0].setFooter("Natsuki", client.user.avatarURL()).setTimestamp());} } else {return message.channel.send({embeds: [pages[0].setFooter("Natsuki", client.user.avatarURL()).setTimestamp()]});}
} else { } else {
let command; let command;
if (client.commands.has(args[0])) {command = client.commands.get(args[0]);} if (client.commands.has(args[0])) {command = client.commands.get(args[0]);}

@ -18,17 +18,18 @@ module.exports = {
let botData = await require('../../models/bot').findOne({finder: 'lel'}); let botData = await require('../../models/bot').findOne({finder: 'lel'});
let user = await UserData.findOne({uid: message.author.id}); let user = await UserData.findOne({uid: message.author.id});
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor("About Me!", client.users.cache.get(client.developers[Math.floor(Math.random() * client.developers.length)]).avatarURL()) .setAuthor("About Me!", client.users.cache.get(client.developers[Math.floor(Math.random() * client.developers.length)]).avatarURL())
.setThumbnail(client.user.avatarURL({size: 1024})) .setThumbnail(client.user.avatarURL({size: 1024}))
.setDescription(`I am created by WubzyGD#8766 and Slushie#1234 - a pair conveniently known as NatsukiDev - in JavaScript/Discord.js!\n\nI'm a powerful all-purpose bot with everything you could want or need, and I have my own set of unique skills that you won't find anywhere else ^^`) .setDescription(`I am created by WubzyGD#8766 and Slushie#1234 - a pair conveniently known as NatsukiDev - in JavaScript/Discord.js!\n\nI'm a powerful all-purpose bot with everything you could want or need, and I have my own set of unique skills that you won't find anywhere else ^^`)
.addField("Presence", `I'm currently in **${client.guilds.cache.size}** servers, and I'm watching over approximately **${client.users.cache.size}** people!`) .addField("Presence", `I'm currently in **${client.guilds.cache.size}** servers, and I'm watching over approximately **${client.users.cache.size}** people!`)
.addField("Restarts", botData.restarts, true) .addField("Restarts", `${botData.restarts}`, true)
.addField("Commands Executed", `${botData.commands}${user ? `\nYou: **${user.commands}** | **${Math.floor((user.commands / botData.commands) * 100)}%**` : ''}`, true) .addField("Commands Executed", `${botData.commands}${user ? `\nYou: **${user.commands}** | **${Math.floor((user.commands / botData.commands) * 100)}%**` : ''}`, true)
.addField("Last Restart", moment(botData.lastRestart).fromNow(), true) .addField("Last Restart", moment(botData.lastRestart).fromNow(), true)
.addField("Mem", `\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB\` heap of \`${(process.memoryUsage().heapTotal / 1024 / 1024).toFixed(2)}MB\` allocated. | **${Math.floor((process.memoryUsage().heapUsed / process.memoryUsage().heapTotal) * 100)}%**\nTotal RAM: \`${(os.totalmem() / 1024 / 1024 / 1024).toFixed(2)}GB\` | Free RAM: \`${(os.freemem() / 1024 / 1024 / 1024).toFixed(2)}GB\``, true) .addField("Mem", `\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB\` heap of \`${(process.memoryUsage().heapTotal / 1024 / 1024).toFixed(2)}MB\` allocated. | **${Math.floor((process.memoryUsage().heapUsed / process.memoryUsage().heapTotal) * 100)}%**\nTotal RAM: \`${(os.totalmem() / 1024 / 1024 / 1024).toFixed(2)}GB\` | Free RAM: \`${(os.freemem() / 1024 / 1024 / 1024).toFixed(2)}GB\``, true)
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp()); .setTimestamp()
]});
} }
}; };

@ -9,14 +9,14 @@ module.exports = {
meta: { meta: {
category: 'Misc', category: 'Misc',
description: "Stop auto responses from being sent to a specific channel.", description: "Stop auto responses from being sent to a specific channel.",
syntax: '`ignorear [#channel|channelID]`', syntax: '`ignorear [#channel|channelId]`',
extra: null, extra: null,
guildOnly: true guildOnly: true
}, },
help: new Discord.MessageEmbed() help: new Discord.MessageEmbed()
.setTitle("Help -> AR Ignoring") .setTitle("Help -> AR Ignoring")
.setDescription("Provide a channel (or don't to use the current channel) to be voided from auto-responses, that way the responses won't send in places you don't want them to.") .setDescription("Provide a channel (or don't to use the current channel) to be voided from auto-responses, that way the responses won't send in places you don't want them to.")
.addField("Syntax", "`[#channel|channelID]` - channel is optional."), .addField("Syntax", "`[#channel|channelId]` - channel is optional."),
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
const tg = await GuildData.findOne({gid: message.guild.id}); const tg = await GuildData.findOne({gid: message.guild.id});
if ((!tg || !tg.staffrole || !tg.staffrole.length || !message.member.roles.cache.has(tg.staffrole) && !message.member.permissions.has("ADMINISTRATOR"))) {return message.channel.send("You must have the staff role or be an administrator in this server in order to edit AR settings.");} if ((!tg || !tg.staffrole || !tg.staffrole.length || !message.member.roles.cache.has(tg.staffrole) && !message.member.permissions.has("ADMINISTRATOR"))) {return message.channel.send("You must have the staff role or be an administrator in this server in order to edit AR settings.");}

@ -11,13 +11,13 @@ module.exports = {
}, },
help: "Shows you my invite and support server invite", help: "Shows you my invite and support server invite",
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("My links!") .setTitle("My links!")
.setThumbnail(client.user.avatarURL({size: 2048})) .setThumbnail(client.user.avatarURL({size: 2048}))
.setDescription("[Bot Invite](https://discord.com/oauth2/authorize?client_id=762701327431237644&scope=bot&permissions=1581116647)\n`->` Use this link to invite Natsuki to your server! This has all the required permissions in it that the I need to work, and it is not recommended that you change them. Doing so will make it so that some commands don't function properly or won't complete (I'll usually tell you when I'm missing a permission).\n\n[Support Server Invite](https://discord.gg/u9c2uD24wB)\n`->` Use this to join my support server! Here you can talk to the devs, suggest features, hang out with the community, get update alerts, report bugs/issues and get help, or just stop and say hi!") .setDescription("[Bot Invite](https://discord.com/oauth2/authorize?client_id=762701327431237644&scope=bot&permissions=1581116647)\n`->` Use this link to invite Natsuki to your server! This has all the required permissions in it that the I need to work, and it is not recommended that you change them. Doing so will make it so that some commands don't function properly or won't complete (I'll usually tell you when I'm missing a permission).\n\n[Support Server Invite](https://discord.gg/u9c2uD24wB)\n`->` Use this to join my support server! Here you can talk to the devs, suggest features, hang out with the community, get update alerts, report bugs/issues and get help, or just stop and say hi!")
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
); ]});
} }
}; };

@ -12,10 +12,10 @@ module.exports = {
}, },
help: "shows my memory usage stats", help: "shows my memory usage stats",
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("RAM Usage") .setTitle("RAM Usage")
.setDescription(`\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB\` heap of \`${(process.memoryUsage().heapTotal / 1024 / 1024).toFixed(2)}MB\` allocated. | **${Math.floor((process.memoryUsage().heapUsed / process.memoryUsage().heapTotal) * 100)}%**\nTotal RAM: \`${(os.totalmem() / 1024 / 1024 / 1024).toFixed(2)}GB\` | Free RAM: \`${(os.freemem() / 1024 / 1024 / 1024).toFixed(2)}GB\``) .setDescription(`\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB\` heap of \`${(process.memoryUsage().heapTotal / 1024 / 1024).toFixed(2)}MB\` allocated. | **${Math.floor((process.memoryUsage().heapUsed / process.memoryUsage().heapTotal) * 100)}%**\nTotal RAM: \`${(os.totalmem() / 1024 / 1024 / 1024).toFixed(2)}GB\` | Free RAM: \`${(os.freemem() / 1024 / 1024 / 1024).toFixed(2)}GB\``)
.setColor('c375f0') .setColor('c375f0')
); ]});
} }
}; };

@ -35,7 +35,7 @@ module.exports = {
client.guildconfig.prefixes.set(message.guild.id, np); client.guildconfig.prefixes.set(message.guild.id, np);
let upm = await message.reply("sure thing!"); let upm = await message.reply("sure thing!");
await require('../../util/wait')(1750); await require('../../util/wait')(1750);
return upm.edit(new Discord.MessageEmbed() return upm.edit({embeds: [new Discord.MessageEmbed()
.setAuthor('Prefix updated!', message.author.avatarURL()) .setAuthor('Prefix updated!', message.author.avatarURL())
.setDescription(`New prefix: \`${np}\``) .setDescription(`New prefix: \`${np}\``)
.addField('Auditing Admin', `<@${message.member.id}>`, true) .addField('Auditing Admin', `<@${message.member.id}>`, true)
@ -43,6 +43,6 @@ module.exports = {
.setColor('c375f0') .setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
}; };

@ -14,11 +14,11 @@ module.exports = {
}, },
execute(message, msg, args, cmd, prefix, mention, client) { execute(message, msg, args, cmd, prefix, mention, client) {
let now = new Date(); let now = new Date();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor("Server info", message.author.avatarURL()) .setAuthor("Server info", message.author.avatarURL())
.setTitle(message.guild.name) .setTitle(message.guild.name)
.setThumbnail(message.guild.iconURL({size: 2048})) .setThumbnail(message.guild.iconURL({size: 2048}))
.setDescription(`Name: \`${message.guild.name}\`\n\nOwner: <@${message.guild.ownerID}>\nRegion: ${message.guild.region}\nIcon: [URL](${message.guild.iconURL({size: 2048})})`) .setDescription(`Name: \`${message.guild.name}\`\n\nOwner: <@${message.guild.ownerId}>\nRegion: ${message.guild.region}\nIcon: [URL](${message.guild.iconURL({size: 2048})})`)
.addField("Members", `${message.guild.members.cache.size}\n[${message.guild.members.cache.filter(m => !client.users.cache.get(m.id).bot).size} Humans | ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).bot).size} Bots]\n\nOnline: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "online").size} | Idle: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "idle").size} | Do not Disturb: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "dnd").size}`) .addField("Members", `${message.guild.members.cache.size}\n[${message.guild.members.cache.filter(m => !client.users.cache.get(m.id).bot).size} Humans | ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).bot).size} Bots]\n\nOnline: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "online").size} | Idle: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "idle").size} | Do not Disturb: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "dnd").size}`)
.addField("Channels", `${message.guild.channels.cache.size}\n[${message.guild.channels.cache.filter(ch => ch.type === "text").size} Text | ${message.guild.channels.cache.filter(ch => ch.type === "voice").size} Voice]`, true) .addField("Channels", `${message.guild.channels.cache.size}\n[${message.guild.channels.cache.filter(ch => ch.type === "text").size} Text | ${message.guild.channels.cache.filter(ch => ch.type === "voice").size} Voice]`, true)
.addField("Roles", `${message.guild.roles.cache.size} (you have ${message.member.roles.cache.size})\nYour highest is <@&${message.member.roles.highest.id}>`, true) .addField("Roles", `${message.guild.roles.cache.size} (you have ${message.member.roles.cache.size})\nYour highest is <@&${message.member.roles.highest.id}>`, true)
@ -26,6 +26,6 @@ module.exports = {
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
); ]});
} }
}; };

@ -11,13 +11,13 @@ module.exports = {
}, },
help: "Get an invite to Natsuki's support server!", help: "Get an invite to Natsuki's support server!",
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Sure thing!") .setTitle("Sure thing!")
.setThumbnail(client.user.avatarURL({size: 2048})) .setThumbnail(client.user.avatarURL({size: 2048}))
.setDescription("Join the server with [this link](https://discord.gg/u9c2uD24wB)!\n\n`->` Here you can talk to the devs, suggest features, hang out with the community, get update alerts, report bugs/issues and get help, or just stop and say hi!") .setDescription("Join the server with [this link](https://discord.gg/u9c2uD24wB)!\n\n`->` Here you can talk to the devs, suggest features, hang out with the community, get update alerts, report bugs/issues and get help, or just stop and say hi!")
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
); ]});
} }
}; };

@ -17,12 +17,12 @@ module.exports = {
help: "Shows my uptime, which is how long it's been since my last restart.", help: "Shows my uptime, which is how long it's been since my last restart.",
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
const bot = await Bot.findOne({finder: 'lel'}); const bot = await Bot.findOne({finder: 'lel'});
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Uptime") .setTitle("Uptime")
.setDescription(moment.preciseDiff(moment(bot.lastRestart), moment())) .setDescription(`${moment.preciseDiff(moment(bot.lastRestart), moment())}`)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
) ]})
} }
}; };

@ -31,7 +31,7 @@ module.exports = {
if (message.guild) { if (message.guild) {
infoembed.addField('In Server Since', `${moment(person.joinedAt).fromNow()}${!moment(person.joinedAt).fromNow().includes('days') ? ` | ${Math.floor((new Date().getTime() - person.joinedAt.getTime()) / (60 * 60 * 24 * 1000))} days` : ''}\nMember for **${Math.round(((now.getTime() - new Date(message.member.joinedAt.getTime()).getTime()) / (new Date(message.guild.createdAt).getTime() - now.getTime())) * -100)}%** of server lifetime`, false) infoembed.addField('In Server Since', `${moment(person.joinedAt).fromNow()}${!moment(person.joinedAt).fromNow().includes('days') ? ` | ${Math.floor((new Date().getTime() - person.joinedAt.getTime()) / (60 * 60 * 24 * 1000))} days` : ''}\nMember for **${Math.round(((now.getTime() - new Date(message.member.joinedAt.getTime()).getTime()) / (new Date(message.guild.createdAt).getTime() - now.getTime())) * -100)}%** of server lifetime`, false)
.addField('Roles', `**${person.roles.cache.size}** roles | [${person.roles.cache.size}/${message.guild.roles.cache.size}] - ${Math.round((person.roles.cache.size / message.guild.roles.cache.size) * 100)}%\nHighest: ${person.roles.highest ? `<@&${person.roles.highest.id}>` : 'No roles!'}`, true) .addField('Roles', `**${person.roles.cache.size}** roles | [${person.roles.cache.size}/${message.guild.roles.cache.size}] - ${Math.round((person.roles.cache.size / message.guild.roles.cache.size) * 100)}%\nHighest: ${person.roles.highest ? `<@&${person.roles.highest.id}>` : 'No roles!'}`, true)
if (message.guild.owner.id === person.id) {infoembed.addField("Extra", "User is the server's owner!");} if (message.guild.ownerId === person.id) {infoembed.addField("Extra", "User is the server's owner!");}
else if (person.permissions.has("ADMINISTRATOR")) {infoembed.addField("Extra", "User is an admin! Watch out :eyes:");} else if (person.permissions.has("ADMINISTRATOR")) {infoembed.addField("Extra", "User is an admin! Watch out :eyes:");}
} }

@ -47,7 +47,7 @@ module.exports = {
else {if (args[1] && !options.days /*&& (!options.notes || !options.notes.length)*/ && (!options.reason || !options.reason.length)) {args.shift(); reason = args.join(" ");}} else {if (args[1] && !options.days /*&& (!options.notes || !options.notes.length)*/ && (!options.reason || !options.reason.length)) {args.shift(); reason = args.join(" ");}}
if (reason && reason.length > 250) {return message.channel.send("I mean I get it, they pissed you off, but do you really need to give me that much info on why you're banning them? I can't keep track of all that!");} if (reason && reason.length > 250) {return message.channel.send("I mean I get it, they pissed you off, but do you really need to give me that much info on why you're banning them? I can't keep track of all that!");}
return user.ban({reason: reason, days: typeof days === "number" ? days : 0}) return message.guild.members.ban(user.id, {reason: reason, days: typeof days === "number" ? days : 0})
.then(async () => { .then(async () => {
/*let mh = await Mod.findOne({gid: message.guild.id}) || new Mod({gid: message.guild.id}); /*let mh = await Mod.findOne({gid: message.guild.id}) || new Mod({gid: message.guild.id});
let mhcases = mh.cases; let mhcases = mh.cases;

@ -37,7 +37,7 @@ module.exports = {
} }
if (cwc > 0) {ws += '*Plus ' + cwc + ' other warnings that have been cleared.*';} if (cwc > 0) {ws += '*Plus ' + cwc + ' other warnings that have been cleared.*';}
if (cwc === mh.warnings[user.id].length) {return message.reply("That user has no uncleared warnings.");} if (cwc === mh.warnings[user.id].length) {return message.reply("That user has no uncleared warnings.");}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("User Warnings") .setTitle("User Warnings")
.setThumbnail(client.users.cache.get(user.id).avatarURL({size: 1024})) .setThumbnail(client.users.cache.get(user.id).avatarURL({size: 1024}))
.setDescription(`For ${user.displayName}`) .setDescription(`For ${user.displayName}`)
@ -45,6 +45,6 @@ module.exports = {
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
}; };

@ -37,13 +37,13 @@ module.exports = {
tg.save(); tg.save();
tr.bindings.set('leave', args[2].toLowerCase()); tr.bindings.set('leave', args[2].toLowerCase());
tr.save(); tr.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Leave Channel/Message Updated") .setTitle("Leave Channel/Message Updated")
.setDescription(`This server's leave-notifying settings have been altered by ${message.author.tag}.\n\n**Channel**: <#${ch}>\n**Response Name**: \`${args[2].toLowerCase()}\``) .setDescription(`This server's leave-notifying settings have been altered by ${message.author.tag}.\n\n**Channel**: <#${ch}>\n**Response Name**: \`${args[2].toLowerCase()}\``)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
) ]})
} }
if (['t', 'test'].includes(args[0].toLowerCase())) { if (['t', 'test'].includes(args[0].toLowerCase())) {
@ -60,13 +60,13 @@ module.exports = {
tr.bindings.delete('leave'); tr.bindings.delete('leave');
tr.save(); tr.save();
} }
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Leave Channel/Message Updated") .setTitle("Leave Channel/Message Updated")
.setDescription(`This server's leave-notifying settings have been altered by ${message.author.tag}.\n\n**Channel**: None`) .setDescription(`This server's leave-notifying settings have been altered by ${message.author.tag}.\n\n**Channel**: None`)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
} }
}; };

@ -71,14 +71,14 @@ module.exports = {
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp(); .setTimestamp();
if (hasBinding) {infoEmbed.addField("Server Bindings", bm);} if (hasBinding) {infoEmbed.addField("Server Bindings", bm);}
return message.channel.send(infoEmbed); return message.channel.send({embeds: [infoEmbed]});
} }
if (['edit', 'e', 'm', 'modify'].includes(args[0].toLowerCase())) { if (['edit', 'e', 'm', 'modify'].includes(args[0].toLowerCase())) {
let options = await getResponse(message, args[1]); let options = await getResponse(message, args[1]);
if (!options) {return;} if (!options) {return;}
} }
return message.channel.send("Invalid argument! (Or it's one that isn't supported yet. Sorry.)");
return message.channel.send(`Syntax: \`${prefix}response <new|edit|view|list|delete|test|quick>\``); return message.channel.send(`Syntax: \`${prefix}response <new|edit|view|list|delete|test|quick>\``);
} }

@ -41,7 +41,7 @@ module.exports = {
tguild.save(); tguild.save();
let upm = await message.reply("sure thing!"); let upm = await message.reply("sure thing!");
await require('../../util/wait')(1750); await require('../../util/wait')(1750);
return upm.edit(new Discord.MessageEmbed() return upm.edit({embeds: [new Discord.MessageEmbed()
.setAuthor('Staff role updated!', message.author.avatarURL()) .setAuthor('Staff role updated!', message.author.avatarURL())
.setDescription(`<@&${tguild.staffrole}> can now edit my settings in this server.`) .setDescription(`<@&${tguild.staffrole}> can now edit my settings in this server.`)
.addField('Auditing Admin', `<@${message.member.id}>`, true) .addField('Auditing Admin', `<@${message.member.id}>`, true)
@ -49,7 +49,7 @@ module.exports = {
.setColor('c375f0') .setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
} }
}; };

@ -45,7 +45,7 @@ module.exports = {
} }
if (cwc > 0) {ws += '*Plus ' + cwc + ' other warnings that have been cleared.*';} if (cwc > 0) {ws += '*Plus ' + cwc + ' other warnings that have been cleared.*';}
if (cwc === mh.warnings[user.id].length) {return message.reply("That user has no uncleared warnings.");} if (cwc === mh.warnings[user.id].length) {return message.reply("That user has no uncleared warnings.");}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("User Warnings") .setTitle("User Warnings")
.setThumbnail(client.users.cache.get(user.id).avatarURL({size: 1024})) .setThumbnail(client.users.cache.get(user.id).avatarURL({size: 1024}))
.setDescription(`For ${user.displayName}`) .setDescription(`For ${user.displayName}`)
@ -53,7 +53,7 @@ module.exports = {
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
else if (['clear', 'e', 'empty'].includes(args[0].toLowerCase())) { else if (['clear', 'e', 'empty'].includes(args[0].toLowerCase())) {

@ -37,13 +37,13 @@ module.exports = {
tg.save(); tg.save();
tr.bindings.set('welcome', args[2].toLowerCase()); tr.bindings.set('welcome', args[2].toLowerCase());
tr.save(); tr.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Welcome Channel/Message Updated") .setTitle("Welcome Channel/Message Updated")
.setDescription(`This server's member-welcoming settings have been altered by ${message.author.tag}.\n\n**Channel**: <#${ch}>\n**Response Name**: \`${args[2].toLowerCase()}\``) .setDescription(`This server's member-welcoming settings have been altered by ${message.author.tag}.\n\n**Channel**: <#${ch}>\n**Response Name**: \`${args[2].toLowerCase()}\``)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
) ]})
} }
if (['t', 'test'].includes(args[0].toLowerCase())) { if (['t', 'test'].includes(args[0].toLowerCase())) {
@ -60,13 +60,13 @@ module.exports = {
tr.bindings.delete('welcome'); tr.bindings.delete('welcome');
tr.save(); tr.save();
} }
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Welcome Channel/Message Updated") .setTitle("Welcome Channel/Message Updated")
.setDescription(`This server's member-welcoming settings have been altered by ${message.author.tag}.\n\n**Channel**: None`) .setDescription(`This server's member-welcoming settings have been altered by ${message.author.tag}.\n\n**Channel**: None`)
.setColor('c375f0') .setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
} }
}; };

@ -21,14 +21,14 @@ module.exports = {
let person = args[1] ? args[1].match(/^<@(?:!?)(?:\d+)>$/) && message.mentions.users.first() ? message.mentions.users.first().id : message.guild && message.guild.members.cache.has(args[1]) ? args[1] : message.author.id : message.author.id; let person = args[1] ? args[1].match(/^<@(?:!?)(?:\d+)>$/) && message.mentions.users.first() ? message.mentions.users.first().id : message.guild && message.guild.members.cache.has(args[1]) ? args[1] : message.author.id : message.author.id;
let pud = await UserData.findOne({uid: person}); let pud = await UserData.findOne({uid: person});
if (!pud || !pud.bio || !pud.bio.length) {return message.reply(person === message.author.id ? "You don't have a bio set!" : "That user has no bio for me to show you!");} if (!pud || !pud.bio || !pud.bio.length) {return message.reply(person === message.author.id ? "You don't have a bio set!" : "That user has no bio for me to show you!");}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`Bio for ${message.guild ? message.guild.members.cache.get(person).displayName : message.author.username}`) .setTitle(`Bio for ${message.guild ? message.guild.members.cache.get(person).displayName : message.author.username}`)
.setThumbnail(client.users.cache.get(person).avatarURL({size: 2048})) .setThumbnail(client.users.cache.get(person).avatarURL({size: 2048}))
.setDescription(pud.bio) .setDescription(pud.bio)
.setColor(pud.color && pud.color.length ? pud.color : 'c375f0') .setColor(pud.color && pud.color.length ? pud.color : 'c375f0')
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
if (['s', 'set'].includes(args[0].toLowerCase())) { if (['s', 'set'].includes(args[0].toLowerCase())) {
args.shift(); args.shift();
@ -43,14 +43,14 @@ module.exports = {
if (bio.length > 200) {return message.reply("Please keep your bio under 200 characters!");} if (bio.length > 200) {return message.reply("Please keep your bio under 200 characters!");}
tu.bio = bio; tu.bio = bio;
tu.save(); tu.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`Bio Set!`) .setTitle(`Bio Set!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(tu.bio) .setDescription(tu.bio)
.setColor(tu.color && tu.color.length ? tu.color : 'c375f0') .setColor(tu.color && tu.color.length ? tu.color : 'c375f0')
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
if (['c', 'clear'].includes(args[0].toLowerCase())) { if (['c', 'clear'].includes(args[0].toLowerCase())) {
tu.bio = ''; tu.bio = '';

@ -15,11 +15,11 @@ module.exports = {
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let savess = await Saves.findOne({name: 'blush'}) ? await Saves.findOne({name: 'blush'}) : new Saves({name: 'blush'}); let savess = await Saves.findOne({name: 'blush'}) ? await Saves.findOne({name: 'blush'}) : new Saves({name: 'blush'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) {return message.channel.send(new Discord.MessageEmbed() if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} blushes UwU`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} blushes UwU`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('ad0072') .setColor('ad0072')
);} ]});}
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}
let tu = await UserData.findOne({uid: message.author.id}); let tu = await UserData.findOne({uid: message.author.id});

@ -19,13 +19,13 @@ module.exports = {
let savess = await Saves.findOne({name: 'bonk'}) ? await Saves.findOne({name: 'bonk'}) : new Saves({name: 'bonk'}); let savess = await Saves.findOne({name: 'bonk'}) ? await Saves.findOne({name: 'bonk'}) : new Saves({name: 'bonk'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} needs a good bonk!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} needs a good bonk!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them one with \`${prefix}bonk @${message.member.displayName}\`!`) .setDescription(`Give them one with \`${prefix}bonk @${message.member.displayName}\`!`)
.setColor('dda0dd') .setColor('dda0dd')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "I fucking dare you to hit me." : "I fucking dare you to hit me."
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -37,13 +37,13 @@ module.exports = {
bonk.total++; bonk.total++;
bonk.markModified(`against.${mention.id}`); bonk.markModified(`against.${mention.id}`);
bonk.save(); bonk.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} bonks ${message.guild.members.cache.get(mention.id).displayName}!...ouch! `, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} bonks ${message.guild.members.cache.get(mention.id).displayName}!...ouch! `, message.author.avatarURL())
.setDescription(`You've bonked them **${bonk.against[mention.id] === 1 ? 'once' : `${bonk.against[mention.id]} times!`}**`) .setDescription(`You've bonked them **${bonk.against[mention.id] === 1 ? 'once' : `${bonk.against[mention.id]} times!`}**`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('dda0dd') .setColor('dda0dd')
.setFooter(`${bonk.total} bonk${bonk.total === 1 ? '' : 's'} total`) .setFooter(`${bonk.total} bonk${bonk.total === 1 ? '' : 's'} total`)
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -21,6 +21,6 @@ module.exports = {
tu.statustype = ''; tu.statustype = '';
tu.save(); tu.save();
require('../../util/siftstatuses')(client, message.author.id, true); require('../../util/siftstatuses')(client, message.author.id, true);
return message.reply("welcome back! I cleared your status.").then(m => {m.delete({timeout: 5000}).then(() => {if (message.guild && message.guild.me.permissions.has("DELETE_MESSAGES")) {message.delete().catch(() => {});}})}); return message.reply("welcome back! I cleared your status.").then(m => {setTimeout(() => m.delete(), 5000); if (message.guild && message.guild.me.permissions.has("DELETE_MESSAGES")) {message.delete().catch(() => {});}});
} }
}; };

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${name} needs a creampie!`) .setTitle(`${name} needs a creampie!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Help with their..ahem..problem..with \`${prefix}creampie @${name}\`!`) .setDescription(`Help with their..ahem..problem..with \`${prefix}creampie @${name}\`!`)
.setColor('fffdd0') .setColor('fffdd0')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "Do. Not. Touch. Me." : "Do. Not. Touch. Me."
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -33,11 +33,11 @@ module.exports = {
if (message.author.id === mention.id) {return message.reply("You can't give yourself a creampie..weirdo.");} if (message.author.id === mention.id) {return message.reply("You can't give yourself a creampie..weirdo.");}
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
let uname = message.guild.members.cache.get(mention.id).displayName; let uname = message.guild.members.cache.get(mention.id).displayName;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives a massive creampie to ${message.guild.members.cache.get(mention.id).displayName}..Tasty!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives a massive creampie to ${message.guild.members.cache.get(mention.id).displayName}..Tasty!`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('fffdd0') .setColor('fffdd0')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -16,11 +16,11 @@ module.exports = {
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let savess = await Saves.findOne({name: 'cry'}) ? await Saves.findOne({name: 'cry'}) : new Saves({name: 'cry'}); let savess = await Saves.findOne({name: 'cry'}) ? await Saves.findOne({name: 'cry'}) : new Saves({name: 'cry'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) {return message.channel.send(new Discord.MessageEmbed() if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} is Crying!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} is Crying!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('8d42f5') .setColor('8d42f5')
);} ]});}
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}
let tu = await UserData.findOne({uid: message.author.id}); let tu = await UserData.findOne({uid: message.author.id});

@ -16,11 +16,11 @@ module.exports = {
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let savess = await Saves.findOne({name: 'dance'}) ? await Saves.findOne({name: 'dance'}) : new Saves({name: 'dance'}); let savess = await Saves.findOne({name: 'dance'}) ? await Saves.findOne({name: 'dance'}) : new Saves({name: 'dance'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) {return message.channel.send(new Discord.MessageEmbed() if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} is dancing like there's no tomorrow!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} is dancing like there's no tomorrow!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('3A8ED5') .setColor('3A8ED5')
);} ]});}
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}
let tu = await UserData.findOne({uid: message.author.id}); let tu = await UserData.findOne({uid: message.author.id});

@ -16,11 +16,11 @@ module.exports = {
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let savess = await Saves.findOne({name: 'dodge'}) ? await Saves.findOne({name: 'dodge'}) : new Saves({name: 'dodge'}); let savess = await Saves.findOne({name: 'dodge'}) ? await Saves.findOne({name: 'dodge'}) : new Saves({name: 'dodge'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) {return message.channel.send(new Discord.MessageEmbed() if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} dodged the attack!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} dodged the attack!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('b2ac88') .setColor('b2ac88')
);} ]});}
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}
let tu = await UserData.findOne({uid: message.author.id}); let tu = await UserData.findOne({uid: message.author.id});

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${name} is hungry, why not feed them?`) .setTitle(`${name} is hungry, why not feed them?`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Bless someone with some food with \`${prefix}feed @${name}\`!`) .setDescription(`Bless someone with some food with \`${prefix}feed @${name}\`!`)
.setColor('bb0a1e') .setColor('bb0a1e')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "Sorry..I'm kinda full right now." : "Sorry..I'm kinda full right now."
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -33,11 +33,11 @@ module.exports = {
if (message.author.id === mention.id) {return message.reply("You can't feed yourself. **Starve.**");} if (message.author.id === mention.id) {return message.reply("You can't feed yourself. **Starve.**");}
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
let uname = message.guild.members.cache.get(mention.id).displayName; let uname = message.guild.members.cache.get(mention.id).displayName;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} feeds ${message.guild.members.cache.get(mention.id).displayName} a delicous treat!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} feeds ${message.guild.members.cache.get(mention.id).displayName} a delicous treat!`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('fed8b1') .setColor('fed8b1')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -19,13 +19,13 @@ module.exports = {
let savess = await Saves.findOne({name: 'fuck'}) ? await Saves.findOne({name: 'fuck'}) : new Saves({name: 'fuck'}); let savess = await Saves.findOne({name: 'fuck'}) ? await Saves.findOne({name: 'fuck'}) : new Saves({name: 'fuck'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} is horny!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} is horny!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Show them some love with \`${prefix}fuck @${message.member.displayName}\`!`) .setDescription(`Show them some love with \`${prefix}fuck @${message.member.displayName}\`!`)
.setColor('dda0dd') .setColor('dda0dd')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "You can't bang me.......only Crescent can." : "You can't bang me.......only Crescent can."
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -37,13 +37,13 @@ module.exports = {
fuck.total++; fuck.total++;
fuck.markModified(`against.${mention.id}`); fuck.markModified(`against.${mention.id}`);
fuck.save(); fuck.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} bangs ${message.guild.members.cache.get(mention.id).displayName}!...Kinky! `, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} bangs ${message.guild.members.cache.get(mention.id).displayName}!...Kinky! `, message.author.avatarURL())
.setDescription(`You've banged them **${fuck.against[mention.id] === 1 ? 'once' : `${fuck.against[mention.id]} times!`}**`) .setDescription(`You've banged them **${fuck.against[mention.id] === 1 ? 'once' : `${fuck.against[mention.id]} times!`}**`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('dda0dd') .setColor('dda0dd')
.setFooter(`${fuck.total} fuck${fuck.total === 1 ? '' : 's'} total`) .setFooter(`${fuck.total} fuck${fuck.total === 1 ? '' : 's'} total`)
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${name} is feeling a little lonely. If only someone would hold their hand...`) .setTitle(`${name} is feeling a little lonely. If only someone would hold their hand...`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Let them know you love them with \`${prefix}handhold @${name}\`!`) .setDescription(`Let them know you love them with \`${prefix}handhold @${name}\`!`)
.setColor('328ba8') .setColor('328ba8')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "Yikes... I'm kinda germaphobic you know. Maybe try asking in a server?" : "Yikes... I'm kinda germaphobic you know. Maybe try asking in a server?"
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -33,11 +33,11 @@ module.exports = {
if (message.author.id === mention.id) {return message.reply("Holding your own hand... I mean it's possible? Same effect, though? Eh, not really.");} if (message.author.id === mention.id) {return message.reply("Holding your own hand... I mean it's possible? Same effect, though? Eh, not really.");}
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
let uname = message.guild.members.cache.get(mention.id).displayName; let uname = message.guild.members.cache.get(mention.id).displayName;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} holds ${uname.endsWith('s') ? `${uname}'` : `${uname}'s`} hand!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} holds ${uname.endsWith('s') ? `${uname}'` : `${uname}'s`} hand!`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('d428a0') .setColor('d428a0')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${name} needs healing!`) .setTitle(`${name} needs healing!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Lend them some help with \`${prefix}heal @${name}\`!`) .setDescription(`Lend them some help with \`${prefix}heal @${name}\`!`)
.setColor('ffc0cb') .setColor('ffc0cb')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "I am immortal, I don't need healing." : "I am immortal, I don't need healing."
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -33,11 +33,11 @@ module.exports = {
if (message.author.id === mention.id) {return message.reply("You can't heal yourself because....I SAID SO");} if (message.author.id === mention.id) {return message.reply("You can't heal yourself because....I SAID SO");}
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
let uname = message.guild.members.cache.get(mention.id).displayName; let uname = message.guild.members.cache.get(mention.id).displayName;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} heals ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} heals ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('ffc0cb') .setColor('ffc0cb')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -19,13 +19,13 @@ module.exports = {
let savess = await Saves.findOne({name: 'hug'}) ? await Saves.findOne({name: 'hug'}) : new Saves({name: 'hug'}); let savess = await Saves.findOne({name: 'hug'}) ? await Saves.findOne({name: 'hug'}) : new Saves({name: 'hug'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} needs a hug!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} needs a hug!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Show them some love with \`${prefix}hug @${message.member.displayName}\`!`) .setDescription(`Show them some love with \`${prefix}hug @${message.member.displayName}\`!`)
.setColor('c375f0') .setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "Sorry, but I'm a bot, and I can't hug you. Go into a server and ask for some hugs!" : "Sorry, but I'm a bot, and I can't hug you. Go into a server and ask for some hugs!"
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -37,13 +37,13 @@ module.exports = {
hugs.total++; hugs.total++;
hugs.markModified(`against.${mention.id}`); hugs.markModified(`against.${mention.id}`);
hugs.save(); hugs.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a hug!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a hug!`, message.author.avatarURL())
.setDescription(`You've hugged them **${hugs.against[mention.id] === 1 ? 'once' : `${hugs.against[mention.id]} times!`}**`) .setDescription(`You've hugged them **${hugs.against[mention.id] === 1 ? 'once' : `${hugs.against[mention.id]} times!`}**`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('52c7bb') .setColor('52c7bb')
.setFooter(`${hugs.total} hug${hugs.total === 1 ? '' : 's'} total`) .setFooter(`${hugs.total} hug${hugs.total === 1 ? '' : 's'} total`)
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${name} is feeling homicidal..watch out!`) .setTitle(`${name} is feeling homicidal..watch out!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Brutally murder someone with \`${prefix}kill @${name}\`!`) .setDescription(`Brutally murder someone with \`${prefix}kill @${name}\`!`)
.setColor('bb0a1e') .setColor('bb0a1e')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "You can't kill me..don't even try." : "You can't kill me..don't even try."
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -33,11 +33,11 @@ module.exports = {
if (message.author.id === mention.id) {return message.reply("Uhhh no. Please don't try to hurt yourself..");} if (message.author.id === mention.id) {return message.reply("Uhhh no. Please don't try to hurt yourself..");}
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
let uname = message.guild.members.cache.get(mention.id).displayName; let uname = message.guild.members.cache.get(mention.id).displayName;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} brutally murders ${message.guild.members.cache.get(mention.id).displayName}..Rest in Peace.`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} brutally murders ${message.guild.members.cache.get(mention.id).displayName}..Rest in Peace.`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('bb0a1e') .setColor('bb0a1e')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -19,13 +19,13 @@ module.exports = {
let savess = await Saves.findOne({name: 'kiss'}) ? await Saves.findOne({name: 'kiss'}) : new Saves({name: 'kiss'}); let savess = await Saves.findOne({name: 'kiss'}) ? await Saves.findOne({name: 'kiss'}) : new Saves({name: 'kiss'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} wants a kiss!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} wants a kiss!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them a little kiss with \`${prefix}kiss @${message.member.displayName}\`!`) .setDescription(`Give them a little kiss with \`${prefix}kiss @${message.member.displayName}\`!`)
.setColor('328ba8') .setColor('328ba8')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "Sorry..my lips are for Crescent only!" : "Sorry..my lips are for Crescent only!"
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -37,13 +37,13 @@ module.exports = {
kiss.total++; kiss.total++;
kiss.markModified(`against.${mention.id}`); kiss.markModified(`against.${mention.id}`);
kiss.save(); kiss.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a kiss!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a kiss!`, message.author.avatarURL())
.setDescription(`You've kissed them **${kiss.against[mention.id] === 1 ? 'once' : `${kiss.against[mention.id]} times!`}**`) .setDescription(`You've kissed them **${kiss.against[mention.id] === 1 ? 'once' : `${kiss.against[mention.id]} times!`}**`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('ac0f0f') .setColor('ac0f0f')
.setFooter(`${kiss.total} kisse${kiss.total === 1 ? '' : 's'} total`) .setFooter(`${kiss.total} kisse${kiss.total === 1 ? '' : 's'} total`)
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -16,11 +16,11 @@ module.exports = {
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let savess = await Saves.findOne({name: 'laugh'}) ? await Saves.findOne({name: 'laugh'}) : new Saves({name: 'laugh'}); let savess = await Saves.findOne({name: 'laugh'}) ? await Saves.findOne({name: 'laugh'}) : new Saves({name: 'laugh'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) {return message.channel.send(new Discord.MessageEmbed() if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} is dying of laughter!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} is dying of laughter!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('5eedc6') .setColor('5eedc6')
);} ]});}
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}
let tu = await UserData.findOne({uid: message.author.id}); let tu = await UserData.findOne({uid: message.author.id});

@ -20,13 +20,13 @@ module.exports = {
let savess = await Saves.findOne({name: 'pat'}) ? await Saves.findOne({name: 'pat'}) : new Saves({name: 'pat'}); let savess = await Saves.findOne({name: 'pat'}) ? await Saves.findOne({name: 'pat'}) : new Saves({name: 'pat'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} wants some pats!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} wants some pats!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them some with \`${prefix}pat @${message.member.displayName}\`!`) .setDescription(`Give them some with \`${prefix}pat @${message.member.displayName}\`!`)
.setColor('c375f0') .setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "Sorry, but I'm only able to pat one person, and it's not you ^^" : "Sorry, but I'm only able to pat one person, and it's not you ^^"
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -38,13 +38,13 @@ module.exports = {
pats.total++; pats.total++;
pats.markModified(`against.${mention.id}`); pats.markModified(`against.${mention.id}`);
pats.save(); pats.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} pats ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} pats ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL())
.setDescription(`You've given them **${pats.against[mention.id]}** pat${pats.against[mention.id] === 1 ? '' : 's'}!`) .setDescription(`You've given them **${pats.against[mention.id]}** pat${pats.against[mention.id] === 1 ? '' : 's'}!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('52c7bb') .setColor('52c7bb')
.setFooter(`${pats.total} pat${pats.total === 1 ? '' : 's'} total`) .setFooter(`${pats.total} pat${pats.total === 1 ? '' : 's'} total`)
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -16,11 +16,11 @@ module.exports = {
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let savess = await Saves.findOne({name: 'run'}) ? await Saves.findOne({name: 'run'}) : new Saves({name: 'run'}); let savess = await Saves.findOne({name: 'run'}) ? await Saves.findOne({name: 'run'}) : new Saves({name: 'run'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) {return message.channel.send(new Discord.MessageEmbed() if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} ran away!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} ran away!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('add8e6') .setColor('add8e6')
);} ]});}
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}
let tu = await UserData.findOne({uid: message.author.id}); let tu = await UserData.findOne({uid: message.author.id});

@ -18,14 +18,14 @@ module.exports = {
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${name} is feeling lonely..maybe you should simp for them!`) .setTitle(`${name} is feeling lonely..maybe you should simp for them!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Fall madly in love with someone with \`${prefix}simp @${name}\`!`) .setDescription(`Fall madly in love with someone with \`${prefix}simp @${name}\`!`)
.setColor('ffb6c1') .setColor('ffb6c1')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "Only my mommy Crescent can simp for me." : "Nobody simps for me. That's just weird. Be weird to someone else."
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
if (!message.guild) {return message.reply("Only my mommy Crescent can simp for me.");} if (!message.guild) {return message.reply("Only my mommy Crescent can simp for me.");}
@ -33,11 +33,11 @@ module.exports = {
if (message.author.id === mention.id) {return message.reply("You can't simp for yourself you lonely fuck.");} if (message.author.id === mention.id) {return message.reply("You can't simp for yourself you lonely fuck.");}
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
let uname = message.guild.members.cache.get(mention.id).displayName; let uname = message.guild.members.cache.get(mention.id).displayName;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} falls madly in love with ${message.guild.members.cache.get(mention.id).displayName}..what a simp.`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} falls madly in love with ${message.guild.members.cache.get(mention.id).displayName}..what a simp.`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('ffb6c1') .setColor('ffb6c1')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -15,11 +15,11 @@ module.exports = {
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let savess = await Saves.findOne({name: 'sip'}) ? await Saves.findOne({name: 'sip'}) : new Saves({name: 'sip'}); let savess = await Saves.findOne({name: 'sip'}) ? await Saves.findOne({name: 'sip'}) : new Saves({name: 'sip'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) {return message.channel.send(new Discord.MessageEmbed() if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} takes a sip...`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} takes a sip...`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('69310d') .setColor('69310d')
);} ]});}
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}
let tu = await UserData.findOne({uid: message.author.id}); let tu = await UserData.findOne({uid: message.author.id});

@ -16,11 +16,11 @@ module.exports = {
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let savess = await Saves.findOne({name: 'smile'}) ? await Saves.findOne({name: 'smile'}) : new Saves({name: 'smile'}); let savess = await Saves.findOne({name: 'smile'}) ? await Saves.findOne({name: 'smile'}) : new Saves({name: 'smile'});
let saves = savess.saves; let saves = savess.saves;
if (!args.length) {return message.channel.send(new Discord.MessageEmbed() if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`${message.guild ? message.member.displayName : message.author.username} has a big smile on their face!`) .setTitle(`${message.guild ? message.member.displayName : message.author.username} has a big smile on their face!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('00cd00') .setColor('00cd00')
);} ]});}
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}
let tu = await UserData.findOne({uid: message.author.id}); let tu = await UserData.findOne({uid: message.author.id});

@ -28,13 +28,13 @@ module.exports = {
spanks.total++; spanks.total++;
spanks.markModified(`against.${mention.id}`); spanks.markModified(`against.${mention.id}`);
spanks.save(); spanks.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a spank!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a spank!`, message.author.avatarURL())
.setDescription(`You've spanked them **${spanks.against[mention.id] === 1 ? 'once' : `${spanks.against[mention.id]} times!`}**`) .setDescription(`You've spanked them **${spanks.against[mention.id] === 1 ? 'once' : `${spanks.against[mention.id]} times!`}**`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('52c7bb') .setColor('52c7bb')
.setFooter(`${spanks.total} spank${spanks.total === 1 ? '' : 's'} total`) .setFooter(`${spanks.total} spank${spanks.total === 1 ? '' : 's'} total`)
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves; let saves = savess.saves;
if (!args.length) { if (!args.length) {
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
return message.channel.send(message.guild ? new Discord.MessageEmbed() return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed()
.setTitle(`${name} is feeling flirty, maybe you should give them a wink!`) .setTitle(`${name} is feeling flirty, maybe you should give them a wink!`)
.setThumbnail(message.author.avatarURL({size: 2048})) .setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them a little wink with \`${prefix}wink @${name}\`!`) .setDescription(`Give them a little wink with \`${prefix}wink @${name}\`!`)
.setColor('8a2be2') .setColor('8a2be2')
.setFooter('Luno', client.user.avatarURL()) .setFooter('Luno', client.user.avatarURL())
.setTimestamp() .setTimestamp()]}
: "W-why are you winking at me privately..do it in a server! " : "W-why are you winking at me privately..do it in a server! "
);} );}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -33,11 +33,11 @@ module.exports = {
if (message.author.id === mention.id) {return message.reply("Wow...you must really have a big ego to wink at yourself...");} if (message.author.id === mention.id) {return message.reply("Wow...you must really have a big ego to wink at yourself...");}
let name = message.guild ? message.member.displayName : message.author.username; let name = message.guild ? message.member.displayName : message.author.username;
let uname = message.guild.members.cache.get(mention.id).displayName; let uname = message.guild.members.cache.get(mention.id).displayName;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(`${message.guild ? message.member.displayName : message.author.username} winks at ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL()) .setAuthor(`${message.guild ? message.member.displayName : message.author.username} winks at ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('8a2be2') .setColor('8a2be2')
); ]});
} }
if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) {
if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');}

@ -51,6 +51,6 @@ module.exports = {
if (options.against && options.against.length) {coinEmbed.addField("Against", `Coin flipped against ${options.against}`, true);} if (options.against && options.against.length) {coinEmbed.addField("Against", `Coin flipped against ${options.against}`, true);}
if (calls) {coinEmbed.addField("Call", `${message.guild ? message.member.displayName : message.author.username} called **${calls['1']}** ${options.against && options.against.length ? `(leaving ${options.against} with **${calls['2']}**)` : ''} and **${(calls['1'] === 'Heads' && flip === 1) || (calls['2'] === 'Heads' && flip === 2) ? 'was' : "wasn't"}** correct!`);} if (calls) {coinEmbed.addField("Call", `${message.guild ? message.member.displayName : message.author.username} called **${calls['1']}** ${options.against && options.against.length ? `(leaving ${options.against} with **${calls['2']}**)` : ''} and **${(calls['1'] === 'Heads' && flip === 1) || (calls['2'] === 'Heads' && flip === 2) ? 'was' : "wasn't"}** correct!`);}
return message.channel.send(coinEmbed); return message.channel.send({embeds: [coinEmbed]});
} }
}; };

@ -67,7 +67,7 @@ module.exports = {
if (thm) {emb.addField("Total Messages", tm.messages.total, true);} if (thm) {emb.addField("Total Messages", tm.messages.total, true);}
if (tv) {emb.addField("Total Voice Hours", (tm.voice.total / 60).toFixed(1), true);} if (tv) {emb.addField("Total Voice Hours", (tm.voice.total / 60).toFixed(1), true);}
return message.channel.send(emb); return message.channel.send({embeds: [emb]});
} }
if (['s', 'setup', 'config', 'configure', 'enable', 'e'].includes(args[0].toLowerCase())) { if (['s', 'setup', 'config', 'configure', 'enable', 'e'].includes(args[0].toLowerCase())) {

@ -40,12 +40,12 @@ module.exports = {
for (let i=0; i<count;i++) { for (let i=0; i<count;i++) {
res += `${1 + 1}. \`${Math.floor(Math.random() * (nums[1] - nums[0] + 1) + nums[0])}\`\n`; res += `${1 + 1}. \`${Math.floor(Math.random() * (nums[1] - nums[0] + 1) + nums[0])}\`\n`;
} }
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`Random Number${num.length > 1 ? 's' : ''}`) .setTitle(`Random Number${num.length > 1 ? 's' : ''}`)
.setDescription(res) .setDescription(res)
.setColor('c375f0') .setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL()) .setFooter('Natsuki', client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
} }
}; };

@ -15,20 +15,20 @@ module.exports = {
.setDescription("Takes an emoji and adds it to this server, if you have the permissions.") .setDescription("Takes an emoji and adds it to this server, if you have the permissions.")
.addField("Syntax", "`robemote [emoji] [name]`"), .addField("Syntax", "`robemote [emoji] [name]`"),
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
if (!message.member.permissions.has("MANAGE_EMOJIS")) {return message.channel.send("You must have permissions to manage emoji in this server.");} if (!message.member.permissions.has("MANAGE_EMOJIS_AND_STICKERS")) {return message.channel.send("You must have permissions to manage emoji in this server.");}
if (!message.guild.me.permissions.has("MANAGE_EMOJIS")) {return message.channel.send("I don't have permissions to manage emoji in this server, so I can't add any emotes.");} if (!message.guild.me.permissions.has("MANAGE_EMOJIS_AND_STICKERS")) {return message.channel.send("I don't have permissions to manage emoji in this server, so I can't add any emotes.");}
if (!args.length) { if (!args.length) {
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Add Emoji") .setTitle("Add Emoji")
.setDescription("React to this message with the emoji you want to be added to the server.") .setDescription("React to this message with the emoji you want to be added to the server.")
.setFooter("This will time out in 60 seconds") .setFooter("This will time out in 60 seconds")
.setColor('c375f0') .setColor('c375f0')
).then(m => { ]}).then(m => {
const rc = m.createReactionCollector((r, u) => u.id === message.author.id, {time: 60000}); const rc = m.createReactionCollector((r, u) => u.id === message.author.id, {time: 60000});
rc.on('collect', r => { rc.on('collect', r => {
rc.stop(); rc.stop();
return message.guild.emojis.create(`https://cdn.discordapp.com/emojis/${r.emoji.id}`, r.emoji.name) return message.guild.emojis.create(`https://cdn.discordapp.com/emojis/${r.emoji.id}`, r.emoji.name)
.then(e => message.channel.send(new Discord.MessageEmbed() .then(e => message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(message.member.displayName, message.author.avatarURL()) .setAuthor(message.member.displayName, message.author.avatarURL())
.setTitle("Emoji Created!") .setTitle("Emoji Created!")
.setThumbnail(`https://cdn.discordapp.com/emojis/${e.id}${e.animated ? '.gif': ''}`) .setThumbnail(`https://cdn.discordapp.com/emojis/${e.id}${e.animated ? '.gif': ''}`)
@ -36,7 +36,7 @@ module.exports = {
.setFooter("Natsuki") .setFooter("Natsuki")
.setColor('c375f0') .setColor('c375f0')
.setTimestamp() .setTimestamp()
).then(() => require('../../util/ask')(message, "If you'd like to rename the emoji, send the name now. Otherwise, wait 30 seconds and nothing will happen.", 30000, false, false) ]}).then(() => require('../../util/ask')(message, "If you'd like to rename the emoji, send the name now. Otherwise, wait 30 seconds and nothing will happen.", 30000, false, false)
.then(res => { .then(res => {
if (res) { if (res) {
e.setName(res) e.setName(res)
@ -46,7 +46,7 @@ module.exports = {
}) })
)).catch(() => message.channel.send("<a:NC_x:717396078294597643> There was an error trying to create that emoji. I might not have permissions to add emoji, or the server may be at its emoji limit.")); )).catch(() => message.channel.send("<a:NC_x:717396078294597643> There was an error trying to create that emoji. I might not have permissions to add emoji, or the server may be at its emoji limit."));
}); });
rc.on('end', collected => {if (collected.size) {return m.delete().catch(() => {});} else {m.edit(m.embeds[0].setDescription(m.embeds[0].description + '\n\n*Timed out!*')).catch(() => {});}}); rc.on('end', collected => {if (collected.size) {return m.delete().catch(() => {});} else {m.edit({embeds: [m.embeds[0].setDescription(m.embeds[0].description + '\n\n*Timed out!*')]}).catch(() => {});}});
}); });
} }
@ -60,7 +60,7 @@ module.exports = {
? `https://cdn.discordapp.com/emojis/${args[0]}` ? `https://cdn.discordapp.com/emojis/${args[0]}`
: args[0], : args[0],
args[1] || args[0].split(':')[1] args[1] || args[0].split(':')[1]
).then(e => message.channel.send(new Discord.MessageEmbed() ).then(e => message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(message.member.displayName, message.author.avatarURL()) .setAuthor(message.member.displayName, message.author.avatarURL())
.setTitle("Emoji Created!") .setTitle("Emoji Created!")
.setThumbnail(`https://cdn.discordapp.com/emojis/${e.id}${e.animated ? '.gif': ''}`) .setThumbnail(`https://cdn.discordapp.com/emojis/${e.id}${e.animated ? '.gif': ''}`)
@ -68,7 +68,7 @@ module.exports = {
.setFooter("Natsuki") .setFooter("Natsuki")
.setColor('c375f0') .setColor('c375f0')
.setTimestamp() .setTimestamp()
)) ]}))
.catch(() => message.channel.send("<a:NC_x:717396078294597643> There was an error trying to create that emoji. I might not have permissions to add emoji, the server may be at its emoji limit, you may have given a bad URL, not specified the emoji properly, or the file type in the URL you gave is invalid.")); .catch(() => message.channel.send("<a:NC_x:717396078294597643> There was an error trying to create that emoji. I might not have permissions to add emoji, the server may be at its emoji limit, you may have given a bad URL, not specified the emoji properly, or the file type in the URL you gave is invalid."));
} }
}; };

@ -47,22 +47,22 @@ module.exports = {
await td.save(); await td.save();
let totalItems = 0; let totalItems = 0;
Object.keys(td.lists).forEach(l => totalItems += td.lists[l].length); Object.keys(td.lists).forEach(l => totalItems += td.lists[l].length);
return message.channel.send(`Your list was successfully created!`, new Discord.MessageEmbed() return message.channel.send({content: `Your list was successfully created!`, embeds: [new Discord.MessageEmbed()
.setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL())
.setTitle(`List Created: ${ln}`) .setTitle(`List Created: ${ln}`)
.setDescription(`You now have **${Object.keys(td.lists).length}** lists (including your personal list) with a total of **${totalItems} items**.`) .setDescription(`You now have **${Object.keys(td.lists).length}** lists (including your personal list) with a total of **${totalItems} items**.`)
.addField("Managing", `-To add to your new list, use \`${prefix}todo list ${ln} add\`.\n-To view its items, use \`${prefix}todo list ${ln} view\`.\n-To delete this list, use \`${prefix}todo list delete ${ln}\`.`) .addField("Managing", `-To add to your new list, use \`${prefix}todo list ${ln} add\`.\n-To view its items, use \`${prefix}todo list ${ln} view\`.\n-To delete this list, use \`${prefix}todo list delete ${ln}\`.`)
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()]
); });
} else if (['d', 'delete', 'r', 'remove'].includes(args[0].toLowerCase())) { } else if (['d', 'delete', 'r', 'remove'].includes(args[0].toLowerCase())) {
if (!td || td.lists.length === 1) {return message.channel.send("You don't have any lists made, or you only have a quick list.");} if (!td || td.lists.length === 1) {return message.channel.send("You don't have any lists made, or you only have a quick list.");}
let ln; let ln;
if (!args[1]) { if (!args[1]) {
let s = ``; let lists = Object.keys(td.lists); let s = ``; let lists = Object.keys(td.lists);
let i; for (i = 0; i < lists.length; i++) {if (lists[i] === 'quick') {continue;} s += `**${i}**. \`${lists[i]}\` - ${td.lists[lists[i]].length} ${td.lists[lists[i]].length === 1 ? 'item' : 'items'}\n`;} let i; for (i = 0; i < lists.length; i++) {if (lists[i] === 'quick') {continue;} s += `**${i}**. \`${lists[i]}\` - ${td.lists[lists[i]].length} ${td.lists[lists[i]].length === 1 ? 'item' : 'items'}\n`;}
message.channel.send(new Discord.MessageEmbed() message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL())
.setTitle(`Your ToDo lists`) .setTitle(`Your ToDo lists`)
.setDescription(s) .setDescription(s)
@ -70,9 +70,9 @@ module.exports = {
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
); ]});
let collected; let collected;
try {collected = await message.channel.awaitMessages(m => m.author.id === message.author.id, {errors: ['time'], time: 60000, max: 1});} try {collected = await message.channel.awaitMessages({filter: m => m.author.id === message.author.id, errors: ['time'], time: 60000, max: 1});}
catch {return message.channel.send("This question has timed out. Please try again!");} catch {return message.channel.send("This question has timed out. Please try again!");}
ln = collected.first().content.trim(); ln = collected.first().content.trim();
} else {ln = args[1].trim().toLowerCase();} } else {ln = args[1].trim().toLowerCase();}
@ -90,14 +90,14 @@ module.exports = {
let s = ``; let lists = Object.keys(td.lists); let s = ``; let lists = Object.keys(td.lists);
let i; for (i = 0; i < lists.length; i++) {if (lists[i] === 'quick') {continue;} s += `**${i}**. \`${lists[i]}\` - ${td.lists[lists[i]].length} ${td.lists[lists[i]].length === 1 ? 'item' : 'items'}\n`;} let i; for (i = 0; i < lists.length; i++) {if (lists[i] === 'quick') {continue;} s += `**${i}**. \`${lists[i]}\` - ${td.lists[lists[i]].length} ${td.lists[lists[i]].length === 1 ? 'item' : 'items'}\n`;}
s += `\nPlus ${td.lists.quick.length} items in your quick list.`; s += `\nPlus ${td.lists.quick.length} items in your quick list.`;
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL())
.setTitle(`Your ToDo lists`) .setTitle(`Your ToDo lists`)
.setDescription(s) .setDescription(s)
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
); ]});
} else if (td && Object.keys(td.lists).includes(args[0].trim().toLowerCase())) { } else if (td && Object.keys(td.lists).includes(args[0].trim().toLowerCase())) {
list = args[0].trim().toLowerCase(); list = args[0].trim().toLowerCase();
args.shift(); args.shift();
@ -115,11 +115,11 @@ module.exports = {
td.lists[list].push(item); td.lists[list].push(item);
td.markModified(`lists.${list}`); td.markModified(`lists.${list}`);
td.save(); td.save();
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor("To-Do Added!", message.author.avatarURL()) .setAuthor("To-Do Added!", message.author.avatarURL())
.setDescription(`${item}\n\`->\` In ${list === 'quick' ? "your personal quick list" : `list \`${list}\``}`) .setDescription(`${item}\n\`->\` In ${list === 'quick' ? "your personal quick list" : `list \`${list}\``}`)
.setColor('c375f0') .setColor('c375f0')
); ]});
} }
else if (['v', 'view'].includes(args[0].toLowerCase())) { else if (['v', 'view'].includes(args[0].toLowerCase())) {
@ -131,14 +131,14 @@ module.exports = {
let s = ''; let s = '';
let n = 0; let i; let n = 0; let i;
for (i of td.lists[list]) {n++; s += `**${n}.** ${i}\n`;} for (i of td.lists[list]) {n++; s += `**${n}.** ${i}\n`;}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL())
.setTitle(list === "quick" ? "Personal Quick List" : `List: "${list}"`) .setTitle(list === "quick" ? "Personal Quick List" : `List: "${list}"`)
.setDescription(s) .setDescription(s)
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
).catch(() => { ]}).catch(() => {
client.users.fetch(client.developers[0]).then(wubzy => wubzy.send("Hey stupid, someone got the todo length bug. Fix it.")); client.users.fetch(client.developers[0]).then(wubzy => wubzy.send("Hey stupid, someone got the todo length bug. Fix it."));
return message.channel.send("There was an error displaying your list. It might have too many characters. This bug has been reported to the developers and will be fixed soon! Join the support server for updates."); return message.channel.send("There was an error displaying your list. It might have too many characters. This bug has been reported to the developers and will be fixed soon! Join the support server for updates.");
}); });
@ -146,14 +146,14 @@ module.exports = {
if (isNaN(Number(args[1])) && !['last', 'l'].includes(args[1].toLowerCase().trim())) {return message.channel.send("You didn't give me a number!");} if (isNaN(Number(args[1])) && !['last', 'l'].includes(args[1].toLowerCase().trim())) {return message.channel.send("You didn't give me a number!");}
let id = ['last', 'l'].includes(args[1].toLowerCase().trim()) ? td.lists[list].length : Number(args[1]); let id = ['last', 'l'].includes(args[1].toLowerCase().trim()) ? td.lists[list].length : Number(args[1]);
if (id < 1 || id > td.lists[list].length) {return message.channel.send("Your number was either below 1 or doesn't have a list item to match it.");} if (id < 1 || id > td.lists[list].length) {return message.channel.send("Your number was either below 1 or doesn't have a list item to match it.");}
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL())
.setTitle(list === "quick" ? "Personal Quick List" : `List "${list}"`) .setTitle(list === "quick" ? "Personal Quick List" : `List "${list}"`)
.setDescription(`List item **#${id}**\n\`->\` ${td.lists[list][id-1]}`) .setDescription(`List item **#${id}**\n\`->\` ${td.lists[list][id-1]}`)
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
); ]});
} }
} }
@ -166,7 +166,7 @@ module.exports = {
if (!args[1]) { if (!args[1]) {
let s = ''; let s = '';
let n = 0; let i; for (i of td.lists[list]) {n++; s += `**${n}.** ${i}\n`;} let n = 0; let i; for (i of td.lists[list]) {n++; s += `**${n}.** ${i}\n`;}
await message.channel.send(new Discord.MessageEmbed() await message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL())
.setTitle(list === "quick" ? "Personal Quick List" : `List "${list}"`) .setTitle(list === "quick" ? "Personal Quick List" : `List "${list}"`)
.setDescription(s) .setDescription(s)
@ -174,8 +174,8 @@ module.exports = {
.setColor("c375f0") .setColor("c375f0")
.setFooter("Natsuki") .setFooter("Natsuki")
.setTimestamp() .setTimestamp()
); ]});
try {collected = await message.channel.awaitMessages(m => m.author.id === message.author.id, {errors: ['time'], time: 60000, max: 1});} try {collected = await message.channel.awaitMessages({filter: m => m.author.id === message.author.id, errors: ['time'], time: 60000, max: 1});}
catch {return message.channel.send("This question has timed out. Please try again!");} catch {return message.channel.send("This question has timed out. Please try again!");}
collected = collected.first().content.trim(); collected = collected.first().content.trim();
} else {collected = args[1];} } else {collected = args[1];}

@ -4,13 +4,13 @@ module.exports = (client, channel) => {
if (channel.guild) { if (channel.guild) {
let ts = client.guildconfig.logs.has(channel.guild.id) && client.guildconfig.logs.get(channel.guild.id).has('ch') ? client.guildconfig.logs.get(channel.guild.id).get('ch') : null; let ts = client.guildconfig.logs.has(channel.guild.id) && client.guildconfig.logs.get(channel.guild.id).has('ch') ? client.guildconfig.logs.get(channel.guild.id).get('ch') : null;
if (ts) {if (channel.guild.channels.cache.has(ts) && channel.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) { if (ts) {if (channel.guild.channels.cache.has(ts) && channel.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) {
channel.guild.channels.cache.get(ts).send(new Discord.MessageEmbed() channel.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed()
.setTitle("New Channel") .setTitle("New Channel")
.setDescription(`<#${channel.id}> || **#${channel.name}**${channel.parent && channel.parent.name ? `\nCategory: **${channel.parent.name}**` : ''}`) .setDescription(`<#${channel.id}> || **#${channel.name}**${channel.parent && channel.parent.name ? `\nCategory: **${channel.parent.name}**` : ''}`)
.setColor('936b30') .setColor('936b30')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
}} }}
} }
}; };

@ -3,12 +3,12 @@ const Discord = require('discord.js');
module.exports = (client, channel) => { module.exports = (client, channel) => {
let ts = client.guildconfig.logs.has(channel.guild.id) && client.guildconfig.logs.get(channel.guild.id).has('ch') ? client.guildconfig.logs.get(channel.guild.id).get('ch') : null; let ts = client.guildconfig.logs.has(channel.guild.id) && client.guildconfig.logs.get(channel.guild.id).has('ch') ? client.guildconfig.logs.get(channel.guild.id).get('ch') : null;
if (ts) {if (channel.guild.channels.cache.has(ts) && channel.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) { if (ts) {if (channel.guild.channels.cache.has(ts) && channel.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) {
channel.guild.channels.cache.get(ts).send(new Discord.MessageEmbed() channel.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed()
.setTitle("Channel Deleted") .setTitle("Channel Deleted")
.setDescription(`Name: **#${channel.name}**${channel.parent && channel.parent.name ? `\nCategory: **${channel.parent.name}**` : ''}`) .setDescription(`Name: **#${channel.name}**${channel.parent && channel.parent.name ? `\nCategory: **${channel.parent.name}**` : ''}`)
.setColor('936b30') .setColor('936b30')
.setFooter("Natsuki", client.user.avatarURL()) .setFooter("Natsuki", client.user.avatarURL())
.setTimestamp() .setTimestamp()
); ]});
}} }}
}; };

@ -14,15 +14,15 @@ module.exports = async (client, guild) => {
botData.servers_all += 1; botData.servers_all += 1;
botData.save(); botData.save();
client.guilds.cache.get('762707532417335296').channels.cache.get('766031709866557471').send(new Discord.MessageEmbed() client.guilds.cache.get('762707532417335296').channels.cache.get('766031709866557471').send({embeds: [new Discord.MessageEmbed()
.setAuthor('New Guild Added', client.users.cache.get(guild.owner.id).avatarURL()) .setAuthor('New Guild Added', client.users.cache.get(guild.ownerId).avatarURL())
.setTitle(guild.name) .setTitle(guild.name)
.setThumbnail(guild.iconURL({size: 2048})) .setThumbnail(guild.iconURL({size: 2048}))
.addField('Owner', client.users.cache.get(guild.owner.id).tag, true) .addField('Owner', client.users.cache.get(guild.ownerId).tag, true)
.addField('Members', guild.members.cache.size, true) .addField('Members', guild.members.cache.size, true)
.addField('Position', `Server #${client.guilds.cache.size}`, true) .addField('Position', `Server #${client.guilds.cache.size}`, true)
.setColor('55ff7f') .setColor('55ff7f')
.setFooter('Natsuki') .setFooter('Natsuki')
.setTimestamp() .setTimestamp()
); ]});
}; };

@ -13,15 +13,15 @@ module.exports = async (client, guild) => {
botData.servers = client.guilds.cache.size; botData.servers = client.guilds.cache.size;
botData.save(); botData.save();
client.guilds.cache.get('762707532417335296').channels.cache.get('766031709866557471').send(new Discord.MessageEmbed() client.guilds.cache.get('762707532417335296').channels.cache.get('766031709866557471').send({embeds: [new Discord.MessageEmbed()
.setAuthor('Server Lost', client.users.cache.get(guild.owner.id).avatarURL()) .setAuthor('Server Lost', client.users.cache.get(guild.ownerId).avatarURL())
.setTitle(guild.name) .setTitle(guild.name)
.setThumbnail(guild.iconURL({size: 2048})) .setThumbnail(guild.iconURL({size: 2048}))
.addField('Owner', client.users.cache.get(guild.owner.id).tag, true) .addField('Owner', client.users.cache.get(guild.ownerId).tag, true)
.addField('Members', guild.members.cache.size, true) .addField('Members', guild.members.cache.size, true)
.addField('Position', `Server #${client.guilds.cache.size + 1}`, true) .addField('Position', `Server #${client.guilds.cache.size + 1}`, true)
.setColor('ff5d6a') .setColor('ff5d6a')
.setFooter('Natsuki') .setFooter('Natsuki')
.setTimestamp() .setTimestamp()
); ]});
}; };

@ -8,9 +8,15 @@ const AR = require('../models/ar');
const LXP = require('../models/localxp'); const LXP = require('../models/localxp');
const Monitors = require('../models/monitor'); const Monitors = require('../models/monitor');
const channelTypes = ["GUILD_MESSAGE", "DM", "GUILD_NEWS_THREAD", "GUILD_PRIVATE_THREAD", "GUILD_PUBLIC_THREAD", "GUILD_NEWS", "GROUP_DM", "GUILD_STORE"];
module.exports = async (client, message) => { module.exports = async (client, message) => {
if (message.author.bot) {return undefined;} if (message.author.bot) {return undefined;}
if (message.channel.type !== 'text' && message.channel.type !== 'dm') {return undefined;}
if (message.partial) {await message.fetch();}
if (message.channel.partial) {await message.channel.fetch();}
if (!channelTypes.includes(message.channel.type)) {return undefined;}
//if (message.channel.type == "text") {if (settings[message.guild.id]) {prefix = settings[message.guild.id].prefix;};}; //if (message.channel.type == "text") {if (settings[message.guild.id]) {prefix = settings[message.guild.id].prefix;};};
@ -30,10 +36,10 @@ module.exports = async (client, message) => {
if (message.content.includes("@everyone")) {return;} if (message.content.includes("@everyone")) {return;}
if ([`<@${client.user.id}>`, `<@!${client.user.id}>`].includes(msg)) { if ([`<@${client.user.id}>`, `<@!${client.user.id}>`].includes(msg)) {
return message.channel.send(new Discord.MessageEmbed() return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(["Yep, that's me!", "^^ Hiya!", "Oh, hi there!", "Sure, what's up?", "How can I help!", "Natsuki is busy, but I can take a message for you!", "Teehee that's me!", "You were looking for Natsuki Tivastl, right?", "Sure! What's up?", "Pong!"][Math.floor(Math.random() * 10)]) .setTitle(["Yep, that's me!", "^^ Hiya!", "Oh, hi there!", "Sure, what's up?", "How can I help!", "Natsuki is busy, but I can take a message for you!", "Teehee that's me!", "You were looking for Natsuki Tivastl, right?", "Sure! What's up?", "Pong!"][Math.floor(Math.random() * 10)])
.setDescription(`My prefix here is \`${prefix}\`. Use \`${prefix}help\` to see what commands you can use.`) .setDescription(`My prefix here is \`${prefix}\`. Use \`${prefix}help\` to see what commands you can use.`)
.setColor('c375f0')); .setColor('c375f0')]});
} }
if (mention && message.guild) {require('../util/mention')(message, msg, args, cmd, prefix, mention, client);} if (mention && message.guild) {require('../util/mention')(message, msg, args, cmd, prefix, mention, client);}
@ -43,7 +49,7 @@ module.exports = async (client, message) => {
tu.statustype = ''; tu.statustype = '';
tu.save(); tu.save();
require('../util/siftstatuses')(client, message.author.id, true); require('../util/siftstatuses')(client, message.author.id, true);
message.reply('Hey there! You asked me to clear your status when you send a message next, so I went ahead and did that for you.').then(m => {m.delete({timeout: 5000});}); message.reply('Hey there! You asked me to clear your status when you send a message next, so I went ahead and did that for you.').then(m => {setTimeout(() => {m.delete();}, 5000);});
}}); }});
if (message.guild && client.misc.cache.ar.has(message.guild.id) && client.misc.cache.ar.get(message.guild.id).includes(msg.trim()) && !(client.misc.cache.arIgnore.has(message.guild.id) && client.misc.cache.arIgnore.get(message.guild.id).includes(message.channel.id))) { if (message.guild && client.misc.cache.ar.has(message.guild.id) && client.misc.cache.ar.get(message.guild.id).includes(msg.trim()) && !(client.misc.cache.arIgnore.has(message.guild.id) && client.misc.cache.arIgnore.get(message.guild.id).includes(message.channel.id))) {
@ -96,9 +102,8 @@ module.exports = async (client, message) => {
} }
if (!command) {let trigger; for (trigger of client.responses.triggers) {if (await trigger[1](message, msg, args, cmd, prefix, mention, client)) {await client.responses.commands.get(trigger[0]).execute(message, msg, args, cmd, prefix, mention, client); break;}} return;} if (!command) {let trigger; for (trigger of client.responses.triggers) {if (await trigger[1](message, msg, args, cmd, prefix, mention, client)) {await client.responses.commands.get(trigger[0]).execute(message, msg, args, cmd, prefix, mention, client); break;}} return;}
message.channel.startTyping(); message.channel.sendTyping();
await wait(800); await wait(500);
message.channel.stopTyping();
if (command.meta && command.meta.guildOnly && !message.guild) {return message.channel.send("You must be in a server to use this command!");} if (command.meta && command.meta.guildOnly && !message.guild) {return message.channel.send("You must be in a server to use this command!");}
require('../util/oncommand')(message, msg, args, cmd, prefix, mention, client); require('../util/oncommand')(message, msg, args, cmd, prefix, mention, client);
if (client.misc.loggers.cmds) {client.misc.loggers.cmds.send(`${chalk.gray("[CMDL]")} >> ${chalk.white("Command")} ${chalk.blue(command.name)} ${message.guild ? `|| ${chalk.blue("Guild ID: ")} ${chalk.blueBright(message.guild.id)}` : ''} || ${chalk.blue("User ID: ")} ${chalk.blueBright(message.author.id)}`);} if (client.misc.loggers.cmds) {client.misc.loggers.cmds.send(`${chalk.gray("[CMDL]")} >> ${chalk.white("Command")} ${chalk.blue(command.name)} ${message.guild ? `|| ${chalk.blue("Guild ID: ")} ${chalk.blueBright(message.guild.id)}` : ''} || ${chalk.blue("User ID: ")} ${chalk.blueBright(message.author.id)}`);}

@ -1,7 +1,9 @@
const Discord = require('discord.js'); const Discord = require('discord.js');
const channelTypes = ["GUILD_MESSAGE", "DM", "GUILD_NEWS_THREAD", "GUILD_PRIVATE_THREAD", "GUILD_PUBLIC_THREAD", "GUILD_NEWS", "GROUP_DM", "GUILD_STORE"];
module.exports = async (client, message) => { module.exports = async (client, message) => {
if (message.channel.type !== "text") {return;} if (!channelTypes.includes(message.channel.type)) {return;}
//if (!Object.keys(snipe.delete).includes(message.guild.id)) {snipe.delete[message.guild.id] = {};}; //if (!Object.keys(snipe.delete).includes(message.guild.id)) {snipe.delete[message.guild.id] = {};};
//snipe.delete[message.guild.id][message.channel.id] = message; //snipe.delete[message.guild.id][message.channel.id] = message;
@ -22,6 +24,6 @@ module.exports = async (client, message) => {
} }
if (as.length) {mde.addField('Attachments', as);} if (as.length) {mde.addField('Attachments', as);}
} }
message.guild.channels.cache.get(ts).send(mde).catch(() => {}); message.guild.channels.cache.get(ts).send({embeds: [mde]}).catch(() => {});
}} }}
} }

@ -27,10 +27,10 @@ module.exports = async (client, reaction, user) => {
if (reaction.message.attachments.size) {starEmbed.setImage(reaction.message.attachments.first().url);} if (reaction.message.attachments.size) {starEmbed.setImage(reaction.message.attachments.first().url);}
if (Object.keys(sd.stars).includes(reaction.message.id)) { if (Object.keys(sd.stars).includes(reaction.message.id)) {
let starMessage = await reaction.message.guild.channels.cache.get(tg.starchannel).messages.fetch(sd.stars[reaction.message.id]); let starMessage = await reaction.message.guild.channels.cache.get(tg.starchannel).messages.fetch(sd.stars[reaction.message.id]);
if (starMessage) {await starMessage.edit(starEmbed);} if (starMessage) {await starMessage.edit({embeds: [starEmbed]});}
} else { } else {
if (reaction.count < tg.starreq) {return;} if (reaction.count < tg.starreq) {return;}
let starEmbedMessage = await reaction.message.guild.channels.cache.get(tg.starchannel).send(starEmbed); let starEmbedMessage = await reaction.message.guild.channels.cache.get(tg.starchannel).send({embeds: [starEmbed]});
sd.stars[reaction.message.id] = starEmbedMessage.id; sd.stars[reaction.message.id] = starEmbedMessage.id;
sd.starCount[reaction.message.author.id] = sd.starCount[reaction.message.author.id] ? sd.starCount[reaction.message.author.id] + 1 : 1; sd.starCount[reaction.message.author.id] = sd.starCount[reaction.message.author.id] ? sd.starCount[reaction.message.author.id] + 1 : 1;
sd.serverStarCount += 1; sd.serverStarCount += 1;

@ -1,7 +1,9 @@
const Discord = require('discord.js'); const Discord = require('discord.js');
const channelTypes = ["GUILD_MESSAGE", "DM", "GUILD_NEWS_THREAD", "GUILD_PRIVATE_THREAD", "GUILD_PUBLIC_THREAD", "GUILD_NEWS", "GROUP_DM", "GUILD_STORE"];
module.exports = async (client, oldM, newM) => { module.exports = async (client, oldM, newM) => {
if (oldM.channel.type != "text") {return;}; if (!channelTypes.includes(oldM.channel.type)) {return;};
if (oldM.author.bot) {return;} if (oldM.author.bot) {return;}
if (oldM.deleted) {return;} if (oldM.deleted) {return;}
//if (!Object.keys(snipe.edit).includes(oldM.guild.id)) {snipe.edit[oldM.guild.id] = {};}; //if (!Object.keys(snipe.edit).includes(oldM.guild.id)) {snipe.edit[oldM.guild.id] = {};};
@ -17,6 +19,6 @@ module.exports = async (client, oldM, newM) => {
.addField("New Message", "`-> `" + newM.content.toString()) .addField("New Message", "`-> `" + newM.content.toString())
.setColor('8034eb').setFooter("Natsuki", client.user.avatarURL()).setTimestamp(); .setColor('8034eb').setFooter("Natsuki", client.user.avatarURL()).setTimestamp();
if (newM.attachments.size && ['.png', '.jpg', '.gif'].includes(newM.attachments.first().url.slice(newM.attachments.first().url.length - 4, newM.attachments.first().url.length))) {embed.setImage(newM.attachments.first().url);} if (newM.attachments.size && ['.png', '.jpg', '.gif'].includes(newM.attachments.first().url.slice(newM.attachments.first().url.length - 4, newM.attachments.first().url.length))) {embed.setImage(newM.attachments.first().url);}
oldM.guild.channels.cache.get(ts).send(embed).catch(() => {}); oldM.guild.channels.cache.get(ts).send({embeds: [embed]}).catch(() => {});
}} }}
} }

@ -5,33 +5,33 @@ const Monitor = require('../models/monitor');
module.exports = async (client, oldState, voice) => { module.exports = async (client, oldState, voice) => {
let ts = client.guildconfig.logs.has(voice.guild.id) && client.guildconfig.logs.get(voice.guild.id).has('vc') ? client.guildconfig.logs.get(voice.guild.id).get('vc') : null; let ts = client.guildconfig.logs.has(voice.guild.id) && client.guildconfig.logs.get(voice.guild.id).has('vc') ? client.guildconfig.logs.get(voice.guild.id).get('vc') : null;
if (ts) {if (voice.guild.channels.cache.has(ts) && voice.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) { if (ts) {if (voice.guild.channels.cache.has(ts) && voice.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) {
if (oldState.channelID && voice.channelID) { if (oldState.channelId && voice.channelId) {
voice.guild.channels.cache.get(ts).send(new Discord.MessageEmbed() voice.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed()
.setTitle(`Member Switched VCs`) .setTitle(`Member Switched VCs`)
.setThumbnail(client.users.cache.get(oldState.member.id).avatarURL({size: 2048, dynamic: true})) .setThumbnail(client.users.cache.get(oldState.member.id).avatarURL({size: 2048, dynamic: true}))
.setDescription(`Old Channel: **${oldState.channel.name}**\nNew Channel: **${voice.channel.name}**`) .setDescription(`Old Channel: **${oldState.channel.name}**\nNew Channel: **${voice.channel.name}**`)
.setColor('e86b8f').setFooter("Natsuki", client.user.avatarURL()).setTimestamp() .setColor('e86b8f').setFooter("Natsuki", client.user.avatarURL()).setTimestamp()
).catch(() => {}); ]}).catch(() => {});
} else { } else {
voice.guild.channels.cache.get(ts).send(new Discord.MessageEmbed() voice.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed()
.setTitle(`Member ${voice.channelID ? 'Joined' : 'Left'} VC`) .setTitle(`Member ${voice.channelId ? 'Joined' : 'Left'} VC`)
.setThumbnail(client.users.cache.get(oldState.member.id).avatarURL({size: 2048, dynamic: true})) .setThumbnail(client.users.cache.get(oldState.member.id).avatarURL({size: 2048, dynamic: true}))
.setDescription(`Channel: **${voice.channelID ? voice.channel.name : oldState.channel.name}**`) .setDescription(`Channel: **${voice.channelId ? voice.channel.name : oldState.channel.name}**`)
.setColor('e86b8f').setFooter("Natsuki", client.user.avatarURL()).setTimestamp() .setColor('e86b8f').setFooter("Natsuki", client.user.avatarURL()).setTimestamp()
).catch(() => {}); ]}).catch(() => {});
} }
}} }}
if (client.users.cache.get(voice.member.id).bot) {return;} if (client.users.cache.get(voice.member.id).bot) {return;}
if (voice.guild && client.misc.cache.monitEnabled.includes(voice.guild.id)) { if (voice.guild && client.misc.cache.monitEnabled.includes(voice.guild.id)) {
if (voice.channelID) { if (voice.channelId) {
client.misc.cache.VCG[voice.member.id] = voice.guild.id; client.misc.cache.VCG[voice.member.id] = voice.guild.id;
if (!client.misc.cache.inVC.includes(voice.member.id)) {client.misc.cache.inVC.push(voice.member.id);} if (!client.misc.cache.inVC.includes(voice.member.id)) {client.misc.cache.inVC.push(voice.member.id);}
if (!client.misc.cache.activeVC.includes(voice.channelID)) {client.misc.cache.activeVC.push(voice.channelID);} if (!client.misc.cache.activeVC.includes(voice.channelId)) {client.misc.cache.activeVC.push(voice.channelId);}
} else { } else {
if (!client.misc.cache.inVC.includes(voice.member.id)) {return;} if (!client.misc.cache.inVC.includes(voice.member.id)) {return;}
client.misc.cache.inVC.splice(client.misc.cache.inVC.indexOf(voice.member.id), 1); client.misc.cache.inVC.splice(client.misc.cache.inVC.indexOf(voice.member.id), 1);
if (oldState.channel && !oldState.channel.members.size && client.misc.cache.activeVC.includes(oldState.channelID)) {client.misc.cache.activeVC.splice(client.misc.cache.activeVC.indexOf(oldState.channelID), 1);} if (oldState.channel && !oldState.channel.members.size && client.misc.cache.activeVC.includes(oldState.channelId)) {client.misc.cache.activeVC.splice(client.misc.cache.activeVC.indexOf(oldState.channelId), 1);}
if (Object.keys(client.misc.cache.VCG).includes(voice.member.id)) {delete client.misc.cache.VCG[voice.member.id];} if (Object.keys(client.misc.cache.VCG).includes(voice.member.id)) {delete client.misc.cache.VCG[voice.member.id];}
} }
} }

@ -8,24 +8,24 @@ module.exports = client => {
let dirSet = new Map(); let dirSet = new Map();
fs.readdirSync('./commands').filter(file => !file.includes('.')).forEach(dir => fs.readdirSync(`./commands/${dir}`).filter(file => file.endsWith('.js')).forEach(x => {commands.push(x); dirSet.set(x, dir)})); fs.readdirSync('./commands').filter(file => !file.includes('.')).forEach(dir => fs.readdirSync(`./commands/${dir}`).filter(file => file.endsWith('.js')).forEach(x => {commands.push(x); dirSet.set(x, dir)}));
console.log(''); //console.log('');
let cora = ora(`${chalk.white("Loading commands into client.")} ${chalk.blue("[")}${chalk.blueBright("0")}${chalk.blue("/")}${chalk.blueBright(`${commands.length}`)}${chalk.blue("]")}`).start(); //let cora = ora(`${chalk.white("Loading commands into client.")} ${chalk.blue("[")}${chalk.blueBright("0")}${chalk.blue("/")}${chalk.blueBright(`${commands.length}`)}${chalk.blue("]")}`).start();
let num = 0; let num = 0;
commands.sort(); commands.sort();
//console.log(`\n${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`); console.log(`\n${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`);
for (let commandf of commands) { for (let commandf of commands) {
num++; num++;
cora.text = `${chalk.white("Loading commands into client.")} ${chalk.blue("[")}${chalk.blueBright(`${num}`)}${chalk.blue("/")}${chalk.blueBright(`${commands.length}`)}${chalk.blue("]")}`; //cora.text = `${chalk.white("Loading commands into client.")} ${chalk.blue("[")}${chalk.blueBright(`${num}`)}${chalk.blue("/")}${chalk.blueBright(`${commands.length}`)}${chalk.blue("]")}`;
if (Object.keys(require.cache).includes(require.resolve(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`))) {delete require.cache[require.resolve(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`)];} if (Object.keys(require.cache).includes(require.resolve(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`))) {delete require.cache[require.resolve(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`)];}
let command = require(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`); let command = require(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`);
client.commands.set(command.name, command); client.commands.set(command.name, command);
if (command.aliases) {command.aliases.forEach(a => client.aliases.set(a, command.name));} if (command.aliases) {command.aliases.forEach(a => client.aliases.set(a, command.name));}
//console.log(`${chalk.gray('[LOAD]')} >> ${chalk.blueBright('Loaded Command')} ${chalk.white(command.name)} ${chalk.blueBright('with')} ${chalk.white(command.aliases && command.aliases.length ? command.aliases.length : 0)} ${chalk.blueBright('aliases')}`); console.log(`${chalk.gray('[LOAD]')} >> ${chalk.blueBright('Loaded Command')} ${chalk.white(command.name)} ${chalk.blueBright('with')} ${chalk.white(command.aliases && command.aliases.length ? command.aliases.length : 0)} ${chalk.blueBright('aliases')}`);
} }
cora.stop(); cora.clear(); //cora.stop(); cora.clear();
console.log(`${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`); //console.log(`${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`);
Array.from(client.commands.values()).forEach(command => { Array.from(client.commands.values()).forEach(command => {
console.log(`${chalk.gray('[LOAD]')} >> ${chalk.blueBright('Loaded Command')} ${chalk.white(command.name)} ${chalk.blueBright('with')} ${chalk.white(command.aliases && command.aliases.length ? command.aliases.length : 0)} ${chalk.blueBright('aliases')}`); //console.log(`${chalk.gray('[LOAD]')} >> ${chalk.blueBright('Loaded Command')} ${chalk.white(command.name)} ${chalk.blueBright('with')} ${chalk.white(command.aliases && command.aliases.length ? command.aliases.length : 0)} ${chalk.blueBright('aliases')}`);
}); });
console.log(`\n${chalk.gray('[BOOT]')} >> ${chalk.blue('Loaded all Commands')}`); console.log(`\n${chalk.gray('[BOOT]')} >> ${chalk.blue('Loaded all Commands')}`);
}; };

1391
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -5,12 +5,12 @@
"main": "bot.js", "main": "bot.js",
"author": "NatsukiDev", "author": "NatsukiDev",
"dependencies": { "dependencies": {
"canvas": "^2.6.1", "@discordjs/voice": "^0.6.0",
"chalk": "^4.1.0", "chalk": "^4.1.0",
"cron": "^1.8.2", "cron": "^1.8.2",
"dblapi.js": "^2.4.1", "dblapi.js": "^2.4.1",
"discord.io": "https://github.com/woor/discord.io/tarball/gateway_v6", "discord.io": "https://github.com/woor/discord.io/tarball/gateway_v6",
"discord.js": "^12.2.0", "discord.js": "^13.1.0",
"lastfm": "^0.9.0", "lastfm": "^0.9.0",
"manyitems": "^1.0.2", "manyitems": "^1.0.2",
"moment": "^2.28.0", "moment": "^2.28.0",
@ -24,5 +24,8 @@
}, },
"engines": { "engines": {
"node": "12.14.1" "node": "12.14.1"
},
"scripts": {
"start": "run"
} }
} }

@ -34,7 +34,7 @@ module.exports = {
"<:awoo:750131415693393950> glad you're getting some sleep ^^ ~"]; "<:awoo:750131415693393950> glad you're getting some sleep ^^ ~"];
message.channel.send(`${r[Math.floor(Math.random() * r.length)]} Want me to set your status before you go off?`); message.channel.send(`${r[Math.floor(Math.random() * r.length)]} Want me to set your status before you go off?`);
let to = false; let sconf; let to = false; let sconf;
try {sconf = await message.channel.awaitMessages(m => m.author.id === "330547934951112705", {time: 15000, errors: ['time'], max: 1});} try {sconf = await message.channel.awaitMessages({filter: m => m.author.id === "330547934951112705", time: 15000, errors: ['time'], max: 1});}
catch {message.channel.send("Oh, I guess he already went to bed, huh? I'll just... set his status anyways-"); to = true;} catch {message.channel.send("Oh, I guess he already went to bed, huh? I'll just... set his status anyways-"); to = true;}
if (sconf) {sconf = sconf.first().content.trim().toLowerCase();} if (sconf) {sconf = sconf.first().content.trim().toLowerCase();}
if (to || incl(['ye', 'mhm', 'sure'], sconf)) { if (to || incl(['ye', 'mhm', 'sure'], sconf)) {
@ -59,7 +59,7 @@ module.exports = {
"watch quintessential quintuplets", "have your heart wrenched out by Senko-San again", "finish Bleach", "finish Akame ga Kill", "start Guren Lagann", "finish Darling in the Franxx again", "watch quintessential quintuplets", "have your heart wrenched out by Senko-San again", "finish Bleach", "finish Akame ga Kill", "start Guren Lagann", "finish Darling in the Franxx again",
"watch Akashic Records again", "finish Rent-a-Girlfriend", "rebinge Kabaneri and question reality", "rewatch Code Geass", "do a thing called getting the hell off anime and doing something productive with your life!"]; "watch Akashic Records again", "finish Rent-a-Girlfriend", "rebinge Kabaneri and question reality", "rewatch Code Geass", "do a thing called getting the hell off anime and doing something productive with your life!"];
message.channel.send(`${r1[Math.floor(Math.random() * r1.length)]} ${r2[Math.floor(Math.random() * r2.length)]}`); message.channel.send(`${r1[Math.floor(Math.random() * r1.length)]} ${r2[Math.floor(Math.random() * r2.length)]}`);
try {sconf = await message.channel.awaitMessages(m => m.author.id === "330547934951112705", {time: 15000, errors: ['time'], max: 1});} try {sconf = await message.channel.awaitMessages({filter: m => m.author.id === "330547934951112705", time: 15000, errors: ['time'], max: 1});}
catch {message.channel.send("Oh, I guess he liked the idea that much and just left..."); return 2;} catch {message.channel.send("Oh, I guess he liked the idea that much and just left..."); return 2;}
sconf = sconf.first().content.trim().toLowerCase(); sconf = sconf.first().content.trim().toLowerCase();
if (incl(["bet", "i like", "yes", "sure", "fine", "alright", "ok"], sconf)) { if (incl(["bet", "i like", "yes", "sure", "fine", "alright", "ok"], sconf)) {
@ -75,7 +75,7 @@ module.exports = {
let res = await q(); let res = await q();
if (res === 2) {return;} if (res === 2) {return;}
let to = false; let sconf; let to = false; let sconf;
try {sconf = await message.channel.awaitMessages(m => m.author.id === "330547934951112705", {time: 15000, errors: ['time'], max: 1});} try {sconf = await message.channel.awaitMessages({filter: m => m.author.id === "330547934951112705", time: 15000, errors: ['time'], max: 1});}
catch {message.channel.send("Guess my recommendations are just that good that he left... Don't mind me while I set his status anyways"); to = true;} catch {message.channel.send("Guess my recommendations are just that good that he left... Don't mind me while I set his status anyways"); to = true;}
if (sconf) {sconf = sconf.first().content.trim().toLowerCase();} if (sconf) {sconf = sconf.first().content.trim().toLowerCase();}
if (to || incl(['ye', 'mhm', 'sure'], sconf)) { if (to || incl(['ye', 'mhm', 'sure'], sconf)) {

@ -2,7 +2,7 @@ module.exports = async (message, toAsk, time, nofilter, timeoutResponse) => {
let msg = await message.channel.send(toAsk); let msg = await message.channel.send(toAsk);
let filter = nofilter ? () => true : m => m.author.id === message.author.id; let filter = nofilter ? () => true : m => m.author.id === message.author.id;
try { try {
let collected = await msg.channel.awaitMessages(filter, {max: 1, errors: ['time'], time: time}); let collected = await msg.channel.awaitMessages({filter: filter, max: 1, errors: ['time'], time: time});
collected = collected.first().content; collected = collected.first().content;
return collected; return collected;
} catch { } catch {

@ -30,9 +30,10 @@ class Pagination {
this.message = tempm; this.message = tempm;
} }
} }
await this.message.edit('', this.pages[page] await this.message.edit({ content: '', embeds: [this.pages[page]
.setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL()) .setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL())
.setTimestamp()); .setTimestamp()]
});
this.currentPage = page; this.currentPage = page;
return this; return this;
} }
@ -86,7 +87,7 @@ class Pagination {
let filter = user && user.toLowerCase().trim() !== 'any' let filter = user && user.toLowerCase().trim() !== 'any'
? (r, u) => { return u.id === user.trim() && emoji.includes(r.emoji.name); } ? (r, u) => { return u.id === user.trim() && emoji.includes(r.emoji.name); }
: (r) => { return emoji.includes(r.emoji.name); }; : (r) => { return emoji.includes(r.emoji.name); };
this.controllers.collector = this.message.createReactionCollector(filter, { time: 450000 }); this.controllers.collector = this.message.createReactionCollector({ filter, time: 450000 });
this.controllers.collector.on('collect', async (r) => { this.controllers.collector.on('collect', async (r) => {
let functions = { let functions = {
'⬅': () => { return this.prevPage(); }, '⬅': () => { return this.prevPage(); },
@ -115,7 +116,7 @@ class Pagination {
let fe = this.message.embeds[0]; let fe = this.message.embeds[0];
fe.setDescription(`${fe.description}\n\n*This menu has ended, start a new one to interact with it!*`); fe.setDescription(`${fe.description}\n\n*This menu has ended, start a new one to interact with it!*`);
fe.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL()); fe.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL());
await this.message.edit(fe); await this.message.edit({ embeds: [fe] });
clearInterval(this.timeoutInterval); clearInterval(this.timeoutInterval);
return this; return this;
} }

@ -2,7 +2,7 @@ module.exports = async (member, client, text) => {
text = text text = text
.replace(/(?:{{member}}|{{m}})/gm, member.displayName) .replace(/(?:{{member}}|{{m}})/gm, member.displayName)
.replace(/(?:{{membercount}}|{{mc}})/gm, `${member.guild.members.cache.size}`) .replace(/(?:{{membercount}}|{{mc}})/gm, `${member.guild.members.cache.size}`)
.replace(/(?:{{owner}}|{{o}})/gm, member.guild.owner.displayName) .replace(/(?:{{owner}}|{{o}})/gm, member.guild.fetchOwner().then(owner => owner.displayName))
.replace(/(?:{{ping}}|{{mp}}|{{memberping}}|{{p}})/gm, `<@${member.id}>`) .replace(/(?:{{ping}}|{{mp}}|{{memberping}}|{{p}})/gm, `<@${member.id}>`)
.replace(/(?:{{s}}|{{server}}|{{servername}}|{{sn}})/gm, member.guild.name) .replace(/(?:{{s}}|{{server}}|{{servername}}|{{sn}})/gm, member.guild.name)
.replace(/{{n}}/gm, '\n') .replace(/{{n}}/gm, '\n')

@ -16,7 +16,7 @@ module.exports = async(member, channel, mode, client, options) => {
if (options.guildthumb) {responseEmbed.setThumbnail(channel.guild.iconURL({size: 1024}));} if (options.guildthumb) {responseEmbed.setThumbnail(channel.guild.iconURL({size: 1024}));}
} }
if (channel.permissionsFor(client.user.id).has("SEND_MESSAGES")) {return channel.send( if (channel.permissionsFor(client.user.id).has("SEND_MESSAGES")) {return channel.send(
options.message ? await filterResponse(member, client, options.text) : responseEmbed options.message ? await filterResponse(member, client, options.text) : {embeds: [responseEmbed]}
);} );}
} catch {} } catch {}
}; };

@ -36,10 +36,10 @@ export class Pagination {
else {this.message = tempm;} else {this.message = tempm;}
} }
await this.message.edit('', this.pages[page] await this.message.edit({content: '', embeds: [this.pages[page]
.setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL()) .setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL())
.setTimestamp() .setTimestamp()]
); });
this.currentPage = page; this.currentPage = page;
return this; return this;
@ -95,7 +95,7 @@ export class Pagination {
? (r: MessageReaction, u) => {return u.id === user.trim() && emoji.includes(r.emoji.name);} ? (r: MessageReaction, u) => {return u.id === user.trim() && emoji.includes(r.emoji.name);}
: (r: MessageReaction) => {return emoji.includes(r.emoji.name);}; : (r: MessageReaction) => {return emoji.includes(r.emoji.name);};
this.controllers.collector = this.message.createReactionCollector(filter, {time: 450000}); this.controllers.collector = this.message.createReactionCollector({filter: filter, time: 450000});
this.controllers.collector.on('collect', async (r: MessageReaction) => { this.controllers.collector.on('collect', async (r: MessageReaction) => {
let functions = { let functions = {
@ -127,7 +127,7 @@ export class Pagination {
let fe = this.message.embeds[0]; let fe = this.message.embeds[0];
fe.setDescription(`${fe.description}\n\n*This menu has ended, start a new one to interact with it!*`); fe.setDescription(`${fe.description}\n\n*This menu has ended, start a new one to interact with it!*`);
fe.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL()); fe.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL());
await this.message.edit(fe); await this.message.edit({embeds: [fe]});
clearInterval(this.timeoutInterval); clearInterval(this.timeoutInterval);

Loading…
Cancel
Save