public void SetUser(string user)
        {
            string setUser;

            DLRConsole.DebugWriteLine("<- SetUser="******" lastKnownUser="******"THEREFORE Same persom with still unknown name (make one up)");
                    setUser = lastKnownUser = UNKNOWN_PARTENER;
                }
                else
                {
                    DLRConsole.DebugWriteLine("THEREFORE New Person with unknown name");
                    setUser = lastKnownUser = user;
                }
            }
            else
            {
                if (AltBot.UnknowableName(lastKnownUser))
                {
                    DLRConsole.DebugWriteLine("THEREFORE Same Person now known name");
                    WorldSystemModule.RenameUser(lastKnownUser, user);
                    setUser = lastKnownUser = user;
                }
                else
                {
                    if (WorldSystemModule.SameUser(lastKnownUser, user))
                    {
                        DLRConsole.DebugWriteLine("THEREFORE Different Person with known name");
                        setUser       = user;
                        lastKnownUser = user;
                    }
                    else
                    {
                        DLRConsole.DebugWriteLine("THEREFORE New Person with known name");
                        setUser       = user;
                        lastKnownUser = user;
                    }
                }
            }
            user = setUser;
            DLRConsole.DebugWriteLine("-> SetUser="******" lastKnownUser=" + lastKnownUser);
            WorldSystemModule.SetDefaultUser(user);
        }
        private CmdResult Execute0(string[] args, UUID fromAgentID, OutputDelegate WriteLine)
        {
            string defaultAIMLUser;

            if (args.Length == 0)
            {
                return(Failure(Details));
            }
            string s         = args[0].ToLower();
            string joined    = String.Join(" ", args);
            bool   legacyCmd = " on off help reload ".Contains(" " + s + " ");

            if (s == "@user" || s == "@chuser")
            {
                defaultAIMLUser = String.Join(" ", args, 1, args.Length - 1);

                int lastIndex = defaultAIMLUser.IndexOf("-");
                if (lastIndex > 0)
                {
                    string oldUser = defaultAIMLUser.Substring(lastIndex + 1).Trim();
                    defaultAIMLUser = defaultAIMLUser.Substring(0, lastIndex - 1);
                }
                if (!IsBotLoaded)
                {
                    return(Failure("AIML Module Not ready yet"));
                }
                SetUser(defaultAIMLUser);
                if (s == "@chuser")
                {
                    bool res = WorldSystemModule.DoBotDirective(args, fromAgentID, WriteLine);
                    if (!res)
                    {
                        Failure("ERROR from AIML " + joined);
                    }
                    return(Success("REAL WORLD returned: " + joined));
                }
                return(Success("WorldObjects.SetDefaultUser = "******";"));
            }
            if (s == "@")
            {
                joined = joined.TrimStart(new[] { '@', ' ' });
                int lastIndex = joined.IndexOf("-");
                defaultAIMLUser = joined.Substring(0, lastIndex).Trim();
                s = "-";
                SetUser(defaultAIMLUser);
            }
            else if (s.StartsWith("@") || (args.Length == 1 && legacyCmd))
            {
                try
                {
                    if (!IsBotLoaded)
                    {
                        return(Failure("AIML Module Not ready yet"));
                    }
                    if (legacyCmd)
                    {
                        args[0] = "@" + s;
                    }
                    bool res = WorldSystemModule.DoBotDirective(args, fromAgentID, WriteLine);
                    if (!res)
                    {
                        Failure("WARN from AIML " + joined);
                    }
                    return(Success("aiml returned: " + joined));
                }
                catch (Exception e)
                {
                    return(Failure("" + e));
                }
            }
            if (s == "-")
            {
                int lastIndex = joined.IndexOf("-");
                joined = joined.Substring(lastIndex + 1).Trim();
            }

            double ratng;

            if (!IsBotLoaded)
            {
                return(Failure("AIML Module Not ready yet"));
            }
            var MyBot  = WorldSystemModule.MyBot;
            var myUser = MyBot.FindOrCreateUser(lastKnownUser);
            //lock (myUser.QueryLock)
            {
                myUser.CurrentRequest = null;
                String useOut = WorldSystemModule.AIMLInterpScored(joined, myUser, out ratng, RequestKind.ChatForString);
                double scored = ratng;
                WorldSystemModule.MyBot.writeToLog("REALWORLD AIMLTRACE! '" + joined + "' " + scored + " '" + useOut +
                                                   "'");
                if (String.IsNullOrEmpty(useOut))
                {
                    useOut = "Interesting.";
                }
                if (!useOut.Contains("menevalue="))
                {
                    useOut = string.Format("{0} (menevalue= {1:1} )", useOut.Replace(" _", " "), (int)scored);
                }
                return(Success(useOut));
            }
        }