Advertisement
Guest User

Untitled

a guest
Jul 29th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.10 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4. using System.Data;
  5. using System.Collections.Generic;
  6.  
  7. using System.Text.RegularExpressions;
  8.  
  9. using Plus.Database.Interfaces;
  10. using Plus.Communication.Packets.Outgoing.Moderation;
  11.  
  12.  
  13. namespace Plus.HabboHotel.Rooms.Chat.Filter
  14. {
  15. public sealed class WordFilterManager
  16. {
  17. private List<WordFilter> _filteredWords;
  18.  
  19. public WordFilterManager()
  20. {
  21. this._filteredWords = new List<WordFilter>();
  22. this._adWords = new List<Ads>();
  23. }
  24.  
  25. public void Init()
  26. {
  27. if (this._filteredWords.Count > 0)
  28. this._filteredWords.Clear();
  29.  
  30. DataTable Data = null;
  31. using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
  32. {
  33. dbClient.SetQuery("SELECT * FROM `wordfilter`");
  34. Data = dbClient.getTable();
  35.  
  36. if (Data != null)
  37. {
  38. foreach (DataRow Row in Data.Rows)
  39. {
  40. this._filteredWords.Add(new WordFilter(Convert.ToString(Row["word"]), Convert.ToString(Row["replacement"]), PlusEnvironment.EnumToBool(Row["strict"].ToString()), PlusEnvironment.EnumToBool(Row["bannable"].ToString())));
  41. }
  42. }
  43. }
  44.  
  45. DataTable Data = null;
  46. using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
  47. {
  48. dbClient.SetQuery("SELECT * FROM wordfilter_blackwords");
  49. Data = dbClient.getTable();
  50.  
  51. if(Data != null)
  52. {
  53. foreach(DataRow Row in Data.Rows)
  54. {
  55. this._adWords.Add(new Ads(Convert.ToString(Row["word"])));
  56. }
  57. }
  58. }
  59. }
  60.  
  61. public string CheckMessage(string Message)
  62. {
  63. foreach (WordFilter Filter in this._filteredWords.ToList())
  64. {
  65. if (Message.ToLower().Contains(Filter.Word) && Filter.IsStrict || Message == Filter.Word)
  66. {
  67. Message = Regex.Replace(Message, Filter.Word, Filter.Replacement, RegexOptions.IgnoreCase);
  68. }
  69. else if (Message.ToLower().Contains(Filter.Word) && !Filter.IsStrict || Message == Filter.Word)
  70. {
  71. string[] Words = Message.Split(' ');
  72.  
  73. Message = "";
  74. foreach (string Word in Words.ToList())
  75. {
  76. if (Word.ToLower() == Filter.Word)
  77. Message += Filter.Replacement + " ";
  78. else
  79. Message += Word + " ";
  80. }
  81. }
  82. }
  83.  
  84. return Message.TrimEnd(' ');
  85. }
  86.  
  87. public bool CheckReclame(string Message)
  88. {
  89. foreach (Ads Ad in this._AdWords.ToList())
  90. {
  91. if (Message.ToLower().Contains(Ad.Word) || Message == Ad.Word)
  92. {
  93. Message = Regex.Replace(Message, Ad.Word, "Reclame", RegexOptions.IgnoreCase);
  94. return true;
  95. }
  96. }
  97.  
  98. return false;
  99. }
  100.  
  101. public bool CheckBannedWords(string Message)
  102. {
  103. Message = Message.Replace(" ", "").Replace(".", "").Replace("_", "").ToLower();
  104.  
  105. foreach (WordFilter Filter in this._filteredWords.ToList())
  106. {
  107. if (!Filter.IsBannable)
  108. continue;
  109.  
  110. if (Message.Contains(Filter.Word))
  111. return true;
  112. }
  113. return false;
  114. }
  115.  
  116. public bool IsFiltered(string Message)
  117. {
  118. foreach (WordFilter Filter in this._filteredWords.ToList())
  119. {
  120. if (Message.Contains(Filter.Word))
  121. return true;
  122. }
  123. return false;
  124. }
  125. }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement