Advertisement
Guest User

start.js

a guest
Feb 17th, 2019
973
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.22 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 snipeChannel = message.channel;
  9. const filter = m => !m.author.bot;
  10. let game = new Listing();
  11.  
  12. let raw = fs.readFileSync('./roles.json');
  13. let allowedRoles = JSON.parse(raw);
  14.  
  15. let validation = function(serverRoles, userRoles){
  16. let val = false;
  17. serverRoles.forEach((role) => {
  18. userRoles.forEach((usr) => {
  19. if (role === usr){
  20. val = true;
  21. }
  22. });
  23. });
  24. return val;
  25. }
  26.  
  27. let editLast3 = null;
  28.  
  29. let startMessage = new Discord.RichEmbed()
  30. .setTitle('Sentinel Fortnite Scrims')
  31. .setDescription('Please type the name of the location of the start of the bus route and the name of the last stop.')
  32. .addField('Hosted by: ', message.author, true)
  33. .setColor("#8500b3")
  34. .setFooter('Sentinel Elite ');
  35.  
  36. message.channel.send({embed: startMessage});
  37.  
  38. let time = 35;
  39. let editTime = "";
  40.  
  41. let timeEmbed = new Discord.RichEmbed()
  42. .setTitle('Next Match in approx...')
  43. .setDescription(time + " minutes")
  44. .setColor("#8500b3");
  45.  
  46. setTimeout(async () => {
  47. editTime = await message.channel.send({embed: timeEmbed}).catch( (err) => {
  48. console.log('Cant edit deleted message');
  49. });
  50. }, 10);
  51.  
  52. let timeInterval = setInterval(() => {
  53. if (time === 1){
  54. time -= 1;
  55. timeEmbed.setDescription(time + ' minutes');
  56. clearInterval(timeInterval);
  57. } else {
  58. time -= 1;
  59. timeEmbed.setDescription(time + " minutes");
  60. }
  61.  
  62. editTime.edit({embed: timeEmbed}).catch((err) => {
  63. console.log('Can\'t edit');
  64. clearInterval(timeInterval);
  65. });
  66.  
  67. },60000);
  68.  
  69. let last3 = new Discord.RichEmbed()
  70. .setTitle('Bus Path')
  71. .setColor("#8500b3");
  72.  
  73. setTimeout(async () => {
  74. editLast3 = await message.channel.send({embed: last3});
  75.  
  76. message.channel.overwritePermissions(message.guild.defaultRole, {
  77. SEND_MESSAGES: true
  78. }).catch((err) => {
  79. console.log(err);
  80. })
  81. }, 10);
  82.  
  83. const collector = snipeChannel.createMessageCollector(filter, {time: 180000});
  84.  
  85. collector.on('collect', m => {
  86. console.log(`Collected ${m.content} | ${m.author.username}`);
  87.  
  88. if (validation (allowedRoles.roles,m.member.roles.array()) || m.member.id === owner){
  89. if (m.content === "/start" || m.content === "/stop"){
  90. collector.stop();
  91. console.log("Collector stopped");
  92. }
  93. }
  94. if (game.data.length === 0 && m.content.length === 25){
  95. game.addID(m.content.toUpperCase(), m.author.username);
  96. }else if (m.content.length === 25){
  97. if (game.userPresent(m.author.username)){
  98. game.deleteUserEntry(m.author.username);
  99. if (game.idPresent(m.content.toUpperCase())){
  100. game.addUser(m.content.toUpperCase(), m.author.username);
  101. } else {
  102. game.addID(m.content.toUpperCase(),m.author.username);
  103. }
  104. } else {
  105. if (game.idPresent(m.content.toUpperCase())){
  106. game.addUser(m.content.toUpperCase(), m.author.username);
  107. }else {
  108. game.addID(m.content.toUpperCase(), m.author.username);
  109. }
  110. }
  111. }
  112.  
  113. game.sort();
  114.  
  115. let str = "";
  116. last3 = new Discord.RichEmbed()
  117. .setTitle('Bus Path')
  118. .setColor('#8600b3');
  119.  
  120. for (var i = 0; i < game.data.length; i++){
  121. str = "";
  122. for (var j = 0; j < game.data[i].users.length; j++){
  123. str += game.data[i].users[j] + "\n";
  124. }
  125. last3.addField(`${game.data[i].id.toUpperCase()} - ${game.data[i].users.length} PLAYERS`, str, true);
  126. }
  127.  
  128. editLast3.edit({embed: last3}).catch((err) => {
  129. console.log("Caught eddit error");
  130. });
  131.  
  132. if (m.deletable){
  133. m.delete().catch((err) => {
  134. console.log("Can't delete");
  135. console.log(err);
  136. });
  137. }
  138.  
  139. });
  140.  
  141. collector.on('end', collected => {
  142. console.log(`Collected ${collected.size} items`);
  143.  
  144. let endMessage = new Discord.RichEmbed()
  145. .setTitle("No more Bus Path accepted at this point")
  146. .setDescription("Good luck and have fun in your game!")
  147. .setColor("#ff0000");
  148.  
  149. message.channel.send({embed: endMessage});
  150.  
  151. message.channel.overwritePermissions(message.guild.defaultRole, {
  152. SEND_MESSAGES: false
  153. }).catch((err) => {
  154. console.log(err);
  155. })
  156.  
  157. });
  158.  
  159. }
  160.  
  161. module.exports.help = {
  162. name: "start"
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement