/// <summary> /// Executes this command /// </summary> public override void Execute() { var sb = new List<string>(); var player = (Player)Actor; sb.Add("You save your life."); var messagingObject = new MessageCluster(sb, new string[] { }, new string[] { }, new string[] { }, new string[] { }); messagingObject.ExecuteMessaging(Actor, null, null, OriginLocation, null); var playerDataWrapper = new PlayerData(); //Save the player out playerDataWrapper.WriteOnePlayer(player); }
/// <summary> /// Executes this command /// </summary> public override void Execute() { var sb = new List<string>(); var player = (Player)Actor; sb.Add("You exit this reality."); var messagingObject = new MessageCluster(sb, new string[] { }, new string[] { }, new string[] { "$A$ exits this reality." }, new string[] { }); messagingObject.ExecuteMessaging(Actor, null, null, OriginLocation, null); var playerDataWrapper = new PlayerData(); //Save the player out playerDataWrapper.WriteOnePlayer(player); player.CloseConnection(); }
/// <summary> /// Validates the game account from the aspnet cookie /// </summary> /// <param name="handshake">the headers from the http request</param> private void ValidateUser(string handshake) { //Grab the user var authTicketValue = new Regex(".AspNet.ApplicationCookie=(.*)").Match(handshake).Groups[1].Value.Trim(); GetUserIDFromCookie(authTicketValue); var authedUser = UserManager.FindById(_userId); var currentCharacter = authedUser.GameAccount.Characters.FirstOrDefault(ch => ch.ID.Equals(authedUser.GameAccount.CurrentlySelectedCharacter)); if (currentCharacter == null) { Send("<p>No character selected</p>"); return; } //Try to see if they are already live _currentPlayer = LiveCache.Get<IPlayer>(currentCharacter.ID); //Check the backup if (_currentPlayer == null) { var playerDataWrapper = new PlayerData(); _currentPlayer = playerDataWrapper.RestorePlayer(currentCharacter.AccountHandle, currentCharacter.ID); } //else new them up if (_currentPlayer == null) _currentPlayer = new Player(currentCharacter); _currentPlayer.Descriptor = this; //We need to barf out to the connected client the welcome message. The client will only indicate connection has been established. var welcomeMessage = new List<String>(); welcomeMessage.Add(string.Format("Welcome to alpha phase twinMUD, {0}", currentCharacter.FullName())); welcomeMessage.Add("Please feel free to LOOK around."); _currentPlayer.WriteTo(welcomeMessage); //Send the look command in Interpret.Render("look", _currentPlayer); }
private static IEnumerable<ICharacter> EnsureAccountCharacters(string accountHandle) { //No shenanigans if(String.IsNullOrWhiteSpace(accountHandle)) return Enumerable.Empty<ICharacter>(); var chars = BackingCache.GetAll<ICharacter>().Where(ch => ch.AccountHandle.Equals(accountHandle, StringComparison.InvariantCultureIgnoreCase)); if(!chars.Any()) { var pData = new PlayerData(); pData.LoadAllCharactersForAccountToCache(accountHandle); } return chars; }