private async Task AnnounceMessage(User u, TelegramBot.TelegramBot bot, string message) { GameRegistry.Game game; GameRegistry.IsInGame(u, out game); var msg = Message(-1, $"{u.Bold()} {message}", userMarkup: true); foreach(var user in game.Players) { msg.ChatId = user.ID; await msg.HandleReply(bot); } }
private async Task<TelegramBotReply> onPlayerPicked(User u, TelegramBot.TelegramBot bot, Message m, GameRegistry.Game game) { const string viewMembership = "is picking someone to view his/her membership"; var flowObj = new PickPlayerFlow(game, onPickedMembershipTarget); if (u == m.From) { await AnnounceMessage(u, bot, viewMembership); m.From.MessageFlow = new MessageFlow(u, new FlowObject { Handler = flowObj }); return Message(m, "You cheating bastard! Pick the one you would like to view the membership off.", replyMarkup: flowObj.GetKeyboard()); } else { await AnnounceMessage(u, bot, viewMembership); u.MessageFlow = new MessageFlow(u, new FlowObject { Handler = flowObj }); await Message(u.ID, "You've been chosen to view somebody's membership. Please pick one.", replyMarkup: flowObj.GetKeyboard()).HandleReply(bot); } return Message(m, $"You have chosen {u.Bold()} to pick a player", replyMarkup: HostMessageHandler.HostKeyboard, userMarkup: true); }
private async Task<TelegramBotReply> onPickedMembershipTarget(User u, TelegramBot.TelegramBot bot, Message m, GameRegistry.Game game) { await AnnounceMessage(m.From, bot, $"has chosen to view {u.Bold()}'s membership"); return Message(m, $"The role of {u.Bold()} is {game.GetRole(u).Membership.Bold()}", replyMarkup: game.Host == m.From ? HostMessageHandler.HostKeyboard : JoinMessageHandler.JoinedPlayerKeyboard, userMarkup: true); }