private void StatusChangedCommand(IDictionary <string, object> command) { var target = command.Get(Constants.Arguments.Character); var status = command.Get(Constants.Arguments.Status).ToEnum <StatusType>(); var statusMessage = command.Get(Constants.Arguments.StatusMessage); var character = CharacterManager.Find(target); var statusChanged = false; var statusMessageChanged = false; var oldStatus = character.Status; if (character.Status != status) { statusChanged = true; character.Status = status; } if (character.StatusMessage != statusMessage) { statusMessageChanged = true; character.StatusMessage = statusMessage; } if (!statusChanged && !statusMessageChanged) { return; } if (status == StatusType.Idle) { return; } if (oldStatus == StatusType.Idle && status == StatusType.Online) { return; } var updateArgs = new CharacterUpdateModel.StatusChangedEventArgs { NewStatusType = statusChanged ? status : StatusType.Offline, NewStatusMessage = statusMessageChanged ? statusMessage : null }; Events.NewCharacterUpdate(character, updateArgs); }
private void StatusChangedCommand(IDictionary<string, object> command) { var character = command.Get(Constants.Arguments.Character); var status = command.Get(Constants.Arguments.Status).ToEnum<StatusType>(); var statusMessage = command.Get(Constants.Arguments.StatusMessage); var temp = CharacterManager.Find(character); var statusChanged = false; var statusMessageChanged = false; if (temp.Status != status) { statusChanged = true; temp.Status = status; } if (temp.StatusMessage != statusMessage) { statusMessageChanged = true; temp.StatusMessage = statusMessage; } // fixes a bug wherein webclients could send a do-nothing update if (!statusChanged && !statusMessageChanged) return; var args = new CharacterUpdateModel.StatusChangedEventArgs { NewStatusType = statusChanged ? status : StatusType.Offline, NewStatusMessage = statusMessageChanged ? statusMessage : null }; Events.GetEvent<NewUpdateEvent>().Publish(new CharacterUpdateModel(temp, args)); }
private void StatusChangedCommand(IDictionary<string, object> command) { var target = command.Get(Constants.Arguments.Character); var status = command.Get(Constants.Arguments.Status).ToEnum<StatusType>(); var statusMessage = command.Get(Constants.Arguments.StatusMessage); var character = CharacterManager.Find(target); var statusChanged = false; var statusMessageChanged = false; var oldStatus = character.Status; if (character.Status != status) { statusChanged = true; character.Status = status; } if (character.StatusMessage != statusMessage) { statusMessageChanged = true; character.StatusMessage = statusMessage; } if (!statusChanged && !statusMessageChanged) return; if (status == StatusType.Idle) return; if (oldStatus == StatusType.Idle && status == StatusType.Online) return; var updateArgs = new CharacterUpdateModel.StatusChangedEventArgs { NewStatusType = statusChanged ? status : StatusType.Offline, NewStatusMessage = statusMessageChanged ? statusMessage : null }; Events.NewCharacterUpdate(character, updateArgs); }