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); }
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); }
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); }
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); }
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); }
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; }
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; }