Auto Left and Join with kick (beta version)

Auto Left and Join with kick (Anti Kick)

  1. // ==UserScript==
  2. // @name Auto Left and Join with kick (beta version)
  3. // @description Auto Left and Join with kick (Anti Kick)
  4. // @version 1.0
  5. // @author STRAGON
  6. // @license N/A
  7. // @match *://gartic.io/*
  8. // @match *://*/*?__cpo=aHR0cHM6Ly9nYXJ0aWMuaW8
  9. // @icon https://static.cdnlogo.com/logos/s/96/st.svg
  10. // @grant GM_setValue
  11. // @grant GM_getValue
  12. // @grant GM_addValueChangeListener
  13. // @grant GM_addStyle
  14. // @grant GM_openInTab
  15. // @namespace https://greasyfork.org/en/users/1353946-stragon-x
  16. // ==/UserScript==
  17.  
  18. (function() {
  19. let originalSend = WebSocket.prototype.send;
  20. let setTrue = false;
  21.  
  22. window.wsObj = {};
  23.  
  24. WebSocket.prototype.send = function(data) {
  25. console.log("Gönderilen Veri: " + data);
  26. originalSend.apply(this, arguments);
  27. if (Object.keys(window.wsObj).length == 0) {
  28. window.wsObj = this;
  29. window.eventAdd();
  30. }
  31. };
  32.  
  33. window.eventAdd = () => {
  34. if (!setTrue) {
  35. setTrue = 1;
  36. window.wsObj.addEventListener("message", (msg) => {
  37. let data = JSON.parse(msg.data.slice(2));
  38. console.log(data);
  39. if (data[0] == 5) {
  40. window.wsObj.lengthID = data[1];
  41. window.wsObj.id = data[2];
  42. window.wsObj.roomCode = data[3];
  43. }
  44. if (data[0] == 5) {
  45. window.wsObj.linkroom = data[10];
  46. let users = data[5];
  47. let numberuser = users.length;
  48. var numberenkick = ~~(users.length / 3);
  49. console.log(numberenkick);
  50. console.log(data[5]);
  51. }
  52. if (data[0] == 45) {
  53. window.wsObj.long = data[2];
  54. window.wsObj.longCount = 0;
  55. if (window.wsObj.long === window.wsObj.lengthID && isImageClicked) {
  56. window.wsObj.send(`42[24,${window.wsObj.id}]`);
  57. location.reload();
  58. }
  59. }
  60. });
  61. }
  62. };
  63. let ready=0,oldurl;
  64. let panelx = document.createElement("div");
  65. panelx.setAttribute("class","roomspanel");
  66. panelx.setAttribute("style","width:0%;height:auto;max-height:0px;overflow-y:scroll;padding:10px;position:fixed;background-color:white;color:grey;font-weight:bold;right:10px;top:50%;transform:translate(0,-50%);border-radius:10px;border:2px solid grey;text-align:center;z-index:99999;");
  67. let icerik = "<h2>Odalar</h2><hr><br><input type='text' style='padding:10px;' placeholder='Oda Ara..' oninput='window.refreshrooms(this.value)' class='mousetrap' /><br><br><div class='odaliste'></div>";
  68. function _(x){return document.querySelector(x);};
  69. function _a(x){return document.querySelectorAll(x);};
  70. window.refresh=(x=window.location.href)=>{window.onbeforeunload=null;oldurl=x;_("#exit").click();_(".ic-yes").click();setTimeout(window.location.href=oldurl,500);};
  71.  
  72. setTimeout(()=>{
  73. if(document.title.indexOf("#")!=-1){
  74. let l = setInterval(()=>{
  75. _(".ic-playHome").click();
  76. clearInterval(l);
  77. },100);
  78. }
  79. },300);
  80.  
  81. window.refreshrooms=(x="")=>{
  82. let roomdatas;
  83. fetch("https://gartic.io/req/list?search="+x+"&language[]=8").then(x=>x.json()).then(x=>{
  84. roomdatas=x;
  85. _(".odaliste").innerHTML="";
  86. for(let i of roomdatas){
  87. _(".odaliste").innerHTML+="<button style='width:70%;text-align:center;background-color:dodgerblue;color:white;border:2px solid cyan;border-radius:10px;padding:10px;' onclick='window.refresh(\"https://gartic.io/"+i.code+"\")'><b>"+i.code.slice(-3)+" - "+i.quant+"/"+i.max+"</b></button><a href='https://gartic.io/"+i.code+"/viewer' target='_blank'>Viewer</a><br>";
  88. }
  89. });
  90. }
  91.  
  92. document.body.addEventListener("keyup",(event)=>{
  93. window.event.keyCode==27?window.refresh():0;
  94. })
  95.  
  96. let a = setInterval(()=>{
  97. if(_(".game")){
  98. if(ready==0){
  99. setTimeout(()=>{
  100. _(".logo").remove();
  101. if(!_(".roomspanel")){
  102. document.body.appendChild(panel);
  103. _(".roomspanel").innerHTML=icerik;
  104. window.refreshrooms();
  105. }
  106. for(let i of _a(".alert")){
  107. i.setAttribute("class","msg");
  108. }
  109. _(".user.you").innerHTML+='<span style="padding:10px;background:black;color:gold;font-weight:bold;">VIP</span>';
  110. ready=1;
  111. },300);
  112. }
  113. _(".contentPopup")?_(".btYellowBig.ic-yes").click():0;
  114. _("g")?_("g").remove():0;
  115. if(ready==1){
  116. for(let i of _a(".scrollElements")[2].querySelectorAll(".msg.alert")){
  117. i.innerText.split(", ")[1].split(" ")[0] == _(".user.you").innerText.split("\n")[0]?window.refresh():0;
  118. }
  119. }
  120. }
  121. },50);
  122.  
  123.  
  124. GM_addStyle(`
  125. #panel {
  126. position: fixed;
  127. top: 60px;
  128. left: 5px;
  129. background-color: #000;
  130. border: 2px solid #ff0000;
  131. border-radius:15px;
  132. padding: 10px;
  133. display: flex;
  134. flex-direction: column;
  135. align-items: center;
  136. z-index: 999999;
  137. }
  138. #panel img {
  139. width: 50px;
  140. height: 50px;
  141. margin-bottom: 10px;
  142. }
  143. `);
  144.  
  145. let panel = document.createElement('div');
  146. panel.id = 'panel';
  147. let img = document.createElement('img');
  148. let imageIndex = 0;
  149. let images = ['https://parspng.com/wp-content/uploads/2022/07/tickpng.parspng.com-2-300x300.png', 'https://dl.shut.ir/public/file/2023/10/17/%D8%B9%DA%A9%D8%B3-%D8%B6%D8%B1%D8%A8%D8%AF%D8%B1-%D9%82%D8%B1%D9%85%D8%B2-%D8%AF%D8%B1-%D8%AF%D8%A7%DB%8C%D8%B1%D9%87.png'];
  150. img.src = images[imageIndex];
  151. img.onclick = function() {
  152. imageIndex = (imageIndex + 1) % images.length;
  153. this.src = images[imageIndex];
  154. };
  155. let isImageClicked = true;
  156.  
  157. img.onclick = function() {
  158. imageIndex = (imageIndex + 1) % images.length;
  159. this.src = images[imageIndex];
  160. isImageClicked = !isImageClicked;
  161. };
  162. let text = document.createElement('p');
  163. text.textContent = 'Auto Left and Join';
  164. text.style.marginBottom = '5px';
  165. let text3 = document.createElement('p');
  166. text3.textContent = 'Beta version';
  167. text3.style.fontSize = '12px';
  168. panel.appendChild(img);
  169. panel.appendChild(text);
  170. panel.appendChild(text3);
  171.  
  172. document.body.appendChild(panel);
  173. })();
  174.