Advertisement
Guest User

ree

a guest
Apr 11th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.96 KB | None | 0 0
  1. const Discord = require(`discord.js`);
  2. const bot = new Discord.Client();
  3. const GDClient = require("node-geometry-dash");
  4. const cfg = require ("./config.json");
  5. const difficulty = require ("./Diff/diff.json")
  6. const prefix = ("%");
  7. const fs = require('fs')
  8. const diffdir = fs.readdir('./Diff')
  9. const GD = new GDClient({
  10. username: "...", // doesn't work yet :/
  11. password: "..." // doesn't work yet :/
  12. });
  13.  
  14. let experimental = true;
  15.  
  16. function hook(channel, title, message, color, avatar) {
  17. if (!channel) return console.log(`Channel not specified`);
  18. if (!title) return console.log(`Title not specified`);
  19. if (!message) return console.log(`Message not specified`);
  20. if (!color) color = 'b54a4a';
  21. if (!avatar) avatarlol = 'https://cdn4.iconfinder.com/data/icons/flat-icon-set/128/chat-icon.png'
  22.  
  23. color = color.replace(/\s/g, '');
  24. avatarlol = avatarlol.replace(/\s/g, '');
  25. channel.fetchWebhooks()
  26. .then(Webhook => {
  27. let foundHook = Webhook.find('name', 'Webhook');
  28. if (!foundHook) {
  29. channel.createWebhook('Webhook', 'https://cdn4.iconfinder.com/data/icons/flat-icon-set/128/chat-icon.png')
  30. .then(Webhook => {
  31. Webhook.send('', {
  32. "username": title,
  33. "avatarURL": avatarlol,
  34. "embeds": [{
  35. "color": parseInt(`0x${color}`),
  36. "description": message
  37. }]
  38. })
  39. .catch(error => {
  40. console.log(error);
  41. return channel.send(`Something went wrong, please check the console`);
  42. })
  43. })
  44. } else {
  45. foundHook.send('', {
  46. "username": title,
  47. "avatarURL": avatarlol,
  48. "embeds": [{
  49. "color": parseInt(`0x${color}`),
  50. "description": message
  51. }]
  52. })
  53. .catch(error => {
  54. console.log(error);
  55. return channel.send(`Something went wrong, please check the console`);
  56. })
  57. }
  58. })
  59. }
  60.  
  61. var randompingmessage = [
  62. "ths took me about",
  63. "i was doing a sleep for",
  64. "no u",
  65. "**insert random message here**",
  66. "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuh idk maybe"
  67. ];
  68.  
  69. bot.on('ready', () => {
  70. console.log(`Logged in as ${bot.user.tag} (${bot.user.id}) on ${bot.guilds.size} servers`);
  71. bot.user.setActivity(`${cfg.prefix}help | Currently on ${bot.guilds.size} Servers!`)
  72. });
  73.  
  74. bot.on('message', message => {
  75. let msg = message.content.toLowerCase();
  76. let sender = message.author;
  77. let cont = message.content.slice(prefix.length).split(/ +/)
  78. let argss = cont.slice(1)
  79. let messg = argss.slice(1);
  80.  
  81. // -- ---Commands--- --
  82.  
  83. if (msg === prefix + `ping`) {
  84. message.channel.send(randompingmessage[Math.floor(Math.random() * randompingmessage.length)] + ` ${bot.pings}ms`);
  85. }
  86.  
  87. if (msg.startsWith(prefix + `purge`)) {
  88. async function purge() {
  89. message.delete();
  90.  
  91. if (!message.member.roles.find('name', `admin`)) {
  92. message.channel.send(`${sender}, sorry but you are not an admin`)
  93. return;
  94. }
  95.  
  96. if (isNaN(argss[0])) {
  97. message.channel.send(`Please provide a number\nUsage: ${prefix}purge <Amount>`);
  98. return;
  99. }
  100.  
  101. const fetched = await message.channel.fetchMessages({
  102. limit: argss[0]
  103. });
  104. console.log(fetched.size + ` messages found, deleting...`);
  105.  
  106. message.channel.bulkDelete(fetched)
  107. .catch(error => message.channel.send(`Error: ${error}`));
  108. }
  109. purge();
  110. }
  111.  
  112. if (msg.startsWith(prefix + `hook`)) {
  113. message.delete();
  114.  
  115. if (msg === prefix + 'hook') {
  116. return hook(message.channel, 'Hook Usage', `${prefix}hook <title>, <message>, [HEXcolor], [avatarURL]\n\n**<> is required\n[] is optional**`)
  117. }
  118. let hookArgs = message.content.slice(prefix.length + 4).split(",");
  119.  
  120. hook(message.channel, hookArgs[0], hookArgs[1], hookArgs[2], hookArgs[3], )
  121. return;
  122. }
  123.  
  124. if (msg.startsWith(prefix + `help`)) {
  125. var embed = new Discord.RichEmbed()
  126. .setFooter("Bot by Alten | <> is required, [] is not required")
  127. .addField("Ping", "pings the bot")
  128. .addField("Purge <Number>", "purges a certain amount of messages (Requires admin role)")
  129. .addField("Hook <title>, <message> [HEXcolor], [avatarURL (doesn't work)]", "idk what this really does (requires admin role)")
  130. .addField("Help", "displays this message")
  131. .addField("Level <Name/ID>", "displays information of the level")
  132. .addField("User <Name/ID>", "displays information about the user")
  133. .setColor(0xea6767)
  134.  
  135. message.channel.send(embed)
  136. };
  137.  
  138. if (msg.startsWith(prefix + `level`)) {
  139. if (experimental === false) {
  140. return;
  141. } else {
  142. let daNivel = argss[0];
  143. if(argss[1]) {
  144. for(i = 1; i < argss.length; i++) {
  145. daNivel = daNivel + " " + argss[i];
  146. }
  147. }
  148. GD.levels(daNivel).then(levels => {
  149. var embed = new Discord.RichEmbed()
  150. .setColor(0xb1dfef)
  151. .addField("Name", levels[0].name)
  152. .addField("diff", levels[0].difficulty)
  153. .addField("Description", levels[0].description)
  154. .addField("ID", levels[0].id)
  155. .addField("Featured", levels[0].featured)
  156. .addField("Downloads", levels[0].downloads)
  157. .addField("Likes", levels[0].likes)
  158. .addField("Stars", levels[0].stars)
  159. .addField("Length", levels[0].length)
  160. .addField("Coins", levels[0].coins)
  161. .setFooter("Bot by Alten | <> is required, [] is not required");
  162.  
  163. message.channel.send(embed);
  164. })
  165. }
  166. };
  167.  
  168. if (msg.startsWith(prefix + `user`)){
  169. if (experimental === false) {
  170. return;
  171. } else {
  172. GD.users(`${argss}`).then( users => {
  173. var embed = new Discord.RichEmbed()
  174. .setColor(0xb1dfef)
  175. .addField("Username", users[0].username)
  176. .addField("ID", users[0].id)
  177. .addField("Official coins", users[0].coins)
  178. .addField("Coins", users[0].userCoins)
  179. .addField("Stars", users[0].stars)
  180. .addField("Demons", users[0].demons)
  181. .addField("CP", users[0].creatorPoints)
  182. .setFooter("Bot by Alten | <> is required, [] is not required");
  183.  
  184. message.channel.send(embed)
  185. });
  186. }
  187. };
  188. if (msg.startsWith(prefix + 'say')) {
  189. let args2 = message.content.split(" ");
  190. let props1 = args2.slice(1);
  191.  
  192. message.delete();
  193.  
  194. var text = props1.toString().replace(",", " ");
  195. message.channel.send(text);
  196. }
  197. if (msg.startsWith(prefix + 'eval')) {
  198. if (message.author.id !== "184061887212814336") return;
  199. try {
  200. var code = argss.join(" ");
  201. var evaled = eval(code);
  202.  
  203. if (typeof evaled !== "string")
  204. evaled = require("util").inspect(evaled);
  205.  
  206. message.channel.sendCode("xl", clean(evaled));
  207. } catch(error) {
  208. message.channel.sendMessage(`\`ERROR\` \`\`\`xl\n${clean(error)}\n\`\``);
  209. }
  210. }
  211. if (msg.startsWith(prefix + 'experimental')) {
  212. if (experimental === false) {
  213. experimental = true;
  214. message.channel.send('Experimental mode has been turned on');
  215. } else {
  216. experimental = false;
  217. message.channel.send('Experimental mode has been turned off');
  218. }
  219. };
  220. if (msg.startsWith(prefix)) {
  221. console.log(`Command: ${cont}`)
  222. }
  223. });
  224.  
  225. function clean(text) {
  226. if (typeof(text) === "string")
  227. return text.replace(/% /g, "%" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203));
  228. else
  229. return text;
  230. }
  231.  
  232. bot.login(cfg.token);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement