add MatchTypeCommandStartMaybeWithBotUsernameSuffix command match method
#196
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Create a field name
usernamein theBotandhandlerstructures to match commands like/command@username_bot.Also created a
bot.Username()stringmethod to return the bot's username (without@).When using
bot.New()withoutbot.WithSkipGetMe()option, theusernamefield is filling by following code:func New(token string, options ...Option) (*Bot, error) { // other code... if !b.skipGetMe { - _, err := b.GetMe(ctx) + botInfo, err := b.GetMe(ctx) if err != nil { return nil, fmt.Errorf("error call getMe, %w", err) } + b.username = botInfo.Username } return b, nil }If with the
bot.WithSkipGetMe()option, this match method will work the same asMatchTypeCommandStartOnly, thenbot.Username()will return an empty string.This PR may not be good. If you think it is not good, you can close it directly. Some issues mentioned that this is needed, or are there other better ways?