Greasy Fork is available in English.

skribblio ignore

Used to block users in skribbl.io

  1. // ==UserScript==
  2. // @name skribblio ignore
  3. // @version 1.0.1
  4. // @match https://skribbl.io/*
  5. // @namespace https://greasyfork.org/users/169540
  6. // @description Used to block users in skribbl.io
  7. // ==/UserScript==
  8.  
  9. var playersCount = 1;
  10. var blackList = [];
  11. const players = document.getElementById('containerGamePlayers');
  12. const chatBox = document.getElementById('boxMessages');
  13. var object = {};
  14.  
  15. players.addEventListener('click',function(ele){
  16. if (ele.target.id == 'button') {
  17. const playerId = ele.target.parentNode.id
  18. if (ele.target.innerHTML == 'Block') {
  19. blackList.push(playerId);
  20. object[playerId] = setInterval(function(){
  21. if(ele.target.parentNode.getElementsByClassName('message')[0].style.display !== 'none') {
  22. ele.target.parentNode.getElementsByClassName('message')[0].style.display = 'none';
  23. chatBox.childNodes[chatBox.childNodes.length - 1].style.display = 'none';
  24. }
  25. if (document.getElementById(playerId) == null) {
  26. clearInterval(object[playerId]);
  27. blackList.splice(blackList.indexOf(playerId),1);
  28. }
  29. console.log('blocking' + playerId);
  30. },200);
  31. ele.target.innerHTML = 'Unblock';
  32. ele.target.parentNode.getElementsByClassName('name')[0].style.color = 'rgb(255,0,0)';
  33. ele.target.parentNode.getElementsByClassName('name')[0].style.textDecoration = 'line-through';
  34. } else {
  35. clearInterval(object[playerId]);
  36. blackList.splice(blackList.indexOf(playerId),1);
  37. ele.target.parentNode.getElementsByClassName('name')[0].removeAttribute('style');
  38. ele.target.innerHTML = 'Block';
  39. }
  40. }
  41. });
  42.  
  43. const check = setInterval(function () {
  44. if (players.childNodes.length !== playersCount) {
  45. playersCount = players.childNodes.length;
  46. const everyone = players.childNodes;
  47. for (key in everyone) {
  48. everyone[key].removeAttribute('style');
  49. if ((!everyone[key].innerHTML.includes('<button') && !everyone[key].innerHTML.includes('Block</button>'))) {
  50. if (everyone[key].getElementsByClassName('name')[0].style.color !== "rgb(0, 0, 255)") {
  51. var button = document.createElement('button');
  52. button.innerHTML = 'Block';
  53. button.setAttribute('id', 'button');
  54. everyone[key].append(button);
  55. if (everyone[key].getElementsByClassName('name')[0].innerHTML.length > 7) {
  56. everyone[key].getElementsByClassName('name')[0].innerHTML = everyone[key].getElementsByClassName('name')[0].innerHTML.substring(0,7);
  57. }
  58. button.style.display = 'fit';
  59. }
  60. }
  61. }
  62. }
  63. },1000);