Hirsw0w

[Duelbits] Chat rain script

Aug 14th, 2020
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. //////// SETTINGS - EDIT HERE ////////
  2. let settings = {
  3. messages: ["gl", "gg", "GG", "Gl", "L", ":D", "w"], // Type here all the random messages you want it to send
  4. mintuesToWait: 9, // Set here the number of mintues you want the script to wait before each message
  5. randomFactor: 30, // Set here the number of seconds you want it to random increase/decrease the time better leave 30 (It is to make detection harder)
  6.  
  7. }
  8. //////// ^^^ SETTINGS - EDIT HERE ^^^ ////////
  9.  
  10. let duelbits_data = JSON.parse(localStorage.getItem("persist:duelbits"));
  11. let token = JSON.parse((duelbits_data.auth)).token;
  12.  
  13. let lastMessage = 0;
  14. if(localStorage.getItem("last_message") != null) {
  15. lastMessage = parseInt(localStorage.getItem("last_message"));
  16. }
  17.  
  18. let http = new XMLHttpRequest();
  19. let socket = null;
  20.  
  21. function httpConnection() {
  22. let delay = localStorage.getItem("delay");
  23. if(delay != null && delay > Date.now())
  24. return;
  25.  
  26. localStorage.setItem("delay", Date.now() + 1000);
  27. http.open("GET", "https://ws.duelbits.com/socket.io/?EIO=3&transport=polling&t=NFhz3BG", true);
  28. http.send();
  29.  
  30. http.onreadystatechange = function () {
  31. if (this.readyState === 4 && this.status === 200) {
  32. let x = this.responseText;
  33. let obj = JSON.parse(x.slice(x.indexOf('{'), x.lastIndexOf('}') + 1));
  34.  
  35. createConnection(obj.sid);
  36. }
  37. };
  38. }
  39.  
  40. function createConnection(sid) {
  41. socket = new WebSocket("wss://ws.duelbits.com/socket.io/?EIO=3&transport=websocket&sid=" + sid);
  42.  
  43. socket.onopen = (e) => {
  44. console.log("[Duelbits.com] Connection established!");
  45. socket.send("2probe");
  46.  
  47. fetch("https://ws.duelbits.com/socket.io/?EIO=3&transport=polling&t=NFhz3BG&sid=" + sid, {
  48. "headers": {
  49. "accept": "*/*",
  50. "accept-language": "he-IL,he;q=0.9,en-US;q=0.8,en;q=0.7,nl;q=0.6",
  51. "content-type": "text/plain;charset=UTF-8",
  52. "sec-fetch-dest": "empty",
  53. "sec-fetch-mode": "cors",
  54. "sec-fetch-site": "same-site"
  55. },
  56. "referrer": "https://duelbits.com/",
  57. "referrerPolicy": "no-referrer-when-downgrade",
  58. "body": "314:420[\"authenticate\",\"" + token + "\"]",
  59. "method": "POST",
  60. "mode": "cors",
  61. "credentials": "include"
  62. });
  63. }
  64.  
  65. socket.onmessage = (e) => {
  66. let message = e.data;
  67.  
  68. if(message === "3probe") {
  69. socket.send("5");
  70. socket.send("421[\"chat:get\"]");
  71. socket.send(`422["authenticate","${token}"]`);
  72. return;
  73. }
  74. }
  75.  
  76. socket.onclose = (e) => {
  77. console.log("[Duelbits.com] Connection closed reconnecting in 5 seconds!");
  78. setTimeout(httpConnection, 5000);
  79. }
  80. }
  81.  
  82. function sendMessage(message) {
  83. if(socket == null || socket.readyState !== socket.OPEN)
  84. return;
  85.  
  86. socket.send(`424["chat:send",{"body":"${message}"}]`);
  87. }
  88.  
  89.  
  90. setInterval(function() {
  91. if(socket != null && socket.readyState === socket.OPEN) {
  92. socket.send("2");
  93.  
  94. if(lastMessage < Date.now()) {
  95. let random = (Math.random() > 0.5 ? -1:1) * parseInt(Math.random() * settings.randomFactor * 1000);
  96.  
  97. lastMessage = Date.now() + 1000 * 60 * settings.mintuesToWait + random;
  98. localStorage.setItem("last_message", lastMessage);
  99. shuffleArray(settings.messages);
  100. sendMessage(settings.messages[0]);
  101. }
  102. }
  103.  
  104. }, 15 * 1000);
  105.  
  106. setTimeout(() => {
  107. httpConnection();
  108. }, 2000);
  109.  
  110. function shuffleArray(array) {
  111. for (let i = array.length - 1; i > 0; i--) {
  112. const j = Math.floor(Math.random() * (i + 1));
  113. [array[i], array[j]] = [array[j], array[i]];
  114. }
  115. }
Add Comment
Please, Sign In to add comment