Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Text;
- using System.Data;
- using System.Collections.Generic;
- using System.Text.RegularExpressions;
- using Plus.Database.Interfaces;
- using Plus.Communication.Packets.Outgoing.Moderation;
- namespace Plus.HabboHotel.Rooms.Chat.Filter
- {
- public sealed class WordFilterManager
- {
- private List<WordFilter> _filteredWords;
- public WordFilterManager()
- {
- this._filteredWords = new List<WordFilter>();
- this._adWords = new List<Ads>();
- }
- public void Init()
- {
- if (this._filteredWords.Count > 0)
- this._filteredWords.Clear();
- DataTable Data = null;
- using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
- {
- dbClient.SetQuery("SELECT * FROM `wordfilter`");
- Data = dbClient.getTable();
- if (Data != null)
- {
- foreach (DataRow Row in Data.Rows)
- {
- this._filteredWords.Add(new WordFilter(Convert.ToString(Row["word"]), Convert.ToString(Row["replacement"]), PlusEnvironment.EnumToBool(Row["strict"].ToString()), PlusEnvironment.EnumToBool(Row["bannable"].ToString())));
- }
- }
- }
- DataTable Data = null;
- using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
- {
- dbClient.SetQuery("SELECT * FROM wordfilter_blackwords");
- Data = dbClient.getTable();
- if(Data != null)
- {
- foreach(DataRow Row in Data.Rows)
- {
- this._adWords.Add(new Ads(Convert.ToString(Row["word"])));
- }
- }
- }
- }
- public string CheckMessage(string Message)
- {
- foreach (WordFilter Filter in this._filteredWords.ToList())
- {
- if (Message.ToLower().Contains(Filter.Word) && Filter.IsStrict || Message == Filter.Word)
- {
- Message = Regex.Replace(Message, Filter.Word, Filter.Replacement, RegexOptions.IgnoreCase);
- }
- else if (Message.ToLower().Contains(Filter.Word) && !Filter.IsStrict || Message == Filter.Word)
- {
- string[] Words = Message.Split(' ');
- Message = "";
- foreach (string Word in Words.ToList())
- {
- if (Word.ToLower() == Filter.Word)
- Message += Filter.Replacement + " ";
- else
- Message += Word + " ";
- }
- }
- }
- return Message.TrimEnd(' ');
- }
- public bool CheckReclame(string Message)
- {
- foreach (Ads Ad in this._AdWords.ToList())
- {
- if (Message.ToLower().Contains(Ad.Word) || Message == Ad.Word)
- {
- Message = Regex.Replace(Message, Ad.Word, "Reclame", RegexOptions.IgnoreCase);
- return true;
- }
- }
- return false;
- }
- public bool CheckBannedWords(string Message)
- {
- Message = Message.Replace(" ", "").Replace(".", "").Replace("_", "").ToLower();
- foreach (WordFilter Filter in this._filteredWords.ToList())
- {
- if (!Filter.IsBannable)
- continue;
- if (Message.Contains(Filter.Word))
- return true;
- }
- return false;
- }
- public bool IsFiltered(string Message)
- {
- foreach (WordFilter Filter in this._filteredWords.ToList())
- {
- if (Message.Contains(Filter.Word))
- return true;
- }
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement