Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.21 KB | None | 0 0
  1. const Discord = require("discord.js");
  2. const PREFIX = "!";
  3. const TOKEN = "NTI3OTM0NTk3NzkxNzQ0MDAy.Dwa-Yg.59G3nzPc1dB65FzrqBiO8imMPqA";
  4. let bot = new Discord.Client();
  5. let shonly_curses=[];
  6. let curses=[];
  7. let loop=[]; // holds members of loop array
  8. let servers=[];
  9. let voice_channels=[];
  10. let case_names=
  11. [
  12. "boer",
  13. "curse, curse spam <number less than 5>",
  14. "help",
  15. "addloop <@user> (adds user to loop)",
  16. "remloop <@user> (removes user from loop)",
  17. "listclear (clears the loop list)",
  18. "loop (loops everyone)",
  19. "purge <number less than 100>",
  20. "looplist (the users who are in the list)",
  21. "addboer (adds a curse into the file)"
  22. ];
  23.  
  24. function isANumber(str){
  25. return !/\D/.test(str);
  26. }
  27.  
  28. function read_file(filename)
  29. {
  30. let fs = require('fs');
  31.  
  32. try
  33. {
  34. let data = fs.readFileSync(filename, 'utf8');
  35. let temp = data.toString().split("\r\n");
  36. arr_ret=[];
  37. for(let m=0;m<temp.length;m++)
  38. {
  39. arr_ret.push(temp[m]);
  40. }
  41. return arr_ret;
  42. }
  43. catch(e)
  44. {
  45. console.log('Error:', e.stack);
  46. }
  47. }
  48. // C:\Users\Tomer\Desktop\Programming files\DiscordBot
  49. bot.on("ready",function(){
  50. // shonly_curses=read_file("shonly_curses.txt");
  51. // curses=read_file("curses.txt");
  52. console.log("Ready");
  53. //bot.user.setActivity("Fucking boer's mom");
  54. });
  55.  
  56. /*bot.on("guildMemberAdd",function(member)
  57. {
  58. member.guild.channels.find("name","sexting-channel").send(member.toString() + "fuck you cunt");
  59. member.addRole(member.guild.roles.find("name","testing"));
  60. // member.addRole(member.guild.roles.find("name","testing"));
  61. });
  62. */
  63. function isAMember(str,message)
  64. {
  65. let plus=0;
  66. if(str.length==22)
  67. {
  68. plus=1;
  69. }
  70. if(str.length==18)
  71. {
  72. plus=-2;
  73. }
  74. if(str.length==21 || str.length==22 || str.length==18)
  75. {
  76. let id="";
  77. for(let counter=2+plus;counter<20+plus;counter++)
  78. {
  79. id+=str[counter];
  80. }
  81. let members_arr = message.guild.members.array();
  82. let temp_member=null;
  83. for(let mem_counter=0;mem_counter<members_arr.length;mem_counter++)
  84. {
  85. if(members_arr[mem_counter].user.id==id)
  86. {
  87. temp_member=members_arr[mem_counter];
  88. }
  89. }
  90. return temp_member;
  91. }
  92. return null;
  93. }
  94.  
  95. function calc_loop()
  96. {
  97. for(let x=0;x<loop.length;x++)
  98. {
  99. loop[x].setVoiceChannel(voice_channels[Math.floor(Math.random()*voice_channels.length)]);
  100. }
  101. }
  102.  
  103. function add_to_loop(message,member)
  104. {
  105. //if(message.author.id=="188573862311493634")
  106. //{
  107. let temp=0;
  108. for(let x=0;x<loop.length;x++)
  109. {
  110. if(loop[x].user.id==member.user.id)
  111. {
  112. temp+=1;
  113. }
  114. }
  115. if(temp==0)
  116. {
  117. loop.push(member);
  118. message.channel.send("Added " + member.user.toString()+ " to loop");
  119. }
  120. else
  121. {
  122. message.channel.send("Can't add " + member.user.toString()+ " to loop");
  123. }
  124. for(let m=0;m<loop.length;m++)
  125. {
  126. console.log(loop[m].user.username);
  127. }
  128. }
  129.  
  130. function remove_from_loop(message,member)
  131. {
  132. for(let x=0;x<loop.length;x++)
  133. {
  134. if(loop[x].user.id==member.user.id)
  135. {
  136. loop.splice(member);
  137. message.channel.send("Removed " + member.user.toString() + " From loop");
  138. return;
  139. }
  140. }
  141. message.channel.send("Can't remove " + member.user.toString() + " From loop since he isn't in the loop");
  142. }
  143.  
  144. function getArgs(arr)
  145. {
  146. let args=[];
  147. for(let x=1;x<arr.length;x++)
  148. {
  149. args.push(arr[x]);
  150. }
  151. return args;
  152. }
  153. bot.on("message",function(message)
  154. {
  155.  
  156. if(message.channel.type=="dm") return;
  157. /* let denis_id = "188573862311493634";
  158. let temp_mem = isAMember(denis_id,message);
  159. //console.log(temp_mem.user.username)
  160. let role = message.guild.roles.get("530376049754636318");
  161. temp_mem.addRole(role,"test");
  162. */
  163. voice_channels = message.member.guild.channels.findAll("type","voice")
  164. if(message.author.equals(bot.user)) return;
  165. console.log(message.toString()); // message logger
  166. if(!message.content.startsWith(PREFIX)) return;
  167. let msgs= message.content.substring(PREFIX.length).split(" "); // cut msgs
  168. let args = getArgs(msgs);
  169. // message.channel.send(msgs[1].length);
  170. switch (msgs[0].toLowerCase())
  171. {
  172. case "boer" :
  173. shonly_curses=read_file("shonly_curses.txt");
  174. let temp_send=(shonly_curses[Math.floor(Math.random()*shonly_curses.length)]);
  175. if(temp_send=="") return;
  176. message.channel.send(temp_send);
  177. console.log("Succeded in reacting");
  178. break;
  179.  
  180. case "looplist":
  181. for(let x=0;x<loop.length;x++)
  182. {
  183. message.channel.send(loop[x].user.toString() + " Is in the loop");
  184. }
  185. if(loop.length==0)
  186. {
  187. message.channel.send("There are no users in the loop");
  188. }
  189. break;
  190.  
  191. case "addboer":
  192. if(message.member.id!="188573862311493634") return message.channel.send("fuck you youre not allowed to use this");
  193. let fs = require("fs");
  194. if(!message.member.hasPermissions("MUTE_MEMBERS"))
  195. {
  196. message.channel.send("You must have a permission to mute members or higher to use this function");
  197. return;
  198. }
  199. if(msgs.length<=1)
  200. {
  201. message.channel.send("Invalid input, you must enter atleast 1 word");
  202. return;
  203. }
  204.  
  205. fs.appendFileSync("shonly_curses.txt","\n" + args.join(" ") + "\r");
  206. message.channel.send("Added " + args.join(" ") + " To shonly curses file");
  207. break;
  208. case "curse":
  209. curses=read_file("curses.txt");
  210. if(msgs.length>2)
  211. {
  212. if(msgs[1].toLowerCase()=="spam" && isANumber(msgs[2]))
  213. {
  214. for(let x=0;x<parseInt(msgs[2]) && x<5;x++)
  215. {
  216. message.channel.send(curses[Math.floor(Math.random()*curses.length)]);
  217. }
  218. }
  219. }
  220. else
  221. {
  222. message.channel.send(curses[Math.floor(Math.random()*curses.length)]);
  223. }
  224. break;
  225.  
  226. case "purge":
  227. if(isANumber(msgs[1]))
  228. {
  229. let num_del = parseInt(msgs[1]);
  230. if(num_del<100)
  231. {
  232. message.channel.bulkDelete(num_del);
  233. message.channel.send("Succesfully deleted " + num_del + " Messages");
  234. }
  235. else
  236. {
  237. message.channel.send("Please enter a number which is less than 100");
  238. }
  239. }
  240. break;
  241.  
  242. case "help":
  243. let temp_str="Commands are: ";
  244. for(let x=0;x<case_names.length;x++)
  245. {
  246. temp_str+= " \n" +case_names[x];
  247. }
  248. message.channel.send(temp_str);
  249. break;
  250.  
  251. case "addloop":
  252. if(!message.member.hasPermissions("MUTE_MEMBERS")) return;
  253. if(msgs[1])
  254. {
  255. let member = isAMember(msgs[1],message);
  256. if(member!=null)
  257. {
  258. if(member.voiceChannel)
  259. {
  260. add_to_loop(message,member);
  261. }
  262. else
  263. {
  264. message.channel.send("Cant add " + member.user.toString() +" Because he needs to be in a voice channel first");
  265. }
  266. }
  267. } // adds user to loop
  268. break;
  269.  
  270. case "remloop":
  271. if(!message.member.hasPermissions("MUTE_MEMBERS")) return;
  272. if(msgs[1])
  273. {
  274. let member= isAMember(msgs[1],message);
  275. if(member!=null)
  276. {
  277. remove_from_loop(message,member);
  278. }
  279. }
  280. break;
  281.  
  282. case "mute":
  283. if(msgs.length<=1)
  284. {
  285. message.channel.send("Please enter a @user after the mute function");
  286. return;
  287. }
  288. if(msgs[1].length == 21 || msgs[1].length==22)
  289. {
  290. let member = isAMember(msgs[1],message);
  291. if(member==null) return;
  292. member.setMute(true, 'It needed to be done');
  293. }
  294. break;
  295. case "loop":
  296. if( 2 != msgs.length) return message.channel.send("Please enter a number after the loop function,loop <number>");
  297. if(!isANumber(msgs[1])) return message.channel.send("Please enter a number after the loop function,loop <number>");
  298. let num=msgs[1];
  299. if(num> 5 || num<0) return message.channel.send("Please enter a number which is between 0-5");
  300. let voice_original=[] ;
  301. for(let x=0;x<loop.length;x++)
  302. {
  303. voice_original.push(loop[x].voiceChannel);
  304. }
  305. if(message.member.id!="188573862311493634") return message.channel.send("fuck you youre not allowed to use this");
  306.  
  307.  
  308. for(let q=0;q<num;q++)
  309. {
  310. calc_loop();
  311. }
  312. for(let m=0;m<voice_original.length;m++)
  313. {
  314. loop[m].setVoiceChannel(voice_original[m]);
  315. }
  316. break;
  317.  
  318. case "listclear":
  319. for(let k=0;k<loop.length;k++)
  320. {
  321. remove_from_loop(message,loop[k]);
  322. }
  323. break;
  324.  
  325. default :
  326. message.channel.send("Invalid command");
  327. console.log("Failed in reacting");
  328. }
  329. }
  330. );
  331.  
  332. bot.login(TOKEN);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement