update to v13

master
Kit Kasune 3 years ago
parent 897d064699
commit 573ed8d162
  1. 3
      .gitignore
  2. 1
      .idea/.name
  3. 24
      .idea/Natsuki.iml
  4. 3
      .idea/discord.xml
  5. 6
      .idea/jsLibraryMappings.xml
  6. 16
      .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. 1395
      package-lock.json
  87. 7
      package.json
  88. 6
      responses/wubzy.js
  89. 2
      util/ask.js
  90. 72
      util/pagination.d.ts
  91. 269
      util/pagination.js
  92. 2
      util/response/filterresponse.js
  93. 2
      util/response/sendresponse.js
  94. 10
      util/ts/pagination.ts

3
.gitignore vendored

@ -1,4 +1,5 @@
node_modules/
config.json
auth.json
test.js
test.js
/.idea/

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

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="death" />
</component>
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="Natsukiv13" />
</component>
</module>

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

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<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" />
</modules>
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Natsuki.iml" filepath="$PROJECT_DIR$/.idea/Natsuki.iml" />
<module fileurl="file://$PROJECT_DIR$/../Natsukiv13/.idea/Natsukiv13.iml" filepath="$PROJECT_DIR$/../Natsukiv13/.idea/Natsukiv13.iml" />
</modules>
</component>
</project>

@ -1,81 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<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" />
<<<<<<< HEAD
=======
<change beforePath="$PROJECT_DIR$/commands/clearwarnings.js" beforeDir="false" afterPath="$PROJECT_DIR$/commands/clearwarnings.js" 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
<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$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="JavaScript File" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectId" id="1n9IiG5kVrDYP7HFa5wLZZI14pG" />
<component name="ProjectId" id="1wWIAa3TuwhYwX0w4tzIs42s0ZG" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="NEW_TOOLWINDOW_STRIPE_DEFAULTS" value="true" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<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.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.tslint" value="(autodetect)" />
<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" />
</component>
<component name="RunManager">
<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">
<component name="RunManager" selected="Node.js.bot.js (1)">
<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" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Node.js.test.js" />
<item itemvalue="Node.js.bot.js (1)" />
<item itemvalue="Node.js.bot.js" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="977e7f53-d837-472d-98d5-0d19ca269f67" name="Default Changelist" comment="" />
<created>1610796005269</created>
<changelist id="826c705b-a7fa-4ece-b82a-e278fca7d494" name="Changes" comment="" />
<created>1628567777733</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1610796005269</updated>
<workItem from="1610796007081" duration="78000" />
<workItem from="1610796096772" duration="93000" />
<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
<updated>1628567777733</updated>
<workItem from="1628567780803" duration="1293000" />
<workItem from="1628630503078" duration="47000" />
</task>
<servers />
</component>

@ -1,10 +1,13 @@
const Discord = require('discord.js');
const client = new Discord.Client();
const chalk = require('chalk');
const ora = require('ora');
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 = {
savers: ['497598953206841375', '480535078150340609', '468903364533420074'],
activeDMs: new Discord.Collection(),

@ -150,15 +150,15 @@ module.exports = {
.setFooter('Natsuki', client.user.avatarURL())
.setTimestamp();
try {
am = await message.channel.send(amEmbed);
am = await message.channel.send({embeds: [amEmbed]});
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.");}
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 => {
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;}}
await new AniData(options).save();
return message.author.send(`Your anime has been ${!queue ? "added" : "submitted"}`);

@ -36,7 +36,7 @@ module.exports = {
.setColor("e8da3a")
.setFooter("Natsuki")
.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!`);
}
};

@ -38,7 +38,7 @@ module.exports = {
.setColor("e8da3a")
.setFooter("Natsuki")
.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!`);
}
};

@ -34,12 +34,12 @@ module.exports = {
.replace(client.config.database.password, 'Database Password')
.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')
.setDescription(`\`\`\`js\n${output}\n\`\`\``)
.setColor('c375f0')
.setFooter(`Natsuki | Evaluated in ${new Date().getTime() - timer}ms`, client.user.avatarURL())
.setTimestamp());
.setTimestamp()]});
}).catch(error => {return message.channel.send(`Error: \`${error}\`.`);});
} catch (error) {
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(":(");}
return cp.exec(args.join(" "), function(error, stdout, stderr) {
if (error) {
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Error")
.setDescription(`\`\`\`${error}\`\`\``)
.setColor("ff446a")
.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")
.setDescription(`\`\`\`${stdout}\`\`\``)
.setColor("c375f0")
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
);
});
}

@ -36,7 +36,7 @@ module.exports = {
.setColor("e8da3a")
.setFooter("Natsuki")
.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!`);
}
};

@ -36,14 +36,14 @@ module.exports = {
if (tguild.vip === true) {return message.reply("This server is already a VIP server.");}
tguild.vip = true;
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!");
} else if (['remove', 'r', 'delete', 'd'].includes(args[0])) {
let tguild = await GuildSettings.findOne({gid: message.guild.id});
if (tguild) {
if (tguild.vip === false) {return message.reply("This server wasn't a VIP server anyways...");}
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...");}
return message.reply("This server is no longer a VIP server!");
} 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;
return message.reply(new Discord.MessageEmbed()
return message.reply({embeds: [new Discord.MessageEmbed()
.setAuthor("8ball Question", message.author.avatarURL())
.setDescription("**Question:** " + question + "\n**Answer:** " + responses[Math.floor(Math.random() * responses.length)])
.setColor("c375f0")
.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.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.");}
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('d93846')
);
]});
}
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!');}

@ -104,12 +104,12 @@ module.exports = {
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)
.setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
await require('../../util/wait')(2500);
@ -139,6 +139,6 @@ module.exports = {
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 saves = savess.saves;
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them a little kiss with \`${prefix}kiss @${message.member.displayName}\`!`)
.setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "I'm not really into that kind of thing. Maybe try asking in a server?"
);}
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.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?");}
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('d428a0')
);
]});
}
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!');}

@ -28,14 +28,14 @@ module.exports = {
let stream = client.lfm.stream(saves.get(user.id));
stream.on('nowPlaying', t => {
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())
.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}).`)
.setColor("c375f0")
.setThumbnail(t.image[3]['#text'])
.setTimestamp()
)
]})
found = true;
stream.stop();
return resolve(undefined);

@ -75,7 +75,7 @@ module.exports = {
tss.save();
clearDM();
return dmch.send(new Discord.MessageEmbed()
return dmch.send({embeds: [new Discord.MessageEmbed()
.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.")
.setThumbnail(message.author.avatarURL({size: 1024}))
@ -84,7 +84,7 @@ module.exports = {
.setColor("01bd2f")
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
}
if (['j', 'join'].includes(args[0].toLowerCase())) {
@ -105,7 +105,7 @@ module.exports = {
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!")
.setDescription("This is the one you're trying to join!")
.addField("Start", tss.start)
@ -115,11 +115,11 @@ module.exports = {
.addField("Anonymous Gifters", tss.anon ? "Yes" : "No")
.addField("ID", `\`${tss.ssid}\``, 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")
.setFooter("Natsuki", client.user.avatarURL())
.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();}
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.markModified(`against.${mention.id}`);
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())
.setDescription(`That makes slap **#${slaps.against[mention.id]}** from you to them!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('d93846')
.setFooter(`${slaps.total} slap${slaps.total === 1 ? '' : 's'} total`)
);
]});
}
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!');}

@ -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`;}
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")
.setThumbnail(message.guild.iconURL({size: 2048, dynamic: true}))
.addField("Level", lvls)
.setColor('c375f0')
.setFooter("Natsuki | Stats may be up to 2 minutes out of sync")
.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);
us = ``;

@ -59,14 +59,14 @@ module.exports = {
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`;}
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")
.setThumbnail(message.guild.iconURL({size: 2048}))
.setDescription(s)
.setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
}
if (['d', 'delete', 'r', 'remove'].includes(args[0].toLowerCase())) {

@ -27,20 +27,20 @@ module.exports = {
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.");}
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 => {
let xp = new LXP({gid: message.guild.id});
xp.msg = r.emoji.name === "👍";
xp.save();
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!")
.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
.setColor("c375f0")
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
});
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!");}

@ -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!`);}
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];}
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`)
.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)
.setThumbnail(client.users.cache.get(u.id).avatarURL({size: 2048}))
.setColor("c375f0")
.setFooter("Natsuki")
.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...");}
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;
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!");}
collected = collected.first().content.trim();
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!");}
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;
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!");}
collected = collected.first().content.trim();
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())) {
let tar = await AR.findOne({gid: message.guild.id});
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())) {

@ -26,7 +26,7 @@ module.exports = {
.setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL())
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.");}
}
};

@ -20,6 +20,6 @@ module.exports = {
.setFooter("Natsuki", client.user.avatarURL())
.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(', ')));
return message.channel.send(ce);
return message.channel.send({embeds: [ce]});
}
};

@ -74,13 +74,13 @@ module.exports = {
} else {
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`;}
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`Emoji Lookup Results - ${lookup.size}`)
.setDescription(page)
.setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
}
}
let name; let id; let animated; let url;
@ -114,7 +114,7 @@ module.exports = {
.setTimestamp();
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}**`);}
return message.channel.send(finEm);
return message.channel.send({embeds: [finEm]});
} 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.");
}

@ -54,7 +54,7 @@ module.exports = {
if (pages.length > 1) {
let help = new Pagination(message.channel, pages, message, client, true);
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 {
let command;
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 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())
.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 ^^`)
.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("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)
.setColor("c375f0")
.setFooter("Natsuki")
.setTimestamp());
.setTimestamp()
]});
}
};

@ -9,14 +9,14 @@ module.exports = {
meta: {
category: 'Misc',
description: "Stop auto responses from being sent to a specific channel.",
syntax: '`ignorear [#channel|channelID]`',
syntax: '`ignorear [#channel|channelId]`',
extra: null,
guildOnly: true
},
help: new Discord.MessageEmbed()
.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.")
.addField("Syntax", "`[#channel|channelID]` - channel is optional."),
.addField("Syntax", "`[#channel|channelId]` - channel is optional."),
async execute(message, msg, args, cmd, prefix, mention, client) {
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.");}

@ -11,13 +11,13 @@ module.exports = {
},
help: "Shows you my invite and support server invite",
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!")
.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!")
.setColor("c375f0")
.setFooter("Natsuki")
.setTimestamp()
);
]});
}
};

@ -12,10 +12,10 @@ module.exports = {
},
help: "shows my memory usage stats",
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")
.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')
);
]});
}
};

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

@ -14,11 +14,11 @@ module.exports = {
},
execute(message, msg, args, cmd, prefix, mention, client) {
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())
.setTitle(message.guild.name)
.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("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)
@ -26,6 +26,6 @@ module.exports = {
.setColor('c375f0')
.setFooter("Natsuki")
.setTimestamp()
);
]});
}
};

@ -11,13 +11,13 @@ module.exports = {
},
help: "Get an invite to Natsuki's support server!",
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!")
.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!")
.setColor("c375f0")
.setFooter("Natsuki")
.setTimestamp()
);
]});
}
};

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

@ -31,7 +31,7 @@ module.exports = {
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)
.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:");}
}

@ -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(" ");}}
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 () => {
/*let mh = await Mod.findOne({gid: message.guild.id}) || new Mod({gid: message.guild.id});
let mhcases = mh.cases;

@ -37,7 +37,7 @@ module.exports = {
}
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.");}
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("User Warnings")
.setThumbnail(client.users.cache.get(user.id).avatarURL({size: 1024}))
.setDescription(`For ${user.displayName}`)
@ -45,6 +45,6 @@ module.exports = {
.setColor("c375f0")
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
}
};

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

@ -71,14 +71,14 @@ module.exports = {
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp();
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())) {
let options = await getResponse(message, args[1]);
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>\``);
}

@ -41,7 +41,7 @@ module.exports = {
tguild.save();
let upm = await message.reply("sure thing!");
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())
.setDescription(`<@&${tguild.staffrole}> can now edit my settings in this server.`)
.addField('Auditing Admin', `<@${message.member.id}>`, true)
@ -49,7 +49,7 @@ module.exports = {
.setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL())
.setTimestamp()
);
]});
}
}
};

@ -45,7 +45,7 @@ module.exports = {
}
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.");}
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("User Warnings")
.setThumbnail(client.users.cache.get(user.id).avatarURL({size: 1024}))
.setDescription(`For ${user.displayName}`)
@ -53,7 +53,7 @@ module.exports = {
.setColor("c375f0")
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
}
else if (['clear', 'e', 'empty'].includes(args[0].toLowerCase())) {

@ -37,13 +37,13 @@ module.exports = {
tg.save();
tr.bindings.set('welcome', args[2].toLowerCase());
tr.save();
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.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()}\``)
.setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
)
]})
}
if (['t', 'test'].includes(args[0].toLowerCase())) {
@ -60,13 +60,13 @@ module.exports = {
tr.bindings.delete('welcome');
tr.save();
}
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Welcome Channel/Message Updated")
.setDescription(`This server's member-welcoming settings have been altered by ${message.author.tag}.\n\n**Channel**: None`)
.setColor('c375f0')
.setFooter("Natsuki", client.user.avatarURL())
.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 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!");}
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}`)
.setThumbnail(client.users.cache.get(person).avatarURL({size: 2048}))
.setDescription(pud.bio)
.setColor(pud.color && pud.color.length ? pud.color : 'c375f0')
.setFooter('Natsuki', client.user.avatarURL())
.setTimestamp()
);
]});
}
if (['s', 'set'].includes(args[0].toLowerCase())) {
args.shift();
@ -43,14 +43,14 @@ module.exports = {
if (bio.length > 200) {return message.reply("Please keep your bio under 200 characters!");}
tu.bio = bio;
tu.save();
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle(`Bio Set!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(tu.bio)
.setColor(tu.color && tu.color.length ? tu.color : 'c375f0')
.setFooter('Natsuki', client.user.avatarURL())
.setTimestamp()
);
]});
}
if (['c', 'clear'].includes(args[0].toLowerCase())) {
tu.bio = '';

@ -15,11 +15,11 @@ module.exports = {
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 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`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('ad0072')
);}
]});}
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!');}
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 saves = savess.saves;
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them one with \`${prefix}bonk @${message.member.displayName}\`!`)
.setColor('dda0dd')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "I fucking dare you to hit me."
);}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -37,13 +37,13 @@ module.exports = {
bonk.total++;
bonk.markModified(`against.${mention.id}`);
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())
.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)]))
.setColor('dda0dd')
.setFooter(`${bonk.total} bonk${bonk.total === 1 ? '' : 's'} total`)
);
]});
}
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!');}

@ -21,6 +21,6 @@ module.exports = {
tu.statustype = '';
tu.save();
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;
if (!args.length) {
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Help with their..ahem..problem..with \`${prefix}creampie @${name}\`!`)
.setColor('fffdd0')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "Do. Not. Touch. Me."
);}
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.");}
let name = message.guild ? message.member.displayName : message.author.username;
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('fffdd0')
);
]});
}
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!');}

@ -16,11 +16,11 @@ module.exports = {
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 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!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('8d42f5')
);}
]});}
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!');}
let tu = await UserData.findOne({uid: message.author.id});

@ -16,11 +16,11 @@ module.exports = {
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 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!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('3A8ED5')
);}
]});}
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!');}
let tu = await UserData.findOne({uid: message.author.id});

@ -16,11 +16,11 @@ module.exports = {
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 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!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('b2ac88')
);}
]});}
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!');}
let tu = await UserData.findOne({uid: message.author.id});

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves;
if (!args.length) {
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?`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Bless someone with some food with \`${prefix}feed @${name}\`!`)
.setColor('bb0a1e')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "Sorry..I'm kinda full right now."
);}
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.**");}
let name = message.guild ? message.member.displayName : message.author.username;
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('fed8b1')
);
]});
}
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!');}

@ -19,13 +19,13 @@ module.exports = {
let savess = await Saves.findOne({name: 'fuck'}) ? await Saves.findOne({name: 'fuck'}) : new Saves({name: 'fuck'});
let saves = savess.saves;
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Show them some love with \`${prefix}fuck @${message.member.displayName}\`!`)
.setColor('dda0dd')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "You can't bang me.......only Crescent can."
);}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -37,13 +37,13 @@ module.exports = {
fuck.total++;
fuck.markModified(`against.${mention.id}`);
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())
.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)]))
.setColor('dda0dd')
.setFooter(`${fuck.total} fuck${fuck.total === 1 ? '' : 's'} total`)
);
]});
}
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!');}

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves;
if (!args.length) {
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...`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Let them know you love them with \`${prefix}handhold @${name}\`!`)
.setColor('328ba8')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "Yikes... I'm kinda germaphobic you know. Maybe try asking in a server?"
);}
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.");}
let name = message.guild ? message.member.displayName : message.author.username;
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('d428a0')
);
]});
}
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!');}

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves;
if (!args.length) {
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Lend them some help with \`${prefix}heal @${name}\`!`)
.setColor('ffc0cb')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "I am immortal, I don't need healing."
);}
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");}
let name = message.guild ? message.member.displayName : message.author.username;
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('ffc0cb')
);
]});
}
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!');}

@ -19,13 +19,13 @@ module.exports = {
let savess = await Saves.findOne({name: 'hug'}) ? await Saves.findOne({name: 'hug'}) : new Saves({name: 'hug'});
let saves = savess.saves;
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Show them some love with \`${prefix}hug @${message.member.displayName}\`!`)
.setColor('c375f0')
.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!"
);}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -37,13 +37,13 @@ module.exports = {
hugs.total++;
hugs.markModified(`against.${mention.id}`);
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())
.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)]))
.setColor('52c7bb')
.setFooter(`${hugs.total} hug${hugs.total === 1 ? '' : 's'} total`)
);
]});
}
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!');}

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves;
if (!args.length) {
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Brutally murder someone with \`${prefix}kill @${name}\`!`)
.setColor('bb0a1e')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "You can't kill me..don't even try."
);}
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..");}
let name = message.guild ? message.member.displayName : message.author.username;
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('bb0a1e')
);
]});
}
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!');}

@ -19,13 +19,13 @@ module.exports = {
let savess = await Saves.findOne({name: 'kiss'}) ? await Saves.findOne({name: 'kiss'}) : new Saves({name: 'kiss'});
let saves = savess.saves;
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them a little kiss with \`${prefix}kiss @${message.member.displayName}\`!`)
.setColor('328ba8')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "Sorry..my lips are for Crescent only!"
);}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -37,13 +37,13 @@ module.exports = {
kiss.total++;
kiss.markModified(`against.${mention.id}`);
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())
.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)]))
.setColor('ac0f0f')
.setFooter(`${kiss.total} kisse${kiss.total === 1 ? '' : 's'} total`)
);
]});
}
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!');}

@ -16,11 +16,11 @@ module.exports = {
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 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!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('5eedc6')
);}
]});}
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!');}
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 saves = savess.saves;
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them some with \`${prefix}pat @${message.member.displayName}\`!`)
.setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "Sorry, but I'm only able to pat one person, and it's not you ^^"
);}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
@ -38,13 +38,13 @@ module.exports = {
pats.total++;
pats.markModified(`against.${mention.id}`);
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())
.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)]))
.setColor('52c7bb')
.setFooter(`${pats.total} pat${pats.total === 1 ? '' : 's'} total`)
);
]});
}
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!');}

@ -16,11 +16,11 @@ module.exports = {
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 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!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('add8e6')
);}
]});}
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!');}
let tu = await UserData.findOne({uid: message.author.id});

@ -18,14 +18,14 @@ module.exports = {
let saves = savess.saves;
if (!args.length) {
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Fall madly in love with someone with \`${prefix}simp @${name}\`!`)
.setColor('ffb6c1')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
: "Only my mommy Crescent can simp for me."
.setTimestamp()]}
: "Nobody simps for me. That's just weird. Be weird to someone else."
);}
if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) {
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.");}
let name = message.guild ? message.member.displayName : message.author.username;
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('ffb6c1')
);
]});
}
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!');}

@ -15,11 +15,11 @@ module.exports = {
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 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...`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('69310d')
);}
]});}
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!');}
let tu = await UserData.findOne({uid: message.author.id});

@ -16,11 +16,11 @@ module.exports = {
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 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!`)
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('00cd00')
);}
]});}
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!');}
let tu = await UserData.findOne({uid: message.author.id});

@ -28,13 +28,13 @@ module.exports = {
spanks.total++;
spanks.markModified(`against.${mention.id}`);
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())
.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)]))
.setColor('52c7bb')
.setFooter(`${spanks.total} spank${spanks.total === 1 ? '' : 's'} total`)
);
]});
}
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!');}

@ -18,13 +18,13 @@ module.exports = {
let saves = savess.saves;
if (!args.length) {
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!`)
.setThumbnail(message.author.avatarURL({size: 2048}))
.setDescription(`Give them a little wink with \`${prefix}wink @${name}\`!`)
.setColor('8a2be2')
.setFooter('Luno', client.user.avatarURL())
.setTimestamp()
.setTimestamp()]}
: "W-why are you winking at me privately..do it in a server! "
);}
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...");}
let name = message.guild ? message.member.displayName : message.author.username;
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())
.setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)]))
.setColor('8a2be2')
);
]});
}
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!');}

@ -51,6 +51,6 @@ module.exports = {
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!`);}
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 (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())) {

@ -40,12 +40,12 @@ module.exports = {
for (let i=0; i<count;i++) {
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' : ''}`)
.setDescription(res)
.setColor('c375f0')
.setFooter('Natsuki', client.user.avatarURL())
.setTimestamp()
);
]});
}
};

@ -15,20 +15,20 @@ module.exports = {
.setDescription("Takes an emoji and adds it to this server, if you have the permissions.")
.addField("Syntax", "`robemote [emoji] [name]`"),
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.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.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_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) {
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.setTitle("Add Emoji")
.setDescription("React to this message with the emoji you want to be added to the server.")
.setFooter("This will time out in 60 seconds")
.setColor('c375f0')
).then(m => {
]}).then(m => {
const rc = m.createReactionCollector((r, u) => u.id === message.author.id, {time: 60000});
rc.on('collect', r => {
rc.stop();
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())
.setTitle("Emoji Created!")
.setThumbnail(`https://cdn.discordapp.com/emojis/${e.id}${e.animated ? '.gif': ''}`)
@ -36,7 +36,7 @@ module.exports = {
.setFooter("Natsuki")
.setColor('c375f0')
.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 => {
if (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."));
});
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]}`
: args[0],
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())
.setTitle("Emoji Created!")
.setThumbnail(`https://cdn.discordapp.com/emojis/${e.id}${e.animated ? '.gif': ''}`)
@ -68,7 +68,7 @@ module.exports = {
.setFooter("Natsuki")
.setColor('c375f0')
.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."));
}
};

@ -47,22 +47,22 @@ module.exports = {
await td.save();
let totalItems = 0;
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())
.setTitle(`List Created: ${ln}`)
.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}\`.`)
.setColor("c375f0")
.setFooter("Natsuki")
.setTimestamp()
);
.setTimestamp()]
});
} 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.");}
let ln;
if (!args[1]) {
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`;}
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())
.setTitle(`Your ToDo lists`)
.setDescription(s)
@ -70,9 +70,9 @@ module.exports = {
.setColor("c375f0")
.setFooter("Natsuki")
.setTimestamp()
);
]});
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!");}
ln = collected.first().content.trim();
} else {ln = args[1].trim().toLowerCase();}
@ -90,14 +90,14 @@ module.exports = {
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`;}
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())
.setTitle(`Your ToDo lists`)
.setDescription(s)
.setColor("c375f0")
.setFooter("Natsuki")
.setTimestamp()
);
]});
} else if (td && Object.keys(td.lists).includes(args[0].trim().toLowerCase())) {
list = args[0].trim().toLowerCase();
args.shift();
@ -115,11 +115,11 @@ module.exports = {
td.lists[list].push(item);
td.markModified(`lists.${list}`);
td.save();
return message.channel.send(new Discord.MessageEmbed()
return message.channel.send({embeds: [new Discord.MessageEmbed()
.setAuthor("To-Do Added!", message.author.avatarURL())
.setDescription(`${item}\n\`->\` In ${list === 'quick' ? "your personal quick list" : `list \`${list}\``}`)
.setColor('c375f0')
);
]});
}
else if (['v', 'view'].includes(args[0].toLowerCase())) {
@ -131,14 +131,14 @@ module.exports = {
let s = '';
let n = 0; let i;
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())
.setTitle(list === "quick" ? "Personal Quick List" : `List: "${list}"`)
.setDescription(s)
.setColor("c375f0")
.setFooter("Natsuki")
.setTimestamp()
).catch(() => {
]}).catch(() => {
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.");
});
@ -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!");}
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.");}
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())
.setTitle(list === "quick" ? "Personal Quick List" : `List "${list}"`)
.setDescription(`List item **#${id}**\n\`->\` ${td.lists[list][id-1]}`)
.setColor("c375f0")
.setFooter("Natsuki")
.setTimestamp()
);
]});
}
}
@ -166,7 +166,7 @@ module.exports = {
if (!args[1]) {
let s = '';
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())
.setTitle(list === "quick" ? "Personal Quick List" : `List "${list}"`)
.setDescription(s)
@ -174,8 +174,8 @@ module.exports = {
.setColor("c375f0")
.setFooter("Natsuki")
.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!");}
collected = collected.first().content.trim();
} else {collected = args[1];}

@ -4,13 +4,13 @@ module.exports = (client, channel) => {
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;
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")
.setDescription(`<#${channel.id}> || **#${channel.name}**${channel.parent && channel.parent.name ? `\nCategory: **${channel.parent.name}**` : ''}`)
.setColor('936b30')
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
}}
}
};

@ -3,12 +3,12 @@ const Discord = require('discord.js');
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;
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")
.setDescription(`Name: **#${channel.name}**${channel.parent && channel.parent.name ? `\nCategory: **${channel.parent.name}**` : ''}`)
.setColor('936b30')
.setFooter("Natsuki", client.user.avatarURL())
.setTimestamp()
);
]});
}}
};

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

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

@ -8,9 +8,15 @@ const AR = require('../models/ar');
const LXP = require('../models/localxp');
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) => {
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;};};
@ -30,10 +36,10 @@ module.exports = async (client, message) => {
if (message.content.includes("@everyone")) {return;}
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)])
.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);}
@ -43,7 +49,7 @@ module.exports = async (client, message) => {
tu.statustype = '';
tu.save();
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))) {
@ -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;}
message.channel.startTyping();
await wait(800);
message.channel.stopTyping();
message.channel.sendTyping();
await wait(500);
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);
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 channelTypes = ["GUILD_MESSAGE", "DM", "GUILD_NEWS_THREAD", "GUILD_PRIVATE_THREAD", "GUILD_PUBLIC_THREAD", "GUILD_NEWS", "GROUP_DM", "GUILD_STORE"];
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] = {};};
//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);}
}
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 (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]);
if (starMessage) {await starMessage.edit(starEmbed);}
if (starMessage) {await starMessage.edit({embeds: [starEmbed]});}
} else {
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.starCount[reaction.message.author.id] = sd.starCount[reaction.message.author.id] ? sd.starCount[reaction.message.author.id] + 1 : 1;
sd.serverStarCount += 1;

@ -1,7 +1,9 @@
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) => {
if (oldM.channel.type != "text") {return;};
if (!channelTypes.includes(oldM.channel.type)) {return;};
if (oldM.author.bot) {return;}
if (oldM.deleted) {return;}
//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())
.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);}
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) => {
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 (oldState.channelID && voice.channelID) {
voice.guild.channels.cache.get(ts).send(new Discord.MessageEmbed()
if (oldState.channelId && voice.channelId) {
voice.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed()
.setTitle(`Member Switched VCs`)
.setThumbnail(client.users.cache.get(oldState.member.id).avatarURL({size: 2048, dynamic: true}))
.setDescription(`Old Channel: **${oldState.channel.name}**\nNew Channel: **${voice.channel.name}**`)
.setColor('e86b8f').setFooter("Natsuki", client.user.avatarURL()).setTimestamp()
).catch(() => {});
]}).catch(() => {});
} else {
voice.guild.channels.cache.get(ts).send(new Discord.MessageEmbed()
.setTitle(`Member ${voice.channelID ? 'Joined' : 'Left'} VC`)
voice.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed()
.setTitle(`Member ${voice.channelId ? 'Joined' : 'Left'} VC`)
.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()
).catch(() => {});
]}).catch(() => {});
}
}}
if (client.users.cache.get(voice.member.id).bot) {return;}
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;
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 {
if (!client.misc.cache.inVC.includes(voice.member.id)) {return;}
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];}
}
}

@ -8,24 +8,24 @@ module.exports = client => {
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)}));
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();
//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 num = 0;
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) {
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}`)];}
let command = require(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`);
client.commands.set(command.name, command);
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();
console.log(`${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`);
//cora.stop(); cora.clear();
//console.log(`${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`);
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')}`);
};

1395
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -5,12 +5,12 @@
"main": "bot.js",
"author": "NatsukiDev",
"dependencies": {
"canvas": "^2.6.1",
"@discordjs/voice": "^0.6.0",
"chalk": "^4.1.0",
"cron": "^1.8.2",
"dblapi.js": "^2.4.1",
"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",
"manyitems": "^1.0.2",
"moment": "^2.28.0",
@ -24,5 +24,8 @@
},
"engines": {
"node": "12.14.1"
},
"scripts": {
"start": "run"
}
}

@ -34,7 +34,7 @@ module.exports = {
"<: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?`);
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;}
if (sconf) {sconf = sconf.first().content.trim().toLowerCase();}
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 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)]}`);
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;}
sconf = sconf.first().content.trim().toLowerCase();
if (incl(["bet", "i like", "yes", "sure", "fine", "alright", "ok"], sconf)) {
@ -75,7 +75,7 @@ module.exports = {
let res = await q();
if (res === 2) {return;}
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;}
if (sconf) {sconf = sconf.first().content.trim().toLowerCase();}
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 filter = nofilter ? () => true : m => m.author.id === message.author.id;
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;
return collected;
} catch {

@ -1,36 +1,36 @@
import { TextChannel, Message, MessageEmbed, Client, ReactionCollector } from 'discord.js';
export declare class Pagination {
channel: TextChannel;
message: Message;
pages: MessageEmbed[];
originalMessage: Message;
currentPage: number;
client: Client;
loopPages: boolean;
controllers: ControllerData;
timeoutInterval: any;
constructor(channel: TextChannel, pages: MessageEmbed[], originalMessage: Message, client: Client, loopPages?: boolean, message?: Message);
setPage(page: number): Promise<Pagination>;
nextPage(): Promise<Pagination>;
prevPage(): Promise<Pagination>;
addPage(page: MessageEmbed): Pagination;
replacePage(index: number, page: MessageEmbed): Pagination;
setControllers(endTime: number, user?: 'any' | string, extraControls?: ExtraControls): Promise<Pagination>;
updateControllers(): Promise<Pagination>;
endControllers(): Promise<Pagination>;
start(options?: {
endTime?: number;
startPage?: number;
user?: 'any' | string;
}): Promise<Pagination>;
stop(): Promise<Pagination>;
}
interface ExtraControls {
}
interface ControllerData {
endTime: number;
enabled: boolean;
lastInteraction: Date;
collector: ReactionCollector;
}
export {};
import { TextChannel, Message, MessageEmbed, Client, ReactionCollector } from 'discord.js';
export declare class Pagination {
channel: TextChannel;
message: Message;
pages: MessageEmbed[];
originalMessage: Message;
currentPage: number;
client: Client;
loopPages: boolean;
controllers: ControllerData;
timeoutInterval: any;
constructor(channel: TextChannel, pages: MessageEmbed[], originalMessage: Message, client: Client, loopPages?: boolean, message?: Message);
setPage(page: number): Promise<Pagination>;
nextPage(): Promise<Pagination>;
prevPage(): Promise<Pagination>;
addPage(page: MessageEmbed): Pagination;
replacePage(index: number, page: MessageEmbed): Pagination;
setControllers(endTime: number, user?: 'any' | string, extraControls?: ExtraControls): Promise<Pagination>;
updateControllers(): Promise<Pagination>;
endControllers(): Promise<Pagination>;
start(options?: {
endTime?: number;
startPage?: number;
user?: 'any' | string;
}): Promise<Pagination>;
stop(): Promise<Pagination>;
}
interface ExtraControls {
}
interface ControllerData {
endTime: number;
enabled: boolean;
lastInteraction: Date;
collector: ReactionCollector;
}
export {};

@ -1,134 +1,135 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Pagination = void 0;
class Pagination {
constructor(channel, pages, originalMessage, client, loopPages, message) {
this.loopPages = true;
this.controllers = { enabled: false, endTime: null, collector: null, lastInteraction: null };
this.channel = channel;
this.pages = pages;
this.originalMessage = message;
this.client = client;
this.currentPage = 0;
if (message) {
this.message = message;
}
if (loopPages) {
this.loopPages = loopPages;
}
}
;
async setPage(page) {
if (this.pages.length < page + 1) { }
if (!this.message) {
let tempm = await this.channel.send("One moment...")
.catch(() => { this.originalMessage.reply("There seemed to be a problem doing that..."); return this; });
if (tempm instanceof Pagination) {
return this;
}
else {
this.message = tempm;
}
}
await this.message.edit('', this.pages[page]
.setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL())
.setTimestamp());
this.currentPage = page;
return this;
}
;
async nextPage() {
await this.setPage(typeof this.currentPage === "number"
? this.currentPage + 1 == this.pages.length
? this.loopPages
? 0
: this.currentPage
: this.currentPage + 1
: 0);
return this;
}
;
async prevPage() {
await this.setPage(typeof this.currentPage === "number"
? this.currentPage === 0
? this.loopPages
? this.pages.length - 1
: 0
: this.currentPage - 1
: this.pages.length - 1);
return this;
}
;
addPage(page) {
this.pages.push(page);
return this;
}
;
replacePage(index, page) {
if (index < 0) {
throw new RangeError("replacePage() param 'index' must be a value greater than 0");
}
if (index > this.pages.length - 1) {
throw new RangeError("replacePage() param 'index' must be a value corresponding to an index that already exists in this instance's pages.");
}
this.pages[index] = page;
return this;
}
;
async setControllers(endTime, user, extraControls) {
if (this.controllers.enabled) {
return;
}
await this.message.react('⬅');
await this.message.react('➡');
await this.message.react('⏹');
let emoji = ['⬅', '➡', '⏹'];
let filter = user && user.toLowerCase().trim() !== 'any'
? (r, u) => { return u.id === user.trim() && emoji.includes(r.emoji.name); }
: (r) => { return emoji.includes(r.emoji.name); };
this.controllers.collector = this.message.createReactionCollector(filter, { time: 450000 });
this.controllers.collector.on('collect', async (r) => {
let functions = {
'⬅': () => { return this.prevPage(); },
'➡': () => { return this.nextPage(); },
'⏹': () => { return this.endControllers(); }
};
this.controllers.lastInteraction = new Date();
return functions[r.emoji.name]();
});
this.controllers.enabled = true;
this.controllers.endTime = endTime;
this.controllers.lastInteraction = new Date();
this.timeoutInterval = setInterval(() => {
if (new Date().getTime() - this.controllers.lastInteraction.getTime() > this.controllers.endTime && this.controllers.enabled) {
return this.endControllers();
}
}, this.controllers.endTime);
return this;
}
;
async updateControllers() { return this; }
;
async endControllers() {
await this.message.reactions.removeAll();
this.controllers.collector.stop();
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.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL());
await this.message.edit(fe);
clearInterval(this.timeoutInterval);
return this;
}
;
async start(options) {
await this.setPage(options && options.startPage ? options.startPage : 0);
await this.setControllers(options && options.endTime ? options.endTime : 60, options && options.user ? options.user : 'any');
return this;
}
;
async stop() {
return await this.endControllers();
}
;
}
exports.Pagination = Pagination;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Pagination = void 0;
class Pagination {
constructor(channel, pages, originalMessage, client, loopPages, message) {
this.loopPages = true;
this.controllers = { enabled: false, endTime: null, collector: null, lastInteraction: null };
this.channel = channel;
this.pages = pages;
this.originalMessage = message;
this.client = client;
this.currentPage = 0;
if (message) {
this.message = message;
}
if (loopPages) {
this.loopPages = loopPages;
}
}
;
async setPage(page) {
if (this.pages.length < page + 1) { }
if (!this.message) {
let tempm = await this.channel.send("One moment...")
.catch(() => { this.originalMessage.reply("There seemed to be a problem doing that..."); return this; });
if (tempm instanceof Pagination) {
return this;
}
else {
this.message = tempm;
}
}
await this.message.edit({ content: '', embeds: [this.pages[page]
.setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL())
.setTimestamp()]
});
this.currentPage = page;
return this;
}
;
async nextPage() {
await this.setPage(typeof this.currentPage === "number"
? this.currentPage + 1 == this.pages.length
? this.loopPages
? 0
: this.currentPage
: this.currentPage + 1
: 0);
return this;
}
;
async prevPage() {
await this.setPage(typeof this.currentPage === "number"
? this.currentPage === 0
? this.loopPages
? this.pages.length - 1
: 0
: this.currentPage - 1
: this.pages.length - 1);
return this;
}
;
addPage(page) {
this.pages.push(page);
return this;
}
;
replacePage(index, page) {
if (index < 0) {
throw new RangeError("replacePage() param 'index' must be a value greater than 0");
}
if (index > this.pages.length - 1) {
throw new RangeError("replacePage() param 'index' must be a value corresponding to an index that already exists in this instance's pages.");
}
this.pages[index] = page;
return this;
}
;
async setControllers(endTime, user, extraControls) {
if (this.controllers.enabled) {
return;
}
await this.message.react('⬅');
await this.message.react('➡');
await this.message.react('⏹');
let emoji = ['⬅', '➡', '⏹'];
let filter = user && user.toLowerCase().trim() !== 'any'
? (r, u) => { return u.id === user.trim() && emoji.includes(r.emoji.name); }
: (r) => { return emoji.includes(r.emoji.name); };
this.controllers.collector = this.message.createReactionCollector({ filter, time: 450000 });
this.controllers.collector.on('collect', async (r) => {
let functions = {
'⬅': () => { return this.prevPage(); },
'➡': () => { return this.nextPage(); },
'⏹': () => { return this.endControllers(); }
};
this.controllers.lastInteraction = new Date();
return functions[r.emoji.name]();
});
this.controllers.enabled = true;
this.controllers.endTime = endTime;
this.controllers.lastInteraction = new Date();
this.timeoutInterval = setInterval(() => {
if (new Date().getTime() - this.controllers.lastInteraction.getTime() > this.controllers.endTime && this.controllers.enabled) {
return this.endControllers();
}
}, this.controllers.endTime);
return this;
}
;
async updateControllers() { return this; }
;
async endControllers() {
await this.message.reactions.removeAll();
this.controllers.collector.stop();
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.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL());
await this.message.edit({ embeds: [fe] });
clearInterval(this.timeoutInterval);
return this;
}
;
async start(options) {
await this.setPage(options && options.startPage ? options.startPage : 0);
await this.setControllers(options && options.endTime ? options.endTime : 60, options && options.user ? options.user : 'any');
return this;
}
;
async stop() {
return await this.endControllers();
}
;
}
exports.Pagination = Pagination;

@ -2,7 +2,7 @@ module.exports = async (member, client, text) => {
text = text
.replace(/(?:{{member}}|{{m}})/gm, member.displayName)
.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(/(?:{{s}}|{{server}}|{{servername}}|{{sn}})/gm, member.guild.name)
.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 (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 {}
};

@ -36,10 +36,10 @@ export class Pagination {
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())
.setTimestamp()
);
.setTimestamp()]
});
this.currentPage = page;
return this;
@ -95,7 +95,7 @@ export class Pagination {
? (r: MessageReaction, u) => {return u.id === user.trim() && 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) => {
let functions = {
@ -127,7 +127,7 @@ export class Pagination {
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.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL());
await this.message.edit(fe);
await this.message.edit({embeds: [fe]});
clearInterval(this.timeoutInterval);

Loading…
Cancel
Save