Aller au contenu
  • Veuillez ne pas poster de message pour but d'insulter, incitation à la haine, propos sexuels et tout autre qui ne respecte pas nos conditions générales !

[ANTIPUB] Presque infaillible


Symbiosis

Messages recommandés

Salut à tous, aujourd'hui je vous partage mon anti pub ! 

Tout d'abord rendez-vous dans la class WordFilterManager.cs et remplacer y tout le code suivant:

using System;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using Plus.Database.Interfaces;
using System.Globalization;
using Plus.HabboHotel.GameClients;
using Plus.HabboHotel.Rooms.Chat.Commands.Administrator;
namespace Plus.HabboHotel.Rooms.Chat.Filter
{
    public sealed class WordFilterManager
    {
        private List<WordFilter> _filteredWords;
        internal static string[] liendeshotels;
        public WordFilterManager()
        {
            this._filteredWords = new List<WordFilter>();
        }
        public void Init()
        {
            if (this._filteredWords.Count > 0)
                this._filteredWords.Clear();
            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT * FROM wordfilter");
                DataTable Table = dbClient.GetTable();
                liendeshotels = new string[Table.Rows.Count];
                int i = 0;
                foreach (DataRow dataRow in dbClient.GetTable().Rows)
                {
                    liendeshotels[i] = (dataRow[0].ToString());
                    i++;
                }
            }
        }
        public static bool AntiPUB(string PopFixedString)
        {
            PopFixedString = PopFixedString.Replace("Ή", "h");

            var bytes = Encoding.Default.GetBytes(PopFixedString);
            var text = Encoding.UTF8.GetString(bytes);
            string msgnoaccent = RemoveDiacritics(text);
            msgnoaccent = msgnoaccent.ToLower().Replace(" ", "").
            Replace(">", "").
            Replace("<", "").
            Replace("-", "").
            Replace("_", "").
            Replace("~", "").
            Replace("^", "").
            Replace("!", "").
            Replace(":", "").
            Replace(";", "").
            Replace("*", "").
            Replace("¨", "").
            Replace("^^", "").
            Replace("#", "").
            Replace("\"", "").
            Replace("(", "").
            Replace(")", "").
            Replace("\\", "").
            Replace("1", "").
            Replace("2", "").
            Replace("3", "").
            Replace("5", "").
            Replace("6", "").
            Replace("7", "").
            Replace("8", "").
            Replace("9", "").
            Replace("@", "").
            Replace("{", "").
            Replace("[", "").
            Replace("$", "").
            Replace("]", "").
            Replace("+", "").
            Replace(".", "").
            Replace("?", "h").
            Replace("/", "").
            Replace("?", "").
            Replace("¥", "").
            Replace("|", "").
            Replace("º", "").
            Replace("¬", "").
            Replace("«", "").
            Replace("»", "").
            Replace("‡", "").
            Replace("ª", "").
            Replace("•", "").
            Replace("Õ", "").
            Replace("Ã", "a").
            Replace("Ø", "o").
            Replace("Á", "a").
            Replace("˜", "").
            Replace("ß", "b").
            Replace("ð", "d").
            Replace("'", "").
            Replace("4", "a").
            Replace("+", "");
            msgnoaccent = Regex.Replace(msgnoaccent, "[^a-zA-Z0-9_]", "");
            string msgnoaccent2 = msgnoaccent;
            msgnoaccent = msgnoaccent.Replace("0", "o")
                .Replace("4", "a");
            msgnoaccent2 = msgnoaccent2.Replace("4", "")
                .Replace("0", "");
            if (liendeshotels.Any(msgnoaccent.Contains) || liendeshotels.Any(msgnoaccent2.Contains))
            {
                return true;
            }
            return false;
        }
        static string RemoveDiacritics(string stIn)
        {
            string stFormD = stIn.Normalize(NormalizationForm.FormD);
            StringBuilder sb = new StringBuilder();
            for (int ich = 0; ich < stFormD.Length; ich++)
            {
                UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]);
                if (uc != UnicodeCategory.NonSpacingMark)
                {
                    sb.Append(stFormD[ich]);
                }
            }
            return (sb.ToString().Normalize(NormalizationForm.FormC));
        }
        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 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;
        }
    }
}

Une fois ceci fait allez dans GameClient.cs

 

Et ajoutez

 internal byte PublicistaCount;

Dans 

    public class GameClient
    {
        ...
	internal byte PublicistaCount;

Puis sous

        public void StartConnection()
        {
            if (_connection == null)
                return;
            this.PingCount = 0;
            (_connection.parser as InitialPacketParser).PolicyRequest += PolicyRequest;
            (_connection.parser as InitialPacketParser).SwitchParserRequest += SwitchParserRequest;
            _connection.startPacketProcessing();
        }

Ajoutez

        internal void HandlePublicista(string Message, string joueur)
        {
            if (this.PublicistaCount <= 1)
            {

            }

            else if (this.PublicistaCount == 2)
            {
                this.SendPacket(new RoomNotificationComposer("Alerte pub !", "Ton message n'a pas été envoyé en public car il contient de la publicité pour un autre rétro serveur.<br><br>1/3 Avant le ban.", "pub", ""));
            }
            else if (this.PublicistaCount == 3)
            {
                this.SendPacket(new RoomNotificationComposer("Alerte pub !", "Ton message n'a pas été envoyé en public car il contient de la publicité pour un autre rétro serveur.<br><br>2/3 Avant le ban.", "pub", ""));
            }
            else if (this.PublicistaCount >= 4)
            {
                this.SendPacket(new RoomNotificationComposer("Alerte pub !", "Ton message n'a pas été envoyé en public car il contient de la publicité pour un autre rétro serveur.<br><br>3/3 Avant le ban.", "pub", ""));
                PlusEnvironment.GetGame().GetModerationManager().BanUser("System", ModerationBanType.USERNAME, joueur, "PUB", (PlusEnvironment.GetUnixTimestamp() + 78892200));
                GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(joueur);
                TargetClient.GetConnection().Dispose();
                return;
            }
        }

Maintenant dans WhisperEvent.cs

 

Sous

            string Params = Packet.PopString();
            string ToUser = Params.Split(' ')[0];
            string Message = Params.Substring(ToUser.Length + 1);
            int Colour = Packet.PopInt();

Ajoutez

            if (WordFilterManager.AntiPUB(Message))
            {
                if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool"))
                    Session.PublicistaCount++;
                Session.HandlePublicista(Message, Session.GetHabbo().Username);
                return;
            }

Dans HabboMessenger.cs

 

Sous

            if (!FriendshipExists(ToId))
            {
                GetClient().SendMessage(new InstantMessageErrorComposer(MessengerMessageErrors.YOUR_NOT_FRIENDS, ToId));
                return;
            }

Ajoutez

            if (WordFilterManager.AntiPUB(Message))
            {
                if (!GetClient().GetHabbo().GetPermissions().HasRight("mod_tool"))
                    GetClient().PublicistaCount++;
                GetClient().HandlePublicista(Message, GetClient().GetHabbo().Username);
                return;
            }

Dernier code à ajouter dans l'ému ! Allez dans RoomUser.cs
 

Sous

        public void OnChat(int Colour, string Message, bool Shout)
        {
            if (GetClient() == null || GetClient().GetHabbo() == null || mRoom == null)
                return;

            if (mRoom.GetWired().TriggerEvent(Items.Wired.WiredBoxType.TriggerUserSays, this, Message))
            {
                GetClient().SendWhisper(Message, GetClient().GetHabbo().Preferences.Ints["last.chat.bubble"]);
                return;
            }

Ajoutez

            if (WordFilterManager.AntiPUB(Message))
            {
                if (!GetClient().GetHabbo().GetPermissions().HasRight("mod_tool"))
                    GetClient().PublicistaCount++;
                GetClient().HandlePublicista(Message, GetClient().GetHabbo().Username);
                return;
            }

Maintenant côté db !

 

Supprimez votre table wordfilter


Ajoutez

 

/*
Navicat MySQL Data Transfer

Source Server         : 127.0.0.1
Source Server Version : 50711
Source Host           : localhost:3306
Source Database       : plusemu

Target Server Type    : MYSQL
Target Server Version : 50711
File Encoding         : 65001

Date: 2017-10-15 22:30:31
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `wordfilter`
-- ----------------------------
DROP TABLE IF EXISTS `wordfilter`;
CREATE TABLE `wordfilter` (
  `word` varchar(100) CHARACTER SET utf8 COLLATE utf8_swedish_ci NOT NULL,
  PRIMARY KEY (`word`),
  UNIQUE KEY `word` (`word`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of wordfilter
-- ----------------------------
INSERT INTO `wordfilter` VALUES ('abofr');
INSERT INTO `wordfilter` VALUES ('ado hotel');
INSERT INTO `wordfilter` VALUES ('ado-lite');
INSERT INTO `wordfilter` VALUES ('adors');
INSERT INTO `wordfilter` VALUES ('adow');
INSERT INTO `wordfilter` VALUES ('bbocity');
INSERT INTO `wordfilter` VALUES ('bobba');
INSERT INTO `wordfilter` VALUES ('bobbalive');
INSERT INTO `wordfilter` VALUES ('bobbaworld');
INSERT INTO `wordfilter` VALUES ('cokedev');
INSERT INTO `wordfilter` VALUES ('habbalha');
INSERT INTO `wordfilter` VALUES ('habbo et city');
INSERT INTO `wordfilter` VALUES ('habbo-alpha');
INSERT INTO `wordfilter` VALUES ('habboalpha');
INSERT INTO `wordfilter` VALUES ('habboc');
INSERT INTO `wordfilter` VALUES ('habbocity');
INSERT INTO `wordfilter` VALUES ('habbod');
INSERT INTO `wordfilter` VALUES ('habboetcity');
INSERT INTO `wordfilter` VALUES ('habbogo');
INSERT INTO `wordfilter` VALUES ('habbono');
INSERT INTO `wordfilter` VALUES ('habbosee');
INSERT INTO `wordfilter` VALUES ('habbosky');
INSERT INTO `wordfilter` VALUES ('habboteens');
INSERT INTO `wordfilter` VALUES ('habbow');
INSERT INTO `wordfilter` VALUES ('habbox');
INSERT INTO `wordfilter` VALUES ('habboz');
INSERT INTO `wordfilter` VALUES ('habbozone');
INSERT INTO `wordfilter` VALUES ('HABBQSITY');
INSERT INTO `wordfilter` VALUES ('habbux');
INSERT INTO `wordfilter` VALUES ('hbeta');
INSERT INTO `wordfilter` VALUES ('hobbu');
INSERT INTO `wordfilter` VALUES ('hubba');
INSERT INTO `wordfilter` VALUES ('hubox');
INSERT INTO `wordfilter` VALUES ('hzone');
INSERT INTO `wordfilter` VALUES ('jabb');
INSERT INTO `wordfilter` VALUES ('jabbo');
INSERT INTO `wordfilter` VALUES ('jabo');
INSERT INTO `wordfilter` VALUES ('jobbiz');
INSERT INTO `wordfilter` VALUES ('jxaxbxbxo');
INSERT INTO `wordfilter` VALUES ('kabbo');
INSERT INTO `wordfilter` VALUES ('kobba');
INSERT INTO `wordfilter` VALUES ('kobba.ml');
INSERT INTO `wordfilter` VALUES ('krabbo');
INSERT INTO `wordfilter` VALUES ('libbo');
INSERT INTO `wordfilter` VALUES ('Lybbo');
INSERT INTO `wordfilter` VALUES ('lyddo');
INSERT INTO `wordfilter` VALUES ('mabbo');
INSERT INTO `wordfilter` VALUES ('mibbo');
INSERT INTO `wordfilter` VALUES ('mojitocity');
INSERT INTO `wordfilter` VALUES ('wibbo');
INSERT INTO `wordfilter` VALUES ('wobba');

Bonne utilisation ;)

Si tu souhaites contribuer à ma motivation, aides-moi en réagissant à mes postes un +1 me ferait réellement plaisir !

 

Site web pour mon émulateur: https://habbo.site/

  • J'aime 1
Lien à poster
Partager sur d’autres sites

  • Modérateur

Merci pour tout ce travail!

PS : Je te conseille de faire une liste régulièrement à jour des nouveaux rétros consultable sur ce sujet.

~ Henri

Développeur WEB, NodeJS et C

 

Discord: Henri#003

Twitter: @UnrealHenri

Lien à poster
Partager sur d’autres sites

il y a 23 minutes, CptHenri a dit :

Merci pour tout ce travail!

PS : Je te conseille de faire une liste régulièrement à jour des nouveaux rétros consultable sur ce sujet.

Comment ça ?

Si tu souhaites contribuer à ma motivation, aides-moi en réagissant à mes postes un +1 me ferait réellement plaisir !

 

Site web pour mon émulateur: https://habbo.site/

Lien à poster
Partager sur d’autres sites

  • Modérateur
à l’instant, Symbiosis a dit :

Comment ça ?

Une liste

- Habbo
- Hcity
- ...

Avec les requête sql mais en incluant les nouveaux rétros

~ Henri

Développeur WEB, NodeJS et C

 

Discord: Henri#003

Twitter: @UnrealHenri

Lien à poster
Partager sur d’autres sites

à l’instant, CptHenri a dit :

Une liste


- Habbo
- Hcity
- ...

Avec les requête sql mais en incluant les nouveaux rétros

Pas tellement mon travail ça .. Je vais pas m'amuser à rajouter les nouveaux rétros existant ^^

Si tu souhaites contribuer à ma motivation, aides-moi en réagissant à mes postes un +1 me ferait réellement plaisir !

 

Site web pour mon émulateur: https://habbo.site/

  • Haha 1
Lien à poster
Partager sur d’autres sites

Rajoute tout ça :

Il ce peut que certains rétros écrits soient déja mit dans la liste.

 

Vabboh

Vabbo

Zubbo

Vbbo

Vabo

Vaboh

Habbibeta

habbeta

hablet

Ado-Lite

AdoLite

HLite

HabboFriend

HFriend

Babbo

Nopixel

Bobbah

HabboCola

Habbo-Cola

Hcola

hcity

bobbalive

habbobeta

habbo-beta

jabbo

habbix

habix

habbi

habboin

habboon

habbom

habom

hboom

 

Résultat de recherche d'images pour "alltta 20syl & mr j medeiros under"

Lien à poster
Partager sur d’autres sites

Il y a 4 heures, Tuesday a dit :

Rajoute tout ça :

Il ce peut que certains rétros écrits soient déja mit dans la liste.

 

Vabboh

Vabbo

Zubbo

Vbbo

Vabo

Vaboh

Habbibeta

habbeta

hablet

Ado-Lite

AdoLite

HLite

HabboFriend

HFriend

Babbo

Nopixel

Bobbah

HabboCola

Habbo-Cola

Hcola

hcity

bobbalive

habbobeta

habbo-beta

jabbo

habbix

habix

habbi

habboin

habboon

habbom

habom

hboom

 

Merci à toi mais bon le but c'est de me faire une liste que je pourrais mettre sans prise de tête pas une avec qui je devrais me battre aha

Si tu souhaites contribuer à ma motivation, aides-moi en réagissant à mes postes un +1 me ferait réellement plaisir !

 

Site web pour mon émulateur: https://habbo.site/

Lien à poster
Partager sur d’autres sites

Bien vu j'ai que ça à dire. <3 

I hear and I forget. I see and I remember. I do and I understand <3 

 

  • Tout le monde est un génie. Mais si tu juge la capacité d'un poisson rouge à grimper à un arbre il passera sa vie à croire qu'il est stupide. Albert Einstein.
     
     
Lien à poster
Partager sur d’autres sites

  • 2 semaines plus tard...
  • 2 semaines plus tard...
  • 8 mois plus tard...
Le 11/11/2017 à 06:40, Kinney a dit :

Comment pourrais-je informer le Staff lorsqu'un utilisateur a dit un mot filtré?

 

Désolé, mon français est mauvais, je viens du Brésil.

Pour avoir accès à cette image, merci de vous connecter.

 

 

Si tu souhaites contribuer à ma motivation, aides-moi en réagissant à mes postes un +1 me ferait réellement plaisir !

 

Site web pour mon émulateur: https://habbo.site/

Lien à poster
Partager sur d’autres sites

  • 2 mois plus tard...

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...