TempMute *OLD*

Allows you to temporary mute people

  1. // ==UserScript==
  2. // @name TempMute *OLD*
  3. // @description Allows you to temporary mute people
  4. // @include http://www.kongregate.com/games/*/*
  5. // @exclude http://www.kongregate.com/games/*/*/*
  6. // @version 0.0.1.20160422201614
  7. // @namespace https://gf.qytechs.cn/users/32649
  8. // ==/UserScript==
  9.  
  10.  
  11. var interval = setInterval(test, 1000);
  12. var holodeck, dialogue, chatWindow;
  13. var mutes = new Object(), muteLink, muteContainer;
  14. var userRollover, userRolloverManager;
  15.  
  16. function test() {
  17. if(unsafeWindow.holodeck && unsafeWindow.holodeck._chat_window._active_room) {
  18. clearInterval(interval);
  19. run();
  20. }
  21. }
  22.  
  23. function run() {
  24. holodeck = unsafeWindow.holodeck;
  25. chatWindow = holodeck._chat_window;
  26. chatWindow.b36223e5f549a4fa = chatWindow.receivedRoomMessage;
  27. chatWindow.receivedRoomMessage = function(event) {
  28. var sender = event.data.user.username;
  29. if(isMuted(sender)) return;
  30. this.b36223e5f549a4fa(event);
  31. }
  32. holodeck.d3784239e3e5e589a = holodeck.receivedPrivateMessage;
  33. holodeck.receivedPrivateMessage = function(event) {
  34. var sender = event.data.from;
  35. if(isMuted(sender)) return;
  36. this.d3784239e3e5e589a(event);
  37. }
  38. holodeck.addChatCommand("tm", commandMute);
  39. initUnsafeWindow();
  40. initRollOver();
  41. }
  42.  
  43. function isMuted(user) {
  44. return (mutes[user] == true);
  45. }
  46.  
  47. function initRollOver() {
  48. userRollOver = document.getElementsByClassName("user_rollover_inner")[0];
  49. userRollOverManager = chatWindow._user_rollover_manager;
  50. muteContainer = document.createElement("p");
  51. muteContainer.className = "rollover_mute_link_holder";
  52. muteLink = document.createElement("a");
  53. muteLink.className = "rollover_mute_link";
  54. muteContainer.appendChild(muteLink);
  55. userRollOver.appendChild(muteContainer);
  56. userRollOverManager.d075df3701df25bd = userRollOverManager.show;
  57. userRollOverManager.show = function(user) {
  58. this.d075df3701df25bd(user);
  59. setTemporaryMuteLink(user.username);
  60. }
  61. }
  62.  
  63. function setTemporaryMuteLink(user) {
  64. if(isMuted(user)) {
  65. muteLink.innerHTML = "Temp. unmute";
  66. muteLink.href = "javascript:temp_unmute(\""+user+"\");void(0);";
  67. } else {
  68. muteLink.innerHTML = "Temporary mute";
  69. muteLink.href = "javascript:temp_mute(\""+user+"\");void(0);";
  70. }
  71. }
  72.  
  73. function initUnsafeWindow() {
  74. unsafeWindow.temp_mute = function(user) {
  75. mutes[user] = true;
  76. setTemporaryMuteLink(user);
  77. }
  78. unsafeWindow.temp_unmute = function(user) {
  79. delete mutes[user];
  80. setTemporaryMuteLink(user);
  81. }
  82. }
  83.  
  84. function commandMute(tm, input) {
  85. var usefulParts = /^\/tm (.+)$/.exec(input);
  86. if(usefulParts) {
  87. var user = usefulParts[1];
  88. if(isMuted(user)) {
  89. unsafeWindow.temp_unmute(user);
  90. tell(user+" is unmuted temporarily.");
  91. } else {
  92. unsafeWindow.temp_mute(user);
  93. tell(user+" is muted temporarily.");
  94. }
  95. } else {
  96. tell("Please define which user you want to mute.");
  97. }
  98. return false;
  99. }
  100.  
  101. function getDialogue() {
  102. return holodeck._chat_window._active_room._chat_dialogue;
  103. }
  104.  
  105. function tell(message) {
  106. getDialogue().displayMessage("Temp. mute", message, {"class":"whisper received_whisper"}, {"non_user":true});
  107. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址