Пример #1
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(),
                                    "')"
                                }));
                            }
                        }
                    }
                }
            }
        }