ICEbot v5

Bot Panel for gartic.io

  1. // ==UserScript==
  2. // @name ICEbot v5
  3. // @name:tr made by frio & ╰‿╯
  4. // @name:az hello
  5. // @description Bot Panel for gartic.io
  6. // @description:tr Bot Panel for gartic.io (in Turkish)
  7. // @description:az Bot Panel for gartic.io (in Azerbaijani)
  8. // @version 5.0.1
  9. // @author frio & ╰‿╯
  10. // @license MIT
  11. // @match *://gartic.io/*
  12. // @match *://*/*?__cpo=aHR0cHM6Ly9nYXJ0aWMuaW8
  13. // @icon https://cdn.discordapp.com/attachments/1124451069204910161/1177654466523189360/MOSHED-2023-11-24-13-55-23.jpg?ex=65734b30&is=6560d630&hm=1b42ff32759ea222cc3b1eac33cb7852209358d47e44c560b10efe0f8f230752&
  14. // @grant GM_setValue
  15. // @grant GM_getValue
  16. // @grant GM_addValueChangeListener
  17. // @grant GM_addStyle
  18. // @namespace https://gf.qytechs.cn/users/1220697
  19. // ==/UserScript==
  20.  
  21.  
  22.  
  23. let rand = x => Math.floor(Math.random() * 1000000),
  24. GM_onMessage = (label, cb) => GM_addValueChangeListener(label, (_, __, data) => cb(...data)),
  25. GM_sendMessage = (label, ...data) => GM_setValue(label, data);
  26. GM_onMessage('answerinput', (atılacak, _) => {
  27.  
  28. document.querySelector('#answer').value= atılacak
  29. })
  30. GM_onMessage('changedraw', (atılacak, _) => {
  31.  
  32. document.querySelector('#answer').value= atılacak
  33. })
  34. function f(ICE){return document.querySelector(ICE)}
  35. function fa(ICE){return document.querySelectorAll(ICE)}
  36. function num(ICE){return Math.ceil(Math.random()*ICE+1)}
  37. function rc(ICE){let e=f('input[name="chat"]');let lv=e.value;e.value="";let ev=new Event('input',{bubbles:true});ev.simulated=true;let t=e._valueTracker;if(t){t.setValue(lv);};e.dispatchEvent(ev);}
  38. function rs(ICE){let e=f(".search input");let lv=e.value;e.value="";let ev=new Event('input',{bubbles:true});ev.simulated=true;let t=e._valueTracker;if(t){t.setValue(lv);};e.dispatchEvent(ev);}
  39. function rnext(kelime) {
  40. const hd = kelime.split('');
  41. const hu = hd.length;
  42. const yh = [];
  43. const invisibleChars = ['\u200B', '\u200C', '\u200D', '\u2061', '\u2062', '\u2063', '\u2064', '\u2066', '\u17b4', '\u17b5', '\u2068', '\u2069']
  44. let charCount = 0;
  45.  
  46. for (let i = 0; i < hu; i++) {
  47. yh.push(hd[i]);
  48. charCount++;
  49.  
  50. if (charCount < 18 && i < hu - 1) {
  51. const invisibleChar = invisibleChars[Math.floor(Math.random() * invisibleChars.length)];
  52. yh.push(invisibleChar);
  53. charCount++;
  54. }
  55.  
  56. if (charCount >= 18) {
  57. break;
  58. }
  59. }
  60.  
  61. return yh.join('');
  62. }
  63. let cmd="",wss=[],tojoin=0,usersinroom=[],customkickitems=[],messagejoinitems=[],tfr,tg,intervalbroadcast,intervalmsg,intervalanswer,intervalantiafk,rainbowdraw,rainbowdrawmode=false,botsidvalue=[],wordsInterval,botID,botlongID,theme,am,avatar=localStorage.getItem("avatar"),botnick=localStorage.getItem("botnick"),nick=localStorage.getItem("nick")
  64. if(window.location.href.indexOf("aHR0cHM6Ly9nYXJ0aWMuaW8")!=-1){
  65. let room,kicknewstat=false,kickjoinstat=false,autoreport=false,autoskip=false,antiafk=false,antikick=false,antikickDelay=1,autokick=false,autoguess,autofarm=false,waitforkick=0
  66.  
  67. const addItem = (arr, ...arguments) => { for (let i = 0; i < arguments.length; i++) { arr[arr.length] = arguments[i]; } return arr; };
  68.  
  69. function arrayFilter(array) {
  70. return array.filter((value, index, arr) => arr.indexOf(value) === index);
  71. }
  72.  
  73. GM_setValue("botekle",rand())
  74.  
  75. GM_addValueChangeListener("resetcount", function(I,C,E,b) {
  76. GM_setValue("botekle",rand())
  77. })
  78. setTimeout(()=>{waitforkick=0},1000)
  79. GM_onMessage("reconnect", (_,__)=>{
  80. const storedArray = JSON.parse(localStorage.getItem('ws-reconnect-data')) || [];
  81. storedArray.forEach(obj => {
  82. let rws= new WebSocket("wss://"+obj.server+".gartic.io/socket.io/?c="+obj.code+"&EIO=3&transport=websocket");
  83. rws.onopen=()=>{rws.send('42[7,"'+obj.room+'",'+obj.timestamp+']');
  84. GM_onMessage("cmd", (cmd,x)=> { switch(cmd) {
  85. case "broadcast":
  86. rws.send('42[11,'+obj.timestamp+',"'+x+'"]')
  87. rws.send('42[13,'+obj.timestamp+',"'+x+'"]')
  88. break;
  89. case "msg":
  90. rws.send('42[11,'+obj.timestamp+',"'+x+'"]')
  91. break;
  92. case "answer":
  93. rws.send('42[13,'+obj.timestamp+',"'+x+'"]')
  94. break;
  95. case "report":
  96. rws.send('42[35,'+obj.timestamp+']')
  97. break;
  98. case "jump":
  99. rws.send('42[25,'+obj.timestamp+']')
  100. break;
  101. case "accept1":
  102. rws.send('42[34,'+obj.timestamp+']')
  103. break;
  104. case "accept2":
  105. rws.send('42[34,'+obj.timestamp+',1]')
  106. break;
  107. case "tips":
  108. rws.send('42[30,'+obj.timestamp+',1]')
  109. break;
  110. case "exit":
  111. rws.send('42[24,'+obj.timestamp+']')
  112. break;
  113. case "kick":
  114. if(!botsidvalue.includes(x.split("..")[0])){
  115. rws.send('42[45,'+obj.timestamp+',["'+x.split("..")[0]+'",true]]')}
  116. break;
  117.  
  118. }})
  119. }})})
  120. GM_onMessage("join", (room,nick,avatar,botnick,kickonjoin,_) => { fetch("/logout").then(()=>{
  121. fetch("https://"+window.location.href.split("/")[2]+"/server?check=1&v3=1&room="+room+"&__cpo=aHR0cHM6Ly9nYXJ0aWMuaW8#").then(x=>x.text()).then(x=>{
  122. let ws=new WebSocket("wss://"+window.location.href.split("/")[2]+"/__cpw.php?u="+btoa("wss://"+x.split("https://")[1].split(".")[0]+".gartic.io/socket.io/?c="+x.split("?c=")[1]+"&EIO=3&transport=websocket")+"&o=aHR0cHM6Ly9nYXJ0aWMuaW8="); ws.onopen=()=>{
  123. let inter=setInterval(()=>{
  124. GM_setValue("ready",rand())
  125. if(tojoin==1){
  126. tojoin=0
  127. if (botnick === '0') {
  128. ws.send('42[3,{"v":20000,"nick":"'+rnext(nick)+'","avatar":'+avatar+',"platform":0,"sala":"'+room.substring(2)+'"}]')
  129. }
  130.  
  131. else if (botnick === '1') {
  132. // Japonca karakterler
  133. const characters = [
  134. "あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ",
  135. "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ",
  136. "ま", "み", "む", "め", "も", "や", "ゆ", "よ", "ら", "り", "る", "れ", "ろ", "わ", "を", "ん",
  137. "ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ",
  138. "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ",
  139. "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン"
  140. ];
  141.  
  142. // Rastgele Japonca karakterler oluştur
  143. const getRandomCharacters = (length) => {
  144. let result = '';
  145. for (let i = 0; i < length; i++) {
  146. const randomIndex = Math.floor(Math.random() * characters.length);
  147. result += characters[randomIndex];
  148. }
  149. return result;
  150. };
  151.  
  152. // Rastgele Japonca karakterler al
  153. const randomCharacters = getRandomCharacters(1);
  154.  
  155. // Noktaları rastgele bir yere eklemek için
  156. const insertDots = (str, numDots) => {
  157. let arr = str.split('');
  158. for (let i = 0; i < numDots; i++) {
  159. const position = Math.floor(Math.random() * (arr.length + 1));
  160. arr.splice(position, 0, '‏');
  161. }
  162. return arr.join('');
  163. };
  164.  
  165. // 4 tane nokta ekle
  166. const finalNick = insertDots(randomCharacters, 1);
  167.  
  168. ws.send(`42[3,{"v":20000,"nick":"${nick}${finalNick}","avatar":${avatar},"platform":0,"sala":"${room.substring(2)}"}]`);
  169. }
  170.  
  171. clearInterval(inter)
  172. }
  173. },50)
  174. }
  175.  
  176. ws.onclose=()=>{
  177. wss.length=0
  178. ws.close();
  179. }
  180. ws.onmessage=(msg)=>{
  181.  
  182. if(msg.data.indexOf('42["23"')!=-1){
  183. let user=JSON.parse("{"+msg.data.split("{")[1].split("}")[0]+"}")
  184. usersinroom.push(user)
  185. if(kicknewstat){typeof(user.id)=="string"?ws.send('42[45,'+ws.id+',["'+user.id+'",true]]'):ws.send('42[45,'+ws.id+',['+user.id+',true]]');}
  186. }
  187. if(msg.data.indexOf('42["5"')!=-1){
  188. let objlist=JSON.parse('["5"'+msg.data.split('42["5"')[1])
  189. ws.theme=objlist[4].tema
  190. ws.room=objlist[4].codigo
  191. ws.id=objlist[2];
  192. objlist[5].forEach(item=>{usersinroom.push(item)});
  193. let targetid=objlist[5][0].id
  194. botID = objlist[2];
  195.  
  196. const storedArray = JSON.parse(localStorage.getItem('ws-reconnect-data')) || [];
  197. const newData = { code: x.split("?c=")[1], room: objlist[3], server: x.split("https://")[1].split(".")[0], timestamp: objlist[2] };
  198. storedArray.push(newData);
  199. localStorage.setItem('ws-reconnect-data', JSON.stringify(storedArray));
  200. botlongID = objlist[1]
  201. theme = objlist[4].tema
  202. setTimeout(()=>{
  203. f(".roomtheme").innerHTML= theme},10)
  204. setTimeout(()=>{
  205. GM_sendMessage("botsidvalue",botlongID,rand())},777)
  206. setTimeout(()=>{
  207. GM_sendMessage("updatelist",botID,rand())},777)
  208.  
  209. setTimeout(()=>{
  210. antikickDelay=0;},2000)
  211.  
  212. kickjoinstat?typeof(targetid)=="string"?ws.send('42[45,'+ws.id+',["'+targetid+'",true]]'):ws.send('42[45,'+ws.id+',['+targetid+',true]]'):0
  213. ws.send('42[46,'+objlist[2]+']')
  214.  
  215.  
  216.  
  217. GM_onMessage('answerinput', (atılacak, _) => {
  218. f('#answer').value= atılacak
  219. })
  220.  
  221. GM_onMessage("botsidvalue", (datachangex, _) => {
  222.  
  223. botsidvalue.push(datachangex)
  224. });
  225. GM_onMessage("updatelist", (datachangex, _) => {
  226. GM_sendMessage("updatebotidlist",botsidvalue,rand())
  227. });
  228. GM_onMessage("updatebotidlist", (datachangex, _) => {
  229.  
  230. if (!botsidvalue.includes(datachangex)) {
  231. addItem(botsidvalue,...datachangex);
  232. }
  233. botsidvalue = arrayFilter(botsidvalue);
  234. });
  235.  
  236. GM_addValueChangeListener("broadcast", function(I,C,E,b) {
  237. ws.send('42[11,'+objlist[2]+',"'+E.split("►")[0]+'"]')
  238. ws.send('42[13,'+objlist[2]+',"'+E.split("►")[0]+'"]')
  239. });
  240. GM_addValueChangeListener("msg", function(I,C,E,b) {
  241. ws.send('42[11,'+objlist[2]+',"'+E.split("►")[0]+'"]')
  242. })
  243. GM_addValueChangeListener("answer", function(I,C,E,b) {
  244. ws.send('42[13,'+objlist[2]+',"'+E.split("►")[0]+'"]')
  245. })
  246. GM_addValueChangeListener("report", function(I,C,E,b) {
  247. ws.send('42[35,'+objlist[2]+']')
  248. });
  249. GM_addValueChangeListener("jump", function(I,C,E,b) {
  250. ws.send('42[25,'+objlist[2]+']')
  251. });
  252. GM_onMessage("draw", (_,__)=> {
  253.  
  254. function calcPixel(x, y, larguraImagem, alturaImagem) {
  255. const re = (y * larguraImagem + x) * 4;
  256. return {
  257. re: re,
  258. x: x,
  259. y: y
  260. };
  261. }
  262.  
  263. function pixelsend(inicioX, inicioY, larguraG, alturaG) {
  264. const larguraImagem = 767;
  265. const alturaImagem = 448;
  266. let re = 0;
  267.  
  268. function enviarProximoPixel() {
  269. const x = inicioX + re % larguraG;
  270. const y = inicioY + Math.floor(re / larguraG);
  271.  
  272. if (y < inicioY + alturaG) {
  273. const pixel = calcPixel(x, y, larguraImagem, alturaImagem);
  274. const hex = 'xFFFFFF';
  275. ws.send('42[10,' + ws.id + ',[2,' + pixel.x + ',' + pixel.y + ']]');
  276. re++;
  277. setTimeout(enviarProximoPixel, 250);
  278. }
  279. }
  280.  
  281. enviarProximoPixel();
  282. }
  283.  
  284. function pixels() {
  285. const larguraImagem = 767;
  286. const alturaImagem = 448;
  287. const larguraG = 10;
  288. const alturaG = 10;
  289. const intervaloEnvio = 50;
  290.  
  291. let y = 0;
  292. let gVAL= setInterval(function() {
  293. pixelsend(0, y, larguraG, alturaG);
  294. y += alturaG;
  295.  
  296. if (y >= alturaImagem) {
  297. clearInterval(gVAL);
  298. }
  299. }, intervaloEnvio);
  300. }
  301.  
  302. async function pixelEx() {
  303. const items = await navigator.clipboard.read();
  304. const item = items[items.length - 1];
  305. if (item.types.includes("image/png") || item.types.includes("image/jpeg")) {
  306. const blob = await item.getType("image/png" || "image/jpeg");
  307. const imageBitmap = await createImageBitmap(blob);
  308. } else {
  309. console.log("d");
  310. }
  311. }
  312.  
  313. pixelEx();
  314.  
  315. });
  316. GM_addValueChangeListener("acceptdraw1", function(I,C,E,b) {
  317. ws.send('42[34,'+objlist[2]+']')
  318. });
  319. GM_addValueChangeListener("acceptdraw2", function(I,C,E,b) {
  320. ws.send('42[34,'+objlist[2]+',1]')
  321. });
  322.  
  323. GM_addValueChangeListener("tips", function(I,C,E,b) {
  324. ws.send('42[30,'+objlist[2]+',1]')
  325. });
  326.  
  327. GM_addValueChangeListener("exit", function(I,C,E,b) {
  328. ws.send('42[24,'+objlist[2]+']')
  329. wss.lenghth=0
  330. usersinroom.length=0
  331. });
  332.  
  333. GM_addValueChangeListener("kick", function(I,C,E,b) {
  334. if(!botsidvalue.includes(E.split("..")[0])){
  335. ws.send('42[45,'+objlist[2]+',["'+E.split("..")[0]+'",true]]')}
  336. })
  337.  
  338.  
  339. JSON.stringify(wss).indexOf(objlist[2])==-1?wss.push({"ws":ws,"id":objlist[2],"lengthID":objlist[1]}):0
  340. let interval=setInterval(()=>{
  341. ws.readyState==1?ws.send('2'):clearInterval(interval)
  342. },20000);
  343. }
  344. if(antiafk===true){
  345. intervalantiafk=setInterval(()=>{
  346. ws.send('42[42,'+ws.id+']')
  347. },20000)
  348. } else if(antiafk===false){
  349. clearInterval(intervalantiafk)
  350. intervalantiafk=null
  351. }
  352. if(msg.data.indexOf('42["47"]')!=-1 && autoguess==1){
  353.  
  354. let inter=parseInt(localStorage.getItem("autoguess"))
  355. function wordsArray(arr) {
  356. let index = 0;
  357. if (wordsInterval) {
  358. clearInterval(wordsInterval);
  359. }
  360. wordsInterval = setInterval(() => {
  361. if (index < arr.length) {
  362. ws.send('42[13,'+ws.id+',"'+arr[index]+'"]')
  363. index++;
  364. } else {
  365. clearInterval(wordsInterval);
  366.  
  367.  
  368. }
  369. }, inter);
  370. }
  371.  
  372. const FoodsPt = [ "Arroz", "Feijão", "Macarrão", "Batata", "Coxa de frango", "Carne de boi", "Peixe", "Ovo", "Queijo", "Presunto", "Alface", "Tomate", "Cenoura", "Beterraba", "Brócolis", "Couve-flor", "Abóbora", "Abobrinha", "Cebola", "Pimentão", "Pepino", "Morango", "Banana", "Maçã", "Laranja", "Mamão", "Melancia", "Melão", "Uva", "Manga", "Kiwi", "Abacaxi", "Pêra", "Limão", "Pêssego", "Ameixa", "Damasco", "Amêndoa", "Nozes", "Castanha", "Amendoim", "Pipoca", "Sorvete", "Iogurte", "Leite", "Manteiga", "Azeite", "Vinagre", "Açúcar", "Sal", "Pimenta", "Orégano", "Salsinha", "Cebolinha", "Erva-doce", "Manjericão", "Alecrim", "Pão", "Bolacha", "Bolo", "Torta", "Brigadeiro", "Pudim", "Gelatina", "Mousse", "Brownie", "Biscoito", "Sushi", "Sashimi", "Tempurá", "Yakisoba", "Ramen", "Udon", "Soba", "Niguiri", "Temaki", "Gyoza", "Harumaki", "Shimeji", "Shiitake", "Champignon", "Aspargo", "Alcachofra", "Acelga", "Agrião", "Alga", "Lentilha", "Grão-de-bico", "Amaranto", "Quinoa", "Chia", "Linhaça", "Aveia", "Trigo", "Centeio", "Milho", "Soja", "Cará", "Inhame", "Nabo", "Rabanete", "Alcachofra", "Ostra", "Mexilhão", "Salmão", "Atum", "Bacalhau", "Linguado", "Robalo", "Sardinha", "Truta", "Tilápia", "Tambaqui", "Pirarucu", "Dourado", "Agulha", "Bagre", "Pintado", "Carpa", "Tambacu", "Javali", "Coelho", "Codorna", "Pato", "Marreco", "Peru", "Ganso", "Faisão", "Avestruz", "Vison", "Jacaré", "Tartaruga", "Cervo", "Veado", "Pomba", "Pombo", "Camarão", "Lagosta", "Siri", "Caranguejo", "Polvo", "Lula", "Mexilhão", "Ostra" ];
  373. const FoodsTr= [ "tulumba", "findık ekmesi", "kavurma", "hamburger", "fıstık", "fanta", "kola", "çekirdek", "yumurta", "but", "midye", "ekler", "cips", "kayısı", "lahmacun", "dürüm", "kavun", "karbur", "Supangle", "kokoreç", "olips", "tost", "kadayıf", "Avokado", "Pizza", "dondurma", "çiğ köfte", "pakek", "kazandibi", "süt", "bazlama", "şeftali", "nektari", "Falım", "Çikolata", "Bonfile", "şwker", "pide", "ekmek", "ayran", "meyve suyu", "puding", "vişne", "elma", "fındık", "fındık ezmesi", "kek", "et", "lolipop", "kanat", "limonata", "patates kızartaması", "traliçe", "baklava", "bonfile" ]
  374. const MinecraftPt = [ "peixe", "madeira", "arvore", "alex", "porco", "arco", "gato", "machado", "enderman", "baú", "vara de pescar", "poção", "abóbora", "balde de lava", "ovelha", "grama", "balde de leite", "ouro", "areia", "porco zumbi", "cavalo", "pão", "galinha", "ferro", "enxada", "maçã dourada", "bolo", "slime", "bola de neve", "warden", "espada de ferro", "graveto", "cascalho", "steve", "ender dragon", "melancia", "aldeão", "poção arremesável", "wither", "pérola do End", "cenoura", "enxada de diamante", "pólvora", "diamante", "pena", "semente de trigo", "carvão", "redstone", "TNT", "sela", "lágrima de Ghast", "esqueleto", "aranha", "lula", "zombie pigman", "blaze", "endermite", "lobo", "vaca", "coelho", "morcego", "flor", "maçã", "axolote" ]
  375. const ObjectsPt = [ "mouse pad", "machado", "panela de pressão", "piano", "agulha", "chocalho", "chinelo", "poncheira", "cotoveleira", "dado", "armadura", "estilingue", "caldeirão", "cachepô", "berimbau", "carrinho de rolimã", "ferrolho", "cetro", "sanfona", "conga", "guarda-sol", "escova de dente", "varal", "borrifador", "chaleira", "mimeógrafo", "rodo", "serpentina", "caixa de ferramentas", "pires", "rastelo", "chave de grifo", "betoneira", "estatueta do oscar", "fones de ouvido", "bandana", "monóculo", "navalha", "enxada", "serra elétrica", "gangorra", "broca", "ganzá", "sombrero", "telha", "charango", "biombo", "órgão", "miçanga", "saxofone", "bola de gude", "lustre", "pochete", "monitor", "retroprojetor", "marionete", "patinete", "chip" ]
  376. const FootballPt = [ "juventude", "ituano", "sertãozinho", "tigres", "newcastle", "metalist", "uberaba", "ajax", "olympiacos", "manchester united", "barcelona", "campo grande", "brasil de pelotas", "argentinos juniors", "benfica", "bayern de munique", "cuiabá", "getafe", "napoli", "paranavaí", "racing", "athletico paranaense", "confiança", "união são joão", "brasiliense", "monte azul", "everton", "joinville", "gaúcho", "corinthians", "lanús", "swansea city", "ypiranga", "entrerriense", "athletic bilbao", "fiorentina", "mirassol", "anapolina", "remo", "csa", "boa esporte", "penedense", "chivas", "camaçari", "icasa", "bom sucesso", "once caldas", "stuttgart", "vélez sarsfield", "friburguense", "levante", "málaga", "ituiutaba", "sampaio corrêa", "estudiantes", "cascavel", "mogi mirim", "siena", "aston villa", "independiente", "universidad de chile", "tottenham", "real sociedad", "real zaragoza", "bangu", "ldu", "murici", "manchester city", "macaé", "paulista", "vitória", "ponte preta", "vera cruz", "lille", "linense", "democrata", "inter de milão", "operário", "stoke city", "americano", "vila aurora", "central", "peñarol", "bordeaux", "wolfsburg", "noroeste", "juventus", "chapecoense", "morelia", "panathinaikos", "basel", "atalanta", "volta redonda", "chelsea", "santo andré" ]
  377. const FlagsPt = [ "barbados", "camarões", "congo", "samoa", "croácia", "ilhas marshall", "maldivas", "gâmbia", "canadá", "uruguai", "san marino", "jordânia", "reino unido", "lituânia", "áustria", "islândia", "irã", "hungria", "bolívia", "trinidad e tobago", "afeganistão", "cuba", "guiné-bissau", "comores", "mongólia", "cingapura", "bélgica", "zâmbia", "romênia", "chade", "malauí", "paquistão", "etiópia", "timor-leste", "camboja", "síria", "ilhas salomão", "cazaquistão", "quênia", "omã", "argélia", "tanzânia", "méxico", "nepal", "brasil", "chile", "jamaica", "vanuatu", "lesoto", "luxemburgo", "guiné", "santa lúcia", "chipre", "fiji", "dominica", "laos", "eritreia", "belarus", "costa rica", "argentina", "zimbábue", "malta", "bulgária", "papua nova guiné", "holanda", "eslovênia", "mônaco", "turquia", "brunei", "emirados árabes unidos", "tunísia", "mali", "guiné-equatorial", "noruega", "barein", "colômbia", "nauru", "coreia do sul", "coreia do norte", "marrocos", "montenegro", "suíça", "burundi", "egito", "paraguai", "costa do marfim" ]
  378. const GeneralPt = [ "sal grosso", "abafador", "diarista", "barrigudo", "alicate", "elmo", "vatapá", "milho", "pipoca doce", "paraquedas", "assistir", "cavalete", "enxaguar", "lacrimejar", "cereal", "vinho branco", "baleiro", "delineador", "fortalecer", "rosário", "beterraba", "alisar", "amigo", "passeata", "bugio-preto", "bifurcar", "fofocar", "cortador de grama", "doce de leite", "quartel", "abduzir", "corvina", "prender", "macadâmia", "biombo", "batom", "cuco", "comparar", "sorvete napolitano", "bombardear", "skate", "desfilar", "estrela-do-mar", "temperar", "bloquear", "teatro", "granizo", "aerofólio", "churrasco", "coxa de frango", "guirlanda", "bolo", "fatiar", "espada", "trompete", "petit gateau", "afastado", "artéria", "invejoso", "roer", "marceneiro", "internet", "protetor bucal", "acinturado", "estacionamento", "joelho", "linha", "adiantado", "juiz", "digerir", "comediante", "rabanete", "abarrotado", "quieto", "disquete", "salpicão", "cabecear", "lacrar", "furgão", "ourives", "guiar", "ratoeira", "mina", "polaina", "grande", "suco de goiaba", "figo", "bocal", "piranha", "óculos", "ciclismo", "carvão", "costeleta", "rebanho", "doméstica", "colorido", "intestino", "tanque", "átomo", "banheiro", "ferreiro", "alagar", "decorador", "esterilizador", "coroa", "faquir", "encadernador", "aveia", "jabuticaba", "maquiador", "doce de abóbora", "orar", "piorar", "portão", "relicário", "quinoa", "rasurar", "pé de pato", "bambu", "ornitorrinco", "barbante", "gaúcho", "aspargo" ]
  379. const LogosPt = [ "mastercard", "instagram", "lg", "nike", "apple", "deezer", "santander", "abril", "mercedes-benz", "bmw", "hello kitty", "chevrolet", "domino's", "waze", "mercado livre", "microsoft", "reddit", "rolex", "peugeot", "volkswagen", "hering", "bic", "mitsubishi", "pringles", "natura", "carrefour", "hsbc", "adidas", "chanel", "lacoste", "kibon", "firefox", "audi", "android", "shell", "kfc", "bradesco", "pepsi", "banco do brasil", "toyota", "dove", "linux", "whatsapp", "adobe", "mcdonald's", "playstation", "globo", "starbucks", "atari", "spotify", "ferrari", "uol", "toblerone", "puma", "the rolling stones", "motorola", "tesla", "burger king", "google chrome", "dreamworks", "redbull", "twitter" ]
  380. const AnimesPt = [ "king", "kankuro", "izuku midoriya", "sarada uchiha", "squirtle", "diane", "minato", "kakegurui", "noragami", "another", "kakuzu", "dabi", "sailor moon", "zenitsu agatsuma", "mikasa ackerman", "rasengan", "luffy", "asta", "darling in the franxx", "yakusoku no neverland", "norman", "gon freecss", "boruto", "zetsu", "tobirama senju", "barba branca", "death parade", "madara", "goku", "goten", "all might", "tsuyu asui", "bulma", "beyblade", "estarossa", "naruto shippuden", "yu-gi-oh", "konan", "samurai x", "tate no yuusha", "mirai nikki", "death note", "trunks", "pikachu", "made in abyss", "shanks", "cavaleiros do zodíaco", "kushina uzumaki", "natsu dragneel", "silver chariot", "elfen lied", "code geass", "shokugeki no souma", "jojo", "sonic", "armin arlert", "choji akimichi", "jiraya", "sorahiko torino", "zero two", "tony tony chopper", "neon genesis evangelion", "danganronpa", "assassination classroom", "dororo", "fumikage tokoyami", "aerosmith", "fate", "gold experience", "karin uzumaki", "rukia kuchiki", "mob psycho 100", "eri", "charizard", "broly", "hinata", "gohan", "nanatsu no taizai", "tomura shigaraki", "durarara", "kabuto yakushi", "ajin", "vinsmoke sanji", "yato", "narancia ghirga", "koe no katachi", "charlotte", "highschool of the dead", "kirito", "emma", "akira", "bakugan", "freeza" ]
  381. const FoodsEn = [ "rice", "soda", "lemongrass", "dosa", "caramel", "mustard", "nugget", "yogurt", "samosa", "pretzel", "sprite", "salad", "crab", "rosemary", "chocolate", "pomegranate", "baguette", "melon", "dorayaki", "marshmallow", "sweet potato", "brownies", "cinnamon", "oats", "jelly", "coca cola", "mint", "lemon", "pineapple", "lemonade", "tuna", "sugar", "pizza", "mushroom", "tofu", "hazelnut", "fish cake", "waffle", "almond", "peanut butter", "cheese", "guava", "grilled fish", "burrito", "maple syrup", "sour cream", "popcorn", "spaghetti", "smoothie", "cocktail", "lettuce", "cake", "cotton candy", "blueberry", "coconut milk", "meat ball", "vanilla", "sashimi", "plum", "cereal", "shrimp", "curry", "capsicum", "pancake", "crepe", "cauliflower", "mashed potato", "green tea", "fruit cake", "flan", "steak", "biscuit", "peas", "pepper", "pumpkin", "broccoli", "papaya", "star fruit", "noodles", "skittles", "jack fruit", "grape", "watermelon", "croissant", "orange", "salt", "macaroons", "peach", "avocado", "chicken leg", "raisins", "fanta", "cherry", "kebab", "juice", "octopus", "gravy", "tomato", "pani puri", "apple", "garlic", "beer", "ketchup", "cucumber" ]
  382. if(theme==="Foods (pt)"){
  383. wordsArray(FoodsPt)
  384. }
  385. if(theme==="Foods (tr)"){
  386. wordsArray(FoodsTr)
  387. }
  388. if(theme==="Minecraft (pt)"){
  389. wordsArray(MinecraftPt)
  390. }
  391. if(theme==="Objects (pt)"){
  392. wordsArray(ObjectsPt)
  393. }
  394. if(theme==="Flags (pt)"){
  395. wordsArray(FlagsPt)
  396. }
  397. if(theme==="General (pt)"){
  398. wordsArray(GeneralPt)
  399. }
  400. if(theme==="Football (pt)"){
  401. wordsArray(FootballPt)
  402. }
  403. if(theme==="Logos (pt)"){
  404. wordsArray(LogosPt)
  405. }
  406. if(theme==="Animes (pt)"){
  407. wordsArray(AnimesPt)
  408. }
  409. if(theme==="Foods (en)"){
  410. wordsArray(FoodsEn)
  411. }
  412.  
  413. }
  414. if(msg.data.indexOf('42["16"')!=-1 && autoskip===true){
  415. setTimeout(()=>{
  416. ws.send('42[25,'+ws.id+']');},1000)
  417.  
  418. }
  419. if(msg.data.indexOf('42["47"]')!=-1 && autoreport===true){
  420.  
  421. ws.send('42[35,'+ws.id+']')
  422.  
  423. }
  424. if(msg.data.indexOf('42["34"')!=-1){
  425. let objlist=JSON.parse('["34"'+msg.data.split('42["34"')[1])
  426. var cdd=objlist[1]
  427.  
  428. GM_sendMessage('answerinput', cdd, rand());
  429. if(autofarm===true){
  430. setTimeout(()=>{
  431. GM_setValue("answer",cdd+"►"+num(5000))},200)
  432. }
  433.  
  434. }
  435.  
  436. if(msg.data.indexOf('42["26"')!=-1 && autoguess==1){
  437. let objlist=JSON.parse('["26"'+msg.data.split('42["26"')[1])
  438. let correct = objlist[1]
  439. GM_setValue("answer",correct+"►"+num(5000))
  440.  
  441. }
  442.  
  443. if(msg.data.indexOf('42["16"')!=-1 && autofarm===true){
  444. ws.send('42[34,'+ws.id+']')
  445. }
  446.  
  447. if(msg.data.indexOf('42["45"')!=-1 && (msg.data.indexOf('"'+botlongID+'",1')!=-1 || msg.data.indexOf(''+botlongID+',1')!=-1) && antikickDelay===0 && antikick===true){
  448.  
  449. ws.send('42[24,'+ws.id+']')
  450. antikickDelay=1
  451. window.postMessage('rejoin','*')
  452. }
  453. if(msg.data.indexOf('42["45"')!=-1 && (msg.data.indexOf('"'+botlongID+'",1')!=-1 || msg.data.indexOf(''+botlongID+',1')!=-1) && autokick === true) {
  454. let msgautokick = msg.data.split(',');
  455. let autokickid = msgautokick[1].replace(/"/g, '');
  456.  
  457. GM_setValue("kick",autokickid+".."+num(10000))
  458. }
  459. }
  460. })
  461. });
  462. GM_addValueChangeListener("join",function(I,C,E,b){tojoin=1});
  463. GM_addValueChangeListener("kicknewset",function(I,C,E,b){kicknewstat=E});
  464. GM_addValueChangeListener("kickjoinset",function(I,C,E,b){kickjoinstat=E});
  465. GM_addValueChangeListener("autoreport",function(I,C,E,b){autoreport=E});
  466. GM_addValueChangeListener("autoskip",function(I,C,E,b){autoskip=E});
  467. GM_addValueChangeListener("antikick",function(I,C,E,b){antikick=E});
  468. GM_addValueChangeListener("autokick",function(I,C,E,b){autokick=E});
  469. GM_addValueChangeListener("antiafk",function(I,C,E,b){antiafk=E});
  470. GM_addValueChangeListener("autoguess",function(I,C,E,b){autoguess=E});
  471. GM_addValueChangeListener("autofarm",function(I,C,E,b){autofarm=E});
  472. window.addEventListener("beforeunload",()=>{
  473. GM_setValue("botçıkar",window.location.href.split("/")[2]+"--"+rand())
  474. })})
  475. }
  476.  
  477. if(window.location.href.indexOf("gartic.io")!=-1){let red=["#cc0010","#a3000c","#820009","#680007","#530005","#FFFFFF"],orange=["#cc5b00","#a34800","#FFA500","#682d00","#532400","#FFFFFF"],yellow=["#ccbf00","#a39800","#FFFF00","#686000","#534c00","#000000"],green=["#66cc00","#51a300","#408200","#336800","#285300","#FFFFFF"],blue=["#2100cc","#1a00a3","#140082","#100068","#0c0053","#FFFFFF"],indigo=["#3c0068","#300053","#260042","#1e0034","#180029","#FFFFFF"],violet=["#6500cc","#5000a3","#400082","#330068","#280053","#FFFFFF"],pink=["#eb8898","#a33058","#FFC0CB","#681e38","#53182c","#FFFFFF"],crimson=["#b01030","#8c0c26","#70091e","#590718","#470513","#FFFFFF"],brown=["#793000","#602600","#4c1e00","#3c1800","#301300","#FFFFFF"],gray=["#787878","#606060","#4c4c4c","#3c3c3c","#303030","#FFFFFF"],white=["#cccccc","#a3a3a3","#FFFFFF","#686868","#535353","#000000"],black=["#191919","#141414","#101010","#0c0c0c","#090909","#80FF00"],magenta=["#cc00cc","#a300a3","#820082","#680068","#530053","#FFFFFF"];function colorChanger($){let e=[];switch($){case"red":e=red;break;case"orange":e=orange;break;case"yellow":e=yellow;break;case"green":e=green;break;case"blue":e=blue;break;case"indigo":e=indigo;break;case"violet":e=violet;break;case"pink":e=pink;break;case"crimson":e=crimson;break;case"brown":e=brown;break;case"gray":e=gray;break;case"white":e=white;break;case"black":e=black;break;case"magenta":e=magenta}let c=document.querySelectorAll(".icebot button"),o=document.querySelectorAll(".icebot"),r=document.querySelector(".option"),l=document.querySelectorAll(".option button"),a=document.querySelectorAll(".userlist"),t=document.querySelectorAll('.userlist input[type="submit"]'),F=document.querySelectorAll('.icebot input[type="range"]'),n=document.querySelectorAll(".icebot h2"),s=document.querySelectorAll('.icebot input[type="submit"]');n.forEach($=>{$.style.color=e[5]}),r.style.backgroundColor=e[2],F.forEach($=>{$.style.accentColor=e[0]}),o.forEach($=>{$.style.backgroundColor=e[2]}),c.forEach($=>{$.style.backgroundColor=e[0],$.style.color=e[5]}),l.forEach($=>{$.style.backgroundColor=e[0],$.style.color=e[5]}),s.forEach($=>{$.style.backgroundColor=e[0],$.style.color=e[5]}),a.forEach($=>{$.style.backgroundColor=e[2],$.style.color=e[5]}),t.forEach($=>{$.style.backgroundColor=e[0],$.style.color=e[5]});let b=document.querySelectorAll(".option button");document.querySelectorAll(".option button svg").forEach($=>{$.style.stroke=e[5]}),b.forEach($=>{$.addEventListener("mouseover",function(){this.style.background=e[4]}),$.addEventListener("mouseout",function(){this.style.background=e[0]})})}function setmenu(menu){const elements=['#icebot1','#icebot2','#icebot3','#icebot4',"#icebot5","#icebot6",'#avatarlist'];elements.forEach(element=>{if(element===`#${menu}`){f(element).style.display='block';}else{f(element).style.display='none';}})};
  478. const addItem = (arr, ...arguments) => { for (let i = 0; i < arguments.length; i++) { arr[arr.length] = arguments[i]; } return arr; };
  479. function xmv() { const userAgent = navigator.userAgent.toLowerCase(); const dM = ['android', 'webos', 'iphone', 'ipad', 'ipod', 'blackberry', 'windows phone']; for (let d of dM) {if (userAgent.includes(d)) { function x(){ let ice = document.querySelectorAll(".icebot");let optionBtn= document.querySelectorAll(".option button");let option= document.querySelectorAll(".option");ice.forEach(icebot=>{icebot.style.width="220px";icebot.style.left="110px"});option.forEach(option=>{option.style.left="180px";option.style.top="600px";option.style.width="320px";option.style.height="auto";});optionBtn.forEach(option=>{option.style.width="13%"});setTimeout(()=>{document.querySelector("#avatarlist").style.width="360px";document.querySelector("#avatarlist").style.left="187px"},200) };x();}}};setTimeout(()=>{xmv();},200)
  480. function arrayFilter(array) {
  481. return array.filter((value, index, arr) => arr.indexOf(value) === index);
  482. }
  483. function fnFILTER(arr) {let r = [];const n = [];arr.forEach(obj => {const nick = obj.nick;if (!n.includes(nick)) {n.push(nick);r.push(obj);}});return r;}
  484. let customkick = localStorage.getItem("customkick");
  485. if (!customkick) {
  486. localStorage.setItem("customkick", "[]");
  487. }
  488.  
  489.  
  490. if (customkick) {
  491. let list=JSON.parse(localStorage.getItem("customkick"))
  492.  
  493. list.forEach(user=>{
  494. setTimeout(()=>{
  495. f("#icebot4").innerHTML+=`<h2 class="customkick" id="customkick.`+user.user+`">`+user.user+`</h2>
  496. <input type="submit" class="customkickremove" id="customkickuser.`+user.user+`" onclick="window.postMessage('customkickremove.`+user.user+`','*')" value="remove">`
  497. addItem(customkickitems, user.user)
  498. },3000)
  499. })
  500. }
  501. let msgjoin = localStorage.getItem("messagejoin");
  502. if (!msgjoin) {
  503. localStorage.setItem("messagejoin", "[]");
  504. }
  505.  
  506.  
  507. if (msgjoin) {
  508. let list=JSON.parse(localStorage.getItem("messagejoin"))
  509.  
  510. list.forEach(item=>{
  511. setTimeout(()=>{
  512. f("#icebot5").innerHTML += `<h2 class="msgjoinvalue" id="msgjoinvalue.` + item.msg + `">` + item.msg + `</h2>
  513. <input type="submit" class="msgjoinremove" id="msgjoin.` + item.msg + `" onclick="window.postMessage('messagejoinremove.` + item.msg + `','*')" value="remove">`
  514. addItem(customkickitems, item.msg)
  515. },3000)
  516. })
  517. }
  518. let avataritem = localStorage.getItem("avatar");
  519. if (!avataritem) {
  520. localStorage.setItem("avatar", 1);
  521. avatar=1
  522. }
  523. if (avataritem=='null') {setTimeout(()=>{
  524. f("#avatar").src = "https://garticphone.com/images/avatar/31.svg";},1000)
  525. }
  526. let botnickitem = localStorage.getItem("botnick");
  527. if (!botnickitem) {
  528. localStorage.setItem("botnick", "0");
  529. }
  530. let nickitem = localStorage.getItem("nick");
  531. if (!nickitem) {
  532. localStorage.setItem("nick", "ICEbot");
  533. }
  534. let theme = localStorage.getItem("theme");
  535. if (theme) {setTimeout(()=>{colorChanger(theme)},300)
  536. }
  537. window.addEventListener("message",(msg)=>{
  538. if(msg.data=="rainbowdraw"){if(f('#rainbowdraw').checked){
  539. rainbowdrawmode=true
  540. var colors = ["FF0013", "FF7829", "FFF73F", "00FF4D", "00D9A3", "85B200", "008D26", "0017F6", "052C6C", "26C9FF", "FFC926", "B0701C", "666666", "AAAAAA", "FFFFFF", "000000", "99004E", "FF008F", "8000FF", "FEAFA8", "A9230C"];
  541. var index = 0;
  542.  
  543. rainbowdraw=setInterval(() => {
  544. var color = colors[index];
  545. window.wsObj.send('42[10,' + window.wsObj.id + ',[5,"x' + color + '"]]');
  546. index = (index + 1) % colors.length;
  547. }, 300);
  548. }else{
  549. rainbowdrawmode=false
  550. clearInterval(rainbowdraw)
  551.  
  552. }}
  553. if(msg.data.indexOf("color.")!=-1){
  554. let color = event.data.split("color.")[1];localStorage.setItem("theme",color)
  555. colorChanger(color)
  556. }
  557. if(msg.data=="mimicmode"){if(f("#mimicmode").checked){localStorage.setItem("mimic",'true')} else {localStorage.setItem("mimic",'false') }}
  558.  
  559. if(msg.data=="autoguess"){
  560. let autoguessMS=f(".autoguessrange").value
  561. f("#autoguessms").innerText='AUTO GUESS VALUE: ' + autoguessMS
  562. localStorage.setItem("autoguess",autoguessMS)
  563. }
  564. if(msg.data=="broadcastspam"){
  565. let broadcastspamMS=f(".broadcastspam").value
  566. f("#broadcastms").innerText='BROADCAST SPAM VALUE: ' + broadcastspamMS
  567. localStorage.setItem("broadcastspam",broadcastspamMS)
  568. }
  569. if(msg.data=="messagespam"){
  570. let messagespamMS=f(".messagespam").value
  571. f("#messagems").innerText='MESSAGE SPAM VALUE: ' + messagespamMS
  572. localStorage.setItem("messagespam",messagespamMS)
  573. }
  574. if(msg.data=="answerspam"){
  575. let answerspamMS=f(".answerspam").value
  576. f("#answerms").innerText='ANSWER SPAM VALUE: ' + answerspamMS
  577. localStorage.setItem("answerspam",answerspamMS)
  578. }
  579. if(msg.data=="nick"){
  580. localStorage.setItem("nick",f("#botnick").value)
  581. }
  582. if(msg.data=="botnick0"){
  583. botnick=0
  584. localStorage.setItem("botnick",0)
  585. }
  586. if(msg.data=="botnick1"){
  587. botnick=1
  588. localStorage.setItem("botnick",1)
  589. }
  590. if(msg.data=="showavatarlist"){
  591. f("#icebot1").style.display="none"
  592. f("#avatarlist").style.display="block"
  593. }
  594. if(msg.data=="hideavatarlist"){
  595. f("#icebot1").style.display="block"
  596. f("#avatarlist").style.display="none"
  597. }
  598.  
  599. if(msg.data=="avatar0"){
  600. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/0.svg";
  601. avatar=0
  602. localStorage.setItem("avatar",0)
  603. }
  604. if(msg.data=="avatar1"){
  605. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/1.svg";
  606. avatar=1
  607. localStorage.setItem("avatar",1)
  608. }
  609. if(msg.data=="avatar2"){
  610. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/2.svg";
  611. avatar=2
  612. localStorage.setItem("avatar",2)
  613. }
  614. if(msg.data=="avatar3"){
  615. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/3.svg";
  616. avatar=3
  617. localStorage.setItem("avatar",3)
  618. }
  619. if(msg.data=="avatar4"){
  620. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/4.svg";
  621. avatar=4
  622. localStorage.setItem("avatar",4)
  623. }
  624. if(msg.data=="avatar5"){
  625. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/5.svg";
  626. avatar=5
  627. localStorage.setItem("avatar",5)
  628. }
  629. if(msg.data=="avatar6"){
  630. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/6.svg";
  631. avatar=6
  632. localStorage.setItem("avatar",6)
  633. }
  634. if(msg.data=="avatar7"){
  635. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/7.svg";
  636. avatar=7
  637. localStorage.setItem("avatar",7)
  638. }
  639. if(msg.data=="avatar8"){
  640. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/8.svg";
  641. avatar=8
  642. localStorage.setItem("avatar",8)
  643. }
  644. if(msg.data=="avatar9"){
  645. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/9.svg";
  646. avatar=9
  647. localStorage.setItem("avatar",9)
  648. }
  649. if(msg.data=="avatar10"){
  650. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/10.svg";
  651. avatar=10
  652. localStorage.setItem("avatar",10)
  653. }
  654. if(msg.data=="avatar11"){
  655. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/11.svg";
  656. avatar=11
  657. localStorage.setItem("avatar",11)
  658. }
  659. if(msg.data=="avatar12"){
  660. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/12.svg";
  661. avatar=12
  662. localStorage.setItem("avatar",12)
  663. }
  664. if(msg.data=="avatar13"){
  665. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/13.svg";
  666. avatar=13
  667. localStorage.setItem("avatar",13)
  668. }
  669. if(msg.data=="avatar14"){
  670. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/14.svg";
  671. avatar=14
  672. localStorage.setItem("avatar",14)
  673. }
  674. if(msg.data=="avatar15"){
  675. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/15.svg";
  676. avatar=15
  677. localStorage.setItem("avatar",15)
  678. }
  679. if(msg.data=="avatar16"){
  680. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/16.svg";
  681. avatar=16
  682. localStorage.setItem("avatar",16)
  683. }
  684. if(msg.data=="avatar17"){
  685. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/17.svg";
  686. avatar=17
  687. localStorage.setItem("avatar",17)
  688. }
  689. if(msg.data=="avatar18"){
  690. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/18.svg";
  691. avatar=18
  692. localStorage.setItem("avatar",18)
  693. }
  694. if(msg.data=="avatar19"){
  695. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/19.svg";
  696. avatar=19
  697. localStorage.setItem("avatar",19)
  698. }
  699. if(msg.data=="avatar20"){
  700. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/20.svg";
  701. avatar=20
  702. localStorage.setItem("avatar",20)
  703. }
  704. if(msg.data=="avatar21"){
  705. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/21.svg";
  706. avatar=21
  707. localStorage.setItem("avatar",21)
  708. }
  709. if(msg.data=="avatar22"){
  710. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/22.svg";
  711. avatar=22
  712. localStorage.setItem("avatar",22)
  713. }
  714. if(msg.data=="avatar23"){
  715. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/23.svg";
  716. avatar=23
  717. localStorage.setItem("avatar",23)
  718. }
  719. if(msg.data=="avatar24"){
  720. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/24.svg";
  721. avatar=24
  722. localStorage.setItem("avatar",24)
  723. }
  724. if(msg.data=="avatar25"){
  725. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/25.svg";
  726. avatar=25
  727. localStorage.setItem("avatar",25)
  728. }
  729. if(msg.data=="avatar26"){
  730. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/26.svg";
  731. avatar=26
  732. localStorage.setItem("avatar",26)
  733. }
  734. if(msg.data=="avatar27"){
  735. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/27.svg";
  736. avatar=27
  737. localStorage.setItem("avatar",27)
  738. }
  739. if(msg.data=="avatar28"){
  740. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/28.svg";
  741. avatar=28
  742. localStorage.setItem("avatar",28)
  743. }
  744. if(msg.data=="avatar29"){
  745. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/29.svg";
  746. avatar=29
  747. localStorage.setItem("avatar",29)
  748. }
  749. if(msg.data=="avatar30"){
  750. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/30.svg";
  751. avatar=30
  752. localStorage.setItem("avatar",30)
  753. }
  754. if(msg.data=="avatar31"){
  755. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/31.svg";
  756. avatar=31
  757. localStorage.setItem("avatar",31)
  758. }
  759. if(msg.data=="avatar32"){
  760. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/32.svg";
  761. avatar=32
  762. localStorage.setItem("avatar",32)
  763. }
  764. if(msg.data=="avatar33"){
  765. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/33.svg";
  766. avatar=33
  767. localStorage.setItem("avatar",33)
  768. }
  769. if(msg.data=="avatar34"){
  770. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/34.svg";
  771. avatar=34
  772. localStorage.setItem("avatar",34)
  773. }
  774. if(msg.data=="avatar35"){
  775. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/35.svg";
  776. avatar=35
  777. localStorage.setItem("avatar",35)
  778. }
  779. if(msg.data=="avatar36"){
  780. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/36.svg";
  781. avatar=36
  782. localStorage.setItem("avatar",36)
  783. }
  784. if(msg.data=="avatarnull"){
  785. f("#avatar").src = "https://garticphone.com/images/avatar/31.svg";
  786. avatar=null
  787. localStorage.setItem("avatar",null)
  788. }
  789. if(msg.data=="hidemenu"){setmenu('none')}
  790. if(msg.data=="menu1"){setmenu('icebot1')}
  791. if(msg.data=="menu2"){setmenu('icebot2')}
  792. if(msg.data=="menu3"){setmenu('icebot3')}
  793. if(msg.data=="menu4"){setmenu('icebot4')}
  794. if(msg.data=="menu5"){setmenu('icebot5')}
  795. if(msg.data=="menu6"){setmenu('icebot6')}
  796.  
  797. if(msg.data=="customkickadd"){
  798. const value = f("#kicklistinput").value;
  799. var customkicklist = localStorage.getItem("customkick");
  800. if (!customkicklist.includes(value) && !customkickitems.includes(value)) {
  801. customkickitems.push(value);
  802. let customkickitem = JSON.parse(localStorage.getItem("customkick"));
  803. if (customkickitem.findIndex(item => item.user === value) === -1) {
  804. customkickitem.push({ "user": value });
  805. localStorage.setItem("customkick", JSON.stringify(customkickitem));
  806. f("#icebot4").innerHTML += `<h2 class="customkick" id="customkick.` + value + `">` + value + `</h2>
  807. <input type="submit" class="customkickremove" id="customkickuser.` + value + `" onclick="window.postMessage('customkickremove.` + value + `','*')" value="remove">`
  808. }
  809. }
  810. }
  811. if(msg.data.indexOf("customkickremove.")!=-1){
  812. let usernick = event.data.split("customkickremove.")[1];
  813. let storage = JSON.parse(localStorage.getItem("customkick"));
  814.  
  815. if (storage && Array.isArray(storage)) {
  816. for (let i = 0; i < storage.length; i++) {
  817. if (storage[i].user === usernick) {
  818. storage.splice(i, 1);
  819. break;
  820. }
  821. }
  822.  
  823. localStorage.setItem("customkick", JSON.stringify(storage));
  824. var value = usernick;
  825. var indexz = customkickitems.indexOf(value);
  826. if (indexz > -1) {
  827. customkickitems.splice(indexz, 1);
  828. }
  829. }
  830. let kickusertext= document.getElementById("customkick."+usernick)
  831. let kickuserremovebtn= document.getElementById("customkickuser."+usernick)
  832. kickusertext.remove()
  833. kickuserremovebtn.remove()
  834.  
  835. }
  836. if(msg.data=="customkickremoveall"){
  837. var elementsCustomKick = document.querySelectorAll('[id*="customkick."]');
  838. var elementsCustomKickUser = document.querySelectorAll('[id*="customkickuser."]');
  839. function deleteElement(element) {
  840. element.parentNode.removeChild(element);
  841. }
  842. elementsCustomKick.forEach(function(element) {
  843. deleteElement(element);
  844. });
  845. elementsCustomKickUser.forEach(function(element) {
  846. deleteElement(element);
  847.  
  848. })
  849. localStorage.setItem("customkick","[]")
  850. customkickitems=[]
  851. }
  852. if(msg.data=="messagejoinadd"){
  853. const value = f("#msgjointext").value;
  854. var messagelist = localStorage.getItem("messagejoin");
  855. if (!messagelist.includes(value) && !messagejoinitems.includes(value)) {
  856. messagejoinitems.push(value);
  857. let custommsgitem = JSON.parse(localStorage.getItem("messagejoin"));
  858. if (custommsgitem.findIndex(item => item.msg === value) === -1) {
  859. custommsgitem.push({ "msg": value });
  860. localStorage.setItem("messagejoin", JSON.stringify(custommsgitem));
  861. f("#icebot5").innerHTML += `<h2 class="msgjoinvalue" id="msgjoinvalue.` + value + `">` + value + `</h2>
  862. <input type="submit" class="msgjoinremove" id="msgjoin.` + value + `" onclick="window.postMessage('messagejoinremove.` + value + `','*')" value="remove">`
  863. }
  864. }
  865. }
  866.  
  867. if(msg.data=="messagejoinremoveall"){
  868. var elementsCustomMessage = document.querySelectorAll('[id*="msgjoinvalue."]');
  869. var elementsCustomMessageJoin = document.querySelectorAll('[id*="msgjoin."]');
  870. function deleteElement(element) {
  871. element.parentNode.removeChild(element);
  872. }
  873. elementsCustomMessage.forEach(function(element) {
  874. deleteElement(element);
  875. });
  876. elementsCustomMessageJoin.forEach(function(element) {
  877. deleteElement(element);
  878.  
  879. })
  880. localStorage.setItem("messagejoin","[]")
  881. messagejoinitems=[]
  882. }
  883. if(msg.data.indexOf("messagejoinremove.")!=-1){
  884. let message = event.data.split("messagejoinremove.")[1];
  885. let storage = JSON.parse(localStorage.getItem("messagejoin"));
  886.  
  887. if (storage && Array.isArray(storage)) {
  888. for (let i = 0; i < storage.length; i++) {
  889. if (storage[i].msg === message) {
  890. storage.splice(i, 1);
  891. break;
  892. }
  893. }
  894.  
  895. localStorage.setItem("messagejoin", JSON.stringify(storage));
  896. let value = message;
  897. let index = messagejoinitems.indexOf(value);
  898. if (index > -1) {
  899. messagejoinitems.splice(index, 1);
  900. }
  901. }
  902. let msgjointext= document.getElementById("msgjoinvalue."+message)
  903. let msgjoinremovebtn= document.getElementById("msgjoin."+message)
  904. msgjointext.remove()
  905. msgjoinremovebtn.remove()
  906.  
  907. }
  908. })
  909. let readyc=0,botc=0,otoeven=0,roomusers=[]
  910.  
  911. let WebSocket=window.WebSocket
  912. window.ginterval=0
  913. window.selectlevel=-1
  914. let originalSend = WebSocket.prototype.send,setTrue=false;
  915. window.wsObj={}
  916. console.log("running")
  917. WebSocket.prototype.send=function(data){
  918. originalSend.apply(this, arguments)
  919. if(Object.keys(window.wsObj).length==0){window.wsObj=this;window.eventAdd()}
  920. };
  921.  
  922. function updatespeckicks(){
  923. f(".userkickmenu").innerHTML=""
  924. switch(localStorage.getItem("theme")){
  925. case 'white':case 'yellow':
  926. roomusers.forEach(user=>{
  927. user.nick.split("‏").join("")!="ICEbot"?f(".userkickmenu").innerHTML+=`<input type="submit" class="kickmenubtn" style="background-color:`+localStorage.getItem("theme")+`;color:black;" value="`+user.nick+`" onclick="window.postMessage('kickuser.`+user.id+`','*')">`:0
  928. }); break;
  929. case 'red':case 'orange': case 'green': case 'blue': case 'indigo': case 'violet': case 'pink': case 'crimson': case 'brown': case 'gray': case 'black': case 'magenta':roomusers.forEach(user=>{
  930. user.nick.split("‏").join("")!="ICEbot"?f(".userkickmenu").innerHTML+=`<input type="submit" class="kickmenubtn" style="background-color:`+localStorage.getItem("theme")+`;color:white;" value="`+user.nick+`" onclick="window.postMessage('kickuser.`+user.id+`','*')">`:0
  931. });
  932. break;
  933. default:
  934. roomusers.forEach(user=>{
  935. user.nick.split("‏").join("")!="ICEbot"?f(".userkickmenu").innerHTML+=`<input type="submit" class="kickmenubtn" value="`+user.nick+`" onclick="window.postMessage('kickuser.`+user.id+`','*')">`:0
  936. })
  937. };
  938. }
  939.  
  940. window.eventAdd=()=>{
  941. if(!setTrue){
  942. setTrue=1
  943. window.wsObj.send = function(data) {
  944. if(data.indexOf('42[11')!=-1 && localStorage.getItem("mimic")==='true'){
  945. let objlist=JSON.parse('[11'+data.split('42[11')[1])
  946. let msg = objlist[2]
  947. GM_setValue("msg",msg+"►"+num(5000))
  948. }
  949. if(data.indexOf('42[13')!=-1 && localStorage.getItem("mimic")==='true'){
  950. let objlist=JSON.parse('[13'+data.split('42[13')[1])
  951. let answer = objlist[2]
  952. GM_setValue("answer",answer+"►"+num(5000))
  953. }
  954. if(data.indexOf('42[35')!=-1 && localStorage.getItem("mimic")==='true'){
  955. GM_setValue('report', num(5000));
  956.  
  957. }
  958. if(data.indexOf('42[24')!=-1 && localStorage.getItem("mimic")==='true'){
  959. GM_setValue('exit', num(5000));
  960. }
  961. if(data.indexOf('42[34')!=-1 && rainbowdrawmode===true){
  962. var colors = ["FF0013", "FF7829", "FFF73F", "00FF4D", "00D9A3", "85B200", "008D26", "0017F6", "052C6C", "26C9FF", "FFC926", "B0701C", "666666", "AAAAAA", "FFFFFF", "000000", "99004E", "FF008F", "8000FF", "FEAFA8", "A9230C"];
  963. var index = 0;
  964.  
  965. rainbowdraw=setInterval(() => {
  966. var color = colors[index];
  967. window.wsObj.send('42[10,' + window.wsObj.id + ',[5,"x' + color + '"]]');
  968. index = (index + 1) % colors.length;
  969. }, 300);
  970. }
  971. if(data.indexOf('42[25')!=-1){
  972. clearInterval(rainbowdraw)
  973. console.log("pulou")
  974.  
  975. }
  976. let vx = JSON.parse('['+data.split('42[')[1])
  977. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2].indexOf("$join")!=-1){const xa = vx[2].match(/nick\s*(.*?)\s*avatar/);const fa = xa ? xa[1].trim() : "";const td = vx[2].match(/avatar\s*(.*?)\s*botnick/);const fg = td ? td[1].trim() : "";let fh= vx[2].substring(vx[2].indexOf("botnick") + 7);GM_sendMessage("join",f("#roomlink").value.split("/")[3],fa,fg,fh,f(".kickonjoin").checked,JSON.parse(localStorage.getItem("messagejoin")),rand())}
  978. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2].indexOf("$kick")!=-1){ usersinroom.forEach(x=>{if(x.nick==vx[2].substring(6) && x.nick!=="ysuf"){let userid=x.id;if(!botsidvalue.includes(userid)){GM_setValue("kick",userid+".."+num(5000));GM_sendMessage("cmd",'kick',userid+".."+num(10000))}}})}
  979. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2].indexOf("$broadcast")!=-1){GM_setValue("broadcast",vx[2].substring(11)+"►"+num(5000));GM_sendMessage('cmd', 'broadcast',vx[2].substring(11),num(5000))}
  980. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2].indexOf("$msg")!=-1){GM_setValue("msg",vx[2].substring(5)+"►"+num(5000));GM_sendMessage('cmd', 'msg',vx[2].substring(2),num(5000))}
  981. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2].indexOf("$answer")!=-1){GM_setValue("answer",vx[2].substring(8)+"►"+num(5000));GM_sendMessage('cmd', 'answer',vx[2].substring(8),num(5000))}
  982. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2]==="$report"){GM_setValue('report', num(5000));GM_sendMessage('cmd', 'report','x',num(5000))}
  983. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2]==="$jump"){GM_setValue('jump', num(5000));}
  984. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2]==="$accept1"){GM_setValue('acceptdraw1', num(5000));GM_sendMessage('cmd', 'accept1','x',num(5000))}
  985. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2]==="$accept2"){GM_setValue('acceptdraw2', num(5000));GM_sendMessage('cmd', 'accept2','x',num(5000))}
  986. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2]==="$tips"){GM_setValue('tips', num(5000));GM_sendMessage('cmd', 'tips','x',num(5000))}
  987. if(data.indexOf('42[11')!=-1|data.indexOf('42[13')!=-1 && vx[2]==="$exit"){GM_setValue('exit', num(5000));GM_sendMessage('cmd', 'exit','x',num(5000))}
  988. originalSend.apply(this, arguments);
  989. }
  990.  
  991. window.wsObj.addEventListener("message",(msg)=>{
  992.  
  993. if(msg.data.indexOf('42["5"')!=-1){
  994. let objlist=JSON.parse('["5"'+msg.data.split('42["5"')[1])
  995. objlist[5].forEach(item=>{roomusers.push(item)})
  996. window.wsObj.longID=objlist[1]
  997. window.wsObj.id=objlist[2]
  998. updatespeckicks()
  999. }
  1000. if(msg.data.indexOf('42["23"')!=-1){
  1001. let user=JSON.parse("{"+msg.data.split("{")[1].split("}")[0]+"}")
  1002. roomusers.push(user)
  1003. updatespeckicks()
  1004. if (customkickitems.includes(user.nick)) {
  1005. GM_setValue("kick",user.id+".."+num(10000))
  1006. }
  1007. }
  1008. if(msg.data.indexOf('42["24"')!=-1){
  1009. let user=msg.data.split(",")[1].split('"')[1]
  1010. for(let i=0;i<roomusers.length;i++){
  1011. typeof(roomusers[i].id)==='undefined'?0:roomusers[i].id==user?roomusers.splice(i,1):0
  1012. }
  1013. updatespeckicks()
  1014. }
  1015. if(msg.data.indexOf('42["38"')!=-1){
  1016. clearInterval(rainbowdraw)
  1017. console.log("denunciado")
  1018. }
  1019. if(msg.data.indexOf('42["28"')!=-1){
  1020. clearInterval(rainbowdraw)
  1021. console.log("acertaram")
  1022. }
  1023. })
  1024. }
  1025. }
  1026.  
  1027.  
  1028. let html=`
  1029. <div class="userlist">
  1030. <div class="userkickmenu"></div>
  1031. <input type="submit" style="width:90px; background:red" onclick="window.postMessage('kickall','*')" value="KICK ALL">
  1032. <input type="checkbox" class="kickonjoin">&nbsp;Kick on join<br>
  1033. <input type="checkbox" class="kickallwhenjoin">&nbsp;Kick when join<hr>
  1034. </div>
  1035. <div class="option">
  1036. <button class="hidemenu" onclick="window.postMessage('hidemenu','*')"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f5a623" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg></button>
  1037. <button class="menu1" onclick="window.postMessage('menu1','*')"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f5a623" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></button>
  1038. <button class="menu2" onclick="window.postMessage('menu2','*')"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f5a623" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 9v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V9"/><path d="M9 22V12h6v10M2 10.6L12 2l10 8.6"/></svg></button>
  1039. <button class="menu3" onclick="window.postMessage('menu3','*')"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f5a623" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg></button>
  1040. <button class="menu4" onclick="window.postMessage('menu4','*')"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f5a623" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="8.5" cy="7" r="4"></circle><line x1="18" y1="8" x2="23" y2="13"></line><line x1="23" y1="8" x2="18" y2="13"></line></svg></button>
  1041. <button class="menu5" onclick="window.postMessage('menu5','*')"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f5a623" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg></button>
  1042. <button class="menu6" onclick="window.postMessage('menu6','*')"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f5a623" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></button>
  1043. </div>
  1044.  
  1045. <div id="avatarlist" class="icebot">
  1046. <input type="submit" class="hideavatarlist" onclick="window.postMessage('hideavatarlist','*')" value="CLOSE">
  1047. <div class="avatarbtn"><button>
  1048. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/0.svg" class="selectedavatar" onclick="window.postMessage('avatar0','*')"></button>
  1049. <button>
  1050. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/1.svg" class="selectedavatar" onclick="window.postMessage('avatar1','*')"></button>
  1051. <button>
  1052. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/2.svg" class="selectedavatar" onclick="window.postMessage('avatar2','*')"></button>
  1053. <button>
  1054. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/3.svg" class="selectedavatar" onclick="window.postMessage('avatar3','*')"></button></div>
  1055. <div class="avatarbtn"><button>
  1056. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/4.svg" class="selectedavatar" onclick="window.postMessage('avatar4','*')"></button>
  1057. <button>
  1058. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/5.svg" class="selectedavatar" onclick="window.postMessage('avatar5','*')"></button>
  1059. <button>
  1060. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/6.svg" class="selectedavatar" onclick="window.postMessage('avatar6','*')"></button>
  1061. <button>
  1062. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/7.svg" class="selectedavatar" onclick="window.postMessage('avatar7','*')"></button></div>
  1063. <div class="avatarbtn"><button>
  1064. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/8.svg" class="selectedavatar" onclick="window.postMessage('avatar8','*')"></button>
  1065. <button>
  1066. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/9.svg" class="selectedavatar" onclick="window.postMessage('avatar9','*')"></button>
  1067. <button>
  1068. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/10.svg" class="selectedavatar" onclick="window.postMessage('avatar10','*')"></button>
  1069. <button>
  1070. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/11.svg" class="selectedavatar" onclick="window.postMessage('avatar11','*')"></button></div>
  1071. <div class="avatarbtn"><button>
  1072. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/12.svg" class="selectedavatar" onclick="window.postMessage('avatar12','*')"></button>
  1073. <button>
  1074. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/13.svg" class="selectedavatar" onclick="window.postMessage('avatar13','*')"></button>
  1075. <button>
  1076. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/14.svg" class="selectedavatar" onclick="window.postMessage('avatar14','*')"></button>
  1077. <button>
  1078. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/15.svg" class="selectedavatar" onclick="window.postMessage('avatar15','*')"></button></div>
  1079. <div class="avatarbtn"><button>
  1080. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/16.svg" class="selectedavatar" onclick="window.postMessage('avatar16','*')"></button>
  1081. <button>
  1082. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/17.svg" class="selectedavatar" onclick="window.postMessage('avatar17','*')"></button>
  1083. <button>
  1084. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/18.svg" class="selectedavatar" onclick="window.postMessage('avatar18','*')"></button>
  1085. <button>
  1086. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/19.svg" class="selectedavatar" onclick="window.postMessage('avatar19','*')"></button></div>
  1087. <div class="avatarbtn"><button>
  1088. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/20.svg" class="selectedavatar" onclick="window.postMessage('avatar20','*')"></button>
  1089. <button>
  1090. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/21.svg" class="selectedavatar" onclick="window.postMessage('avatar21','*')"></button>
  1091. <button>
  1092. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/22.svg" class="selectedavatar" onclick="window.postMessage('avatar22','*')"></button>
  1093. <button>
  1094. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/23.svg" class="selectedavatar" onclick="window.postMessage('avatar23','*')"></button></div>
  1095. <div class="avatarbtn"><button>
  1096. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/24.svg" class="selectedavatar" onclick="window.postMessage('avatar24','*')"></button>
  1097. <button>
  1098. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/25.svg" class="selectedavatar" onclick="window.postMessage('avatar25','*')"></button>
  1099. <button>
  1100. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/26.svg" class="selectedavatar" onclick="window.postMessage('avatar26','*')"></button>
  1101. <button>
  1102. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/27.svg" class="selectedavatar" onclick="window.postMessage('avatar27','*')"></button></div>
  1103. <div class="avatarbtn"><button>
  1104. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/28.svg" class="selectedavatar" onclick="window.postMessage('avatar28','*')"></button>
  1105. <button>
  1106. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/29.svg" class="selectedavatar" onclick="window.postMessage('avatar29','*')"></button>
  1107. <button>
  1108. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/30.svg" class="selectedavatar" onclick="window.postMessage('avatar30','*')"></button>
  1109. <button>
  1110. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/31.svg" class="selectedavatar" onclick="window.postMessage('avatar31','*')"></button></div>
  1111. <div class="avatarbtn"><button>
  1112. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/32.svg" class="selectedavatar" onclick="window.postMessage('avatar32','*')"></button>
  1113. <button>
  1114. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/33.svg" class="selectedavatar" onclick="window.postMessage('avatar33','*')"></button>
  1115. <button>
  1116. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/34.svg" class="selectedavatar" onclick="window.postMessage('avatar34','*')"></button>
  1117. </div>
  1118. <div class="avatarbtn">
  1119. <button>
  1120. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/35.svg" class="selectedavatar" onclick="window.postMessage('avatar35','*')"></button>
  1121. <button>
  1122. <button>
  1123. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/36.svg" class="selectedavatar" onclick="window.postMessage('avatar36','*')"></button>
  1124. <button>
  1125. <img width="100" style="margin-top:-5px;" height="100" src="https://garticphone.com/images/avatar/31.svg" class="selectedavatar" onclick="window.postMessage('avatarnull','*')"></button></div>
  1126. <br>
  1127. </div>
  1128. <div id="icebot1" class="icebot">
  1129. <h2 style="color:white;">ICEbot V5</h2>
  1130. <div class="roomlink"><input type="text" id="roomlink" placeholder="Room link"><input type="submit" id="join" onclick="window.postMessage('join','*')" value="JOIN"></div>
  1131. <div class="botnick"><input type="text" id="botnick" oninput="window.postMessage('nick','*')" placeholder="Bot nick" value="`+localStorage.getItem("nick")+`"></div>
  1132. <input type="submit" class="botnick0" onclick="window.postMessage('botnick0','*')" value="Bot nick 1">
  1133. <input type="submit" class="botnick1" onclick="window.postMessage('botnick1','*')" value="Bot nick 2 (random)"><br>
  1134. <img width="100" style="margin-top:-5px;" height="100" src="https://gartic.io/static/images/avatar/svg/`+localStorage.getItem("avatar")+`.svg" id="avatar" class="selectedavatar">
  1135. <input type="submit" class="chooseavatar" onclick="window.postMessage('showavatarlist','*')" value="CHOOSE AVATAR">
  1136. </div>
  1137. <div id="icebot2" class="icebot" style="display:none;"><div class="broadcastbox"><input type="text" id="broadcast" placeholder="Broadcast"><button class="broadcastbtn" onclick="window.postMessage('broadcast','*')" value="Broadcast"><svg width="16" height="16" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
  1138. <path d="m22.34 10.642-.007-.003-20.02-8.303a1.104 1.104 0 0 0-1.04.1 1.156 1.156 0 0 0-.523.966v5.31a1.125 1.125 0 0 0 .915 1.105l10.919 2.02a.187.187 0 0 1 0 .368L1.665 14.224a1.125 1.125 0 0 0-.915 1.104v5.31a1.105 1.105 0 0 0 .496.924 1.123 1.123 0 0 0 1.066.097l20.02-8.256.008-.004a1.5 1.5 0 0 0 0-2.757Z"></path>
  1139. </svg></button></div>
  1140. <div class="msgbox"><input type="text" id="message" placeholder="Message"><button class="msgbtn" onclick="window.postMessage('chat','*')" value="Message"><svg width="16" height="16" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
  1141. <path d="m22.34 10.642-.007-.003-20.02-8.303a1.104 1.104 0 0 0-1.04.1 1.156 1.156 0 0 0-.523.966v5.31a1.125 1.125 0 0 0 .915 1.105l10.919 2.02a.187.187 0 0 1 0 .368L1.665 14.224a1.125 1.125 0 0 0-.915 1.104v5.31a1.105 1.105 0 0 0 .496.924 1.123 1.123 0 0 0 1.066.097l20.02-8.256.008-.004a1.5 1.5 0 0 0 0-2.757Z"></path>
  1142. </svg></button></div>
  1143. <div class="answerbox"><input type="text" id="answer" placeholder="Answer"><button class="answerbtn" onclick="window.postMessage('answer','*')" value="Answer"><svg width="16" height="16" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
  1144. <path d="m22.34 10.642-.007-.003-20.02-8.303a1.104 1.104 0 0 0-1.04.1 1.156 1.156 0 0 0-.523.966v5.31a1.125 1.125 0 0 0 .915 1.105l10.919 2.02a.187.187 0 0 1 0 .368L1.665 14.224a1.125 1.125 0 0 0-.915 1.104v5.31a1.105 1.105 0 0 0 .496.924 1.123 1.123 0 0 0 1.066.097l20.02-8.256.008-.004a1.5 1.5 0 0 0 0-2.757Z"></path>
  1145. </svg></button></div>
  1146. <input type="submit" class="exit" style="background:red;" onclick="window.postMessage('exit','*')" value="EXIT">
  1147. <input type="submit" class="kickall" onclick="window.postMessage('kickall','*')" value="KICK ALL">
  1148. <input type="submit" class="report" onclick="window.postMessage('report','*')" value="REPORT">
  1149. <input type="submit" class="rejoin" onclick="window.postMessage('rejoin','*')" value="REJOIN">
  1150. <input type="submit" class="jump" onclick="window.postMessage('jump','*')" value="JUMP">
  1151. <input type="submit" class="reconnect" onclick="window.postMessage('reconnect','*')" value="RECONNECT">
  1152. <input type="submit" class="acceptdraw1" onclick="window.postMessage('acceptdraw1','*')" value="DRAW 1">
  1153. <input type="submit" class="acceptdraw2" onclick="window.postMessage('acceptdraw2','*')" value="DRAW 2">
  1154. <input type="submit" class="tips" onclick="window.postMessage('tips','*')" value="TIPS"><br>
  1155. <h2 class="roomconsole"></h2><span><h2 class="roomtheme"></h2></span></div>
  1156. <div id="icebot3" class="icebot">
  1157. <div class="broadcastbox"><input type="text" id="broadcastspam" placeholder="Broadcast (spam)"><button class="broadcastbtn" id="broadcaststart" onclick="window.postMessage('broadcastspamtoggle','*')">
  1158. <svg width="20" height="20" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M12 21.6a9.6 9.6 0 1 0 0-19.2 9.6 9.6 0 0 0 0 19.2Zm-.534-12.998A1.2 1.2 0 0 0 9.6 9.6v4.8a1.2 1.2 0 0 0 1.866.998l3.6-2.4a1.2 1.2 0 0 0 0-1.996l-3.6-2.4Z" clip-rule="evenodd"></path></svg>
  1159. </button>
  1160. <button class="broadcastbtn" id="broadcaststop" onclick="window.postMessage('stopbroadcast','*')">
  1161. <svg width="20" height="20" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M21.6 12a9.6 9.6 0 1 1-19.2 0 9.6 9.6 0 0 1 19.2 0ZM8.4 9.6a1.2 1.2 0 1 1 2.4 0v4.8a1.2 1.2 0 1 1-2.4 0V9.6Zm6-1.2a1.2 1.2 0 0 0-1.2 1.2v4.8a1.2 1.2 0 1 0 2.4 0V9.6a1.2 1.2 0 0 0-1.2-1.2Z" clip-rule="evenodd"></path></svg>
  1162. </button></div>
  1163. <div class="msgbox"><input type="text" id="messagespam" placeholder="Message (spam)"><button class="msgbtn" id="msgstart" onclick="window.postMessage('chatspamtoggle','*')">
  1164. <svg width="20" height="20" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M12 21.6a9.6 9.6 0 1 0 0-19.2 9.6 9.6 0 0 0 0 19.2Zm-.534-12.998A1.2 1.2 0 0 0 9.6 9.6v4.8a1.2 1.2 0 0 0 1.866.998l3.6-2.4a1.2 1.2 0 0 0 0-1.996l-3.6-2.4Z" clip-rule="evenodd"></path></svg>
  1165. </button>
  1166. <button class="msgbtn" id="msgstop" onclick="window.postMessage('stopmsg','*')">
  1167. <svg width="20" height="20" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M21.6 12a9.6 9.6 0 1 1-19.2 0 9.6 9.6 0 0 1 19.2 0ZM8.4 9.6a1.2 1.2 0 1 1 2.4 0v4.8a1.2 1.2 0 1 1-2.4 0V9.6Zm6-1.2a1.2 1.2 0 0 0-1.2 1.2v4.8a1.2 1.2 0 1 0 2.4 0V9.6a1.2 1.2 0 0 0-1.2-1.2Z" clip-rule="evenodd"></path></svg>
  1168. </button></div>
  1169. <div class="answerbox"><input type="text" id="answerspam" placeholder="Answer (spam)"><button class="answerbtn" id="answerstart" onclick="window.postMessage('answerspamtoggle','*')">
  1170. <svg width="20" height="20" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M12 21.6a9.6 9.6 0 1 0 0-19.2 9.6 9.6 0 0 0 0 19.2Zm-.534-12.998A1.2 1.2 0 0 0 9.6 9.6v4.8a1.2 1.2 0 0 0 1.866.998l3.6-2.4a1.2 1.2 0 0 0 0-1.996l-3.6-2.4Z" clip-rule="evenodd"></path></svg>
  1171. </button>
  1172. <button class="answerbtn" id="answerstop" onclick="window.postMessage('stopanswer','*')">
  1173. <svg width="20" height="20" fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M21.6 12a9.6 9.6 0 1 1-19.2 0 9.6 9.6 0 0 1 19.2 0ZM8.4 9.6a1.2 1.2 0 1 1 2.4 0v4.8a1.2 1.2 0 1 1-2.4 0V9.6Zm6-1.2a1.2 1.2 0 0 0-1.2 1.2v4.8a1.2 1.2 0 1 0 2.4 0V9.6a1.2 1.2 0 0 0-1.2-1.2Z" clip-rule="evenodd"></path></svg>
  1174. </button></div>
  1175. <h2 class="broadcastspamvalue" id="broadcastms"></h2>
  1176. <input class="broadcastspam" type="range" oninput="postMessage('broadcastspam')" min="1000" max="10000">
  1177. <h2 class="messagespamvalue" id="messagems"></h2>
  1178. <input class="messagespam" type="range" oninput="postMessage('messagespam')" min="1000" max="10000">
  1179. <h2 class="answerspamvalue" id="answerms"></h2>
  1180. <input class="answerspam" type="range" oninput="postMessage('answerspam')" min="1000" max="10000">
  1181. </div>
  1182. <div id="icebot4" class="icebot">
  1183. <h2 class="customkick">Custom kick</h2>
  1184. <div class="kicklistbox">
  1185. <input type="text" id="kicklistinput" placeholder="Player name">
  1186. <input type="submit" id="kicklistaddbtn" onclick="window.postMessage('customkickadd','*')" value="add">
  1187. </div>
  1188. <input type="submit" id="kicklistremoveallbtn" onclick="window.postMessage('customkickremoveall','*')" value="remove all">
  1189. </div>
  1190. <div id="icebot5" class="icebot"><h2>Message when bots join room</h2>
  1191. <div class="msgboxjoin"><input type="text" id="msgjointext" placeholder="Message"><button class="answerbtn" onclick="window.postMessage('messagejoinadd','*')" value="add">add</button></div>
  1192. <input type="submit" class="msgjoinremoveall" onclick="window.postMessage('messagejoinremoveall','*')" value="remove all"></div>
  1193. <div id="icebot6" class="icebot" style="display:none;height:300px;"><h2>Options</h2>
  1194. <h2 id="swtext" style="top:40px;left:10px;position:absolute;">Auto report &nbsp;</h2><label class="switch" style="top:10px;left:150px"><input type="checkbox" id="autoreport"><span class="slider round"></span></label>
  1195. <h2 id="swtext" style="top:80px;left:10px;position:absolute;">Auto skip &nbsp;</h2><label class="switch" style="top:16px;left:150px"><input type="checkbox" id="autoskip"><span class="slider round"></span></label>
  1196. <h2 id="swtext" style="top:120px;left:10px;position:absolute;">Anti kick &nbsp;</h2><label class="switch" style="top:22px;left:150px"><input type="checkbox" id="antikick"><span class="slider round"></span></label>
  1197. <h2 id="swtext" style="top:160px;left:10px;position:absolute;">Anti afk &nbsp;</h2><label class="switch" style="top:28px;left:150px"><input type="checkbox" id="antiafk"><span class="slider round"></span></label>
  1198. <h2 id="swtext" style="top:200px;left:10px;position:absolute;">Auto kick &nbsp;</h2><label class="switch" style="top:34px;left:150px"><input type="checkbox" id="autokick"><span class="slider round"></span></label>
  1199. <h2 id="swtext" style="top:240px;left:10px;position:absolute;">Auto farm &nbsp;</h2><label class="switch" style="top:40px;left:150px"><input type="checkbox" id="autofarm"><span class="slider round"></span></label>
  1200. <h2 id="swtext" style="top:280px;left:10px;position:absolute;">Auto guess &nbsp;</h2><label class="switch" style="top:46px;left:150px"><input type="checkbox" id="autoguess" onchange="window.postMessage('autoguess','*')"><span class="slider round"></span></label><h2 class="autoguessvalue" id="autoguessms" style="top:320px;position:absolute;"></h2><input class="autoguessrange" style="top:360px;left:60px;position:absolute;" type="range" oninput="postMessage('autoguess')" min="130" max="10000">
  1201. <h2 id="swtext" style="top:390px;left:10px;position:absolute;">Mimic mode &nbsp;</h2><label class="switch" style="top:120px;left:150px"><input type="checkbox" id="mimicmode" onchange="window.postMessage('mimicmode','*')"><span class="slider round"></span></label>
  1202. <h2 id="swtext" style="top:430px;left:10px;position:absolute;">Rainbow draw &nbsp;</h2><label class="switch" style="top:126px;left:150px"><input type="checkbox" id="rainbowdraw" onchange="window.postMessage('rainbowdraw','*')"><span class="slider round"></span></label>
  1203. <h2 style="top:470px;left:50px;position:absolute;">GUI theme color</h2>
  1204. <input type="submit" style="top:500px;left:20px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.red','*')" value="RED">
  1205. <input type="submit" style="top:500px;left:130px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.orange','*')" value="ORANGE">
  1206. <input type="submit" style="top:540px;left:20px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.yellow','*')" value="YELLOW">
  1207. <input type="submit" style="top:540px;left:130px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.green','*')" value="GREEN">
  1208. <input type="submit" style="top:580px;left:20px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.blue','*')" value="BLUE">
  1209. <input type="submit" style="top:580px;left:130px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.indigo','*')" value="INDIGO">
  1210. <input type="submit" style="top:620px;left:20px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.violet','*')" value="VIOLET">
  1211. <input type="submit" style="top:620px;left:130px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.pink','*')" value="PINK">
  1212. <input type="submit" style="top:660px;left:20px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.crimson','*')" value="CRIMSON">
  1213. <input type="submit" style="top:660px;left:130px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.brown','*')" value="BROWN">
  1214. <input type="submit" style="top:700px;left:20px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.gray','*')" value="GRAY">
  1215. <input type="submit" style="top:700px;left:130px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.white','*')" value="WHITE">
  1216. <input type="submit" style="top:740px;left:20px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.black','*')" value="BLACK">
  1217. <input type="submit" style="top:740px;left:130px;position:absolute;" class="colorthemesbtn1" onclick="window.postMessage('color.magenta','*')" value="MAGENTA">
  1218. <input type="submit" style="top:780px;left:50px;position:absolute;" class="colorthemesbtn2" onclick="javascript:location.reload();localStorage.removeItem('theme')" value="RESET THEME">
  1219. </div>
  1220. `
  1221.  
  1222. function setCSS(){
  1223. var css = `
  1224. @import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
  1225. .userlist *{box-sizing:border-box;}
  1226.  
  1227.  
  1228. .userlist {
  1229. display:block;text-align:center;opacity:none;font-size:10pt;color:#FFD700;font-style:italic;
  1230. position:fixed;left:50%;top:3px;padding:5px 3px !important;margin:0px;background:#333333;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  1231. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:block !important;height:auto !important;width:200px !important;
  1232. }
  1233.  
  1234. .userlist input[type=text]{height:20px;border-radius:3px;font-size:9pt;background:brown;color:white;padding-left:3px;}
  1235. .userlist input[type=submit]{height:25px;border-radius:3px;background:#FFD700;}
  1236. .userlist input[type=checkbox]{margin-top:2px;}
  1237.  
  1238. #background{
  1239. z-index:999;width:0px;height:0px;position:fixed;left:0px;top:0px;
  1240. }
  1241. .option *{box-sizing:border-box;}
  1242.  
  1243. .option {
  1244.  
  1245. display:block;text-align:center;opacity:none;font-size:10pt;color:#FFD700;
  1246. position:fixed;left:14%;top:20px;padding:5px 3px !important;margin:0px;background:#333333;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  1247. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:block !important;height:auto;width:40px;
  1248. }
  1249.  
  1250. .option input[type=submit],.option button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  1251. .option input[type=checkbox]{margin-top:2px;}
  1252. .option input[type=submit]:hover{background:#ccad00;transition:0.2s;}
  1253. .option button:hover{background:#ccad00;transition:0.2s;}
  1254. .option button:hover svg {stroke: #9e6e1c;}
  1255. .option button{width:90%;}
  1256.  
  1257. .icebot *{box-sizing:border-box;}
  1258. #avatarlist {
  1259.  
  1260. overflow-x:hidden;width:100%;max-height:300px;overflow-y:scroll;
  1261. display:none;text-align:center;opacity:none;font-size:10pt;color:#FFD700;
  1262. position:fixed;left:28%;top:50px;padding:5px 3px !important;margin:0px;background:#333333;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  1263. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:none;height:auto !important;width:400px;
  1264. .avatarbtn{display:flex;align-items:center;justify-content:center;}
  1265. .avatarbtn button,.avatarbtn button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:50px;font-size:11pt;margin-top:5px;}
  1266. .avatarbtn button:hover{background:#ccad00;transition:0.2s;}
  1267.  
  1268. }
  1269. #icebot1,#icebot2,#icebot6 {
  1270.  
  1271. overflow-x:hidden;width:100%;max-height:300px;overflow-y:scroll;
  1272. display:block;text-align:center;opacity:none;font-size:10pt;color:#FFD700;
  1273. position:fixed;left:28%;top:20px;padding:5px 3px !important;margin:0px;background:#333333;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  1274. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:block;height:auto;width:240px;;
  1275.  
  1276.  
  1277. }
  1278. #icebot3 {
  1279.  
  1280. display:none;text-align:center;opacity:none;font-size:10pt;color:#FFD700;
  1281. position:fixed;left:28%;top:20px;padding:5px 3px !important;margin:0px;background:#333333;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  1282. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:none;height:auto !important;width:240px;;
  1283. .broadcastspamvalue{margin-top:3px; text-align:left; color:#FFD700; font-size:16px;}
  1284. .messagespamvalue{margin-top:3px; text-align:left; color:#FFD700; font-size:16px;}
  1285. .answerspamvalue{margin-top:3px; text-align:left; color:#FFD700; font-size:16px;}
  1286. .broadcastspam{margin-top:3px; text-align:left; color:#FFD700; font-size:16px;}
  1287. .messagespam{margin-top:3px; text-align:left; color:#FFD700; font-size:16px;}
  1288. .answerspam{margin-top:3px; text-align:left; color:#FFD700; font-size:16px;}
  1289. #broadcaststop{display:none;}
  1290. #msgstop{display:none;}
  1291. #answerstop{display:none;}
  1292. }
  1293. #icebot4 {
  1294.  
  1295. overflow-x:hidden;width:100%;max-height:300px;overflow-y:scroll;
  1296. display:none;text-align:center;opacity:none;font-size:10pt;color:#FFD700;
  1297. position:fixed;left:28%;top:20px;padding:5px 3px !important;margin:0px;background:#333333;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  1298. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:none;height:auto !important;width:240px;;
  1299.  
  1300.  
  1301. .kicklistbox{display:flex;align-items:center;justify-content:center;}
  1302. .kicklistbox input[type=text]{margin-top:4px !important;width:75% !important;height:23px !important;}
  1303. .kicklistbox input[type=submit],.kicklistbox button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  1304. .kicklistbox input[type=submit]:hover{background:#ccad00;transition:0.2s;}
  1305. #kicklistaddbtn{width:40%;}
  1306. #kicklistremoveallbtn{width:40%;}
  1307. .customkickremove{width:30%;}
  1308. .customkick{margin-top:3px; text-align:center; color:#FFD700; font-size:17px;}
  1309. }
  1310. #icebot5 {
  1311.  
  1312. display:none;text-align:center;opacity:none;overflow-x:hidden;width:100%;max-height:300px;overflow-y:scroll;font-size:10pt;color:#FFD700;
  1313. position:fixed;left:28%;top:20px;padding:5px 3px !important;margin:0px;background:#333333;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  1314. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:none;height:auto !important;width:240px;;
  1315. .autoguess{width:40%;}
  1316. #autoguessenable{align-items:center;justify-content:center;}
  1317. #autoguessdisable{display:none;align-items:center;justify-content:center;}
  1318.  
  1319. .autoguessstyle{display:flex;align-items:center;justify-content:center;}
  1320. .mimicmode{width:40%;}
  1321. #mimicmodeenabled{align-items:center;justify-content:center;}
  1322. #mimicmodedisabled{display:none;align-items:center;justify-content:center;}
  1323. .mimicmodestyle{display:flex;align-items:center;justify-content:center;}
  1324.  
  1325. .rainbowdraw{width:30%;}
  1326. #rainbowdrawenabled{align-items:center;justify-content:center;}
  1327. #rainbowdrawdisabled{display:none;align-items:center;justify-content:center;}
  1328. .rainbowdrawstyle{display:flex;align-items:center;justify-content:center;}
  1329. .msgjoinremoveall{width:40%;}
  1330. }
  1331.  
  1332.  
  1333. .icebot input[type=submit],.icebotbtn button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  1334. .icebot input[type=checkbox]{margin-top:2px;}
  1335. .icebot input[type=submit]:hover{background:#ccad00;transition:0.2s;}
  1336. .icebot input[type=range]{accent-color:#FFD700;}
  1337. .icebot input[type=range]:focus::-webkit-slider-runnable-track { background: #3071A9; }
  1338.  
  1339.  
  1340. #join{width:20%;}
  1341. .roomlink{display:flex;align-items:center;justify-content:center;}
  1342. .roomlink input[type=text]{margin-top:4px !important;width:75% !important;height:23px !important;}
  1343. .roomlink input[type=submit],.broadcastbox button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  1344. .roomlink button:hover{background:#ccad00;transition:0.2s;}
  1345. .botnick input[type=text]{margin-top:4px !important;width:75% !important;height:23px !important;}
  1346. .broadcastbox{display:flex;align-items:center;justify-content:center;}
  1347. .broadcastbox input[type=text]{margin-top:4px !important;width:75% !important;height:23px !important;}
  1348. .broadcastbox input[type=submit],.broadcastbox button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  1349. .broadcastbox button:hover{background:#ccad00;transition:0.2s;}
  1350. .msgbox{display:flex;align-items:center;justify-content:center;}
  1351. .msgbox input[type=text]{margin-top:4px !important;width:75% !important;height:23px !important;}
  1352. .msgbox input[type=submit],.msgbox button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  1353. .msgbox button:hover{background:#ccad00;transition:0.2s;}
  1354. .answerbox{display:flex;align-items:center;justify-content:center;}
  1355. .answerbox input[type=text]{margin-top:4px !important;width:75% !important;height:23px !important;}
  1356. .answerbox input[type=submit],.answerbox button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  1357. .answerbox button:hover{background:#ccad00;transition:0.2s;}
  1358.  
  1359. .msgboxjoin{display:flex;align-items:center;justify-content:center;}
  1360. .msgboxjoin input[type=text]{margin-top:4px !important;width:75% !important;height:23px !important;}
  1361. .msgboxjoin input[type=submit],.msgboxjoin button{cursor:pointer;border:none;background:#FFD700;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  1362. .msgboxjoin button:hover{background:#ccad00;transition:0.2s;}
  1363.  
  1364.  
  1365. .botnick0{width:80%;}
  1366. .botnick1{width:80%;}
  1367. .chooseavatar{width:80%;}
  1368. .broadcastbtn{width:20%;},.broadcastbtn input[type=submit]:hover{background:#ccad00;transition:0.2s;}
  1369. .msgbtn{width:20%;}
  1370. .answerbtn{width:20%;}
  1371. .report{width:40%;}
  1372. .kickall{width:40%;}
  1373. .jump{width:40%;}
  1374.  
  1375. .exit{width:40%;}
  1376. .rejoin{width:40%;}
  1377. .reconnect{width:40%;}
  1378. .acceptdraw1{width:40%;}
  1379. .acceptdraw2{width:40%;}
  1380. .tips{width:40%;}
  1381. .autoreport input[type=checkbox]{margin-top:32px}
  1382. .autoskip{margin-top:32px;}
  1383. .antikick{margin-top:32px;}
  1384. .antiafk{margin-top:32px;}
  1385. .autokick{margin-top:32px;}
  1386.  
  1387. .roomconsole{margin-top:3px; text-align:left; color:#FFD700; font-size:17px;}
  1388. .roomtheme{margin-top:3px; text-align:left; color:#FFD700; font-size:17px;}
  1389. .switch {
  1390. position: relative;
  1391. display: block;
  1392. width: 60px;
  1393. height: 34px;
  1394. }
  1395.  
  1396. .switch input {
  1397. opacity: 0;
  1398. width: 0;
  1399. height: 0;
  1400. }
  1401.  
  1402. .slider {
  1403. position: absolute;
  1404. cursor: pointer;
  1405. top: 0;
  1406. left: 0;
  1407. right: 0;
  1408. bottom: 0;
  1409. background-color: #ccc;
  1410. -webkit-transition: .1s;
  1411. transition: .1s;
  1412. }
  1413.  
  1414. .slider:before {
  1415. position: absolute;
  1416. content: "";
  1417. height: 26px;
  1418. width: 26px;
  1419. left: 4px;
  1420. bottom: 4px;
  1421. background-color: white;
  1422. -webkit-transition: .1s;
  1423. transition: .1s;
  1424. }
  1425.  
  1426. input:checked + .slider {
  1427. background-color: #FFD700;
  1428. }
  1429.  
  1430. input:focus + .slider {
  1431. box-shadow: 0 0 1px #FFD700;
  1432. }
  1433.  
  1434. input:checked + .slider:before {
  1435. -webkit-transform: translateX(26px);
  1436. -ms-transform: translateX(26px);
  1437. transform: translateX(26px);
  1438. }
  1439.  
  1440. /* Rounded sliders */
  1441. .slider.round {
  1442. border-radius: 34px;
  1443. }
  1444.  
  1445. .slider.round:before {
  1446. border-radius: 50%;
  1447. }
  1448. .colorthemesbtn1{width:40%;}
  1449. .colorthemesbtn2{width:60%;}
  1450.  
  1451.  
  1452. `;
  1453. GM_addStyle(css);
  1454. f(".kickallwhenjoin").addEventListener("click",()=>{
  1455. GM_setValue("kicknewset",f(".kickallwhenjoin").checked)
  1456. })
  1457. f(".kickonjoin").addEventListener("click",()=>{
  1458. GM_setValue("kickjoinset",f(".kickonjoin").checked)
  1459. })
  1460. f("#autoreport").addEventListener("click",()=>{
  1461. GM_setValue("autoreport",f("#autoreport").checked);console.log(1)
  1462. })
  1463. f("#autoskip").addEventListener("click",()=>{
  1464. GM_setValue("autoskip",f("#autoskip").checked)
  1465. })
  1466. f("#antikick").addEventListener("click",()=>{
  1467. GM_setValue("antikick",f("#antikick").checked)
  1468. })
  1469. f("#autokick").addEventListener("click",()=>{
  1470. GM_setValue("autokick",f("#autokick").checked)
  1471. })
  1472. f("#antiafk").addEventListener("click",()=>{
  1473. GM_setValue("antiafk",f("#antiafk").checked)
  1474. })
  1475. f("#autofarm").addEventListener("click",()=>{
  1476. GM_setValue("autofarm",f("#autofarm").checked)
  1477. })
  1478. f("#autoguess").addEventListener("click",()=>{
  1479. GM_setValue("autoguess",f("#autoguess").checked)
  1480. })
  1481. GM_onMessage("rejoin", (_, __) => {
  1482. window.postMessage('join','*')
  1483. });
  1484. }
  1485. window.addEventListener("message",function(event){
  1486. if(typeof(event.data)==="string"){
  1487. if(event.data=="join"){
  1488. f("#roomlink").value==""?f("#roomlink").value=window.location.href:0
  1489. botc=0;GM_setValue("resetcount",rand())
  1490. readyc=0
  1491. let msgstorage = localStorage.getItem("messagejoin");
  1492. if(msgstorage & "1" == "0"){let vm=JSON.parse(msgstorage); setTimeout(()=>{vm.forEach(item=>{
  1493. GM_setValue("msg",item.msg+"►"+num(5000))
  1494. })},4000)
  1495. }
  1496. GM_sendMessage("join",f("#roomlink").value.split("/")[3],f("#botnick").value,avatar,localStorage.getItem("botnick"),f(".kickonjoin").checked,rand())
  1497. }
  1498. if(event.data.indexOf("kickuser.")!=-1){
  1499. let userid=event.data.split("kickuser.")[1]
  1500. GM_setValue("kick",userid+".."+num(10000))
  1501. GM_sendMessage("cmd",'kick',userid+".."+num(10000))
  1502. }
  1503. if(event.data.indexOf("kickusernick.")!=-1){
  1504. let usernick=event.data.split("kickusernick.")[1]
  1505. let c=fnFILTER(usersinroom)
  1506. c.forEach(x=>{if(x.nick==usernick && x.nick!=="ysuf"){let userid=x.id;if(!botsidvalue.includes(userid)){GM_setValue("kick",userid+".."+num(5000));GM_sendMessage("cmd",'kick',userid+".."+num(10000))}}})
  1507.  
  1508. }
  1509.  
  1510. if(event.data=="broadcast"){
  1511. GM_setValue("broadcast",f("#broadcast").value+"►"+num(5000))
  1512. GM_sendMessage('cmd', 'broadcast',f("#broadcast").value,num(5000))
  1513. }
  1514. if(event.data=="chat"){
  1515. GM_setValue("msg",f("#message").value+"►"+num(5000))
  1516. GM_sendMessage('cmd', 'msg',f("#message").value,num(5000))
  1517. }
  1518. if(event.data=="answer"){
  1519. GM_setValue("answer",f("#answer").value+"►"+num(5000))
  1520. GM_sendMessage('cmd', 'answer',f("#answer").value,num(5000))
  1521. }
  1522. if(event.data=="report"){
  1523. GM_setValue('report', num(5000));
  1524. GM_sendMessage('cmd', 'report','x',num(5000))
  1525. }
  1526. if(event.data=="jump"){
  1527. GM_setValue('jump', num(5000));
  1528. }
  1529. if(event.data=="reconnect"){if(!0==!!0){
  1530. GM_sendMessage('reconnect', rand(),rand());}
  1531. }
  1532. if(event.data=="acceptdraw1"){
  1533. GM_setValue('acceptdraw1', num(5000));
  1534. GM_sendMessage('cmd', 'accept1','x',num(5000))
  1535. }
  1536. if(event.data=="acceptdraw2"){
  1537. GM_setValue('acceptdraw2', num(5000));
  1538. GM_sendMessage('cmd', 'accept2','x',num(5000))
  1539. }
  1540. if(event.data=="tips"){console.log(usersinroom)
  1541. GM_setValue('tips', num(5000));
  1542. GM_sendMessage('cmd', 'tips','x',num(5000))
  1543. }
  1544. if(event.data=="exit"){
  1545. GM_setValue('exit', num(5000));
  1546. GM_sendMessage('cmd', 'exit','x',num(5000))
  1547. }
  1548.  
  1549. if(event.data=="rejoin"){
  1550. GM_setValue('exit', num(5000));
  1551.  
  1552. let msgstorage = localStorage.getItem("messagejoin");
  1553. if(msgstorage && "1"==="2"){let vm=JSON.parse(msgstorage); setTimeout(()=>{vm.forEach(item=>{
  1554. GM_setValue("msg",item.msg+"►"+num(5000))
  1555. })},4000)}
  1556. GM_sendMessage("join",f("#roomlink").value.split("/")[3],f("#botnick").value,avatar,localStorage.getItem("botnick"),f(".kickonjoin").checked,JSON.parse(localStorage.getItem("messagejoin")),rand())
  1557. }
  1558.  
  1559.  
  1560. if(event.data=="kickall"){
  1561. var elements = document.getElementsByClassName("kickmenubtn");
  1562. var elementsvalue = [];
  1563.  
  1564. for (var i = 0; i < elements.length; i++) {
  1565. elementsvalue.push(elements[i].getAttribute("onclick"));
  1566. }
  1567.  
  1568. elementsvalue.forEach(function(value, index) {
  1569. setTimeout(function() {
  1570. let userid = value.split("kickuser.")[1].split("','*")[0];
  1571.  
  1572. GM_setValue("kick",userid+".."+num(10000))
  1573. GM_sendMessage("cmd",'kick',userid+".."+num(10000))
  1574. }, 550 * index);
  1575. })}
  1576. if(event.data=="broadcastspamtoggle"){
  1577. let broadcastspamMS=parseInt(localStorage.getItem("broadcastspam"))
  1578. var broadcastspam = f("#broadcastspam").value
  1579. intervalbroadcast=setInterval(()=>{
  1580. GM_setValue("broadcast",broadcastspam+"►"+num(5000))
  1581. },broadcastspamMS)
  1582. f("#broadcaststart").style.display="none"
  1583. f("#broadcaststop").style.display="block"
  1584. }
  1585. if(event.data=="chatspamtoggle"){
  1586. let messagespamMS=parseInt(localStorage.getItem("messagespam"))
  1587. var messagespam = f("#messagespam").value
  1588. intervalmsg=setInterval(()=>{
  1589. var chatspam = f("#messagespam").value
  1590. GM_setValue("msg",chatspam+"►"+num(5000))
  1591. },messagespamMS)
  1592. f("#msgstart").style.display="none"
  1593. f("#msgstop").style.display="block"
  1594. }
  1595. if(event.data=="answerspamtoggle"){
  1596. let answerspamMS=parseInt(localStorage.getItem("answerspam"))
  1597. var answerspam = f("#answerspam").value
  1598. intervalanswer=setInterval(()=>{
  1599. var answerspam = f("#answerspam").value
  1600. GM_setValue("answer",answerspam+"►"+num(5000))
  1601. },answerspamMS)
  1602. f("#answerstart").style.display="none"
  1603. f("#answerstop").style.display="block"
  1604. }
  1605. if(event.data=="stopbroadcast"){
  1606. clearInterval(intervalbroadcast)
  1607. f("#broadcaststart").style.display="block"
  1608. f("#broadcaststop").style.display="none"
  1609. }
  1610. if(event.data=="stopmsg"){
  1611. clearInterval(intervalmsg)
  1612. f("#msgstart").style.display="block"
  1613. f("#msgstop").style.display="none"
  1614. }
  1615. if(event.data=="stopanswer"){
  1616. clearInterval(intervalanswer)
  1617. f("#answerstart").style.display="block"
  1618. f("#answerstop").style.display="none"
  1619. }
  1620. if (event.data == "autoguess") {if(f("#autoguess").checked){GM_setValue("autoguess",1)}else{GM_setValue("autoguess",0);clearInterval(wordsInterval)}}
  1621. if (event.data == "autoguessenable") {
  1622. f("#autoguessenable").style.display = "none";
  1623. f("#autoguessdisable").style.display = "block"
  1624. GM_setValue("autoguess",1)
  1625.  
  1626.  
  1627. }
  1628.  
  1629. if (event.data == "autoguessdisable") {
  1630. f("#autoguessenable").style.display = "block"
  1631. f("#autoguessdisable").style.display = "none";
  1632. GM_setValue("autoguess",0)
  1633. clearInterval(wordsInterval)
  1634. }
  1635.  
  1636. }
  1637. })
  1638.  
  1639. localStorage.getItem("botc")?0:window.localStorage.setItem("botc",0)
  1640. GM_setValue("resetcount",rand())
  1641. //
  1642. setInterval(()=>{
  1643. if(f("#users")){
  1644. fa(".kickmenubtn").forEach(ele=>{
  1645. f(".scrollElements").innerText.indexOf(ele.value)==-1?ele.remove():0
  1646. })
  1647. f("g")?f("g").remove():0;
  1648. }
  1649. if(f("input[name=chat]")){
  1650. f(".contentPopup")&&f(".btYellowBig.ic-yes")?f(".btYellowBig.ic-yes").click():0;
  1651.  
  1652. if(f(".contentPopup .nick")&&f(".ic-votekick")&&otoeven==0){
  1653. otoeven=1//
  1654. f(".close").addEventListener("click",()=>{otoeven=0})
  1655. f(".ic-ignore").addEventListener("click",()=>{otoeven=0})
  1656. f(".ic-votekick").addEventListener("click",()=>{
  1657. otoeven=0
  1658. GM_setValue("kick",f(".contentPopup .nick").innerText+".."+num(10000))
  1659. })
  1660. }
  1661. }
  1662. f("input[name=chat]")?f("input[name=chat]").setAttribute("placeholder",+botc+" bot aktif"):0
  1663. f(".taktifbot")?f(".taktifbot").innerText=botc:0
  1664.  
  1665. if(f("#background")&&!f(".userlist")&&!f(".option")&&!f(".icebot")){
  1666. f("#background").innerHTML+=html
  1667. setCSS()
  1668. }
  1669. },100)
  1670. GM_addValueChangeListener("botekle", function(I,C,E,b) {
  1671. botc++
  1672. f(".taktifbot")?f(".taktifbot").innerText=botc:0
  1673. })
  1674.  
  1675. GM_addValueChangeListener("ready", function(I,C,E,b) {
  1676. readyc++
  1677. readyc>=botc&&botc!=0?GM_setValue("join",rand()):0
  1678. })
  1679.  
  1680. GM_addValueChangeListener("botexit", function(I,C,E,b) {
  1681. //botc--
  1682. })
  1683. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址