Greasy Fork is available in English.

Iggy

Ignore Someone!

// ==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);


})();