Advertisement
Guest User

Untitled

a guest
Jun 9th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.99 KB | None | 0 0
  1. const Discord = require('discord.io');
  2. const auth = require('./auth.json');
  3. const fs = require('fs');
  4.  
  5. //please keep this token strictly confidential
  6. var bot = new Discord.Client({
  7. token: "ask teaf for the token",
  8. autorun: true
  9. });
  10.  
  11. //i just hardcoded the server and admin channel IDs in because i'm a great programmer
  12. const serverID = "222537486260240384";
  13. const adminChannelID = "404461419577475082";
  14.  
  15. bot.on('disconnect', (errMsg, code) => {
  16. var date = new Date().toLocaleString();
  17. if (errMsg) console.log(date + "\n" + errMsg);
  18. setTimeout(() => {
  19. console.log(date + "\nExited with code " + code);
  20. process.exit();
  21. }, 1000);
  22. bot.connect()
  23. });
  24.  
  25. function sendMessage(channelID, message) {
  26. return bot.sendMessage({
  27. to: channelID,
  28. message: message
  29. });
  30. }
  31.  
  32. bot.on('ready', function (rawEvent) {
  33. var date = new Date().toLocaleString();
  34. console.log(date)
  35. console.log("Connected! Logged in as: ");
  36. console.log(bot.username + " - (" + bot.id + ")");
  37. checkFiles()
  38.  
  39. //nya
  40. var kikkoman;
  41. var usr = Object.keys(bot.servers[serverID].members);
  42. for(var i in bot.servers[serverID].roles){
  43. if(bot.servers[serverID].roles[i].name.toLowerCase() === "kikkoman") {
  44. kikkoman = bot.servers[serverID].roles[i].id; //get kikkoman ID
  45. break;
  46. }
  47. }
  48. var user;
  49. for (var i in bot.servers[serverID].roles) {
  50. if (bot.servers[serverID].roles[i].name.toLowerCase() === "user") {
  51. user = bot.servers[serverID].roles[i].id; //get user ID
  52. break;
  53. }
  54. }
  55. var deuser;
  56. for (var i in bot.servers[serverID].roles) {
  57. if (bot.servers[serverID].roles[i].name.toLowerCase() === "de-usered") {
  58. deuser = bot.servers[serverID].roles[i].id; //get de-usered ID
  59. break;
  60. }
  61. }
  62.  
  63. //nyaaa
  64. function checkActivity() {
  65. var total, t;
  66. for (var i in usr) {
  67. var hasUser = false; //check if they have a user role
  68. for (var j in bot.servers[serverID].members[usr[i]].roles) {
  69. if (bot.servers[serverID].members[usr[i]].roles[j] === user) {
  70. hasUser = true;
  71. break;
  72. }
  73. }
  74.  
  75. var hasDeuser = false; //check if they have a de-usered role
  76. for (var j in bot.servers[serverID].members[usr[i]].roles) {
  77. if (bot.servers[serverID].members[usr[i]].roles[j] === deuser) {
  78. hasDeuser = true;
  79. break;
  80. }
  81. }
  82.  
  83. if (hasUser === true) {
  84. t = Number(readFile(usr[i], "activity"))
  85. total = updateActivity();
  86. var days = 86400000
  87. var timeAway = (total - t) / days
  88. if (timeAway > 50) {
  89. //check for kikkoman role
  90. var pass = false;
  91. for (var j in bot.servers[serverID].members[usr[i]].roles) {
  92. if (bot.servers[serverID].members[usr[i]].roles[j] === kikkoman) {
  93. pass = true;
  94. break;
  95. }
  96. }
  97. if (pass === false) {
  98. //remove user role
  99. bot.removeFromRole({
  100. serverID: serverID,
  101. userID: usr[i],
  102. roleID: user
  103. });
  104. if (hasDeuser === false) {
  105. bot.addToRole({
  106. serverID: serverID,
  107. userID: usr[i],
  108. roleID: deuser
  109. });
  110. console.log("Removed user role from " + bot.users[usr[i]].username)
  111. sendMessage(adminChannelID, "Removed user role from " + bot.users[usr[i]].username + " and added de-usered role.")
  112. }
  113. else {
  114. console.log("Removed user role from " + bot.users[usr[i]].username)
  115. sendMessage(adminChannelID, "Removed user role from " + bot.users[usr[i]].username + ". User already had de-usered role.")
  116. }
  117. }
  118. }
  119. }
  120. }
  121. setTimeout(checkActivity, 120000); //this is the timer okay
  122. }
  123. checkActivity();
  124. });
  125.  
  126. //update activity
  127. function updateActivity() {
  128. var d = new Date();
  129. d = d.getTime();
  130. return d;
  131. }
  132.  
  133. //user files
  134. function checkFiles() {
  135. //last known activity is stored in a user .txt file
  136. var usr = Object.keys(bot.servers[serverID].members)
  137. for (var i in usr) {
  138. if (fs.existsSync("./var/" + usr[i]) === false) {
  139. console.log("/var/ for " + usr[i] + " does not exist! Generating folder");
  140. fs.mkdirSync("./var/" + usr[i])
  141. fs.writeFileSync("./var/" + usr[i] + "/activity.txt", updateActivity());
  142. }
  143. }
  144. }
  145.  
  146. function readFile(userID, file) {
  147. var userFile = "./var/" + userID + "/" + file + ".txt";
  148. return fs.readFileSync(userFile);
  149. }
  150.  
  151. function writeFile(userID, file, content) {
  152. c = content.toString();
  153. var userFile = "./var/" + userID + "/" + file + ".txt";
  154. fs.writeFileSync(userFile, c);
  155. console.log("Updated user " + userID + " with " + c);
  156. }
  157.  
  158. //detect messages
  159. bot.on('message', function (user, userID, channelID, message, rawEvent) {
  160. if (rawEvent.d.author.username !== bot.username) {
  161. if (fs.existsSync("./var/" + userID) === false) {
  162. console.log("/var/ for " + userID + " does not exist! Generating folder");
  163. fs.mkdirSync("./var/" + userID)
  164. fs.writeFileSync("./var/" + userID + "/activity.txt", updateActivity());
  165. }
  166. writeFile(userID, "activity", updateActivity());
  167. }
  168. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement