Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. const discord = require("discord.js");
  2. var prefix = "+"
  3.  
  4. module.exports.run = async (bot, message, args) => {
  5.  
  6. // Argumenten die we later nodig hebben.
  7. var item = "";
  8. var time;
  9. var winnerCount;
  10.  
  11. // Nakijken als je perms hebt om dit command te doen.
  12. if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("Sorry jij kan dit niet doen");
  13.  
  14. // !giveaway aantalWinnaars seconden itemOmTeWinnen.
  15.  
  16. // Aantal winnaars opvragen.
  17. winnerCount = args[0];
  18. // Tijd hoelang het moet duren.
  19. time = args[1];
  20. // Welke prijs men kan winnen.
  21. item = args.splice(2, args.length).join(' ');
  22.  
  23. // Verwijder het bericht dat net is gemaakt door de gebruiker.
  24. message.delete();
  25.  
  26. // Verval datum berekenen.
  27. var date = new Date().getTime();
  28. var dateTime = new Date(date + (time * 1000));
  29.  
  30. // Maak embed aan.
  31. var giveawayEmbed = new discord.RichEmbed()
  32. .setTitle("๐ŸŽ‰ **GIVEAWAY** ๐ŸŽ‰")
  33. .setFooter(`Vervalt: ${dateTime}`)
  34. .setDescription(item);
  35.  
  36. // Verzend embed en zet de reactie op de popper.
  37. var embedSend = await message.channel.send(giveawayEmbed);
  38. embedSend.react("๐ŸŽ‰");
  39.  
  40. // Zet een timeout die na het aantal seconden af gaat.
  41. setTimeout(function () {
  42.  
  43. // Argumenten die we nodig hebben.
  44. var random = 0;
  45. var winners = [];
  46. var inList = false;
  47.  
  48. // Verkrijg de gebruikers die gereageerd hebben op de giveaway.
  49. var peopleReacted = embedSend.reactions.get("๐ŸŽ‰").users.array();
  50.  
  51. // Hier gaan we al de mensen over gaan en kijken als de bot er tussen staan
  52. // De bot moeten we uit de lijst weghalen en dan gaan we verder.
  53. for (var i = 0; i < peopleReacted.length; i++) {
  54. if (peopleReacted[i].id == bot.user.id) {
  55. peopleReacted.splice(i, 1);
  56. continue;
  57. }
  58. }
  59.  
  60. // Hier kijken we na als er wel iemand heeft meegedaan.
  61. if (peopleReacted.length == 0) {
  62. return message.channel.send("Niemand heeft gewonnen dus de bot wint.");
  63. }
  64.  
  65. // Tijdelijk kijken we na als er te wienig mensen hebben mee gedaan aan de wedstrijd.
  66. if (peopleReacted.length < winnerCount) {
  67. return message.channel.send("Er zijn te weinig mensen die mee deden daarom heeft de bot gewonnen.");
  68. }
  69.  
  70. // Voor het aantal winnaars dat we eerder hebben opgegeven gaan we een random nummer aanmaken en de user in een array zetten.
  71. for (var i = 0; i < winnerCount; i++) {
  72.  
  73. inList = false;
  74.  
  75. // Aanmaken van een random getal zodat we een user kunnen kiezen.
  76. random = Math.floor(Math.random() * peopleReacted.length);
  77.  
  78. // Als een winnaar al voorkomt in de winnaars lijst dan moeten we opnieuw gaan zoeken naar een andere winnaar.
  79. for (var y = 0; y < winners.length; y++) {
  80. // Nakijken als de geslecteerde winnaar al in de lijst zit.
  81. if (winners[y] == peopleReacted[random]) {
  82. // We zetten i 1 minder zodat we opnieuw kunnen doorgaan in de lijst.
  83. i--;
  84. // We zetten dit op true zodat we weten dat deze al in de lijst zit.
  85. inList = true;
  86. break;
  87. }
  88. }
  89.  
  90. // Zit deze niet in de lijst gaan we deze toevoegen.
  91. if (!inList) {
  92. winners.push(peopleReacted[random]);
  93. }
  94.  
  95. }
  96.  
  97. // Voor iedere winnaar gaan we een bericht sturen.
  98. for (var i = 0; i < winners.length; i++) {
  99. message.channel.send("Proficiat " + winners[i] + `! Je hebt gewonnen **${item}**.`);
  100. }
  101.  
  102. }, 1000 * time);
  103.  
  104.  
  105. }
  106.  
  107. module.exports.help = {
  108. name: "giveaway",
  109. description: "Start een giveaway"
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement