Iggy

Ignore Someone!

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey, το Greasemonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Userscripts για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

Θα χρειαστεί να εγκαταστήσετε μια επέκταση διαχείρισης κώδικα χρήστη για να εγκαταστήσετε αυτόν τον κώδικα.

(Έχω ήδη έναν διαχειριστή κώδικα χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Έχω ήδη έναν διαχειριστή στυλ χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

// ==UserScript==
// @name         Iggy
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Ignore Someone!
// @author       BadNintendo
// @match        https://www.shutdown.chat/*/*
// @icon         https://www.google.com/s2/favicons?domain=tampermonkey.net
// @grant        none
 // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// ==/UserScript==

(function () {
    'use strict';

// Define an object to store blocked nicknames and uuids
var blockedUsers = {};

// Define an array of blocked nicknames to ignore in chat
var blockedNicknames = ["GROVE_0F_WAR", "Example2"];

// Define a function to extract the nickname from the span element with class name fcuser
function getNickname(fcuserSpan) {
	if(!fcuserSpan) return;
  var nickname = fcuserSpan.innerText.replace(/[:\-]/g, '').trim(); // remove : and - and leading/trailing spaces
  return nickname;
}

// Define a function to handle the new <p> elements
function handleNewChatMessages() {
  var chatboxElems = document.getElementsByClassName('chatbox')[0].getElementsByTagName('p');
  for (var i = 0; i < chatboxElems.length; i++) {
    var chatElem = chatboxElems[i];
    if (!chatElem.handled) { // check if the element has been handled before
      chatElem.handled = true; // mark the element as handled
      var fcuserSpan = chatElem.getElementsByClassName('fcuser')[0];
      var nickname = getNickname(fcuserSpan);
      var uuid = fcuserSpan.dataset.uuid;
      if (blockedNicknames.includes(nickname) || blockedUsers[uuid]) { // check if the nickname or uuid is blocked
        chatElem.parentNode.removeChild(chatElem); // remove the message element
      } else {
        fcuserSpan.dataset.uuid = nickname; // update the data-uuid attribute with the nickname
        blockedUsers[uuid] = false; // initialize the blocked state of the uuid to false
        blockedNicknames.push(nickname); // add the nickname to the array of blocked nicknames
      }
    }
  }
}

// Call the handleNewChatMessages function on page load and whenever the chatbox is updated
handleNewChatMessages();
document.getElementsByClassName('chatbox')[0].addEventListener('DOMNodeInserted', handleNewChatMessages);


})();