Senpa+ V1

Some things

目前为 2024-06-30 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Senpa+ V1
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.0
  5. // @description Some things
  6. // @author Tek
  7. // @match https://senpa.io/web/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. function triggerEscKey() {
  15. var event = new KeyboardEvent('keydown', {
  16. bubbles: true,
  17. cancelable: true,
  18. keyCode: 27,
  19. key: 'Escape',
  20. code: 'Escape'
  21. });
  22. document.dispatchEvent(event);
  23. }
  24.  
  25. function checkRespawnWindow() {
  26. var respawnWindow = document.querySelector('.modal.scale-modal');
  27. if (respawnWindow && getComputedStyle(respawnWindow).opacity === '1') {
  28. console.log('Respawn window detected, triggering Esc key...');
  29. setTimeout(triggerEscKey, 5);
  30. }
  31. }
  32.  
  33. function removeAdsAndSocialSidebar() {
  34. var bottomAdDiv = document.getElementById("bottomAd");
  35. if (bottomAdDiv) {
  36. bottomAdDiv.parentNode.removeChild(bottomAdDiv);
  37. }
  38.  
  39. var adsBlockDivs = document.querySelectorAll(".ads-block-1");
  40. adsBlockDivs.forEach(function(adsBlockDiv) {
  41. adsBlockDiv.parentNode.removeChild(adsBlockDiv);
  42. });
  43.  
  44. var bannerDivs = document.querySelectorAll(".banner");
  45. bannerDivs.forEach(function(bannerDiv) {
  46. bannerDiv.parentNode.removeChild(bannerDiv);
  47. });
  48.  
  49. var advertisementInformerEndgameDivs = document.querySelectorAll(".advertisement-informer-endgame");
  50. advertisementInformerEndgameDivs.forEach(function(advertisementInformerEndgameDiv) {
  51. advertisementInformerEndgameDiv.parentNode.removeChild(advertisementInformerEndgameDiv);
  52. });
  53.  
  54. var senpaIoDiv = document.getElementById("senpa-io_300x250_3");
  55. if (senpaIoDiv) {
  56. senpaIoDiv.parentNode.removeChild(senpaIoDiv);
  57. }
  58.  
  59. var socialSidebarUl = document.getElementById("socialsidebar");
  60. if (socialSidebarUl) {
  61. socialSidebarUl.parentNode.removeChild(socialSidebarUl);
  62. }
  63.  
  64. var endGameDiv = document.getElementById("endGame");
  65. if (endGameDiv) {
  66. endGameDiv.remove();
  67. }
  68.  
  69. var roomStatsHudDiv = document.getElementById("room-stats-hud");
  70. if (roomStatsHudDiv) {
  71. roomStatsHudDiv.remove();
  72. }
  73.  
  74. var gameAdsBannerContainer = document.getElementById("gameadsbanner-container");
  75. if (gameAdsBannerContainer) {
  76. gameAdsBannerContainer.remove();
  77. }
  78.  
  79. var roomStatsDisplay = document.querySelector(".room-stats-display");
  80. if (roomStatsDisplay) {
  81. roomStatsDisplay.remove();
  82. }
  83.  
  84. var teamPlayersList = document.querySelector(".team-players-list");
  85. if (teamPlayersList) {
  86. teamPlayersList.remove();
  87. }
  88.  
  89. var playButton = document.getElementById('play');
  90. if (playButton) {
  91. playButton.style.backgroundColor = '#4CAF50';
  92. playButton.style.color = '#ffffff';
  93. playButton.style.border = '2px solid #4CAF50';
  94. playButton.style.padding = '10px 20px';
  95. playButton.style.fontSize = '16px';
  96. playButton.style.cursor = 'pointer';
  97. playButton.style.width = '150px';
  98. playButton.style.height = '200px';
  99. }
  100.  
  101. var spectateButton = document.getElementById('spectate');
  102. if (spectateButton) {
  103. spectateButton.style.backgroundColor = '#f44336';
  104. spectateButton.style.color = '#ffffff';
  105. spectateButton.style.border = '2px solid #f44336';
  106. spectateButton.style.padding = '10px 20px';
  107. spectateButton.style.fontSize = '16px';
  108. spectateButton.style.cursor = 'pointer';
  109. spectateButton.style.width = '150px';
  110. spectateButton.style.height = '200px';
  111. }
  112. }
  113.  
  114. setInterval(checkRespawnWindow, 300);
  115.  
  116. window.addEventListener('load', removeAdsAndSocialSidebar);
  117.  
  118. var observer = new MutationObserver(function(mutations) {
  119. mutations.forEach(function(mutation) {
  120. if (mutation.addedNodes.length) {
  121. removeAdsAndSocialSidebar();
  122. }
  123. });
  124. });
  125.  
  126. observer.observe(document.body, { childList: true, subtree: true });
  127.  
  128. })();