public void EqualityIsTrueWhenObjectsAreSameValuesTest()
        {
            //Arrange
            var url1 = new SpeechType(SpeechTypeEnum.Conferences.ToString());
            var url2 = new SpeechType(SpeechTypeEnum.Conferences.ToString());

            Assert.Equal(url1, url2);
            Assert.True(url1.Equals(url2));
            Assert.True(url1.Equals((object)url2));
            Assert.Equal(url1.GetHashCode(), url2.GetHashCode());
        }
コード例 #2
0
        public void Talk(string Message, SpeechType Type, int Emoticon, string TargetUserName)
        {
            UnSuppress();

            MessageAmount++;

            if (!IsPet)
            {
                if (!GetRoom().GetRoomEngine().CheckPetCommand(GetClient(), Message))
                {
                    if ((DateTime.Now - LastMessage).TotalSeconds < 4)
                    {
                        if (MessageAmount > 6)
                        {
                            Response Flood = new Response(27);
                            Flood.AppendInt32(BrickEngine.GetConfigureFile().CallIntKey("flood.penalty.seconds"));
                            GetClient().SendResponse(Flood);
                            return;
                        }
                    }
                    else
                    {
                        MessageAmount = 0;
                    }
                }

                LastMessage = DateTime.Now;
            }

            if (Message.StartsWith(":"))
            {
                List<string> Params = Message.Split(' ').ToList();

                string RawCommand = Params[0];

                // Make sure the 'Command' is removed.
                Params.Remove(RawCommand);

                string CleanCommand = RawCommand.Substring(1);

                if (BrickEngine.GetCommandHandler().HandleCommand(CleanCommand, GetClient(), Params))
                {
                    return;
                }
            }

            if (!IsPet)
            {
                BrickEngine.GetChatlogHandler().AddChatlog(HabboId, RoomId, Message);
            }

            VirtualRoomUser Target = null;

            if (Type.Equals(SpeechType.Whisper) && TargetUserName.Length > 0)
            {
                if (TargetUserName.Length <= 0)
                {
                    return;
                }
                else
                {
                    int TargetHabboId = BrickEngine.GetUserReactor().GetId(TargetUserName);

                    Target = GetRoom().GetRoomEngine().GetUserByHabboId(TargetHabboId);
                }
            }

            int Header = 0;

            if (Type.Equals(SpeechType.Talk))
            {
                Header = 24;
            }
            else if (Type.Equals(SpeechType.Shout))
            {
                Header = 26;
            }
            else if (Type.Equals(SpeechType.Whisper))
            {
                Header = 25;
            }

            if (Type.Equals(SpeechType.Whisper))
            {
                if (Target != null)
                {

                    Response Response = new Response(Header);

                    Response.AppendInt32(VirtualId);
                    Response.AppendStringWithBreak(BrickEngine.GetWordFilterHandler().FilterMessage(Target.GetClient(), Message));
                    Response.AppendInt32(Emoticon);
                    Response.AppendBoolean(false);

                    // Check Receiver & Send to Receiver
                    if (!Target.GetClient().GetUser().HasIgnoredUser(HabboId))
                    {
                        Target.GetClient().SendResponse(Response);
                    }

                    // Make sure you won't forget yourself.
                    GetClient().SendResponse(Response);
                }
            }
            else
            {
                GetRoom().GetRoomEngine().BroadcastChatResponse(HabboId, VirtualId, Header, Emoticon, Message);
            }
        }