ST BOT v2

Bot Panel for gartic.io

  1. // ==UserScript==
  2. // @name ST BOT v2
  3. // @description Bot Panel for gartic.io
  4. // @version 2.0
  5. // @author STRAGON
  6. // @license N/A
  7. // @match *://gartic.io/*
  8. // @match *://*/*?__cpo=aHR0cHM6Ly9nYXJ0aWMuaW8
  9. // @icon https://static.cdnlogo.com/logos/s/96/st.svg
  10. // @grant GM_setValue
  11. // @grant GM_getValue
  12. // @grant GM_addValueChangeListener
  13. // @grant GM_addStyle
  14. // @grant GM_openInTab
  15. // @namespace https://greasyfork.org/en/users/1353946-stragon-x
  16. // ==/UserScript==
  17.  
  18.  
  19.  
  20. let rand = x => Math.floor(Math.random() * 1000000),
  21. GM_onMessage = (label, cb) => GM_addValueChangeListener(label, (_, __, data) => cb(...data)),
  22. GM_sendMessage = (label, ...data) => GM_setValue(label, data);
  23.  
  24. let randomNumber = Math.floor(Math.random() * 36) + 1;
  25.  
  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(ygn){return document.querySelector(ygn)}
  35. function fa(ygn){return document.querySelectorAll(ygn)}
  36. function num(ICE){return Math.ceil(Math.random()*ICE+1)}
  37. function rc(ygn){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(ygn){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=[],intervalbroadcast,intervalmsg,intervalanswer,botsidvalue=[],botID,botlongID,theme,avatar=localStorage.getItem("avatar"),botnick=localStorage.getItem("botnick"),nick=localStorage.getItem("nick")
  64.  
  65.  
  66. if(window.location.href.indexOf("aHR0cHM6Ly9nYXJ0aWMuaW8")!=-1){
  67. let room,kicknewstat=false,kickjoinstat=false,waitforkick=0
  68.  
  69. const addItem = (arr, ...arguments) => { for (let i = 0; i < arguments.length; i++) { arr[arr.length] = arguments[i]; } return arr; };
  70.  
  71. function arrayFilter(array) {
  72. return array.filter((value, index, arr) => arr.indexOf(value) === index);
  73. }
  74.  
  75. GM_setValue("botekle",rand())
  76.  
  77. GM_addValueChangeListener("resetcount", function(I,C,E,b) {
  78. GM_setValue("botekle",rand())
  79. })
  80. setTimeout(()=>{waitforkick=0},1000)
  81.  
  82. GM_onMessage("join", (room,nick,avatar,botnick,kickonjoin,_) => {
  83. fetch("https://"+window.location.href.split("/")[2]+"/server?check=1&v3=1&room="+room+"&__cpo=aHR0cHM6Ly9nYXJ0aWMuaW8#").then(x=>x.text()).then(x=>{
  84. 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=");
  85. ws.onopen=()=>{
  86. let inter=setInterval(()=>{
  87. GM_setValue("ready",rand())
  88. if(tojoin==1){
  89. tojoin=0
  90. if (botnick === '0') {
  91. ws.send('42[3,{"v":20000,"nick":"' + rnext(nick) + '","avatar": '+avatar+' ,"platform":69 ,"sala":"' + room.substring(2) + '"}]')
  92. } if (botnick === '1') {
  93. ws.send('42[3,{"v":20000,"nick":"'+rnext(nick)+'","avatar":'+randomNumber+',"platform":69,"sala":"'+room.substring(2)+'"}]')
  94. }
  95. if (botnick === '2') {
  96. ws.send('42[3,{"v":20000,"nick":"'+nick+Math.ceil(Math.random()*10000+1)+'","avatar":'+randomNumber+',"platform":69,"sala":"'+room.substring(2)+'"}]')
  97. }
  98. if (botnick === '3') {
  99. ws.send('42[3,{"v":20000,"nick":"'+nick+Math.ceil(Math.random()*10000+1)+'","avatar":'+avatar+',"platform":69,"sala":"'+room.substring(2)+'"}]')
  100. }
  101.  
  102. clearInterval(inter)
  103. }
  104. },50)
  105. }
  106.  
  107. ws.onclose=()=>{
  108. wss.length=0
  109. ws.close();
  110. }
  111. ws.onmessage=(msg)=>{
  112.  
  113.  
  114. if(msg.data.indexOf('42["23"')!=-1){
  115. let user=JSON.parse("{"+msg.data.split("{")[1].split("}")[0]+"}")
  116. usersinroom.push(user)
  117. if(kicknewstat){typeof(user.id)=="string"?ws.send('42[45,'+ws.id+',["'+user.id+'",true]]'):ws.send('42[45,'+ws.id+',['+user.id+',true]]');}
  118. }
  119. if(msg.data.indexOf('42["5"')!=-1){
  120. let objlist=JSON.parse('["5"'+msg.data.split('42["5"')[1])
  121. ws.theme=objlist[4].tema
  122. ws.room=objlist[4].codigo
  123. ws.id=objlist[2]
  124. objlist[5].forEach(item=>{usersinroom.push(item)})
  125. let targetid=objlist[5][0].id
  126. botID = objlist[2]
  127. botlongID = objlist[1]
  128. theme = objlist[4].tema
  129. setTimeout(()=>{
  130. f(".roomtheme").innerHTML= theme},10)
  131. setTimeout(()=>{
  132. GM_sendMessage("botsidvalue",botlongID,rand())},777)
  133. setTimeout(()=>{
  134. GM_sendMessage("updatelist",botID,rand())},777)
  135.  
  136. kickjoinstat?typeof(targetid)=="string"?ws.send('42[45,'+ws.id+',["'+targetid+'",true]]'):ws.send('42[45,'+ws.id+',['+targetid+',true]]'):0
  137. ws.send('42[46,'+objlist[2]+']')
  138.  
  139.  
  140. GM_onMessage('answerinput', (atılacak, _) => {
  141. f('#answer').value= atılacak
  142. })
  143.  
  144. GM_onMessage("botsidvalue", (datachangex, _) => {
  145.  
  146. botsidvalue.push(datachangex)
  147. });
  148. GM_onMessage("updatelist", (datachangex, _) => {
  149. GM_sendMessage("updatebotidlist",botsidvalue,rand())
  150. });
  151. GM_onMessage("updatebotidlist", (datachangex, _) => {
  152.  
  153. if (!botsidvalue.includes(datachangex)) {
  154. addItem(botsidvalue,...datachangex);
  155. }
  156. botsidvalue = arrayFilter(botsidvalue);
  157. });
  158.  
  159. GM_addValueChangeListener("broadcast", function(I,C,E,b) {
  160. ws.send('42[11,'+objlist[2]+',"'+E.split("►")[0]+'"]')
  161. ws.send('42[13,'+objlist[2]+',"'+E.split("►")[0]+'"]')
  162. });
  163. GM_addValueChangeListener("msg", function(I,C,E,b) {
  164. ws.send('42[11,'+objlist[2]+',"'+E.split("►")[0]+'"]')
  165. })
  166. GM_addValueChangeListener("answer", function(I,C,E,b) {
  167. ws.send('42[13,'+objlist[2]+',"'+E.split("►")[0]+'"]')
  168. })
  169. GM_addValueChangeListener("report", function(I,C,E,b) {
  170. ws.send('42[35,'+objlist[2]+']')
  171. });
  172. GM_addValueChangeListener("jump", function(I,C,E,b) {
  173. ws.send('42[25,'+objlist[2]+']')
  174. });
  175. GM_addValueChangeListener("acceptdraw1", function(I,C,E,b) {
  176. ws.send('42[34,'+objlist[2]+']')
  177. });
  178. GM_addValueChangeListener("acceptdraw2", function(I,C,E,b) {
  179. ws.send('42[34,'+objlist[2]+',1]')
  180. });
  181.  
  182. GM_addValueChangeListener("tips", function(I,C,E,b) {
  183. ws.send('42[30,'+objlist[2]+',1]')
  184. });
  185.  
  186. GM_addValueChangeListener("exit", function(I,C,E,b) {
  187. ws.send('42[24,'+objlist[2]+']')
  188. wss.lenghth=0
  189. usersinroom.length=0
  190. });
  191.  
  192. GM_addValueChangeListener("kick", function(I,C,E,b) {
  193. if(!botsidvalue.includes(E.split("..")[0])){
  194. ws.send('42[45,'+objlist[2]+',["'+E.split("..")[0]+'",true]]')}
  195. })
  196.  
  197.  
  198. JSON.stringify(wss).indexOf(objlist[2])==-1?wss.push({"ws":ws,"id":objlist[2],"lengthID":objlist[1]}):0
  199. let interval=setInterval(()=>{
  200. ws.readyState==1?ws.send('42[42,'+objlist[2]+']'):clearInterval(interval)
  201. ws.readyState==1?ws.send('2'):clearInterval(interval)
  202. },20000);
  203. }
  204. if(msg.data.indexOf('42["34"')!=-1){
  205. let objlist=JSON.parse('["34"'+msg.data.split('42["34"')[1])
  206. var cdd=objlist[1]
  207.  
  208. GM_sendMessage('answerinput', cdd, rand());
  209.  
  210. }
  211.  
  212. }
  213. })
  214. });
  215.  
  216.  
  217.  
  218. GM_addValueChangeListener("join", function(I,C,E,b) {
  219. tojoin=1
  220. });
  221. GM_addValueChangeListener("kicknewset", function(I,C,E,b) {
  222. kicknewstat=E
  223. });
  224. GM_addValueChangeListener("kickjoinset", function(I,C,E,b) {
  225. kickjoinstat=E
  226. });
  227.  
  228.  
  229.  
  230. window.addEventListener("beforeunload",()=>{
  231. GM_setValue("botçıkar",window.location.href.split("/")[2]+"--"+rand())
  232. })
  233. }
  234.  
  235. if(window.location.href.indexOf("gartic.io")!=-1){
  236. const addItem = (arr, ...arguments) => { for (let i = 0; i < arguments.length; i++) { arr[arr.length] = arguments[i]; } return arr; };
  237.  
  238. function arrayFilter(array) {
  239. return array.filter((value, index, arr) => arr.indexOf(value) === index);
  240. }
  241. let customkick = localStorage.getItem("customkick");
  242. if (!customkick) {
  243. localStorage.setItem("customkick", "[]");
  244. }
  245.  
  246. if (customkick) {
  247. let list=JSON.parse(localStorage.getItem("customkick"))
  248.  
  249. list.forEach(user=>{
  250. setTimeout(()=>{
  251. f("#STBOT3").innerHTML+=`<h2 class="customkick" id="customkick.`+user.user+`">`+user.user+`</h2>
  252. <input type="submit" class="customkickremove" id="customkickuser.`+user.user+`" onclick="window.postMessage('customkickremove.`+user.user+`','*')" value="remove">`
  253. addItem(customkickitems, user.user)
  254. },3000)
  255. })
  256. }
  257. let avataritem = localStorage.getItem("avatar");
  258. if (!avataritem) {
  259. localStorage.setItem("avatar", "17");
  260. }
  261. let botnickitem = localStorage.getItem("botnick");
  262. if (!botnickitem) {
  263. localStorage.setItem("botnick", "0");
  264. }
  265. let nickitem = localStorage.getItem("nick");
  266. if (!nickitem) {
  267. localStorage.setItem("nick", "ST BOT");
  268. }
  269. if (avataritem) {
  270. setTimeout(()=>{
  271. f("#avatar").src = 'https://gartic.io/static/images/avatar/svg/' + localStorage.getItem("avatar") + '.svg';
  272.  
  273. },100)
  274. }
  275. window.addEventListener("message",(msg)=>{
  276. if(msg.data=="broadcastspam"){
  277. let broadcastspamMS=f(".broadcastspam").value
  278. f("#broadcastms").innerText='BROADCAST SPAM VALUE: ' + broadcastspamMS
  279. localStorage.setItem("broadcastspam",broadcastspamMS)
  280. }
  281. if(msg.data=="messagespam"){
  282. let messagespamMS=f(".messagespam").value
  283. f("#messagems").innerText='MESSAGE SPAM VALUE: ' + messagespamMS
  284. localStorage.setItem("messagespam",messagespamMS)
  285. }
  286. if(msg.data=="answerspam"){
  287. let answerspamMS=f(".answerspam").value
  288. f("#answerms").innerText='ANSWER SPAM VALUE: ' + answerspamMS
  289. localStorage.setItem("answerspam",answerspamMS)
  290. }
  291. if(msg.data=="nick"){
  292. localStorage.setItem("nick",f("#botnick").value)
  293. }
  294. if(msg.data=="botnick0"){
  295. botnick=0
  296. localStorage.setItem("botnick",0)
  297. }
  298. if(msg.data=="botnick1"){
  299. botnick=1
  300. localStorage.setItem("botnick",1)
  301. }
  302. if(msg.data=="botnick2"){
  303. botnick=2
  304. localStorage.setItem("botnick",2)
  305. }
  306. if(msg.data=="botnick3"){
  307. botnick=3
  308. localStorage.setItem("botnick",3)
  309. }
  310. if(msg.data=="showavatarlist"){
  311. // f("#STBOT1").style.display="none"
  312. f("#avatarlist").style.display="block"
  313. }
  314. if(msg.data=="hideavatarlist"){
  315. f("#STBOT1").style.display="block"
  316. f("#avatarlist").style.display="none"
  317. }
  318. if(msg.data=="avatar0"){
  319. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/0.svg";
  320. avatar=0
  321. localStorage.setItem("avatar",0)
  322. }
  323. if(msg.data=="avatar1"){
  324. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/1.svg";
  325. avatar=1
  326. localStorage.setItem("avatar",1)
  327. }
  328. if(msg.data=="avatar2"){
  329. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/2.svg";
  330. avatar=2
  331. localStorage.setItem("avatar",2)
  332. }
  333. if(msg.data=="avatar3"){
  334. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/3.svg";
  335. avatar=3
  336. localStorage.setItem("avatar",3)
  337. }
  338. if(msg.data=="avatar4"){
  339. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/4.svg";
  340. avatar=4
  341. localStorage.setItem("avatar",4)
  342. }
  343. if(msg.data=="avatar5"){
  344. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/5.svg";
  345. avatar=5
  346. localStorage.setItem("avatar",5)
  347. }
  348. if(msg.data=="avatar6"){
  349. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/6.svg";
  350. avatar=6
  351. localStorage.setItem("avatar",6)
  352. }
  353. if(msg.data=="avatar7"){
  354. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/7.svg";
  355. avatar=7
  356. localStorage.setItem("avatar",7)
  357. }
  358. if(msg.data=="avatar8"){
  359. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/8.svg";
  360. avatar=8
  361. localStorage.setItem("avatar",8)
  362. }
  363. if(msg.data=="avatar9"){
  364. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/9.svg";
  365. avatar=9
  366. localStorage.setItem("avatar",9)
  367. }
  368. if(msg.data=="avatar10"){
  369. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/10.svg";
  370. avatar=10
  371. localStorage.setItem("avatar",10)
  372. }
  373. if(msg.data=="avatar11"){
  374. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/11.svg";
  375. avatar=11
  376. localStorage.setItem("avatar",11)
  377. }
  378. if(msg.data=="avatar12"){
  379. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/12.svg";
  380. avatar=12
  381. localStorage.setItem("avatar",12)
  382. }
  383. if(msg.data=="avatar13"){
  384. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/13.svg";
  385. avatar=13
  386. localStorage.setItem("avatar",13)
  387. }
  388. if(msg.data=="avatar14"){
  389. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/14.svg";
  390. avatar=14
  391. localStorage.setItem("avatar",14)
  392. }
  393. if(msg.data=="avatar15"){
  394. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/15.svg";
  395. avatar=15
  396. localStorage.setItem("avatar",15)
  397. }
  398. if(msg.data=="avatar16"){
  399. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/16.svg";
  400. avatar=16
  401. localStorage.setItem("avatar",16)
  402. }
  403. if(msg.data=="avatar17"){
  404. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/17.svg";
  405. avatar=17
  406. localStorage.setItem("avatar",17)
  407. }
  408. if(msg.data=="avatar18"){
  409. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/18.svg";
  410. avatar=18
  411. localStorage.setItem("avatar",18)
  412. }
  413. if(msg.data=="avatar19"){
  414. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/19.svg";
  415. avatar=19
  416. localStorage.setItem("avatar",19)
  417. }
  418. if(msg.data=="avatar20"){
  419. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/20.svg";
  420. avatar=20
  421. localStorage.setItem("avatar",20)
  422. }
  423. if(msg.data=="avatar21"){
  424. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/21.svg";
  425. avatar=21
  426. localStorage.setItem("avatar",21)
  427. }
  428. if(msg.data=="avatar22"){
  429. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/22.svg";
  430. avatar=22
  431. localStorage.setItem("avatar",22)
  432. }
  433. if(msg.data=="avatar23"){
  434. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/23.svg";
  435. avatar=23
  436. localStorage.setItem("avatar",23)
  437. }
  438. if(msg.data=="avatar24"){
  439. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/24.svg";
  440. avatar=24
  441. localStorage.setItem("avatar",24)
  442. }
  443. if(msg.data=="avatar25"){
  444. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/25.svg";
  445. avatar=25
  446. localStorage.setItem("avatar",25)
  447. }
  448. if(msg.data=="avatar26"){
  449. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/26.svg";
  450. avatar=26
  451. localStorage.setItem("avatar",26)
  452. }
  453. if(msg.data=="avatar27"){
  454. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/27.svg";
  455. avatar=27
  456. localStorage.setItem("avatar",27)
  457. }
  458. if(msg.data=="avatar28"){
  459. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/28.svg";
  460. avatar=28
  461. localStorage.setItem("avatar",28)
  462. }
  463. if(msg.data=="avatar29"){
  464. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/29.svg";
  465. avatar=29
  466. localStorage.setItem("avatar",29)
  467. }
  468. if(msg.data=="avatar30"){
  469. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/30.svg";
  470. avatar=30
  471. localStorage.setItem("avatar",30)
  472. }
  473. if(msg.data=="avatar31"){
  474. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/31.svg";
  475. avatar=31
  476. localStorage.setItem("avatar",31)
  477. }
  478. if(msg.data=="avatar32"){
  479. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/32.svg";
  480. avatar=32
  481. localStorage.setItem("avatar",32)
  482. }
  483. if(msg.data=="avatar33"){
  484. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/33.svg";
  485. avatar=33
  486. localStorage.setItem("avatar",33)
  487. }
  488. if(msg.data=="avatar34"){
  489. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/34.svg";
  490. avatar=34
  491. localStorage.setItem("avatar",34)
  492. }
  493. if(msg.data=="avatar35"){
  494. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/35.svg";
  495. avatar=35
  496. localStorage.setItem("avatar",35)
  497. }
  498. if(msg.data=="avatar36"){
  499. f("#avatar").src = "https://gartic.io/static/images/avatar/svg/36.svg";
  500. avatar=36
  501. localStorage.setItem("avatar",36)
  502. }
  503.  
  504.  
  505. if(msg.data=="customkickadd"){
  506. const value = f("#kicklistinput").value;
  507. var customkicklist = localStorage.getItem("customkick");
  508. if (!customkicklist.includes(value) && !customkickitems.includes(value)) {
  509. customkickitems.push(value);
  510. let customkickitem = JSON.parse(localStorage.getItem("customkick"));
  511. if (customkickitem.findIndex(item => item.user === value) === -1) {
  512. customkickitem.push({ "user": value });
  513. localStorage.setItem("customkick", JSON.stringify(customkickitem));
  514. f("#STBOT3").innerHTML += `<h2 class="customkick" id="customkick.` + value + `">` + value + `</h2>
  515. <input type="submit" class="customkickremove" id="customkickuser.` + value + `" onclick="window.postMessage('customkickremove.` + value + `','*')" value="remove">`
  516. }
  517. }
  518. }
  519. if(msg.data.indexOf("customkickremove.")!=-1){
  520. let usernick = event.data.split("customkickremove.")[1];
  521. let storage = JSON.parse(localStorage.getItem("customkick"));
  522.  
  523. if (storage && Array.isArray(storage)) {
  524. for (let i = 0; i < storage.length; i++) {
  525. if (storage[i].user === usernick) {
  526. storage.splice(i, 1);
  527. break;
  528. }
  529. }
  530.  
  531. localStorage.setItem("customkick", JSON.stringify(storage));
  532. var value = usernick;
  533. var index = customkickitems.indexOf(value);
  534. if (index > -1) {
  535. customkickitems.splice(index, 1);
  536. }
  537. }
  538. let kickusertext= document.getElementById("customkick."+usernick)
  539. let kickuserremovebtn= document.getElementById("customkickuser."+usernick)
  540. kickusertext.remove()
  541. kickuserremovebtn.remove()
  542.  
  543. }
  544. if(msg.data=="customkickremoveall"){
  545. var elementsCustomKick = document.querySelectorAll('[id*="customkick."]');
  546. var elementsCustomKickUser = document.querySelectorAll('[id*="customkickuser."]');
  547. function deleteElement(element) {
  548. element.parentNode.removeChild(element);
  549. }
  550. elementsCustomKick.forEach(function(element) {
  551. deleteElement(element);
  552. });
  553. elementsCustomKickUser.forEach(function(element) {
  554. deleteElement(element);
  555.  
  556. })
  557. localStorage.setItem("customkick","[]")
  558. customkickitems=[]
  559. }
  560. })
  561. let readyc=0,botc=0,otoeven=0,roomusers=[]
  562.  
  563. let WebSocket=window.WebSocket
  564. window.ginterval=0
  565. window.selectlevel=-1
  566. let originalSend = WebSocket.prototype.send,setTrue=false;
  567. window.wsObj={}
  568. console.log("running")
  569. WebSocket.prototype.send=function(data){
  570. originalSend.apply(this, arguments)
  571. if(Object.keys(window.wsObj).length==0){window.wsObj=this;window.eventAdd()}
  572. };
  573.  
  574. function updatespeckicks(){
  575. f(".userkickmenu").innerHTML=""
  576. roomusers.forEach(user=>{
  577. user.nick.split("‏").join("")!="STBOT"?f(".userkickmenu").innerHTML+=`<input type="submit" class="kickmenubtn" value="`+user.nick+`" onclick="window.postMessage('kickuser.`+user.id+`','*')">`:0
  578. })
  579. }
  580.  
  581. window.eventAdd=()=>{
  582. if(!setTrue){
  583. setTrue=1
  584. window.wsObj.addEventListener("message",(msg)=>{
  585.  
  586. if(msg.data.indexOf('42["5"')!=-1){
  587. let objlist=JSON.parse('["5"'+msg.data.split('42["5"')[1])
  588. objlist[5].forEach(item=>{roomusers.push(item)})
  589. updatespeckicks()
  590. }
  591. if(msg.data.indexOf('42["23"')!=-1){
  592. let user=JSON.parse("{"+msg.data.split("{")[1].split("}")[0]+"}")
  593. roomusers.push(user)
  594. updatespeckicks()
  595. }
  596. if(msg.data.indexOf('42["24"')!=-1){
  597. let user=msg.data.split(",")[1].split('"')[1]
  598. for(let i=0;i<roomusers.length;i++){
  599. typeof(roomusers[i].id)==='undefined'?0:roomusers[i].id==user?roomusers.splice(i,1):0
  600. }
  601. updatespeckicks()
  602. }
  603. })
  604. }
  605. }
  606.  
  607.  
  608.  
  609.  
  610. let html=`
  611. <div class="userlist">
  612. <div class="userkickmenu"></div>
  613. <input type="submit" style="width:90px; background:red" onclick="window.postMessage('kickall','*')" value="KICK ALL">
  614. <input type="checkbox" class="kickonjoin">&nbsp;Kick on join<br>
  615. <input type="checkbox" class="kickallwhenjoin">&nbsp;Kick when join<hr>
  616. </div>
  617.  
  618. </div>
  619. <div id="avatarlist" class="icebot">
  620. <input type="submit" class="chooseavatar" onclick="window.postMessage('hideavatarlist','*')" value="Close" style="width: 20%; border-radius: 5px;height: 30px;color: #ffffff;margin-top: 7px;background-color: #ff0000;">
  621. <div class="avatarbtn"><button>
  622. <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>
  623. <button>
  624. <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>
  625. <button>
  626. <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>
  627. <button>
  628. <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>
  629. <div class="avatarbtn"><button>
  630. <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>
  631. <button>
  632. <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>
  633. <button>
  634. <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>
  635. <button>
  636. <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>
  637. <div class="avatarbtn"><button>
  638. <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>
  639. <button>
  640. <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>
  641. <button>
  642. <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>
  643. <button>
  644. <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>
  645. <div class="avatarbtn"><button>
  646. <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>
  647. <button>
  648. <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>
  649. <button>
  650. <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>
  651. <button>
  652. <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>
  653. <div class="avatarbtn"><button>
  654. <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>
  655. <button>
  656. <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>
  657. <button>
  658. <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>
  659. <button>
  660. <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>
  661. <div class="avatarbtn"><button>
  662. <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>
  663. <button>
  664. <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>
  665. <button>
  666. <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>
  667. <button>
  668. <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>
  669. <div class="avatarbtn"><button>
  670. <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>
  671. <button>
  672. <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>
  673. <button>
  674. <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>
  675. <button>
  676. <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>
  677. <div class="avatarbtn"><button>
  678. <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>
  679. <button>
  680. <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>
  681. <button>
  682. <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>
  683. <button>
  684. <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>
  685. <div class="avatarbtn"><button>
  686. <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>
  687. <button>
  688. <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>
  689. <button>
  690. <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>
  691. </div>
  692. <div class="avatarbtn">
  693. <button>
  694. <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>
  695. <button>
  696. <button>
  697. <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></div>
  698. <br>
  699. </div>
  700. <div id="STBOT2" class="STBOT2">
  701. <img width="100" style="margin-top:0px;" height="55" src="https://gartic.io/static/images/avatar/svg/`+localStorage.getItem("avatar")+`.svg" id="avatar" class="selectedavatar">
  702. </div>
  703. <div id="STBOT3" class="STBOT3">
  704.  
  705. <input type="number" id="broadcastx" placeholder="Number Bot" style="border-radius: 5px; width: 45%; height: 10px; border: 2px solid white;padding: 10px;background-color: #000000; color:white; ">
  706. <button class="broadcastbtnx" onclick="openTabs()" value="Broadcast"style="border-radius: 5px;height: 33px;color: #ffffff;margin-top: 10px;margin-left: 4px;background-color: #ff0000;width: 30%;">OPEN
  707. </button>
  708. </div>
  709. <div id="STBOT4" class="STBOT4">
  710.  
  711.  
  712.  
  713. </div>
  714.  
  715.  
  716. <div id="STBOT1" class="STBOT">
  717. <h2 style="color:white;margin-top: 10px;">ST BOT V2</h2>
  718. <input type="text" id="roomlink" placeholder="Room link" style="border-radius: 5px; border: 2px solid white; width: 75%; height: 30px;padding: 10px;background-color: #000000; color:white; margin-top: 10px;">
  719. <input type="submit" id="join" onclick="window.postMessage('join','*')" value="JOIN" style="border-radius: 5px; width: 20%; cursor: pointer; height: 30px;color: #ffffff;">
  720. <input type="text" id="botnick" oninput="window.postMessage('nick','*')" placeholder="Bot nick" value="`+localStorage.getItem("nick")+`" style="border-radius: 5px; width: 75%; height: 30px; margin-top: 5px; border: 2px solid white;padding: 10px;background-color: #000000; color:white; margin-top: 10px;">
  721. <input type="submit" class="chooseavatar" onclick="window.postMessage('showavatarlist','*')" value="Avatar"style="width: 20%; border-radius: 5px;height: 30px;color: #ffffff;">
  722. <input type="submit" class="botnick0" onclick="window.postMessage('botnick0','*')" value="Normal N/A"style="width: 47%; border-radius: 5px;height: 30px;color: #ffffff;margin-top: 7px;">
  723. <input type="submit" class="botnick1" onclick="window.postMessage('botnick1','*')" value="Random Avatar"style="width: 47%; border-radius: 5px;height: 30px;color: #ffffff;margin-top: 7px;"><br>
  724. <input type="submit" class="botnick2" onclick="window.postMessage('botnick3','*')" value="Random Nick"style="width: 47%; border-radius: 5px;height: 30px;color: #ffffff;margin-top: 7px;">
  725. <input type="submit" class="botnick2" onclick="window.postMessage('botnick2','*')" value="Random N/A"style="width: 47%; border-radius: 5px;height: 30px;color: #ffffff;margin-top: 7px;">
  726.  
  727.  
  728. <br>
  729. <div class="broadcastbox">
  730. <input type="text" id="broadcast" placeholder="Broadcast" style="border-radius: 5px; width: 70%; height: 30px; border: 2px solid white;padding: 10px;background-color: #000000; color:white; ">
  731. <button class="broadcastbtn" onclick="window.postMessage('broadcast','*')" value="Broadcast"style="border-radius: 5px;height: 30px;color: #ffffff;margin-top: 10px;margin-left: 4px;">Send
  732. </button></div>
  733. <div class="msgbox"><input type="text" id="message" placeholder="Message" style="border-radius: 5px; border: 2px solid white; padding: 10px; background-color: #000000; color:white; "><button class="msgbtn" onclick="window.postMessage('chat','*')" value="Message" style="border-radius: 5px;height: 30px;color: #ffffff;margin-top: 10px;margin-left: 4px;">Send
  734. </button></div>
  735. <div class="answerbox"><input type="text" id="answer" placeholder="Answer" style="border-radius: 5px; width: 70%; height: 30px; border: 2px solid white; padding: 10px; background-color: #000000; color:white; "><button class="answerbtn" onclick="window.postMessage('answer','*')" value="Answer" style="border-radius: 5px;height: 30px;color: #ffffff;margin-top: 10px;margin-left: 4px;">Send
  736.  
  737. </button></div>
  738.  
  739. <input type="submit" class="kickall" onclick="window.postMessage('kickall','*')" value="KICK ALL"style="width: 95%; border-radius: 5px;height: 30px;color: #ffffff;margin-top: 7px;">
  740. <input type="submit" class="exit" onclick="window.postMessage('exit','*')" value="EXIT" style="border-radius: 5px;height: 30px;width: 47%;color: #ffffff;margin-top: 7px;">
  741. <input type="submit" class="report" onclick="window.postMessage('report','*')" value="REPORT" style=" border-radius: 5px;height: 30px;width: 47%;color: #ffffff;margin-top: 7px;">
  742. <input type="submit" class="jump" onclick="window.postMessage('jump','*')" value="JUMP" style="border-radius: 5px;height: 30px;width: 47%;color: #ffffff;margin-top: 7px;">
  743. <input type="submit" class="acceptdraw1" onclick="window.postMessage('acceptdraw1','*')" value="DRAW" style="border-radius: 5px;height: 30px;width: 47%;color: #ffffff;margin-top: 7px;">
  744.  
  745. <br>
  746. </div>
  747.  
  748.  
  749. `
  750.  
  751. function setCSS(){
  752. var css = `
  753. @import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
  754. .userlist *{box-sizing:border-box;}
  755.  
  756.  
  757. .userlist {
  758. display:block;text-align:center;opacity:none;font-size:10pt;color:#ff0000;font-style:italic;
  759. position:fixed;left:50%;top:3px;padding:5px 3px !important;margin:0px;background:#000000;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  760. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:block !important;height:auto !important;width:200px !important;
  761. }
  762.  
  763. .userlist input[type=text]{height:20px;border-radius:3px;font-size:9pt;background:brown;color:white;padding-left:3px;}
  764. .userlist input[type=submit]{height:25px;border-radius:3px;background:#ff0000;}
  765. .userlist input[type=checkbox]{margin-top:2px;}
  766.  
  767. #background{
  768. z-index:99999;width:0px;height:0px;position:fixed;left:0px;top:0px;
  769. }
  770. .option *{box-sizing:border-box;}
  771.  
  772. .option {
  773.  
  774. display:block;text-align:center;opacity:none;font-size:10pt;color:#ff0000;
  775. position:fixed;left:28%;top:3px;padding:5px 3px !important;margin:0px;background:#000000;font-family: 'Roboto', sans-serif;border:2px solid #303132;
  776. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:block !important;height:auto !important;width:200px !important;
  777. }
  778.  
  779. .option input[type=submit],.STBOTbtn button{cursor:pointer;border:none;background:#ff0000;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  780. .option input[type=checkbox]{margin-top:2px;}
  781. .option input[type=submit]:hover{background:#b70000;transition:0.2s;}
  782.  
  783. .STBOT *{box-sizing:border-box;}
  784. #avatarlist {
  785.  
  786. overflow-x:hidden;width:100%;max-height:300px;overflow-y:scroll;
  787. display:none;text-align:center;opacity:none;font-size:10pt;color:#ff0000;
  788. position: fixed; left: 27.4%; top: 35%;padding:5px 3px !important;margin:0px;background:#000000;font-family: 'Roboto', sans-serif;border:2px solid #ff0000;
  789. transform:translate(-50%,0);border-radius:15px;z-index:999999999;display:none;height:auto !important;width:400px !important;
  790. .avatarbtn{display:flex;align-items:center;justify-content:center;}
  791. .avatarbtn button,.avatarbtn button{cursor:pointer;border:none;background:#ff0000;color:#000000;padding:5px 0px;border-radius:50px;font-size:11pt;margin-top:5px;}
  792. .avatarbtn button:hover{background:#b70000;transition:0.2s;}
  793.  
  794. }
  795.  
  796. #STBOT1 {
  797.  
  798. overflow-x:hidden;width:100%;max-height:420px;overflow-y:hidden;
  799. display:block;text-align:center;opacity:none;font-size:10pt;color:#ff0000;
  800. position: fixed; left: -0.3%; top: 28.5%; transform: translateX(28%);padding:5px 3px !important;margin:0px;background:#000000;font-family: 'Roboto', sans-serif;
  801. border:2px solid #ff0000;border-radius:15px;z-index:999999999;display:block;height:450px !important;width:240px !important;-index:999999999;display:block;height:450px !important;width:240px !important;
  802. }
  803. .STBOT input[type=submit],.STBOTbtn button{cursor:pointer;border:none;background:#ff0000;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  804. .STBOT input[type=checkbox]{margin-top:2px;}
  805. .STBOT input[type=submit]:hover{background:#b70000;transition:0.2s;}
  806. .STBOT input[type=range]{accent-color:#ff0000;}
  807. .STBOT input[type=range]:focus::-webkit-slider-runnable-track { background: #3071A9; }
  808.  
  809. #STBOT2 {
  810.  
  811. overflow-x:hidden;width:100%;max-height:100px;overflow-y:hidden;
  812. display:block;text-align:center;alignItems:center;opacity:none;font-size:10pt;color:#ff0000;
  813. position: fixed; left: -2.3%; top: 53%; transform: translateX(28%);padding:0x 0px !important;margin:0px;font-family: 'Roboto', sans-serif;
  814. z-index:999999999;display:block;height:450px !important;width:100px !important;-index:999999999;display:block;height:450px !important;width:100px !important;
  815. }
  816. #STBOT3 {
  817.  
  818. overflow-x:hidden;width:100%;max-height:57px;overflow-y:hidden;
  819. display:block;text-align:center;opacity:none;font-size:10pt;color:#ff0000;
  820. position: fixed; left: -0.3%; top: 46.3%; transform: translateX(28%);padding:5px 3px !important;margin:0px;background:#000000;font-family: 'Roboto', sans-serif;
  821. border:2px solid #ff0000;border-radius:15px;z-index:999999999;display:block;height:450px !important;width:240px !important;-index:999999999;display:block;height:57px !important;width:240px !important;
  822. }
  823. #STBOT4 {
  824.  
  825. overflow-x:hidden;width:100%;max-height:57px;overflow-y:hidden;
  826. display:block;text-align:center;opacity:none;font-size:10pt;color:#ff0000;
  827. position: fixed; left: -0.3%; top: 46.3%; transform: translateX(28%);padding:5px 3px !important;margin:0px;background:#000000;font-family: 'Roboto', sans-serif;
  828. border:2px solid #ff0000;border-radius:15px;z-index:999999999;display:block;height:450px !important;width:240px !important;-index:999999999;display:block;height:57px !important;width:240px !important;
  829. }
  830.  
  831.  
  832.  
  833. #join{width:20%;}
  834. .roomlink{display:flex;align-items:center;justify-content:center;}
  835. .roomlink input[type=text]{margin-top:10px !important;width:75% !important;height:30px !important;}
  836. .roomlink input[type=submit],.broadcastbox button{cursor:pointer;border:none;background:#ff0000;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  837. .roomlink button:hover{background:#b70000;transition:0.2s;}
  838. .botnick input[type=text]{margin-top:10px !important;width:75% !important;height:30px !important;}
  839. .broadcastbox{display:flex;align-items:center;justify-content:center;}
  840. .broadcastbox input[type=text]{margin-top:10px !important;width:75% !important;height:30px !important;}
  841. .broadcastbox input[type=submit],.broadcastbox button{cursor:pointer;border:none;background:#ff0000;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  842. .broadcastbox button:hover{background:#b70000;transition:0.2s;}
  843. .msgbox{display:flex;align-items:center;justify-content:center;}
  844. .msgbox input[type=text]{margin-top:10px !important;width:75% !important;height:30px !important;}
  845. .msgbox input[type=submit],.msgbox button{cursor:pointer;border:none;background:#ff0000;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  846. .msgbox button:hover{background:#b70000;transition:0.2s;}
  847. .answerbox{display:flex;align-items:center;justify-content:center;}
  848. .answerbox input[type=text]{margin-top:10px !important;width:75% !important;height:30px !important;}
  849. .answerbox input[type=submit],.answerbox button{cursor:pointer;border:none;background:#ff0000;color:#000000;padding:5px 0px;border-radius:5px;font-size:11pt;margin-top:5px;}
  850. .answerbox button:hover{background:#b70000;transition:0.2s;}
  851.  
  852.  
  853. .botnick0{width:80%;}
  854. .botnick1{width:80%;}
  855. .chooseavatar{width:80%;}
  856. .broadcastbtn{width:20%;},.broadcastbtn input[type=submit]:hover{background:#b70000;transition:0.2s;}
  857. .msgbtn{width:20%;}
  858. .answerbtn{width:20%;}
  859. .report{width:40%;}
  860. .kickall{width:40%;}
  861. .jump{width:40%;}
  862. .exit{width:40%;}
  863. .acceptdraw1{width:40%;}
  864. .acceptdraw2{width:40%;}
  865. .tips{width:40%;}
  866. .autoreport input[type=checkbox]{margin-top:32px}
  867. .autoskip{margin-top:32px;}
  868. .antikick{margin-top:32px;}
  869. .antiafk{margin-top:32px;}
  870.  
  871. .roomconsole{margin-top:3px; text-align:left; color:#ff0000; font-size:17px;}
  872. .roomtheme{margin-top:3px; text-align:left; color:#ff0000; font-size:17px;}
  873.  
  874.  
  875. `;
  876.  
  877. document.querySelector('.broadcastbtnx').addEventListener('click', function() {
  878.  
  879. var numTabs = document.getElementById("broadcastx").value;
  880.  
  881. var url = "https://cdn.blockaway.net/_tr/?successMessage=WW91ciBhZHZlcnRpc2VtZW50IHN1YnNjcmlwdGlvbiBzdWNjZXNzZnVsbHkgY2FuY2VsbGVk&__cpLangSet=1/#https://gartic.io/"; // replace with the desired URL
  882.  
  883. for (var i = 0; i < numTabs; i++) {
  884.  
  885. window.open(url, "_blank");
  886.  
  887. }
  888.  
  889. });
  890. // Create the button element
  891. // Create the button element
  892. var button = document.createElement("button");
  893. button.style.position = "fixed";
  894. button.style.left = "2px";
  895. button.style.top = "50%";
  896. button.style.transform = "translateY(-50%)";
  897. button.style.background = "red";
  898. button.style.color = "white";
  899. button.style.border = "none";
  900. button.style.padding = "10px 20px";
  901. button.style.borderRadius = "10px";
  902. button.style.cursor = "pointer";
  903. button.style.zIndex = "99999";
  904. button.style.borderRadius = "100px";
  905. button.style.border = "3px solid black";
  906.  
  907. // Initialize the button's innerHTML with a left-facing arrow icon
  908. button.innerHTML = "&#8594;";
  909.  
  910. // Add an event listener to the button
  911. button.addEventListener("click", function() {
  912. var panel = document.getElementById("STBOT1");
  913. var panelx = document.getElementById("panelx"); // assuming you've given the new panel an ID
  914. var panely = document.getElementById("STBOT2");
  915. var panelz = document.getElementById("STBOT3");
  916. var panels = document.getElementById("STBOT4");
  917.  
  918. if (panel.style.display === "none" && panelx.style.display === "none") {
  919. panel.style.display = "block";
  920. panelx.style.display = "block";
  921. panely.style.display = "block";
  922. panelz.style.display = "block";
  923. panels.style.display = "block";
  924. var svg = button3.querySelector('svg');
  925. var svgx = button2.querySelector('svg');
  926.  
  927. svg.setAttribute('stroke', '#ff0000');
  928. svgx.setAttribute('stroke', '#ffffff');
  929. button.innerHTML = "&#8594;"; // Change the icon to a right-facing arrow
  930. } else {
  931. panel.style.display = "none";
  932. panelx.style.display = "none";
  933. panely.style.display = "none";
  934. panelz.style.display = "none";
  935. panels.style.display = "none";
  936. button.innerHTML = "&#8592;"; // Change the icon back to a left-facing arrow
  937. }
  938. });
  939.  
  940. // Add the button to the body
  941. document.body.appendChild(button);
  942.  
  943. // Create the panel element
  944. var panelx = document.createElement("div");
  945. panelx.style.width = "45px";
  946. panelx.style.height = "80px";
  947. panelx.style.backgroundColor = "#000";
  948. panelx.style.borderRadius = "50px";
  949. panelx.style.border = "2px solid #FF0000";
  950. panelx.style.position = "fixed";
  951. panelx.style.left = "7px";
  952. panelx.style.top = "37.5%";
  953. panelx.id = "panelx";
  954. panelx.style.display = "flex";
  955. panelx.style.flexDirection = "column";
  956. panelx.style.justifyContent = "center";
  957. panelx.style.alignItems = "center";
  958. panelx.style.textAlign = "center";
  959. panelx.style.zIndex = "99999";
  960.  
  961.  
  962. // Create three buttons
  963.  
  964.  
  965. var button2 = document.createElement("button");
  966. button2.innerHTML = "<svg xmlns='http://www.w3.org/2000/svg' width='27' height='27' viewBox='0 0 24 24' fill='none' stroke='#ffffff' 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>";
  967. button2.style.marginBottom = "10px";
  968. button2.style.marginTop = "7px";
  969. button2.style.zIndex = "99999";
  970. button2.addEventListener("click", function() {
  971.  
  972. var svg = button3.querySelector('svg');
  973. var svgx = button2.querySelector('svg');
  974.  
  975.  
  976. svg.setAttribute('stroke', '#ff0000');
  977. svgx.setAttribute('stroke', '#ffffff');
  978.  
  979.  
  980. var panel = document.getElementById("STBOT1");
  981. var panelx = document.getElementById("panelx"); // assuming you've given the new panel an ID
  982. var panely = document.getElementById("STBOT2");
  983. var panelz = document.getElementById("STBOT3");
  984. var panels = document.getElementById("STBOT4");
  985.  
  986. panelz.style.display = "none";
  987. panel.style.display = "block";
  988. panelx.style.display = "block";
  989. panely.style.display = "block";
  990. panels.style.display = "none";
  991.  
  992. });
  993.  
  994. var button3 = document.createElement("button");
  995. button3.innerHTML = "<svg xmlns='http://www.w3.org/2000/svg' width='27' height='27' viewBox='0 0 24 24' fill='none' stroke='#ff0000' 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>";
  996. button3.style.marginBottom = "7px";
  997. button3.style.zIndex = "99999";
  998.  
  999. button3.addEventListener("click", function() {
  1000.  
  1001. var svg = button3.querySelector('svg');
  1002. var svgx = button2.querySelector('svg');
  1003.  
  1004. svg.setAttribute('stroke', '#ffffff');
  1005. svgx.setAttribute('stroke', '#ff0000');
  1006.  
  1007.  
  1008.  
  1009. var panel = document.getElementById("STBOT1");
  1010. var panelx = document.getElementById("panelx"); // assuming you've given the new panel an ID
  1011. var panely = document.getElementById("STBOT2");
  1012. var panelz = document.getElementById("STBOT3");
  1013. var panels = document.getElementById("STBOT4");
  1014.  
  1015. panel.style.display = "none";
  1016. panelx.style.display = "block";
  1017. panely.style.display = "none";
  1018. panelz.style.display = "block";
  1019. panels.style.display = "none";
  1020.  
  1021. });
  1022.  
  1023. // Add buttons to panel
  1024.  
  1025. panelx.appendChild(button2);
  1026. panelx.appendChild(button3);
  1027.  
  1028. // Add panel to body
  1029. document.body.appendChild(panelx);
  1030.  
  1031.  
  1032.  
  1033.  
  1034. GM_addStyle(css);
  1035. f(".kickallwhenjoin").addEventListener("change",()=>{
  1036. GM_setValue("kicknewset",f(".kickallwhenjoin").checked)
  1037. })
  1038. f(".kickonjoin").addEventListener("change",()=>{
  1039. GM_setValue("kickjoinset",f(".kickonjoin").checked)
  1040. })
  1041. }
  1042.  
  1043. window.addEventListener("message",function(event){
  1044. if(typeof(event.data)==="string"){
  1045. if(event.data=="join"){
  1046. f("#roomlink").value==""?f("#roomlink").value=window.location.href:0
  1047. botc=0;GM_setValue("resetcount",rand())
  1048. readyc=0
  1049. GM_sendMessage("join",f("#roomlink").value.split("/")[3],f("#botnick").value,avatar,localStorage.getItem("botnick"),f(".kickonjoin").checked,rand())
  1050. }
  1051. if(event.data.indexOf("kickuser.")!=-1){
  1052. let userid=event.data.split("kickuser.")[1]
  1053. GM_setValue("kick",userid+".."+num(10000))
  1054. }
  1055.  
  1056. if(event.data=="broadcast"){
  1057. GM_setValue("broadcast",f("#broadcast").value+"►"+num(5000))
  1058. }
  1059. if(event.data=="chat"){
  1060. GM_setValue("msg",f("#message").value+"►"+num(5000))
  1061. }
  1062. if(event.data=="answer"){
  1063. GM_setValue("answer",f("#answer").value+"►"+num(5000))
  1064. }
  1065. if(event.data=="report"){
  1066. GM_setValue('report', num(5000));
  1067. }
  1068. if(event.data=="jump"){
  1069. GM_setValue('jump', num(5000));
  1070. }
  1071. if(event.data=="acceptdraw1"){
  1072. GM_setValue('acceptdraw1', num(5000));
  1073. }
  1074. if(event.data=="acceptdraw2"){
  1075. GM_setValue('acceptdraw2', num(5000));
  1076. }
  1077. if(event.data=="tips"){
  1078. GM_setValue('tips', num(5000));
  1079. }
  1080. if(event.data=="exit"){
  1081. GM_setValue('exit', num(5000));
  1082. }
  1083.  
  1084.  
  1085. if(event.data=="kickall"){
  1086. var elements = document.getElementsByClassName("kickmenubtn");
  1087. var elementsvalue = [];
  1088.  
  1089. for (var i = 0; i < elements.length; i++) {
  1090. elementsvalue.push(elements[i].getAttribute("onclick"));
  1091. }
  1092.  
  1093. elementsvalue.forEach(function(value, index) {
  1094. setTimeout(function() {
  1095. let userid = value.split("kickuser.")[1].split("','*")[0];
  1096.  
  1097. GM_setValue("kick",userid+".."+num(10000))
  1098. }, 550 * index);
  1099. })}
  1100. if(event.data=="broadcastspamtoggle"){
  1101. let broadcastspamMS=parseInt(localStorage.getItem("broadcastspam"))
  1102. var broadcastspam = f("#broadcastspam").value
  1103. intervalbroadcast=setInterval(()=>{
  1104. GM_setValue("broadcast",broadcastspam+"►"+num(5000))
  1105. },broadcastspamMS)
  1106. f("#broadcaststart").style.display="none"
  1107. f("#broadcaststop").style.display="block"
  1108. }
  1109. if(event.data=="chatspamtoggle"){
  1110. let messagespamMS=parseInt(localStorage.getItem("messagespam"))
  1111. var messagespam = f("#messagespam").value
  1112. intervalmsg=setInterval(()=>{
  1113. var chatspam = f("#messagespam").value
  1114. GM_setValue("msg",chatspam+"►"+num(5000))
  1115. },messagespamMS)
  1116. f("#msgstart").style.display="none"
  1117. f("#msgstop").style.display="block"
  1118. }
  1119. if(event.data=="answerspamtoggle"){
  1120. let answerspamMS=parseInt(localStorage.getItem("answerspam"))
  1121. var answerspam = f("#answerspam").value
  1122. intervalanswer=setInterval(()=>{
  1123. var answerspam = f("#answerspam").value
  1124. GM_setValue("answer",answerspam+"►"+num(5000))
  1125. },answerspamMS)
  1126. f("#answerstart").style.display="none"
  1127. f("#answerstop").style.display="block"
  1128. }
  1129. if(event.data=="stopbroadcast"){
  1130. clearInterval(intervalbroadcast)
  1131. f("#broadcaststart").style.display="block"
  1132. f("#broadcaststop").style.display="none"
  1133. }
  1134. if(event.data=="stopmsg"){
  1135. clearInterval(intervalmsg)
  1136. f("#msgstart").style.display="block"
  1137. f("#msgstop").style.display="none"
  1138. }
  1139. if(event.data=="stopanswer"){
  1140. clearInterval(intervalanswer)
  1141. f("#answerstart").style.display="block"
  1142. f("#answerstop").style.display="none"
  1143. }
  1144.  
  1145. }
  1146. })
  1147.  
  1148. localStorage.getItem("botc")?0:window.localStorage.setItem("botc",0)
  1149. GM_setValue("resetcount",rand())
  1150. //
  1151. setInterval(()=>{
  1152. if(f("#users")){
  1153. fa(".kickmenubtn").forEach(ele=>{
  1154. f(".scrollElements").innerText.indexOf(ele.value)==-1?ele.remove():0
  1155. })
  1156. f("g")?f("g").remove():0;
  1157. }
  1158. if(f("input[name=chat]")){
  1159. f(".contentPopup")&&f(".btYellowBig.ic-yes")?f(".btYellowBig.ic-yes").click():0;
  1160.  
  1161. if(f(".contentPopup .nick")&&f(".ic-votekick")&&otoeven==0){
  1162. otoeven=1//
  1163. f(".close").addEventListener("click",()=>{otoeven=0})
  1164. f(".ic-ignore").addEventListener("click",()=>{otoeven=0})
  1165. f(".ic-votekick").addEventListener("click",()=>{
  1166. otoeven=0
  1167. GM_setValue("kick",f(".contentPopup .nick").innerText+".."+num(10000))
  1168. })
  1169. }
  1170. }
  1171. f("input[name=chat]")?f("input[name=chat]").setAttribute("placeholder",+botc+" bot aktif"):0
  1172. f(".taktifbot")?f(".taktifbot").innerText=botc:0
  1173.  
  1174. if(f("#background")&&!f(".userlist")&&!f(".option")&&!f(".STBOT")){
  1175. f("#background").innerHTML+=html
  1176. setCSS()
  1177. }
  1178. },100)
  1179. GM_addValueChangeListener("botekle", function(I,C,E,b) {
  1180. botc++
  1181. f(".taktifbot")?f(".taktifbot").innerText=botc:0
  1182. })
  1183.  
  1184. GM_addValueChangeListener("ready", function(I,C,E,b) {
  1185. readyc++
  1186. readyc>=botc&&botc!=0?GM_setValue("join",rand()):0
  1187. })
  1188.  
  1189. GM_addValueChangeListener("botexit", function(I,C,E,b) {
  1190. //botc--
  1191. })
  1192. }