/// <summary> /// Find button with Text in keyboard user /// </summary> /// <param name="text">Need element</param> /// <param name="menu">Menu</param> /// <param name="pages">Keyboard user</param> /// <returns>Button or null</returns> private KeyboardButton FindButton(string text, ReplyMarkupKeyboard keyboard) { if (keyboard == null) { return(null); } if (keyboard.Menu?.Name == text) { return(keyboard.Menu); } foreach (var page in keyboard.Pages) { foreach (var row in page.Rows) { foreach (var button in row.Buttons) { if (button.Name == text) { return(button); } if (!(button.Action is DefaultButtonAction defaultButtonAction)) { continue; } if (defaultButtonAction.Executor == text) { return(button); } } } } return(null); }
public override Message?Execute() { var reply = new ReplyMarkupKeyboard(false, () => { User.Send("OK"); }); User.Read <int>(new Message("Введите int", reply), result => { User.Send(result.ToString()); }); return(null); }
public override Message?Execute(User user, string[] args) { var keyboard = new ReplyMarkupKeyboard(); keyboard.AddButton("Приветствую!", "hi", KeyboardColor.Green); keyboard.AddPage(); keyboard.AddButton("Приветствую!", "hi", KeyboardColor.Primary); keyboard.AddPage(); keyboard.AddButton("Приветствую!", "hi", KeyboardColor.Red); return(new Message( "Салам, славяне!", new IAttachment[] { keyboard, new PhotoAttachment("https://sun9-3.userapi.com/impg/lCTtJJlI-fPpcAGnXyynuR3JcxQRIIEFz-JNdg/luK9Hvhve2c.jpg?size=743x196&quality=96&sign=c29891f46f0896b082e7026e06821ce4&type=album") })); }
public override Message?Execute() { ReplyMarkupKeyboard markup = null; InlineMarkupKeyboard inline = null; if (InlineSubcommands != null) { inline = new InlineMarkupKeyboard(); foreach (var inlineSubcommand in InlineSubcommands) { if (inlineSubcommand is NewLine) { inline.AddLine(); continue; } inlineSubcommand.User = User; inlineSubcommand.Parent = this; inlineSubcommand.Args = Array.Empty <object>(); var isMiddlewaresReturnError = false; foreach (var middleware in inlineSubcommand.Middlewares) { try { if (!middleware(inlineSubcommand)) { isMiddlewaresReturnError = true; break; } } catch (JubiException) { isMiddlewaresReturnError = true; break; } } if (isMiddlewaresReturnError) { continue; } inline.AddButton(inlineSubcommand.Alias, () => ExecuteMarkup(inlineSubcommand)); } } if (Subcommands != null) { markup = Parent == null ? new ReplyMarkupKeyboard() : new ReplyMarkupKeyboard(false, () => ExecuteMarkup(Parent)); markup.MaxInRows = MaxButtonsInRow; foreach (var executor in Subcommands) { if (executor is NewLine) { markup.AddLine(); continue; } executor.User = User; executor.Parent = this; executor.Args = Array.Empty <object>(); var isMiddlewaresReturnError = false; foreach (var middleware in executor.Middlewares) { try { if (!middleware(executor)) { isMiddlewaresReturnError = true; break; } } catch (JubiException) { isMiddlewaresReturnError = true; break; } } if (isMiddlewaresReturnError) { continue; } var isClicked = false; markup.AddButton(executor.Alias, () => { if (isClicked && IsOnce) { return; } isClicked = true; ExecuteMarkup(executor); }); } } return(markup != null && inline != null ? new Message(null, markup, inline) : (inline != null ? new Message(null, inline) : markup)); }