Connected Users

Shows the amount of connected users next to the amount of all users

  1. // ==UserScript==
  2. // @name Connected Users
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.1
  5. // @description Shows the amount of connected users next to the amount of all users
  6. // @author guildedbird & azti
  7. // @match https://pixelplace.io/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. let canvasTotal = 0
  16. function update() {
  17. let value1 = document.querySelector('#chat .online span.value');
  18. let value2 = document.querySelector('span.sub-value');
  19.  
  20. if (value1 && value2) {
  21. let titleText = value1.title;
  22. let matchUserTotal = titleText.match(/^\d+/);
  23. let matchCanvasTotal = titleText.match(/\s\d+/);
  24. if (matchCanvasTotal) canvasTotal = matchCanvasTotal
  25. if (matchUserTotal) {
  26. let result = matchUserTotal
  27. if (canvasTotal > 0) {
  28. result += ` & ${canvasTotal}`
  29. }
  30. value2.textContent = `(${result})`;
  31. value2.style.display = 'inline';
  32. value2.style.color = '#b3b3b3';
  33. }
  34. }
  35. }
  36.  
  37. update();
  38.  
  39. let observer = new MutationObserver(update);
  40. let chatElement = document.querySelector('#chat .online');
  41. if (chatElement) {
  42. observer.observe(chatElement, { childList: true, subtree: true, attributes: true });
  43. }
  44.  
  45. function updateCanvasTotal() {
  46. const playerList = document.querySelectorAll('.players-list .player')
  47. canvasTotal = 0
  48. playerList.forEach(() => {
  49. canvasTotal += 1
  50. })
  51. update()
  52. }
  53.  
  54. let observer2 = new MutationObserver(updateCanvasTotal)
  55. let playerListElement = document.querySelector('.players-list');
  56. if (playerListElement)
  57. observer2.observe(playerListElement, { childList: true, subtree: true, attributes: true });
  58. })();