- // ==UserScript==
- // @name Bot panel
- // @name:tr made by frio
- // @name:az hello
- // @description Bot Panel for gartic.io
- // @description:tr Bot Panel for gartic.io (in Turkish)
- // @description:az Bot Panel for gartic.io (in Azerbaijani)
- // @version 1.1
- // @author frio
- // @license MIT
- // @match *://gartic.io/*
- // @match *://*/*?__cpo=aHR0cHM6Ly9nYXJ0aWMuaW8
- // @icon https://cdn.discordapp.com/attachments/1124451069204910161/1177654466523189360/MOSHED-2023-11-24-13-55-23.jpg?ex=65734b30&is=6560d630&hm=1b42ff32759ea222cc3b1eac33cb7852209358d47e44c560b10efe0f8f230752&
- // @grant GM_setValue
- // @grant GM_getValue
- // @grant GM_addValueChangeListener
- // @grant GM_addStyle
- // @namespace https://greasyfork.org/users/1220697
- // ==/UserScript==
-
- let m_s, a_i, m_a, m_z, m_b;
-
- const f = x => document.querySelector(x),
- sendMessage = (inputSelector, mesaj) => {
- a_i = document.querySelector(inputSelector);
- m_a = a_i.value;
- a_i.value = mesaj + m_a;
- m_z = new Event("input", { bubbles: !0 });
- m_z.simulated = !0;
- m_b = new Event("submit", { bubbles: !0 });
- m_b.simulated = !0;
- m_s = a_i._valueTracker;
- m_s && m_s.setValue(m_a);
- a_i.dispatchEvent(m_z);
- a_i.form.dispatchEvent(m_b);
- },
- rand = x => Math.floor(Math.random() * 1000000),
- GM_onMessage = (label, cb) => GM_addValueChangeListener(label, (_, __, data) => cb(...data)),
- GM_sendMessage = (label, ...data) => GM_setValue(label, data);
-
- GM_onMessage('ucur', (atılacak, _) => {
- atılacak && document.querySelectorAll(".nick").forEach(nick => {
- nick.innerText === atılacak && (nick.click(), f(".ic-votekick")?.click())
- })
- });
- GM_onMessage('msg', (i, w, _) => {
- sendMessage(i, w)
- })
- GM_onMessage('report', (_, __) => {
- let reportButton = document.evaluate('//*[@id="canvas"]/button', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
- if (reportButton) {
- reportButton.click();
- let confirmButton = document.evaluate('//*[@id="popUp"]/div[1]/div/div[3]/button[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
- if (confirmButton) {
- confirmButton.click();
- }
- }
- });
- GM_onMessage('exit', (_, __) => {
- let exitButton = document.evaluate('//*[@id="exit"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
- if (exitButton) {
- setTimeout(function () {
- exitButton.click();
- let confirmButton = document.evaluate('//*[@id="popUp"]/div[1]/div/div[3]/button[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
- if (confirmButton) {
- confirmButton.click();
- }
- }, 0); // Delay of 1 second
- }
- });
-
- // Additional code for kicking users by WebSocket message
- let thisisabigofthing = 0;
-
- function kickUserById(userId) {
- // Implement the logic to kick the user by sending a WebSocket message
- const kickMessage = '42[45,' + window.wsId + ',[' + userId + ',true]]';
- window.wsObj.send(kickMessage);
- }
-
- function kickUserByNickname(nickname) {
- const user = window.roomusers.find(user => user.nick === nickname);
- if (user) {
- kickUserById(user.id);
- }
- }
-
- // Listen for changes in the kickle value
- GM_addValueChangeListener("kickle", function(n, o, nv, r) {
- let username = nv.split("..")[0];
- usersinroom.forEach(x => {
- if (x.nick == username) {
- let userid = x.id;
- wss.forEach(ws => {
- x.nick.split("").join("") != "REDbot" ?
- typeof (userid) == "string" ?
- ws.ws.send('42[45,' + ws.id + ',["' + userid + '",true]]') :
- ws.ws.send('42[45,' + ws.id + ',[' + userid + ',true]]') :
- 0;
- });
- }
- });
- });
-
- window.onload = function () {
- const container = document.createElement("div");
- container.style = "width:120px;height:auto;z-index:99;position:fixed;top:10px;left:10px;display:flex;flex-direction:column;align-items:center;gap:5px;background-color:#333333;border:2px solid #FFD700;border-radius:10px;padding:5px;box-shadow:5px 5px 5px rgba(0,0,0,0.5);";
- document.body.appendChild(container);
-
- const answerInput = createInput("100px", "20px");
- container.appendChild(answerInput);
-
- const answer = createButton("100px", "25px", "Respost", () => {
- let message = answerInput.value;
- if (message) {
- GM_sendMessage('msg', 'input[name=answer]', message, rand());
- }
- });
- container.appendChild(answer);
-
- const chatInput = createInput("100px", "20px");
- container.appendChild(chatInput);
-
- const chat = createButton("100px", "25px", "Chat", () => {
- let message = chatInput.value;
- if (message) {
- GM_sendMessage('msg', 'input[name=chat]', message, rand());
- }
- });
- container.appendChild(chat);
-
- const exit = createButton("100px", "25px", "Exit", () => {
- GM_sendMessage('exit', rand(), rand());
- });
- container.appendChild(exit);
-
- const report = createButton("100px", "25px", "Report", () => {
- GM_sendMessage('report', rand(), rand());
- });
- container.appendChild(report);
-
- const kickInput = createInput("100px", "20px");
- container.appendChild(kickInput);
-
- const kick = createButton("100px", "25px", "Kick", () => {
- let user = kickInput.value;
- if (user) {
- GM_sendMessage('ucur', user, rand());
- }
- });
- container.appendChild(kick);
-
- const broadcastInput = createInput("100px", "20px");
- container.appendChild(broadcastInput);
-
- const broadcast = createButton("100px", "25px", "Broadcast", () => {
- let message = broadcastInput.value;
- if (message) {
- GM_sendMessage('msg', 'input[name=answer]', message, rand());
- GM_sendMessage('msg', 'input[name=chat]', message, rand());
- }
- });
- container.appendChild(broadcast);
-
- const roomConsole = document.createElement("div");
- roomConsole.style = "color:#FFD700;margin-top:5px;";
- container.appendChild(roomConsole);
-
- let currentGarticRoom;
-
- // Function to check if the current page is a gartic.io room
- function getGarticRoom() {
- let garticRegex = /gartic\.io\/(.+)$/;
- let match = window.location.href.match(garticRegex);
- if (match && match[1]) {
- return match[1];
- }
- return null;
- }
-
- // Function to update the current gartic.io room
- function updateCurrentRoom() {
- let room = getGarticRoom();
- if (room !== currentGarticRoom) {
- currentGarticRoom = room;
- roomConsole.innerText = `Current Room: ${currentGarticRoom || 'No room found'}`;
- }
- }
-
- // Update the room initially
- updateCurrentRoom();
-
- // Check for room changes every 5 seconds
- setInterval(updateCurrentRoom, 5000);
- };
-
- function createInput(width, height) {
- const input = document.createElement("input");
- input.style = `width:${width};height:${height};border-radius:5px;padding:5px;border:1px solid #FFD700;background-color:#333333;color:#FFD700;`;
- return input;
- }
-
- function createButton(width, height, text, clickHandler) {
- const button = document.createElement("button");
- button.style = `width:${width};height:${height};background-color:#FFD700;color:black;border-radius:5px;border:1px solid black;margin-top:5px;`;
- button.textContent = text;
- button.addEventListener("mousedown", clickHandler);
- return button;
- }