// ユーザのリアクション protected override async Task OnMessageReactionActivityAsync(ITurnContext <IMessageReactionActivity> turnContext, System.Threading.CancellationToken cancellationToken) { ChannelAccount user = turnContext.Activity.From; WordBook yourWb = WordBooks.getYourBook(user);//userのwordbookを取得 yourWb.receiveReaction(turnContext, cancellationToken, _clientFactory).Wait(); }
protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { var message = turnContext.Activity.RemoveRecipientMention();//message that mention deleted string[] mlist = message.Split(" "); ChannelAccount user = turnContext.Activity.From;//メッセージを送ってきたuser Debug.WriteLine(turnContext.Activity.From); if (mlist[0] == "word") { WordBook yourWb = WordBooks.getYourBook(user);//userのwordbookを取得 yourWb.receiveMessage(turnContext, cancellationToken, _clientFactory).Wait(); } else if (message.Contains("echo"))//echobot { await turnContext.SendActivityAsync(MessageFactory.Text(message, message), cancellationToken); } }
/// ////////////////////////////////////////////////////////////////////////// //wordコマンドに対していろいろするクラス word **** **** て感じのめっそっど public async Task receiveWordMessage(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken, IHttpClientFactory clientFactory) { updateContextToken(turnContext, cancellationToken, clientFactory);//各情報の更新 if (getMessageSplit().Length == 1) { reply("wordの後にスペース入れてそのあとにメッセージを入れてほしいな").Wait(); } else if (getMessageSplit()[1] == "pic") { //画像入力 addWordFromPic().Wait(); //画像受け取ったらtemp単語を登録 } else if (getMessageSplit()[1] == "ranking") { int i = WordBooks.getRanking(lc.getLevel(), lc.getExp()); reply("あなたは世界ランキング" + i + "位です").Wait(); } else if (getMessageSplit()[1] == "status") { reply(lc.getInfo()).Wait(); } else if (getMessageSplit()[1] == "list") { try { if (getMessageSplit()[2] == "word")//temp一覧を表示 { reply(words.indexWords()).Wait(); } else if (getMessageSplit()[2] == "temp") { foreach (Word w in words.getTempWords())//words一覧を表示 { reply(w.ToString()).Wait(); } } } catch { reply("存在しないコマンドです。helpコマンドで確認してください").Wait(); } } else if (getMessageSplit()[1] == "check") //picのチェック { checkAWordFromTemp().Wait(); //tempワードから一つ取り出して単語帳に追加するかユーザに問う } else if (getMessageSplit()[1] == "test") { testWord().Wait(); } else if (getMessageSplit()[1] == "ans") { if (getState() == "asking") { try//ユーザが答えを指定してきたとき { String ans = getMessageSplit()[2]; if (askingWord.jap == ans) { success(); } else { miss(); } } catch { reply(askingWord.eng + "の意味は…" + askingWord.jap + "でした!わかりましたか?").Wait(); } } } //新規単語追加 else if (getMessageSplit()[1] == "add") { Debug.WriteLine("word add"); String eng = getMessageSplit()[2]; String jap = getMessageSplit()[3]; if (words.addNewWord(eng, jap)) { reply(eng + ":" + jap + "は追加されました").Wait(); } else { reply(eng + "という単語は既に存在しています").Wait(); } } //csv取得 else if (getMessageSplit()[1] == "tocsv") { reply(words.getCsvStr()).Wait(); } else { reply("コマンドが間違っています。helpコマンドで確認してください。変なスペースがまぎれてないかチェックしてください").Wait(); } }