DH2 Chat Filter

This script lets you filter out words you don't like in DH2 chat.

  1. // ==UserScript==
  2. // @name DH2 Chat Filter
  3. // @namespace siderislabs
  4. // @include http://*.diamondhunt.co/game.php
  5. // @version 1.1
  6. // @locale us_EN
  7. // @description:en This script lets you filter out words you don't like in DH2 chat.
  8. // @description This script lets you filter out words you don't like in DH2 chat.
  9. // ==/UserScript==
  10.  
  11. var sendBytesProxy = window.cBytes;
  12. var chatProxy = window.addToChatBox;
  13. var tmp = "";
  14. var filteredWords = [];
  15. var wordDetected;
  16. var isFound = 0;
  17. var override;
  18.  
  19. console.log("DH2 Chat Filter active.");
  20.  
  21. window.cBytes = function(e) {
  22. if(e.startsWith("CHAT=!addfilter")) {
  23. doAddFilter(e);
  24. }
  25. else if(e.startsWith("CHAT=!listfilters")) {
  26. doListFilters();
  27. }
  28. else if(e.startsWith("CHAT=!removefilter")) {
  29. doRemoveFilter(e);
  30. }
  31. else if(e.startsWith("CHAT=!help")) {
  32. doPrintHelp();
  33. }
  34. else {
  35. sendBytesProxy.apply(this, arguments);
  36. }
  37. }
  38.  
  39. window.addToChatBox = function(username, icon, tag, message, isPM) {
  40. for(i = 0; i < filteredWords.length; i++) {
  41. if(arguments[3].includes(filteredWords[i]) && override == 0) {
  42. wordDetected = 1;
  43. }
  44. }
  45. if(wordDetected == 1) {
  46. wordDetected = 0;
  47. return;
  48. }
  49. else {
  50. chatProxy.apply(this, arguments);
  51. }
  52. wordDetected = 0;
  53. }
  54.  
  55. doAddFilter = function(e) {
  56. tmp = e.replace("CHAT=", "");
  57. tmp = tmp.replace("!addfilter ", "");
  58. for(i = 0; i < filteredWords.length; i++) {
  59. if(tmp == filteredWords[i]) {
  60. isFound = 1;
  61. }
  62. }
  63. if(isFound == 0) {
  64. filteredWords.push(tmp);
  65. window.addToChatBox("placeholder", "0", "5", "Word successfully added to filter list.", "0");
  66. console.log(filteredWords);
  67. }
  68. else {
  69. window.addToChatBox("placeholder", "0", "5", "That word is already in your filter list.", "0");
  70. }
  71. }
  72.  
  73. doRemoveFilter = function(e) {
  74. tmp = e.replace("CHAT=", "");
  75. tmp = tmp.replace("!removefilter ", "");
  76. if(filteredWords.indexOf(tmp) != -1) {
  77. filteredWords.splice(filteredWords.indexOf(tmp), 1);
  78. window.addToChatBox("placeholder", "0", "5", "Word successfully removed from filter list.", "0");
  79. console.log(filteredWords);
  80. }
  81. else {
  82. window.addToChatBox("placeholder", "0", "5", "That word is not in your filter list.", "0");
  83. }
  84. }
  85.  
  86. doListFilters = function() {
  87. override = 1;
  88. window.addToChatBox("placeholder", "0", "5", "List of filtered words: " + filteredWords.toString(), "0");
  89. override = 0;
  90. }
  91.  
  92. doPrintHelp = function() {
  93. window.addToChatBox("placeholder", "0", "5", "!addfilter [word]: Adds a word to your filter list.", "0");
  94. window.addToChatBox("placeholder", "0", "5", "!listfilters: Lists the words you have filtered.", "0");
  95. window.addToChatBox("placeholder", "0", "5", "!removefilter [word]: Removes a world from your filter list.", "0");
  96. }