Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.85 KB | None | 0 0
  1. /*
  2. ERROR MESSAGE USAGE: ':warning: **Usage**: `' + settings.prefix + 'prefix [new prefix]`'
  3. ERROR MESSAGE PERMISSIONS: ':warning: **Requires Permission(s)**: `MANAGE_SERVER`'
  4. ERROR MESSAGE WIP:
  5. if(message.member.id !== '165871269034590208'){
  6. message.channel.send({embed: {
  7. color: settings.embedColor,
  8. title: 'Work In Progress',
  9. description: 'Unfortunately, I cannot do this command for you as it\'s work-in-progress and it may crash the bot.'
  10. }});
  11. } else {
  12. //do the command
  13. }
  14. */
  15.  
  16. const Discord = require('discord.js');
  17. const client = new Discord.Client();
  18.  
  19. //SETTINGS
  20. var settings = {
  21. prefix:'!',
  22. deleteCommand:true,
  23. embedColor:0x018DEF,
  24. leaveJoinMsg:true
  25. };
  26.  
  27. var args;
  28. var ytdl = require('ytdl-core')
  29. var yu = require('youtube-url')
  30.  
  31. function cmd(cmdn){
  32. return args && args[0] === settings.prefix + cmdn
  33. }
  34.  
  35. function msgcontain(word){
  36. return args.indexOf(word)+1 > 0
  37. }
  38.  
  39. client.on('ready', () => {
  40. console.log(client.user.tag + ' is online!');
  41. console.log('Prefix is ' + settings.prefix);
  42. client.user.setGame(client.user.username + " | " + settings.prefix + "help");
  43.  
  44. //JOIN MUSIC CHANNEL ON START BELOW
  45. let channel = client.channels.get('337671179945115650');
  46. channel.join()
  47. .then(connection => console.log('Successfully connected to voice channel!'))
  48. .catch(console.error);
  49. });
  50.  
  51. client.on('message', message => {
  52. args = message.content.toLowerCase().split(" ");
  53.  
  54. if(message.author !== client.user){console.log(message.channel.name + ' - ' + message.author.tag + ': ' + message.content)};
  55.  
  56. //COMMANDS BELOW
  57. if(cmd('c')){
  58. if(settings.deleteCommand){message.delete()};
  59. message.channel.send({embed: {
  60. color: settings.embedColor,
  61. description: ':white_check_mark: Functioning correctly!'
  62. }}).catch(console.error);
  63. }
  64. if(cmd('help')){
  65. if(settings.deleteCommand){message.delete()};
  66. message.channel.send({embed: {
  67. color: settings.embedColor,
  68. author: {
  69. name: client.user.username,
  70. icon_url: client.user.avatarURL
  71. },
  72. description: ':diamond_shape_with_a_dot_inside:',
  73. fields: [
  74. {
  75. name: 'Information',
  76. value: 'I am a bot made specifically for [Instance](https://discord.gg/bYn37Wp)\nI am a moderation bot\nI am programmed in discord.js by the user <@165871269034590208> from :flag_gb:\n\nTo get started, type `' + settings.prefix + 'cmds`!'
  77. }
  78. ],
  79. timestamp: new Date(),
  80. footer: {
  81. icon_url: 'http://i.imgur.com/YQpNdE1.png',
  82. text: 'yperz'
  83. }
  84. }});
  85. }
  86. if(cmd('cmds')){
  87. if(settings.deleteCommand){message.delete()};
  88. message.channel.send({embed: {
  89. color: settings.embedColor,
  90. title: 'Commands',
  91. description: 'c, help, cmds, settings, prefix, sweep, invite, lp, silence(WIP), music(WIP)'
  92. }});
  93. }
  94. if(cmd('settings')){
  95. if(settings.deleteCommand){message.delete()}
  96. message.channel.send({embed: {
  97. color: settings.embedColor,
  98. title: 'Settings',
  99. description: '**Prefix**: `' + settings.prefix + '`\n**Delete Command**: `' + settings.deleteCommand + '`\n**Embed Color** HEX: `0x' + settings.embedColor + '`\n**Leave and Join Messages**: `' + settings.leaveJoinMsg + '`'
  100. }});
  101. }
  102. if(cmd('prefix')){
  103. if(settings.deleteCommand){message.delete()}
  104. if(!args[1]){
  105. message.channel.send({embed: {
  106. color: settings.embedColor,
  107. title: 'Prefix Usage',
  108. description: ':warning: **Usage**: `' + settings.prefix + 'prefix [new prefix]`',
  109. fields:
  110. [
  111. {
  112. name: 'Information',
  113. value: 'This command changes the prefix\nThe arguement `new prefix` should only be one word (words defined by spaces)'
  114. },
  115. ]
  116. }});
  117. } else {
  118. if(!args[2]){
  119. if(message.member.hasPermission('MANAGE_SERVER')){
  120. settings.prefix = args.splice(1).join(" ");
  121. message.channel.send({embed: {
  122. color: settings.embedColor,
  123. description: 'Prefix is now set to `' + settings.prefix + '`'
  124. }});
  125. } else {
  126. message.channel.send({embed: {
  127. color: settings.embedColor,
  128. title: 'Prefix Permissions',
  129. description: ':warning: **Requires Permission(s)**: `MANAGE_SERVER`'
  130. }});
  131. }
  132. } else {
  133. message.channel.send({embed: {
  134. color: settings.embedColor,
  135. title: 'Prefix Usage',
  136. description: ':warning: **Usage**: `' + settings.prefix + 'prefix [new prefix]`',
  137. fields:
  138. [
  139. {
  140. name: 'Information',
  141. value: 'This command changes the prefix\nThe arguement `new prefix` should only be one word (words defined by spaces)'
  142. },
  143. ]
  144. }});
  145. }
  146. }
  147. }
  148. if(cmd('sweep')){
  149. if(settings.deleteCommand){message.delete()}
  150. var messages = message.channel.fetchMessages({
  151. limit: args[1] || 100}).then(function (m) {
  152. var a1 = 0;
  153. m.forEach(function (value, key, mapObj) {
  154. if (value.author.id == client.user.id || value.content.indexOf(settings.prefix) == 0) {
  155. value.delete();
  156. a1++;
  157. }
  158. });
  159. message.channel.send({embed: {
  160. color: embedColor,
  161. description: ':recycle: Sweeped up ' + a1 + ' messages!'
  162. }}).then(function (m) {
  163. setTimeout(function () {
  164. m.delete();
  165. }, 3000);
  166. }).catch(function (e) {
  167. if (e) console.log(e);
  168. });
  169. });
  170. }
  171. if(cmd('invite')){
  172. if(settings.deleteCommand){message.delete()}
  173. message.channel.send({embed: {
  174. color: settings.embedColor,
  175. title: 'Invite',
  176. description: ':heart:\nPlease help the growth and development of ' + message.guild.name + ' by sharing this [**invite link**](https://discord.gg/bYn37Wp)\nhttps://discord.gg/bYn37Wp'
  177. }});
  178. }
  179. if(cmd('lp')){
  180. if(settings.deleteCommand){message.delete()}
  181. if(!args[1]){
  182. message.channel.send({embed: {
  183. color: settings.embedColor,
  184. title: 'LP Usage',
  185. description: ':warning: **Usage**: `' + settings.prefix + 'lp [game]`',
  186. fields:
  187. [
  188. {
  189. name: 'Information',
  190. value: 'This command tells everyone that you want to play a game\nThe arguement `game` can be multiple lines'
  191. }
  192. ]
  193. }});
  194. } else {
  195. message.channel.send({embed: {
  196. color: settings.embedColor,
  197. title: 'Play a Game',
  198. description: ':bell: @here , ' + message.author + ' wants to play **' + args.splice(1).join(" ") + '**!'
  199. }});
  200. }
  201. }
  202. if(cmd('silence')){
  203. if(settings.deleteCommand){message.delete()}
  204. if(!args[1] || !args[2] || !args[3]){
  205. message.channel.send({embed: {
  206. color: settings.embedColor,
  207. title: 'Silence Usage',
  208. description: ':warning: **Usage**: `' + settings.prefix + 'silence [user] [time(sec)] [reason]`',
  209. fields:
  210. [
  211. {
  212. name: 'Information',
  213. value: 'This command silences people so they cant talk\n[user] arguement should be in this format: ' + client.user + '\n[time] arguement should be in seconds\n[reason] arguement can be multiple lines'
  214. }
  215. ]
  216. }});
  217. } else {
  218. var role = '337626002844942337';
  219. let member = args[1];
  220. member.addRole(message.guild.roles.find('id', role))
  221. message.channel.send({embed: {
  222. color: settings.embedColor,
  223. title: 'User Silenced',
  224. description: '**User**: ' + args[1] + ' has been silenced'
  225. }});
  226. }
  227. }
  228. if(cmd('music')){
  229. if(settings.deleteCommand){message.delete()}
  230. if(!args[1]){
  231. message.channel.send({embed: {
  232. color: settings.embedColor,
  233. title: 'Music Usage',
  234. description: ':warning: **Usage**: `' + settings.prefix + 'music [command]`',
  235. fields:
  236. [
  237. {
  238. name: 'Information',
  239. value: 'This command is to play music\nThe arguement [command] can be one of the options in Options below'
  240. },
  241. {
  242. name: 'Options',
  243. value: 'play'
  244. }
  245. ]
  246. }});
  247. } else {
  248. if(args[1] === 'play')
  249. if(!args[2]){
  250. message.channel.send({embed: {
  251. color: settings.embedColor,
  252. title: 'Music Play Usage',
  253. description: ':warning: **Usage**: `' + settings.prefix + 'music play [song]`',
  254. fields:
  255. [
  256. {
  257. name: 'Information',
  258. value: 'This command is to play music\nThe arguement [song] can should be a song **name**'
  259. }
  260. ]
  261. }});
  262. } else {
  263. if(yu.valid(args[2])){
  264. client.channels.find('id', '337671179945115650').join().then(function (connection) {
  265. dispatcher = connection.playStream(ytdl(args[2], { filter: "audioonly" }), { seek: 0, volume:1 });
  266. }).catch(function (e) {
  267. console.log(e);
  268. });
  269. } else {
  270. message.channel.send({embed: {
  271. color: settings.embedColor,
  272. title: 'Invalid URL',
  273. description: ':warning: URL must be a [YouTube](https://www.youtube.com) link'
  274. }});
  275. }
  276. }
  277. }
  278. }
  279. });
  280.  
  281. if(settings.leaveJoinMsg){
  282. client.on("guildMemberAdd", (member) => {
  283. client.channels.find("name", "general").send({embed: {
  284. color: settings.embedColor,
  285. description: ':smiley: Welcome to ' + member.guild + ', ' + member.user + '!'
  286. }});
  287. });
  288.  
  289. client.on("guildMemberRemove", (member) => {
  290. client.channels.find("name", "general").send({embed: {
  291. color: settings.embedColor,
  292. description: ':frowning: Goodbye ' + member.user
  293. }});
  294. });
  295. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement