/// <summary> /// Called when the default topic is started /// </summary> /// <param name="context"></param> /// <returns></returns> public async Task <bool> StartTopic(AlarmBotContext context) { switch (context.Activity.Type) { case ActivityTypes.ConversationUpdate: { // greet when added to conversation var activity = context.Activity.AsConversationUpdateActivity(); if (activity.MembersAdded.Any(m => m.Id == activity.Recipient.Id)) { await DefaultResponses.ReplyWithGreeting(context); await DefaultResponses.ReplyWithHelp(context); this.Greeted = true; } } break; case ActivityTypes.Message: // greet on first message if we haven't already if (!Greeted) { await DefaultResponses.ReplyWithGreeting(context); this.Greeted = true; } return(await this.ContinueTopic(context)); } return(true); }
public Task <bool> ContinueTopic(MultiBotContext context) { switch (context.Activity.Type) { case ActivityTypes.Message: switch (context.RecognizedIntents.TopIntent?.Name) { case "demoCards": // switch to card demos context.ConversationState.ActiveTopic = new DemoCardsTopic(); return(context.ConversationState.ActiveTopic.StartTopic(context)); case "luisDemo": // switch to LUIS Demos context.ConversationState.ActiveTopic = new DemoLUISTopic(); return(context.ConversationState.ActiveTopic.StartTopic(context)); case "help": // show help DefaultResponses.ReplyWithHelp(context); return(Task.FromResult(true)); default: // show our confusion DefaultResponses.ReplyWithConfused(context); return(Task.FromResult(true)); } default: break; } return(Task.FromResult(true)); }
/// <summary> /// Method which is called when this topic is resumed after an interruption /// </summary> /// <param name="context"></param> /// <returns></returns> public async Task <bool> ResumeTopic(AlarmBotContext context) { // just prompt the user to ask what they want to do await DefaultResponses.ReplyWithResumeTopic(context); return(true); }
public Task <bool> StartTopic(MultiBotContext context) { switch (context.Activity.Type) { case ActivityTypes.ConversationUpdate: { // greet when added to conversation foreach (var newMember in context.Activity.MembersAdded) { if (newMember.Id != context.Activity.Recipient.Id) { DefaultResponses.ReplyWithGreeting(context); DefaultResponses.ReplyWithHelp(context); DefaultResponses.ReplyWithResumeTopic(context); this.Greeted = true; } } } break; case ActivityTypes.Message: // greet on first message if we haven't already if (!Greeted) { DefaultResponses.ReplyWithGreeting(context); this.Greeted = true; } return(this.ContinueTopic(context)); } return(Task.FromResult(true)); }
public OperationResponse OnOperationRequest(PeerBase peer, OperationRequest operationRequest, SendParameters sendParameters) { switch ((OperationCode)operationRequest.OperationCode) { case OperationCode.EnterWorld: return(DefaultResponses.CreateNegativeResponse(operationRequest, ReturnCode.OperationNotAllowed)); case OperationCode.Move: return(OperationMove(peer, operationRequest)); case OperationCode.CharacterAction: return(OperationCharacterAction(peer, operationRequest)); case OperationCode.StartAiLoop: AILooper.Instance.Start(); return(null); case OperationCode.ToggleAiLoop: AILooper.Instance.ToggleLoop(); return(null); default: return(DefaultResponses.CreateNegativeResponse(operationRequest, ReturnCode.OperationNotSupported)); } }
/// <summary> /// Called when the default topic is started /// </summary> /// <param name="context"></param> /// <returns></returns> public Task <bool> StartTopic(IBotContext context) { switch (context.Request.Type) { case ActivityTypes.ConversationUpdate: { // greet when added to conversation var activity = context.Request.AsConversationUpdateActivity(); if (activity.MembersAdded.Where(m => m.Id == activity.Recipient.Id).Any()) { DefaultResponses.ReplyWithGreeting(context); DefaultResponses.ReplyWithHelp(context); this.Greeted = true; } } break; case ActivityTypes.Message: // greet on first message if we haven't already if (!Greeted) { DefaultResponses.ReplyWithGreeting(context); this.Greeted = true; } return(this.ContinueTopic(context)); } return(Task.FromResult(true)); }
public OperationResponse OnOperationRequest(PeerBase peer, OperationRequest operationRequest, SendParameters sendParameters) { switch ((OperationCode)operationRequest.OperationCode) { case OperationCode.EnterWorld: return(OperationEnterWorld(peer, operationRequest, sendParameters)); default: return(DefaultResponses.CreateNegativeResponse(operationRequest, ReturnCode.OperationNotSupported)); } }
/// <summary> /// Continue the topic, method which is routed to while this topic is active /// </summary> /// <param name="context"></param> /// <returns></returns> public Task <bool> ContinueTopic(IBotContext context) { var activeTopic = (ITopic)context.State.ConversationProperties[ConversationProperties.ACTIVETOPIC]; switch (context.Request.Type) { case ActivityTypes.Message: switch (context.TopIntent?.Name) { case "addAlarm": // switch to addAlarm topic activeTopic = new AddAlarmTopic(); context.State.ConversationProperties[ConversationProperties.ACTIVETOPIC] = activeTopic; return(activeTopic.StartTopic(context)); case "showAlarms": // switch to show alarms topic activeTopic = new ShowAlarmsTopic(); context.State.ConversationProperties[ConversationProperties.ACTIVETOPIC] = activeTopic; return(activeTopic.StartTopic(context)); case "deleteAlarm": // switch to delete alarm topic activeTopic = new DeleteAlarmTopic(); context.State.ConversationProperties[ConversationProperties.ACTIVETOPIC] = activeTopic; return(activeTopic.StartTopic(context)); case "help": // show help DefaultResponses.ReplyWithHelp(context); return(Task.FromResult(true)); default: // show our confusion DefaultResponses.ReplyWithConfused(context); return(Task.FromResult(true)); } default: break; } return(Task.FromResult(true)); }
private OperationResponse OperationCharacterAction(PeerBase peer, OperationRequest request) { log.DebugFormat("Received character action from {0}", m_Peer.Name); var actionObject = m_ActionObjectFactory.CreateActionObject(m_Peer.Name, peer.Protocol, request); if (actionObject == null) { return(DefaultResponses.CreateNegativeResponse(request, m_ActionObjectFactory.LastCreationFailReason)); } if (!actionObject.CheckPrerequesite()) { log.InfoFormat("Prerequisite check failed."); return(DefaultResponses.CreateActionRequestResponse(request, ReturnCode.Declined)); } actionObject.StartAction(); return(DefaultResponses.CreateActionRequestResponse(request, ReturnCode.OK)); }
/// <summary> /// Continue the topic, method which is routed to while this topic is active /// </summary> /// <param name="context"></param> /// <returns></returns> public async Task <bool> ContinueTopic(AlarmBotContext context) { switch (context.Activity.Type) { case ActivityTypes.Message: switch (context.RecognizedIntents.TopIntent?.Name) { case "addAlarm": // switch to addAlarm topic context.ConversationState.ActiveTopic = new AddAlarmTopic(); return(await context.ConversationState.ActiveTopic.StartTopic(context)); case "showAlarms": // switch to show alarms topic context.ConversationState.ActiveTopic = new ShowAlarmsTopic(); return(await context.ConversationState.ActiveTopic.StartTopic(context)); case "deleteAlarm": // switch to delete alarm topic context.ConversationState.ActiveTopic = new DeleteAlarmTopic(); return(await context.ConversationState.ActiveTopic.StartTopic(context)); case "help": // show help await DefaultResponses.ReplyWithHelp(context); return(true); default: // show our confusion await DefaultResponses.ReplyWithConfused(context); return(true); } default: break; } return(true); }
/// <summary> /// Called when the default topic is started /// </summary> /// <param name="context"></param> /// <returns></returns> public async Task <bool> StartTopic(NumberBotContext context) { switch (context.Activity.Type) { case ActivityTypes.ConversationUpdate: { // greet when added to conversation var activity = context.Activity.AsConversationUpdateActivity(); if (activity.MembersAdded.Any(m => m.Id == activity.Recipient.Id)) { this.MinNumber = 1; this.MaxNumber = 100; Random rnd = new Random(); this.SecretNumber = rnd.Next(this.MinNumber, this.MaxNumber); context.UserState.SecretNumber = this.SecretNumber; await DefaultResponses.ReplyWithGreeting(context); await DefaultResponses.ReplyWithHelp(context); this.Greeted = true; } } break; case ActivityTypes.Message: // greet on first message if we haven't already if (!Greeted) { await DefaultResponses.ReplyWithGreeting(context); this.Greeted = true; } return(await this.ContinueTopic(context)); } return(true); }
public Task <bool> ResumeTopic(MultiBotContext context) { // just prompt the user to ask what they want to do DefaultResponses.ReplyWithResumeTopic(context); return(Task.FromResult(true)); }