Advertisement
CompaqZeus

Untitled

Feb 3rd, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.84 KB | None | 0 0
  1. const Discord = require('discord.js');
  2. const Listing = require('./../modules/Listing');
  3. const fs = require('fs');
  4. const settings = require('./../settings.json');
  5. const owner = settings.owner;
  6.  
  7. module.exports.run = async (bot, message, args) => {
  8. let voiceChannelID = "518589421881393195";
  9. let voice_channel = message.guild.channels.get(voiceChannelID);
  10. let members = message.guild.channels.get(voiceChannelID).members.size;
  11. let snipeChannel = message.channel;
  12. const filter = m => !m.author.bot;
  13. let game = new Listing();
  14. let roles = message.guild.roles;
  15. let scrimmers = message.guild.roles.find( r => r.name === "Hosts");
  16.  
  17.  
  18.  
  19.  
  20. let raw = fs.readFileSync('./roles.json');
  21. let allowedRoles = JSON.parse(raw);
  22.  
  23. let validation = function(serverRoles, userRoles){
  24. let val = false;
  25. serverRoles.forEach((role) => {
  26. userRoles.forEach((usr) => {
  27. if (role == usr){
  28. val = true;
  29. }
  30. });
  31. });
  32. return val;
  33. }
  34.  
  35.  
  36. let editLast3 = null;
  37.  
  38. let startMessage = new Discord.RichEmbed()
  39. .setTitle("Fortnite Scrims")
  40. .setDescription("Please write the last 3 codes from you're server id")
  41. .setColor("#8600b3")
  42. .setFooter("Twitch.ZuesNZ");
  43.  
  44. message.channel.send({embed: startMessage});
  45.  
  46. let time = 25;
  47. let editTime = "";
  48.  
  49. let timeEmbed = new Discord.RichEmbed()
  50. .setTitle("Next match in approx...")
  51. .setDescription(time + " minutes")
  52. .setColor("#8600b3");
  53.  
  54. setTimeout(async () => {
  55. editTime = await message.channel.send({embed: timeEmbed}).catch( (err) => {
  56. console.log("Cant edit deleted message");
  57. });
  58. }, 10);
  59.  
  60. let timeInterval = setInterval(() => {
  61. if (time === 1){
  62. time -= 1;
  63. timeEmbed.setDescription(time + " minutes");
  64. clearInterval(timeInterval);
  65. }else {
  66. time -= 1;
  67. timeEmbed.setDescription(time + " minutes");
  68. }
  69.  
  70. editTime.edit({embed: timeEmbed}).catch((err) => {
  71. console.log("cant edit");
  72. clearInterval(timeInterval);
  73. });
  74.  
  75. },60000);
  76.  
  77. let last3 = new Discord.RichEmbed()
  78. .setTitle("Last 3 code")
  79. .setColor("#8600b3");
  80.  
  81. setTimeout(async () => {
  82. editLast3 = await message.channel.send({embed: last3});
  83.  
  84. message.channel.overwritePermissions(message.guild.defaultRole, {
  85. SEND_MESSAGES: true
  86. }).catch((err) => {
  87. console.log(err);
  88. })
  89. }, 10);
  90.  
  91. const collector = snipeChannel.createMessageCollector(filter, {time: 180000});
  92. snipeChannel.overwritePermissions(
  93. scrimmers,
  94. { "SEND_MESSAGES": true}
  95. )
  96.  
  97. collector.on('collect', m => {
  98.  
  99. console.log(`Collected ${m.content} | ${m.author.username}`);
  100.  
  101. if (validation(allowedRoles.roles,m.member.roles.array()) || m.member.id === owner){
  102. if (m.content === "!start" || m.content === "!stop"){
  103. collector.stop();
  104. console.log("Collector stoped");
  105. return;
  106. }
  107. }
  108.  
  109. if (game.data.length === 0 && m.content.length === 3){
  110. game.addID(m.content.toUpperCase(), m.author.username);
  111. }else if (m.content.length === 3){
  112. if (game.userPresent(m.author.username)){
  113. game.deleteUserEntry(m.author.username);
  114. if (game.idPresent(m.content.toUpperCase())){
  115. game.addUser(m.content.toUpperCase(), m.author.username);
  116. }else {
  117. game.addID(m.content.toUpperCase(),m.author.username);
  118. }
  119. } else {
  120. if (game.idPresent(m.content.toUpperCase())){
  121. game.addUser(m.content.toUpperCase(), m.author.username);
  122. }else {
  123. game.addID(m.content.toUpperCase(), m.author.username);
  124. }
  125. }
  126. }
  127.  
  128. game.sort();
  129.  
  130. let str = "";
  131. last3 = new Discord.RichEmbed()
  132. .setTitle("Last 3 code")
  133. .setColor("#8600b3");
  134.  
  135. for (var i = 0; i < game.data.length; i++){
  136. str = "";
  137. for (var j = 0; j < game.data[i].users.length ; j++){
  138. str += game.data[i].users[j] + "\n";
  139. }
  140. last3.addField(`${game.data[i].id.toUpperCase()} - ${game.data[i].users.length} PLAYERS`, str, true);
  141. last3.setFooter(`[ ${members} Players In ${voice_channel.name} ]`)
  142. } last3.setFooter(`[ ${game.data.length} Servers | ${game.users.length} Players ] [ ${members} Players In ${voice_channel.name} ]`)
  143. editLast3.edit({embed: last3}).catch((err) => {
  144. console.log("Caught eddit error");
  145. });
  146.  
  147. if (m.deletable){
  148. m.delete().catch((err) => {
  149. console.log("Cant delete");
  150. console.log(err);
  151. });
  152. }
  153.  
  154. });
  155.  
  156. collector.on('end', collected => {
  157. console.log(`Collected ${collected.size} items`);
  158. snipeChannel.overwritePermissions(
  159. scrimmers,
  160. { "SEND_MESSAGES": false}
  161. )
  162.  
  163. let endMsg = new Discord.RichEmbed()
  164. .setTitle("No more codes accepted at this point")
  165. .setDescription("Good luck and have fun in your match")
  166. .setColor("#ff0000");
  167.  
  168. message.channel.send({embed: endMsg});
  169.  
  170. message.channel.overwritePermissions(message.guild.defaultRole, {
  171. SEND_MESSAGES: false
  172. }).catch((err) => {
  173. console.log(err);
  174. })
  175.  
  176. });
  177.  
  178.  
  179. }
  180.  
  181.  
  182.  
  183. module.exports.help = {
  184. name: "start"
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement