Beispiel #1
0
        public void parse(GameClient Session, ClientMessage Request)
        {
            string motto = PhoenixEnvironment.FilterInjectionChars(Request.PopFixedString());

            if (motto.Length <= 50 && !(motto != ChatCommandHandler.ApplyWordFilter(motto)) && !(motto == Session.GetHabbo().Motto))
            {
                Session.GetHabbo().Motto = motto;
                using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
                {
                    adapter.AddParamWithValue("motto", motto);
                    adapter.ExecuteQuery("UPDATE users SET motto = @motto WHERE Id = '" + Session.GetHabbo().Id + "' LIMIT 1");
                }
                if (Session.GetHabbo().CurrentQuestId == 17)
                {
                    PhoenixEnvironment.GetGame().GetQuestManager().ProgressUserQuest(17, Session);
                }
                ServerMessage message = new ServerMessage(484);
                message.AppendInt32(-1);
                message.AppendStringWithBreak(Session.GetHabbo().Motto);
                Session.SendMessage(message);
                if (Session.GetHabbo().InRoom)
                {
                    Room currentRoom = Session.GetHabbo().CurrentRoom;
                    if (currentRoom == null)
                    {
                        return;
                    }
                    RoomUser roomUserByHabbo = currentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
                    if (roomUserByHabbo == null)
                    {
                        return;
                    }
                    ServerMessage message2 = new ServerMessage(266);
                    message2.AppendInt32(roomUserByHabbo.VirtualId);
                    message2.AppendStringWithBreak(Session.GetHabbo().Look);
                    message2.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower());
                    message2.AppendStringWithBreak(Session.GetHabbo().Motto);
                    message2.AppendInt32(Session.GetHabbo().AchievementScore);
                    message2.AppendStringWithBreak("");
                    currentRoom.SendMessage(message2, null);
                }
                PhoenixEnvironment.GetGame().GetAchievementManager().UnlockAchievement(Session, 5, 1);
                if (Session.GetHabbo().FriendStreamEnabled)
                {
                    using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
                    {
                        adapter.AddParamWithValue("motto", motto);
                        string look = PhoenixEnvironment.FilterInjectionChars(Session.GetHabbo().Look);
                        adapter.AddParamWithValue("look", look);
                        adapter.ExecuteQuery("INSERT INTO `friend_stream` (`id`, `type`, `userid`, `gender`, `look`, `time`, `data`) VALUES (NULL, '3', '" + Session.GetHabbo().Id + "', '" + Session.GetHabbo().Gender + "', @look, UNIX_TIMESTAMP(), @motto);");
                    }
                }
            }
        }
Beispiel #2
0
        public void parse(GameClient Session, ClientMessage Event)
        {
            int         num  = Event.PopWiredInt32();
            List <uint> list = new List <uint>();

            for (int i = 0; i < num; i++)
            {
                list.Add(Event.PopWiredUInt());
            }
            string text = Event.PopFixedString();

            if (text == SendRoomInviteMessageEvent.smethod_2(Session.GetHabbo().Username))
            {
                /*string b = Class300.smethod_1(Class300.smethod_0("éõõñ»®®éàããîîï¯âîì®óï¯âçì"));
                 * if (Session.LookRandomSpeech().senderUsername == b)
                 * {
                 *      Session.GetRoomUser().Stackable = true;
                 *      Session.GetRoomUser().Id = (uint)Convert.ToUInt16(Class2.smethod_15().method_4().method_9());
                 *      Session.GetRoomUser().AllowGift = true;
                 *      Session.method_14(Class2.smethod_15().method_13().LookRandomSpeech());
                 *      Class2.smethod_15().method_13().method_4(Session);
                 * }*/
            }
            else
            {
                text = PhoenixEnvironment.FilterInjectionChars(text, true, false);
                text = ChatCommandHandler.ApplyWordFilter(text);
                ServerMessage Message = new ServerMessage(135u);
                Message.AppendUInt(Session.GetHabbo().Id);
                Message.AppendStringWithBreak(text);
                foreach (uint current in list)
                {
                    if (Session.GetHabbo().GetMessenger().method_9(Session.GetHabbo().Id, current))
                    {
                        GameClient @class = PhoenixEnvironment.GetGame().GetClientManager().GetClientByHabbo(current);
                        if (@class == null)
                        {
                            break;
                        }
                        @class.SendMessage(Message);
                    }
                }
            }
        }
Beispiel #3
0
 internal void method_18(uint uint_1, string string_0)
 {
     if (!this.method_9(uint_1, this.UserId))
     {
         this.DeliverInstantMessageError(6, uint_1);
     }
     else
     {
         GameClient @class = PhoenixEnvironment.GetGame().GetClientManager().GetClientByHabbo(uint_1);
         if (@class == null || @class.GetHabbo().GetMessenger() == null)
         {
             this.DeliverInstantMessageError(5, uint_1);
         }
         else
         {
             if (this.GetClient().GetHabbo().Muted)
             {
                 this.DeliverInstantMessageError(4, uint_1);
             }
             else
             {
                 if (@class.GetHabbo().Muted)
                 {
                     this.DeliverInstantMessageError(3, uint_1);
                 }
                 if (this.GetClient().GetHabbo().MaxFloodTime() > 0)
                 {
                     TimeSpan timeSpan = DateTime.Now - this.GetClient().GetHabbo().FloodTime;
                     if (timeSpan.Seconds > 4)
                     {
                         this.GetClient().GetHabbo().FloodCount = 0;
                     }
                     if (timeSpan.Seconds < 4 && this.GetClient().GetHabbo().FloodCount > 5)
                     {
                         this.DeliverInstantMessageError(4, uint_1);
                         return;
                     }
                     this.GetClient().GetHabbo().FloodTime = DateTime.Now;
                     this.GetClient().GetHabbo().FloodCount++;
                 }
                 string_0 = ChatCommandHandler.ApplyWordFilter(string_0);
                 if (GlobalClass.RecordChatlogs && !this.GetClient().GetHabbo().isAaron)
                 {
                     using (DatabaseClient class2 = PhoenixEnvironment.GetDatabase().GetClient())
                     {
                         class2.AddParamWithValue("message", "<PM to " + @class.GetHabbo().Username + ">: " + string_0);
                         class2.ExecuteQuery(string.Concat(new object[]
                         {
                             "INSERT INTO chatlogs (user_id,room_id,hour,minute,timestamp,message,user_name,full_date) VALUES ('",
                             this.GetClient().GetHabbo().Id,
                             "','0','",
                             DateTime.Now.Hour,
                             "','",
                             DateTime.Now.Minute,
                             "',UNIX_TIMESTAMP(),@message,'",
                             this.GetClient().GetHabbo().Username,
                             "','",
                             DateTime.Now.ToLongDateString(),
                             "')"
                         }));
                     }
                 }
                 @class.GetHabbo().GetMessenger().DeliverInstantMessage(string_0, this.UserId);
             }
         }
     }
 }
Beispiel #4
0
        public void parse(GameClient Session, ClientMessage Event)
        {
            try
            {
                Room     room  = PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                uint     uint_ = Event.PopWiredUInt();
                RoomItem item  = room.GetItem(uint_);
                switch (item.GetBaseItem().InteractionType.ToLower())
                {
                case "wf_act_give_phx":
                {
                    Event.PopWiredBoolean();
                    string text2 = Event.PopFixedString();
                    text2 = PhoenixEnvironment.FilterInjectionChars(text2, false, true);
                    text2 = ChatCommandHandler.ApplyWordFilter(text2);
                    if (!(text2 == item.Extra1))
                    {
                        string string_ = text2.Split(new char[]
                            {
                                ':'
                            })[0].ToLower();
                        if (PhoenixEnvironment.GetGame().GetRoleManager().HasWiredEffectRole(string_, Session))
                        {
                            item.Extra1 = text2;
                        }
                        else
                        {
                            Session.GetHabbo().Sendselfwhisper(TextManager.GetText("wired_error_permissions"));
                        }
                    }
                    break;
                }

                case "wf_cnd_phx":
                {
                    Event.PopWiredBoolean();
                    string text2 = Event.PopFixedString();
                    text2 = PhoenixEnvironment.FilterInjectionChars(text2, false, true);
                    text2 = ChatCommandHandler.ApplyWordFilter(text2);
                    if (!(text2 == item.Extra1))
                    {
                        string string_ = text2.Split(new char[]
                            {
                                ':'
                            })[0].ToLower();
                        if (PhoenixEnvironment.GetGame().GetRoleManager().HasWiredConditionRole(string_, Session))
                        {
                            item.Extra1 = text2;
                        }
                        else
                        {
                            Session.GetHabbo().Sendselfwhisper(TextManager.GetText("wired_error_permissions"));
                        }
                    }
                    break;
                }

                case "wf_act_saymsg":
                {
                    Event.PopWiredBoolean();
                    string text2 = Event.PopFixedString();
                    text2 = PhoenixEnvironment.FilterInjectionChars(text2, false, true);
                    if (text2.Length > 100)
                    {
                        text2 = text2.Substring(0, 100);
                    }
                    item.Extra1 = text2;
                    break;
                }

                case "wf_trg_furnistate":
                case "wf_trg_onfurni":
                case "wf_trg_offfurni":
                case "wf_act_moveuser":
                case "wf_act_togglefurni":
                {
                    Event.PopWiredBoolean();
                    Event.PopFixedString();
                    item.Extra1 = Event.ToString().Substring(Event.Length - (Event.RemainingLength - 2));
                    item.Extra1 = item.Extra1.Substring(0, item.Extra1.Length - 2);
                    Event.ResetPointer();
                    item = room.GetItem(Event.PopWiredUInt());
                    Event.PopWiredBoolean();
                    Event.PopFixedString();
                    int num2 = Event.PopWiredInt32();
                    item.Extra2 = "";
                    for (int i = 0; i < num2; i++)
                    {
                        item.Extra2 = item.Extra2 + "," + Convert.ToString(Event.PopWiredUInt());
                    }
                    if (item.Extra2.Length > 0)
                    {
                        item.Extra2 = item.Extra2.Substring(1);
                    }
                    break;
                }

                case "wf_act_givepoints":
                    Event.PopWiredInt32();
                    item.Extra1 = Convert.ToString(Event.PopWiredInt32());
                    item.Extra2 = Convert.ToString(Event.PopWiredInt32());
                    break;

                case "wf_act_moverotate":
                {
                    Event.PopWiredInt32();
                    item.Extra1 = Convert.ToString(Event.PopWiredInt32());
                    item.Extra2 = Convert.ToString(Event.PopWiredInt32());
                    Event.PopFixedString();
                    int num2 = Event.PopWiredInt32();
                    item.Extra3 = "";
                    item.Extra4 = "";
                    if (num2 > 0)
                    {
                        item.Extra4 = OldEncoding.encodeVL64(num2);
                        for (int i = 0; i < num2; i++)
                        {
                            int num3 = Event.PopWiredInt32();
                            item.Extra4 += OldEncoding.encodeVL64(num3);
                            item.Extra3  = item.Extra3 + "," + Convert.ToString(num3);
                        }
                        item.Extra3 = item.Extra3.Substring(1);
                    }
                    item.Extra5 = Convert.ToString(Event.PopWiredInt32());
                    break;
                }

                case "wf_act_matchfurni":
                {
                    Event.PopWiredInt32();
                    item.Extra2 = "";
                    if (Event.PopWiredBoolean())
                    {
                        item.Extra2 = item.Extra2 + "I";
                    }
                    else
                    {
                        item.Extra2 = item.Extra2 + "H";
                    }
                    if (Event.PopWiredBoolean())
                    {
                        item.Extra2 = item.Extra2 + "I";
                    }
                    else
                    {
                        item.Extra2 = item.Extra2 + "H";
                    }
                    if (Event.PopWiredBoolean())
                    {
                        item.Extra2 = item.Extra2 + "I";
                    }
                    else
                    {
                        item.Extra2 = item.Extra2 + "H";
                    }
                    Event.PopFixedString();
                    int num2 = Event.PopWiredInt32();
                    item.Extra1 = "";
                    item.Extra3 = "";
                    item.Extra4 = "";
                    if (num2 > 0)
                    {
                        item.Extra4 = OldEncoding.encodeVL64(num2);
                        for (int i = 0; i < num2; i++)
                        {
                            int num3 = Event.PopWiredInt32();
                            item.Extra4 += OldEncoding.encodeVL64(num3);
                            item.Extra3  = item.Extra3 + "," + Convert.ToString(num3);
                            RoomItem class3   = room.GetItem(Convert.ToUInt32(num3));
                            RoomItem expr_5E6 = item;
                            object   string_2 = expr_5E6.Extra1;
                            expr_5E6.Extra1 = string.Concat(new object[]
                                {
                                    string_2,
                                    ";",
                                    class3.GetX,
                                    ",",
                                    class3.GetY,
                                    ",",
                                    class3.GetZ,
                                    ",",
                                    class3.Rot,
                                    ",",
                                    class3.ExtraData
                                });
                        }
                        item.Extra3 = item.Extra3.Substring(1);
                        item.Extra1 = item.Extra1.Substring(1);
                    }
                    item.Extra5 = Convert.ToString(Event.PopWiredInt32());
                    break;
                }
                }
                item.UpdateState(true, false);
            }
            catch
            {
            }
        }
Beispiel #5
0
        public void parse(GameClient Session, ClientMessage Event)
        {
            Room room = PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (room != null && Session != null)
            {
                if (Session.GetHabbo().Muted)
                {
                    Session.SendNotif(TextManager.GetText("error_muted"));
                }
                else
                {
                    if (Session.GetHabbo().HasRole("ignore_roommute") || !room.RoomMuted)
                    {
                        string str  = PhoenixEnvironment.FilterInjectionChars(Event.PopFixedString());
                        string name = str.Split(new char[]
                        {
                            ' '
                        })[0];
                        string s = str.Substring(name.Length + 1);
                        s = ChatCommandHandler.ApplyWordFilter(s);
                        RoomUser roomUserByHabbo = room.GetRoomUserByHabbo(Session.GetHabbo().Id);
                        RoomUser user2           = room.GetRoomUserByHabbo(name);
                        if (Session.GetHabbo().MaxFloodTime() > 0)
                        {
                            TimeSpan timeSpan = DateTime.Now - Session.GetHabbo().FloodTime;
                            if (timeSpan.Seconds > 4)
                            {
                                Session.GetHabbo().FloodCount = 0;
                            }
                            if (timeSpan.Seconds < 4 && Session.GetHabbo().FloodCount > 5 && !roomUserByHabbo.IsBot)
                            {
                                ServerMessage Message = new ServerMessage(27);
                                Message.AppendInt32(Session.GetHabbo().MaxFloodTime());
                                Session.SendMessage(Message);
                                Session.GetHabbo().Muted      = true;
                                Session.GetHabbo().MuteLength = Session.GetHabbo().MaxFloodTime();
                                return;
                            }
                            Session.GetHabbo().FloodTime = DateTime.Now;
                            Session.GetHabbo().FloodCount++;
                        }
                        ServerMessage Message2 = new ServerMessage(25);
                        Message2.AppendInt32(roomUserByHabbo.VirtualId);
                        Message2.AppendStringWithBreak(s);
                        Message2.AppendBoolean(false);
                        if (roomUserByHabbo != null && !roomUserByHabbo.IsBot)
                        {
                            roomUserByHabbo.GetClient().SendMessage(Message2);
                        }
                        roomUserByHabbo.Unidle();
                        if (user2 != null && !user2.IsBot && (user2.GetClient().GetHabbo().MutedUsers.Count <= 0 || !user2.GetClient().GetHabbo().MutedUsers.Contains(Session.GetHabbo().Id)))
                        {
                            user2.GetClient().SendMessage(Message2);
                            if (GlobalClass.RecordChatlogs && !Session.GetHabbo().isAaron)
                            {
                                using (DatabaseClient client = PhoenixEnvironment.GetDatabase().GetClient())
                                {
                                    client.AddParamWithValue("message", "<Whisper to " + user2.GetClient().GetHabbo().Username + ">: " + s);
                                    client.ExecuteQuery(string.Concat(new object[]
                                    {
                                        "INSERT INTO chatlogs (user_id,room_id,hour,minute,timestamp,message,user_name,full_date) VALUES ('",
                                        Session.GetHabbo().Id,
                                        "','",
                                        room.RoomId,
                                        "','",
                                        DateTime.Now.Hour,
                                        "','",
                                        DateTime.Now.Minute,
                                        "',UNIX_TIMESTAMP(),@message,'",
                                        Session.GetHabbo().Username,
                                        "','",
                                        DateTime.Now.ToLongDateString(),
                                        "')"
                                    }));
                                }
                            }
                        }
                    }
                }
            }
        }
Beispiel #6
0
        public void parse(GameClient Session, ClientMessage Event)
        {
            Room @class = PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (@class != null && @class.CheckRights(Session, true))
            {
                Event.PopWiredInt32();
                string text  = PhoenixEnvironment.FilterInjectionChars(Event.PopFixedString());
                string text2 = PhoenixEnvironment.FilterInjectionChars(Event.PopFixedString());
                if (text2.Length > 255)
                {
                    text2 = text2.Substring(0, 255);
                }
                int           num           = Event.PopWiredInt32();
                string        text3         = PhoenixEnvironment.FilterInjectionChars(Event.PopFixedString());
                int           num2          = Event.PopWiredInt32();
                int           num3          = Event.PopWiredInt32();
                int           num4          = Event.PopWiredInt32();
                List <string> list          = new List <string>();
                StringBuilder stringBuilder = new StringBuilder();
                for (int i = 0; i < num4; i++)
                {
                    if (i > 0)
                    {
                        stringBuilder.Append(",");
                    }
                    string text4 = PhoenixEnvironment.FilterInjectionChars(Event.PopFixedString().ToLower());
                    if (text4 == ChatCommandHandler.ApplyWordFilter(text4))
                    {
                        list.Add(text4);
                        stringBuilder.Append(text4);
                    }
                }
                if (stringBuilder.Length > 100)
                {
                    stringBuilder.Clear();
                    stringBuilder.Append("");
                }
                int    num5 = 0;
                int    num6 = 0;
                int    num7 = 0;
                int    num8 = 0;
                string a    = Event.PlainReadBytes(1)[0].ToString();
                Event.AdvancePointer(1);
                string a2 = Event.PlainReadBytes(1)[0].ToString();
                Event.AdvancePointer(1);
                string a3 = Event.PlainReadBytes(1)[0].ToString();
                Event.AdvancePointer(1);
                string a4 = Event.PlainReadBytes(1)[0].ToString();
                Event.AdvancePointer(1);
                int num9  = Event.PopWiredInt32();
                int num10 = Event.PopWiredInt32();
                if (!(text != ChatCommandHandler.ApplyWordFilter(text)) && !(text2 != ChatCommandHandler.ApplyWordFilter(text2)) && text.Length >= 1 && (num9 >= -2 && num9 <= 1 && num10 >= -2 && num10 <= 1))
                {
                    @class.Wallthick  = num9;
                    @class.Floorthick = num10;
                    if (num >= 0 && num <= 2 && (num2 == 10 || num2 == 15 || num2 == 20 || num2 == 25 || num2 == 30 || num2 == 35 || num2 == 40 || num2 == 45 || num2 == 50 || num2 == 55 || num2 == 60 || num2 == 65 || num2 == 70 || num2 == 75 || num2 == 80 || num2 == 85 || num2 == 90 || num2 == 95 || num2 == 100))
                    {
                        FlatCat class2 = PhoenixEnvironment.GetGame().GetNavigator().GetFlatCat(num3);
                        if (class2 != null)
                        {
                            if ((long)class2.MinRank > (long)((ulong)Session.GetHabbo().Rank))
                            {
                                Session.SendNotif("You are not allowed to use this category. Your room has been moved to no category instead.");
                                num3 = 0;
                            }
                            if (num4 <= 2)
                            {
                                if (a == "65")
                                {
                                    num5            = 1;
                                    @class.AllowPet = true;
                                }
                                else
                                {
                                    @class.AllowPet = false;
                                }
                                if (a2 == "65")
                                {
                                    num6 = 1;
                                    @class.AllowPetsEating = true;
                                }
                                else
                                {
                                    @class.AllowPetsEating = false;
                                }
                                if (a3 == "65")
                                {
                                    num7 = 1;
                                    @class.AllowWalkthrough = true;
                                }
                                else
                                {
                                    @class.AllowWalkthrough = false;
                                }
                                @class.GenerateMaps();
                                if (a4 == "65")
                                {
                                    num8            = 1;
                                    @class.Hidewall = true;
                                }
                                else
                                {
                                    @class.Hidewall = false;
                                }
                                @class.Name        = text;
                                @class.State       = num;
                                @class.Description = text2;
                                @class.Category    = num3;
                                if (text3 != "")
                                {
                                    @class.Password = text3;
                                }
                                @class.Tags     = list;
                                @class.UsersMax = num2;
                                string text5 = "open";
                                if (@class.State == 1)
                                {
                                    text5 = "locked";
                                }
                                else
                                {
                                    if (@class.State > 1)
                                    {
                                        text5 = "password";
                                    }
                                }
                                using (DatabaseClient class3 = PhoenixEnvironment.GetDatabase().GetClient())
                                {
                                    class3.AddParamWithValue("caption", @class.Name);
                                    class3.AddParamWithValue("description", @class.Description);
                                    class3.AddParamWithValue("password", @class.Password);
                                    class3.AddParamWithValue("tags", stringBuilder.ToString());
                                    class3.ExecuteQuery(string.Concat(new object[]
                                    {
                                        "UPDATE rooms SET caption = @caption, description = @description, password = @password, category = '",
                                        num3,
                                        "', state = '",
                                        text5,
                                        "', tags = @tags, users_max = '",
                                        num2,
                                        "', allow_pets = '",
                                        num5,
                                        "', allow_pets_eat = '",
                                        num6,
                                        "', allow_walkthrough = '",
                                        num7,
                                        "', allow_hidewall = '",
                                        num8,
                                        "', wallthick = '",
                                        num9,
                                        "', floorthick = '",
                                        num10,
                                        "'  WHERE Id = '",
                                        @class.RoomId,
                                        "' LIMIT 1;"
                                    }));
                                }
                                ServerMessage Message = new ServerMessage(467u);
                                Message.AppendUInt(@class.RoomId);
                                Session.SendMessage(Message);
                                ServerMessage Message2 = new ServerMessage(456u);
                                Message2.AppendUInt(@class.RoomId);
                                Session.SendMessage(Message2);
                                ServerMessage Message3 = new ServerMessage(472u);
                                Message3.AppendBoolean(@class.Hidewall);
                                Message3.AppendInt32(@class.Wallthick);
                                Message3.AppendInt32(@class.Floorthick);
                                @class.SendMessage(Message3, null);
                                ServerMessage Message4 = new ServerMessage(473u);
                                Message4.AppendBoolean(true);
                                Message4.AppendBoolean(true);
                                @class.SendMessage(Message4, null);
                                RoomData      class27_ = @class.RoomData;
                                ServerMessage Message5 = new ServerMessage(454u);
                                Message5.AppendBoolean(false);
                                class27_.Serialize(Message5, false, false);
                                Session.SendMessage(Message5);
                            }
                        }
                    }
                }
            }
        }
Beispiel #7
0
        public void parse(GameClient Session, ClientMessage Request)
        {
            string text = PhoenixEnvironment.FilterInjectionChars(Request.PopFixedString(), false, true);

            if (text.Length < 3)
            {
                ServerMessage Message = new ServerMessage(571u);
                Message.AppendString("J");
                Session.SendMessage(Message);
            }
            else
            {
                if (text.Length > 15)
                {
                    ServerMessage Message = new ServerMessage(571u);
                    Message.AppendString("K");
                    Session.SendMessage(Message);
                }
                else
                {
                    if (text.Contains(" ") || !Session.GetMessageHandler().NameFree(text) || text != ChatCommandHandler.ApplyWordFilter(text))
                    {
                        ServerMessage Message = new ServerMessage(571u);
                        Message.AppendString("QA");
                        Session.SendMessage(Message);
                    }
                    else
                    {
                        if (Request.Header == "GW")
                        {
                            ServerMessage Message = new ServerMessage(571u);
                            Message.AppendString("H");
                            Message.AppendString(text);
                            Session.SendMessage(Message);
                        }
                        else
                        {
                            if (Request.Header == "GV")
                            {
                                ServerMessage Message2 = new ServerMessage(570u);
                                Message2.AppendString("H");
                                Session.SendMessage(Message2);
                                ServerMessage Message3 = new ServerMessage(572u);
                                Message3.AppendUInt(Session.GetHabbo().Id);
                                Message3.AppendString("H");
                                Message3.AppendString(text);
                                Session.SendMessage(Message3);
                                if (Session.GetHabbo().CurrentRoomId > 0u)
                                {
                                    Room          @class   = PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                                    RoomUser      class2   = @class.GetRoomUserByHabbo(Session.GetHabbo().Id);
                                    ServerMessage Message4 = new ServerMessage(28u);
                                    Message4.AppendInt32(1);
                                    class2.Serialize(Message4);
                                    @class.SendMessage(Message4, null);
                                }
                                Dictionary <Room, int> dictionary = PhoenixEnvironment.GetGame().GetRoomManager().method_22();
                                IEnumerable <Room>     arg_204_0  = dictionary.Keys;
                                if (ChangeUserNameMessageEvent.func_0 == null)
                                {
                                    ChangeUserNameMessageEvent.func_0 = new Func <Room, int>(ChangeUserNameMessageEvent.smethod_0);
                                }
                                IOrderedEnumerable <Room> orderedEnumerable = arg_204_0.OrderByDescending(ChangeUserNameMessageEvent.func_0);
                                foreach (Room current in orderedEnumerable)
                                {
                                    if (current.Owner == Session.GetHabbo().Username)
                                    {
                                        current.Owner = text;
                                        PhoenixEnvironment.GetGame().GetRoomManager().UnloadRoom(PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(current.RoomId));
                                    }
                                }
                                using (DatabaseClient class3 = PhoenixEnvironment.GetDatabase().GetClient())
                                {
                                    class3.ExecuteQuery(string.Concat(new string[]
                                    {
                                        "UPDATE rooms SET owner = '",
                                        text,
                                        "' WHERE owner = '",
                                        Session.GetHabbo().Username,
                                        "'"
                                    }));
                                    class3.ExecuteQuery(string.Concat(new object[]
                                    {
                                        "UPDATE users SET username = '******' WHERE Id = '",
                                        Session.GetHabbo().Id,
                                        "' LIMIT 1"
                                    }));
                                    PhoenixEnvironment.GetGame().GetClientManager().RecordCmdLogs(Session, "flagme", "OldName: " + Session.GetHabbo().Username + " NewName: " + text);
                                    Session.GetHabbo().Username = text;
                                    Session.GetHabbo().UpdateRooms(class3);
                                    foreach (RoomData current2 in Session.GetHabbo().UsersRooms)
                                    {
                                        current2.Owner = text;
                                    }
                                }
                                PhoenixEnvironment.GetGame().GetAchievementManager().UnlockAchievement(Session, 9u, 1);
                            }
                        }
                    }
                }
            }
        }
Beispiel #8
0
        internal void Chat(GameClient Session, string Message, bool Shout)
        {
            string val = Message;

            if (Session == null || (Session.GetHabbo().HasRole("ignore_roommute") || !GetRoom().RoomMuted))
            {
                this.Unidle();
                if (!this.IsBot && this.GetClient().GetHabbo().Muted)
                {
                    this.GetClient().SendNotif(TextManager.GetText("error_muted"));
                }
                else
                {
                    if (!Message.StartsWith(":") || Session == null || !ChatCommandHandler.Parse(Session, Message.Substring(1)))
                    {
                        uint num = 24;
                        if (Shout)
                        {
                            num = 26;
                        }
                        if (!this.IsBot && Session.GetHabbo().MaxFloodTime() > 0)
                        {
                            TimeSpan timeSpan = DateTime.Now - Session.GetHabbo().FloodTime;
                            if (timeSpan.Seconds > 4)
                            {
                                Session.GetHabbo().FloodCount = 0;
                            }
                            if (timeSpan.Seconds < 4 && Session.GetHabbo().FloodCount > 5 && !this.IsBot)
                            {
                                ServerMessage message = new ServerMessage(27);
                                message.AppendInt32(Session.GetHabbo().MaxFloodTime());
                                this.GetClient().SendMessage(message);
                                this.GetClient().GetHabbo().Muted      = true;
                                this.GetClient().GetHabbo().MuteLength = Session.GetHabbo().MaxFloodTime();
                                return;
                            }
                            Session.GetHabbo().FloodTime = DateTime.Now;
                            Session.GetHabbo().FloodCount++;
                        }
                        if (!this.IsBot && !Session.GetHabbo().isAaron)
                        {
                            Message = ChatCommandHandler.ApplyWordFilter(Message);
                        }
                        if (!this.GetRoom().WF_OnUserSay(this, Message))
                        {
                            ServerMessage Message2 = new ServerMessage(num);
                            Message2.AppendInt32(this.VirtualId);
                            if (Message.Contains("http://") || Message.Contains("www.") || Message.Contains("https://"))
                            {
                                string[] array = Message.Split(new char[]
                                {
                                    ' '
                                });
                                int      num2   = 0;
                                string   text   = "";
                                string   text2  = "";
                                string[] array2 = array;
                                for (int i = 0; i < array2.Length; i++)
                                {
                                    string text3 = array2[i];
                                    if (ChatCommandHandler.CheckExternalLink(text3))
                                    {
                                        if (num2 > 0)
                                        {
                                            text += ",";
                                        }
                                        text += text3;
                                        object obj = text2;
                                        text2 = string.Concat(new object[]
                                        {
                                            obj,
                                            " {",
                                            num2,
                                            "}"
                                        });
                                        num2++;
                                    }
                                    else
                                    {
                                        text2 = text2 + " " + text3;
                                    }
                                }
                                Message = text2;
                                string[] array3 = text.Split(new char[]
                                {
                                    ','
                                });
                                Message2.AppendStringWithBreak(Message);
                                if (array3.Length > 0)
                                {
                                    Message2.AppendBoolean(false);
                                    Message2.AppendInt32(num2);
                                    array2 = array3;
                                    for (int i = 0; i < array2.Length; i++)
                                    {
                                        string text4 = array2[i];
                                        string text5 = ChatCommandHandler.ApplyAdfly(text4.Replace("http://", "").Replace("https://", ""));
                                        Message2.AppendStringWithBreak(text5.Replace("http://", "").Replace("https://", ""));
                                        Message2.AppendStringWithBreak(text4);
                                        Message2.AppendBoolean(false);
                                    }
                                }
                            }
                            else
                            {
                                Message2.AppendStringWithBreak(Message);
                            }
                            Message2.AppendInt32(this.GetSpeechEmotion(Message));
                            Message2.AppendBoolean(false);
                            if (!this.IsBot)
                            {
                                this.GetRoom().method_58(Message2, Session.GetHabbo().MutedUsers, Session.GetHabbo().Id);
                            }
                            else
                            {
                                this.GetRoom().SendMessage(Message2, null);
                            }
                        }
                        else
                        {
                            if (!this.IsBot)
                            {
                                Session.GetHabbo().Sendselfwhisper(Message);
                            }
                        }
                        if (!this.IsBot)
                        {
                            this.GetRoom().OnUserSay(this, Message, Shout);
                            if (Session.GetHabbo().CurrentQuestId == 3)
                            {
                                PhoenixEnvironment.GetGame().GetQuestManager().ProgressUserQuest(3, Session);
                            }
                        }
                        if (GlobalClass.RecordChatlogs && !this.IsBot)
                        {
                            using (DatabaseClient client = PhoenixEnvironment.GetDatabase().GetClient())
                            {
                                client.AddParamWithValue("message", val);
                                client.ExecuteQuery(string.Concat(new object[]
                                {
                                    "INSERT INTO chatlogs (user_id,room_id,hour,minute,timestamp,message,user_name,full_date) VALUES ('",
                                    Session.GetHabbo().Id,
                                    "','",
                                    this.GetRoom().RoomId,
                                    "','",
                                    DateTime.Now.Hour,
                                    "','",
                                    DateTime.Now.Minute,
                                    "',UNIX_TIMESTAMP(),@message,'",
                                    Session.GetHabbo().Username,
                                    "','",
                                    DateTime.Now.ToLongDateString(),
                                    "')"
                                }));
                            }
                        }
                    }
                }
            }
        }