Autoinvite Script

······················································Autoinvite ···························································

Versión del día 12/11/2023. Echa un vistazo a la versión más reciente.

// ==UserScript==
// @name        Autoinvite Script
// @namespace   https://github.com/
// @version     1.0.3
// @description ······················································Autoinvite ···························································
// @author      CryptoXSS
// @license MIT
// @match       *://gota.io/*
// @icon        https://i.imgur.com/ejxjYj4.gif
// @grant       none
// ==/UserScript==

console.clear();
console.log("\n//////////////////////\n////////////////////\n//////////////////\n////////////////\n//////////////\n////////////\n//////////\nCryptoXSS @ 2023 - 2023 Gota-io Script Autoinvite.\nCREATOR: CryptoXSS\nVERSION: 1.0.3");

var button = document.createElement('button');
button.innerHTML = 'Autoinvite';
button.style.backgroundColor = 'red';
button.style.borderRadius = '10px';
button.id = "btn-Invite";
button.className = "menu-invite";

var $div = document.createElement("div");
$div.className = "main-version";
$div.style.margin = "10px";
$div.appendChild(button);

document.body.appendChild($div);
button.style.position = 'mainTop';
button.style.top = '0px';
button.style.left = '650px';
button.style.zIndex = '9999';

var mainTop = document.getElementsByClassName('main-top')[0];
if (mainTop) {
   mainTop.appendChild($div);
} else {
   window.setTimeout(function () {
      var mainTop = document.getElementsByClassName('main-top')[0];
      if (mainTop) {
         mainTop.appendChild($div);
      }
   }, 100);
}



let interval;
const invitedPlayers = new Set(); // conjunto para guardar los jugadores invitados

button.addEventListener('click', function() {
  if (interval) {
    clearInterval(interval);
    interval = undefined;
    button.style.backgroundColor = 'red';
  } else {
    interval = setInterval(start, 1000);
  }
});

let inviteCounter = 0;

function start() {
  button.style.backgroundColor = 'green';
  const chatBody = document.getElementById('chat-body-0');
  if(!chatBody) return;
  const trElements = chatBody.querySelectorAll('tr');
  trElements.forEach(trElement => {
    const tdElement = trElement.querySelector('td');
    if(!tdElement) return;
    const message = tdElement.textContent;
    if (message && (message.includes("inv") || message.includes("𝙞𝙣𝙫") || message.includes("INV") || message.includes("Inv") || message.includes("iNV"))) {
        const chatNameElement = trElement.querySelector('.chat-name');
        if(!chatNameElement) return;
        const playerName = chatNameElement.textContent;
        if(!invitedPlayers.has(playerName)){
          invitedPlayers.add(playerName);
          chatNameElement.dispatchEvent(new MouseEvent("contextmenu"));
          const menuInviteElement = document.getElementById("menu-invite");
          if (menuInviteElement) {
              menuInviteElement.click();
            invitedPlayers.add(playerName);
             console.log("Se ha invitado a " + playerName);
              trElement.remove(); // removemos el tr del jugador invitado
          };

        };
    }
  });
  inviteCounter++;
  if (inviteCounter === 10) {
    invitedPlayers.clear();
    inviteCounter = 0;

  }
};