Beispiel #1
0
        public static ConversationLog GetConversationLog(User user1, User user2, bool createIfMissing)
        {
            // have to order the user names
            if (user1.UserID.CompareTo(user2.UserID) > 0)
            {
                User userMid = user2;
                user2 = user1;
                user1 = userMid;
            }

            string find = user1.UserID + "<->" + user2.UserID;

            lock (ConversationLogs)
            {
                ConversationLog tqh;
                if (!ConversationLogs.TryGetValue(find, out tqh))
                {
                    if (!createIfMissing)
                    {
                        return(null);
                    }
                    tqh = new ConversationLog(find, user1, user2);
                    ConversationLogs[find] = tqh;
                    return(tqh);
                }
                return(tqh);
            }
        }
        public Result HeardSomeoneSay1Sentence(bool saveResultsAsIfRealtime, bool useConversationDataAsIfRealtime, User theFactSpeaker, User toWhom, string message, Result result, ThreadControl control)
        {
            if (MyBot.useServitor)
            {
                return(null);
            }
            Logger.Warn("in TODO code");
            bool   toWhomNonNull        = toWhom != null;
            string whatListenerLastSaid = null;

            if (toWhomNonNull && useConversationDataAsIfRealtime)
            {
                whatListenerLastSaid = toWhom.JustSaid;
            }
            var       log    = ConversationLog.GetConversationLog(theFactSpeaker, toWhom, true);
            Utterance spoken = log.AddSpoken(this, theFactSpeaker, toWhom, message);
            Result    res    = HeardSome1Say11Sentence(saveResultsAsIfRealtime, useConversationDataAsIfRealtime, theFactSpeaker, toWhom, spoken, message, result, control);

            if (saveResultsAsIfRealtime)
            {
                if (toWhomNonNull)
                {
                    toWhom.That = message;
                }
                theFactSpeaker.JustSaid = message;
                if (toWhomNonNull)
                {
                    toWhom.JustSaid = whatListenerLastSaid;
                }
                return(res);
            }
            return(res);
        }