Пример #1
0
        bool cmdBounce(VPServices app, Avatar who, string data)
        {
            app.GetUserSettings(who).Set(settingBounce, true);
            app.Bot.Avatars.Teleport(who.Session, app.World, who.Position);

            return Log.Info(Name, "Bounced user {0}", who.Name);
        }
Пример #2
0
        bool cmdToggle(VPServices app, Avatar who, string data, string key)
        {
            var    config = app.GetUserSettings(who);
            string msg    = null;
            bool   toggle = false;

            // Try to parse user given boolean; silently ignore on failure
            if ( data != "" )
            if ( !VPServices.TryParseBool(data, out toggle) )
                return false;

            config.Set(key, toggle);
            switch (key)
            {
                case settingGreetMe:
                    msg = toggle ? msgGreetMe : msgGreetMeNot;
                    break;

                case settingShowGreets:
                    msg = toggle ? msgShowGreets : msgHideGreets;
                    break;
            }

            app.Notify(who.Session, msg);
            return Log.Debug(Name, "Toggled greet-me for {0} to {1}", who.Name, toggle);
        }
Пример #3
0
        bool cmdClearHome(VPServices app, Avatar who, string data)
        {
            var  config = app.GetUserSettings(who);
            if ( config.Contains(settingHome) )
            {
                config.Remove(settingHome);
                app.Notify(who.Session, "Your home has been cleared to ground zero");
            }
            else
                app.Notify(who.Session, "You do not have a home location");

            return Log.Info(Name, "Cleared home for {0}", who.Name);
        }
Пример #4
0
        bool cmdGoHome(VPServices app, Avatar who, string data)
        {
            var home = app.GetUserSettings(who).Get(settingHome);
            var pos  = ( home == null )
                ? AvatarPosition.GroundZero
                : new AvatarPosition(home);

            app.Bot.Avatars.Teleport(who.Session, "", pos);
            return Log.Debug(Name, "Teleported {0} home at {1:f3}, {2:f3}, {3:f3}", who.Name, pos.X, pos.Y, pos.Z);
        }
Пример #5
0
        bool cmdSetHome(VPServices app, Avatar who, string data)
        {
            var pos = who.Position.ToString();
            app.GetUserSettings(who).Set(settingHome, pos);

            app.Notify(who.Session, "Set your home to {0:f3}, {1:f3}, {2:f3}" , who.X, who.Y, who.Z);
            return Log.Info(Name, "Set home for {0} at {1:f3}, {2:f3}, {3:f3}", who.Name, who.X, who.Y, who.Z);
        }
Пример #6
0
        bool cmdHealth(VPServices app, Avatar who, string data)
        {
            var config = app.GetUserSettings(who);
            var health = config.GetInt(keyHealth, 100);

            app.Notify(who.Session, msgHealth, health);
            return true;
        }
Пример #7
0
        bool cmdTogglePVP(VPServices app, Avatar who, string data)
        {
            var  config = app.GetUserSettings(who);
            bool toggle = false;
            DateTime lastSwitch;
            if ( config.Contains(keyLastSwitch) )
                lastSwitch = DateTime.Parse(config.Get(keyLastSwitch));
            else
                lastSwitch = DateTime.Now.AddSeconds(-60);

            // Reject if too soon
            if ( lastSwitch.SecondsToNow() < 60 )
            {
                var timeLeft = 60 - lastSwitch.SecondsToNow();
                app.Warn(who.Session, msgTooSoon, timeLeft);
                return true;
            }

            // Try to parse user given boolean; silently ignore on failure
            if ( data != "" )
            {
                if ( !VPServices.TryParseBool(data, out toggle) )
                    return false;
            }
            else
                toggle = !config.GetBoolean(keyMode, false);

            // Set new boolean, timeout and if new, health
            config.Set(keyMode, toggle);
            config.Set(keyLastSwitch, DateTime.Now);

            if ( !config.Contains(keyHealth) )
                config.Set(keyHealth, 100);

            var verb = toggle ? "enabled" : "disabled";
            app.NotifyAll(msgToggle, verb, who.Name);
            return true;
        }