您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Odalardaki kullanıcıları gösterir (AZE)
// ==UserScript== // @name A L Z E~WHOWHERE Gartic.io // @description Odalardaki kullanıcıları gösterir (AZE) // @namespace http://tampermonkey.net/ // @version 1.1 // @author A L Z E // @match *://gartic.io/* // @license MIT // @icon https://www.google.com/s2/favicons?sz=64&domain=gartic.io // @grant none // ==/UserScript== (function() { 'use strict'; window.addEventListener('load', function() { const panel = document.createElement('div'); panel.style.position = 'fixed'; panel.style.top = '10px'; panel.style.right = '10px'; panel.style.width = '400px'; panel.style.height = 'auto'; panel.style.backgroundColor = 'gris'; panel.style.color = 'black'; panel.style.padding = '15px'; panel.style.borderRadius = '8px'; panel.style.zIndex = '9999'; panel.style.maxHeight = '80vh'; panel.style.overflowY = 'auto'; panel.style.transition = 'all 0.3s ease-in-out'; if(localStorage.getItem('panelOpen') === 'true') { panel.style.display = 'block'; } else { panel.style.display = 'none'; } const toggleButton = document.createElement('button'); toggleButton.innerText = '▶'; toggleButton.style.backgroundColor = 'transparent'; toggleButton.style.border = 'none'; toggleButton.style.color = 'white'; toggleButton.style.fontSize = '20px'; toggleButton.style.cursor = 'pointer'; toggleButton.style.position = 'absolute'; toggleButton.style.top = '10px'; toggleButton.style.right = '10px'; toggleButton.style.zIndex = '10000'; toggleButton.onclick = () => { if (panel.style.display === 'none') { panel.style.display = 'block'; toggleButton.innerText = '▶'; localStorage.setItem('panelOpen', 'true'); } else { panel.style.display = 'none'; toggleButton.innerText = '◀'; localStorage.setItem('panelOpen', 'false'); } }; document.body.appendChild(toggleButton); document.body.appendChild(panel); const style = document.createElement('style'); style.textContent = ` @keyframes rgb-glow { 0% { box-shadow: 0 0 25px 10px blue; } 33% { box-shadow: 0 0 25px 10px red; } 66% { box-shadow: 0 0 25px 10px green; } 100% { box-shadow: 0 0 25px 10px blue; } } .rgb-led-effect { animation: rgb-glow 2s infinite; } @media (max-width: 768px) { .responsive-panel { width: 90%; right: 5%; padding: 10px; } .responsive-title { font-size: 20px; } } .responsive-panel { width: 90%; right: 5%; padding: 10px; } ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: #gris; } ::-webkit-scrollbar-thumb { background: #888; border-radius: 10px; } ::-webkit-scrollbar-thumb:hover { background: #555; } `; document.head.appendChild(style); panel.classList.add('rgb-led-effect', 'responsive-panel'); document.body.appendChild(panel); const alzeTitle = document.createElement('h2'); alzeTitle.innerText = '🅰 🅻 🆉 🅴'; alzeTitle.style.textAlign = 'center'; alzeTitle.style.marginBottom = '10px'; alzeTitle.style.color = 'white'; alzeTitle.classList.add('wihite'); panel.appendChild(alzeTitle); const title = document.createElement('div'); title.innerText = 'Çevrimiçi Kullanıcılar'; title.style.textAlign = 'center'; title.style.color = 'white'; panel.appendChild(title); const totalCountDisplay = document.createElement('div'); totalCountDisplay.style.marginTop = '10px'; panel.appendChild(totalCountDisplay); const fl = document.createElement('div'); fl.style.display = 'flex'; fl.style.flexDirection = 'column'; fl.style.gap = '10px'; panel.appendChild(fl); let roomIds = []; function f(lang) { fetch('https://gartic.io/req/list?search=&language[]=' + lang) .then(res => res.json()) .then(data => { const active = data.filter(room => room.quant > 0); if (active.length !== 0) { fl.innerHTML = ''; for (let k = 0; k < active.length; k++) { roomIds.push(active[k].id); const flc = document.createElement('div'); flc.style.backgroundColor = 'gris'; flc.style.padding = '10px'; flc.style.borderRadius = '8px'; flc.style.border = '1px solid #666'; fl.appendChild(flc); const roomTag = document.createElement('div'); roomTag.style.color = 'white'; roomTag.style.fontSize = '18px'; const roomSubjIcon = document.createElement('img'); roomSubjIcon.style.width = '50px'; roomSubjIcon.style.height = '50px'; const inRoomPlayers = document.createElement('p'); const users = document.createElement('div'); const viewBtn = document.createElement('button'); const joinBtn = document.createElement('button'); users.style.backgroundColor = 'gris'; users.style.color = 'white'; users.style.padding = '10px'; users.style.borderRadius = '8px'; users.style.marginTop = '10px'; users.classList.add('users'); roomTag.innerHTML = active[k].id.slice(1); roomSubjIcon.src = `https://gartic.io/static/images/subjects/${active[k].subject}.svg`; inRoomPlayers.innerHTML = `${active[k].quant} / ${active[k].max} ・ ${active[k].points} / ${active[k].goal}`; inRoomPlayers.style.color = 'white'; viewBtn.innerHTML = 'Otağı izlə'; viewBtn.style.backgroundColor = 'blue'; viewBtn.style.color = 'white'; viewBtn.style.border = 'none'; viewBtn.style.padding = '8px 15px'; viewBtn.style.borderRadius = '8px'; viewBtn.style.cursor = 'pointer'; viewBtn.onclick = () => window.open(`https://gartic.io/${active[k].code}/viewer`, '_blank'); joinBtn.innerHTML = 'Otağa daxil ol'; joinBtn.style.backgroundColor = 'red'; joinBtn.style.color = 'white'; joinBtn.style.border = 'none'; joinBtn.style.padding = '8px 15px'; joinBtn.style.borderRadius = '8px'; joinBtn.style.cursor = 'pointer'; joinBtn.onclick = () => window.open(`https://gartic.io/${active[k].code}`, '_blank'); fetch(`https://gartic.io/serverViewer?room=${active[k].code}`).then(rs => rs.text()).then(dt => { const s = dt.slice(15, 16); const ws = new WebSocket(`wss://server0${s}.gartic.io/socket.io/?EIO=3&transport=websocket`); ws.onopen = () => { ws.send(`42["12",{"v":20000,"sala":"${roomIds[k]}"}]`); }; ws.onmessage = (m) => { try { const d = JSON.parse(m.data.slice(2)); if (d[0] == 5) { users.innerHTML = ''; for (let i = 0; i < d[5].length; i++) { const userB = document.createElement('div'); userB.classList.add('user-info'); users.appendChild(userB); const userPp = document.createElement('img'); const userName = document.createElement('p'); userPp.src = d[5][i].foto ? d[5][i].foto : 'https://gartic.io/static/images/avatar/svg/0.svg'; userPp.style.width = '40px'; userPp.style.height = '40px'; userPp.style.borderRadius = '50%'; userName.innerHTML = d[5][i].nick; userName.style.color = 'white'; userB.append(userPp, userName); } } } catch (err) { console.error("Kullanıcılar alınırken hata oluştu: ", err); } }; }); flc.append(roomTag, roomSubjIcon, inRoomPlayers, users, viewBtn, joinBtn); } totalCountDisplay.textContent = `Toplam Oda: ${active.length}, Toplam Kullanıcı: ${active.reduce((acc, curr) => acc + curr.quant, 0)}`; panel.style.display = 'block'; totalCountDisplay.style.color = 'white'; } else { fl.innerHTML = '<h4>Seçilən dildə oda yok.</h4>'; totalCountDisplay.textContent = 'white'; } }); } f('23'); }); })();