1. const Discord = require('discord.js');
  2. const ytdl = require('ytdl-core');
  3. // const youtube = new YouTube('realtokenwasuploadedoncebyaccident');
  4. const client = new Discord.Client();
  5. var lvl1;
  6. var lvl2;
  7. const fauly = '400384703267471370';
  8. const prefix = '.';
  9. client.on('ready', () => {
  10. client.user.setStatus('online')
  11. client.user.setPresence({
  12. game: {
  13. name: 'void()',
  14. type: "LISTENING",
  15. }
  16. });
  17. const entchannel = client.channels.find(c => c.id === '671659677507125258');
  18. entchannel.fetchMessage('681517291703369758');
  19. const guild = client.guilds.get("671656039594065930");
  20. lvl1 = guild.roles.find(r => r.id === '672231401701244938');
  21. lvl2 = guild.roles.find(r => r.id === '680376217668550676');
  22. });
  23. client.on('raw', packet => {
  24. if (!['MESSAGE_REACTION_ADD'].includes(packet.t)) return;
  25. const channel = client.channels.get(packet.d.channel_id);
  26. if (channel.messages.has(packet.d.message_id)) return;
  27. if (!(packet.d.message_id === '681517291703369758')) return;
  28. channel.fetchMessage('681517291703369758');
  29. });
  30. client.on('messageReactionAdd',(msgRc,user) =>{
  31. if(msgRc.emoji.name === "🌑")
  32. {
  33. msgRc.message.guild.member(user).addRole(lvl1).catch(console.error);
  34. } else msgRc.message.clearReactions();
  35. });
  36. client.on('message', message =>{
  37. if(message.content === '796573' && message.channel.id === '679743052566364179'){
  38. message.member.addRole(lvl2).catch(console.error);
  39. message.member.removeRole(lvl1).catch(console.error);
  40. message.delete(1000);
  41. } else if (message.channel.id === '679743052566364179')
  42. {
  43. message.delete(1000);
  44. }
  45. if(message.content === '6e756b65' && message.member.id === fauly){
  46. let channel = message.channel;
  47. channel.bulkDelete(100);
  48. }
  49. });
  50. const queue = new Map();
  51. client.once('ready', () => {
  52. console.log('Ready!');
  53. });
  54. client.once('reconnecting', () => {
  55. console.log('Reconnecting!');
  56. });
  57. client.once('disconnect', () => {
  58. console.log('Disconnect!');
  59. });
  60. client.on('message', async message => {
  61. if (message.author.bot) return;
  62. if (!message.content.startsWith(prefix)) return;
  63. const serverQueue = queue.get(message.guild.id);
  64. if (message.content.startsWith(`${prefix}p`)) {
  65. execute(message, serverQueue);
  66. return;
  67. } else if (message.content.startsWith(`${prefix}sk`)) {
  68. skip(message, serverQueue);
  69. message.delete(1000);
  70. return;
  71. } else if (message.content.startsWith(`${prefix}s`)) {
  72. stop(message, serverQueue);
  73. message.delete(1000);
  74. return;
  75. } else {
  76. message.channel.send('696e636f7272656374')
  77. .then(msg => {
  78. msg.delete(2000)});
  79. }
  80. });
  81. async function execute(message, serverQueue) {
  82. const args = message.content.split(' ');
  83. const voiceChannel = message.member.voiceChannel;
  84. if (!voiceChannel) return message.channel.send('You need to be in a voice channel to play music!')
  85. .then(msg => {
  86. msg.delete(2000)});
  87. const permissions = voiceChannel.permissionsFor(message.client.user);
  88. if (!permissions.has('CONNECT') || !permissions.has('SPEAK')) {
  89. return message.channel.send('I need the permissions to join and speak in your voice channel!')
  90. .then(msg => {
  91. msg.delete(2000)});
  92. }
  93. const songInfo = await ytdl.getInfo(args[1]);
  94. const song = {
  95. title: songInfo.title,
  96. url: songInfo.video_url,
  97. };
  98. if (!serverQueue) {
  99. const queueContruct = {
  100. textChannel: message.channel,
  101. voiceChannel: voiceChannel,
  102. connection: null,
  103. songs: [],
  104. volume: 1,
  105. playing: true,
  106. };
  107. queue.set(message.guild.id, queueContruct);
  108. queueContruct.songs.push(song);
  109. try {
  110. var connection = await voiceChannel.join();
  111. queueContruct.connection = connection;
  112. play(message.guild, queueContruct.songs[0]);
  113. } catch (err) {
  114. console.log(err);
  115. queue.delete(message.guild.id);
  116. return message.channel.send(err);
  117. }
  118. } else {
  119. serverQueue.songs.push(song);
  120. console.log(serverQueue.songs);
  121. return message.channel.send('${song.title} 6164646564.')
  122. .then(msg => {
  123. msg.delete(2000)});
  124. }
  125. }
  126. function setvol(volume){
  127. serverQueue.volume.set(volume);
  128. }
  129. function skip(message, serverQueue) {
  130. if (!message.member.voiceChannel) return message.channel.send('You have to be in a voice channel to stop the music!')
  131. .then(msg => {
  132. msg.delete(2000)});
  133. if (!serverQueue) return message.channel.send('There is no song that I could skip!')
  134. .then(msg => {
  135. msg.delete(2000)});
  136. serverQueue.connection.dispatcher.end();
  137. }
  138. function stop(message, serverQueue) {
  139. if (!message.member.voiceChannel) return message.channel.send('You have to be in a voice channel to stop the music!')
  140. .then(msg => {
  141. msg.delete(2000)});
  142. serverQueue.songs = [];
  143. serverQueue.connection.dispatcher.end();
  144. }
  145. function play(guild, song) {
  146. const serverQueue = queue.get(guild.id);
  147. if (!song) {
  148. serverQueue.voiceChannel.leave();
  149. queue.delete(guild.id);
  150. return;
  151. }
  152. const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
  153. .on('end', () => {
  154. console.log('Music ended!');
  155. serverQueue.songs.shift();
  156. play(guild, serverQueue.songs[0]);
  157. })
  158. .on('error', error => {
  159. console.error(error);
  160. });
  161. dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
  162. }
  163. client.login('realtokenwasuploadedoncebyaccident');
  164. /* client.user.setStatus('offline')
  165. client.user.setPresence({
  166. game: {
  167. name: 'void()',
  168. type: "LISTENING",
  169. }
  170. }); */