Пример #1
0
        public void should_forward_MessageHandled_to_active_replayers()
        {
            var messageReplayerMock = new Mock <IMessageReplayer>();

            MockContainer.GetMock <IMessageReplayerRepository>().Setup(x => x.GetActiveMessageReplayer(_targetPeerId)).Returns(messageReplayerMock.Object);

            Handler.Context = MessageContext.CreateOverride(_targetPeerId, null);
            var messageHandled = new MessageHandled(MessageId.NextId());

            Handler.Handle(messageHandled);

            messageReplayerMock.Verify(x => x.Handle(messageHandled));
        }
Пример #2
0
        public void should_publish_a_MessageHandled_event_after_a_persistent_message_is_processed_by_the_bus()
        {
            Transport.Start();
            using (MessageId.PauseIdGeneration())
            {
                var command = new FakeCommand(123).ToTransportMessage();
                InnerTransport.RaiseMessageReceived(new ReplayPhaseEnded(StartMessageReplayCommand.ReplayId).ToTransportMessage());
                InnerTransport.RaiseMessageReceived(command);

                Transport.AckMessage(command);

                var messageHandledMessage = new MessageHandled(command.Id).ToTransportMessage(Self);
                InnerTransport.ExpectExactly(new TransportMessageSent(messageHandledMessage, PersistencePeer));
            }
        }
        }//OnFriendRemove()

        //GLOBALIZED
        /// <summary>
        /// Called when user sends bot a ItemRemovedMsg
        /// </summary>
        /// <param name="ItemRemovedMsg">ItemRemovedMsg sent</param>
        /// <param name="type">type of ItemRemovedMsg</param>
        public override void OnMessage(string message, EChatEntryType type)
        {
            string BackupMessage = message;

            if (!message.StartsWith(".") && !message.StartsWith("enter"))
            {
                message = message.ToLower();//lowercase ItemRemovedMsg
            }//if (!ItemRemovedMsg.StartsWith(".") && !ItemRemovedMsg.StartsWith("enter"))

            string MessageHandled;//the sConversionResult of dealing with the ItemRemovedMsg

            #region AdminCommands

            // ADMIN commands
            if (IsAdmin)
            {
                MessageHandled = clsFunctions.DealWithAdminCommand(this.Bot, OtherSID, message);//Deal with the ItemRemovedMsg, or receive something back if the bot needs specific things to do.
                if (MessageHandled == String.Empty)
                {
                    return;//message was handled like it should of been, so stop code.
                }//if (MessageHandled == String.Empty)

                if (MessageHandled == clsFunctions.AdvertiseCMD)
                {
                    if (Bot.AdvertiseHandler.bStarted)
                    {
                        Bot.SteamFriends.SendChatMessage(OtherSID, type, "Stopping Advertisements...");
                        Bot.log.Success("Stopping Advertisements.");
                        Bot.AdvertiseHandler.Stop();
                    }
                    else
                    {
                        Bot.SteamFriends.SendChatMessage(OtherSID, type, "Starting Advertisements.");
                        Bot.log.Success("Starting Advertisements.");
                        Bot.AdvertiseHandler.Start();
                    }
                    return;
                }
                else if (MessageHandled == clsFunctions.MetalCountCMD)
                {
                    Bot.informHandler.Start();                                                               //count bots inventory
                    Bot.SteamFriends.SendChatMessage(OtherSID, type, Bot.informHandler.AdminStatsMessage()); //Send the results
                    return;                                                                                  //stop code.
                }// else if (MessageHandled == clsFunctions.MetalCountCMD)
            }//if (IsAdmin)

            #endregion AdminCommands

            #region Responces

            //since admin commands were not handled or user is not an admin, check regular commands.
            MessageHandled = clsFunctions.DealWithCommand(Bot, OtherSID, message);//Get command results

            if (MessageHandled == String.Empty)
            {
                return;//message was handled in clsFunctions, so we can stop the code.
            }//if (MessageHandled == String.Empty)
            else if (MessageHandled == clsFunctions.UserClearCMD)
            {
                Bot.SteamFriends.SendChatMessage(OtherSID, type, "You don't have any items reserved...");
                return;
            }//else if (MessageHandled == clsFunctions.UserClearCMD)
            else if (MessageHandled == clsFunctions.UserDonateCMD)
            {
                ChooseDonate = true; //user is donating
                return;              //stop code
            }//else if (MessageHandled == clsFunctions.UserDonateCMD)
            else if (MessageHandled.StartsWith(Bot.BackpackUrl) && MessageHandled.Length > Bot.BackpackUrl.Length)
            {
                Bot.SteamFriends.SendChatMessage(OtherSID, type, "You don't have to reserve items! Just invite me to trade and add keys or metal to get started.");
                return;
            }//else if (MessageHandled.StartsWith(Bot.BackpackUrl) && MessageHandled.Length > Bot.BackpackUrl.Length)

            else if (MessageHandled == clsFunctions.UserStatusCMD)
            {
                Bot.informHandler.Start();                                                              //Start counting inventory
                Bot.SteamFriends.SendChatMessage(OtherSID, type, Bot.informHandler.UserStatsMessage()); //Send the stats ItemRemovedMsg for users.
                return;
            }//else if (MessageHandled == clsFunctions.UserStatusCMD)

            else
            {
                if (MessageHandled != String.Empty)
                {
                    string MsgToSend = clsFunctions.DealWithGenericMessage(BackupMessage, OtherSID, Bot);//See if there is a response to the general ItemRemovedMsg
                    //Bot.SteamFriends.SendChatMessage(OtherSID, type, MsgToSend);//Send ItemRemovedMsg response
                    if (MsgToSend == "I'm sorry. I'm a nub bot and haven't been taught to respond to that =C")
                    {
                        try
                        {
                            string BotResponceMessage = chatterBotsession.Think(BackupMessage);
                            int    icount             = 0;
                            if (BotResponceMessage.Contains("<a href="))
                            {
                                BotResponceMessage = Regex.Replace(BotResponceMessage, @"<a\b[^>]+>([^<]*(?:(?!</a)<[^<]*)*)</a>", "$1");
                            }
                            if (BotResponceMessage.Contains("click here!"))
                            {
                                BotResponceMessage = "Uhhh what?";
                            }
                            if (BotResponceMessage.Contains("http://tinyurl.com/comskybot"))
                            {
                                BotResponceMessage = "By being yourself!";
                            }
                            if (BotResponceMessage.Contains("Please click here to help protect"))
                            {
                                BotResponceMessage = "Bye bye!";
                            }
                            if (BotResponceMessage.Contains("<br>"))
                            {
                                string[] splitVars = { "<br>" };
                                string[] newBotMsg = BotResponceMessage.Split(splitVars, StringSplitOptions.None);
                                BotResponceMessage = newBotMsg[0];
                            }
                            Bot.SteamFriends.SendChatMessage(OtherSID, type, BotResponceMessage);
                        }
                        catch (Exception ex)
                        {
                            Bot.SteamFriends.SendChatMessage(OtherSID, type, "What...?");
                        }
                        //Bot.log.Success("Send bot response message of: " + BotResponceMessage);
                    } //if (MsgToSend == "I'm sorry. I'm a nub bot and haven't been taught to respond to that =C")
                }     //if (MessageHandled != String.Empty)
            }         //else

            #endregion Responces
        }//OnMessage()