diff --git a/Telegram/SourceFiles/data/data_peer_bot_commands.cpp b/Telegram/SourceFiles/data/data_peer_bot_commands.cpp index 37a84c31e2..8adc31a9e3 100644 --- a/Telegram/SourceFiles/data/data_peer_bot_commands.cpp +++ b/Telegram/SourceFiles/data/data_peer_bot_commands.cpp @@ -29,11 +29,17 @@ ChatBotCommands::Changed ChatBotCommands::update( BotCommands BotCommandsFromTL(const MTPBotInfo &result) { return result.match([](const MTPDbotInfo &data) { + const auto userId = data.vuser_id() + ? UserId(*data.vuser_id()) + : UserId(); + if (!data.vcommands()) { + return BotCommands{ .userId = userId }; + } auto commands = ranges::views::all( - data.vcommands().v + data.vcommands()->v ) | ranges::views::transform(BotCommandFromTL) | ranges::to_vector; return BotCommands{ - .userId = UserId(data.vuser_id().v), + .userId = userId, .commands = std::move(commands), }; }); diff --git a/Telegram/SourceFiles/data/data_user.cpp b/Telegram/SourceFiles/data/data_user.cpp index bf3373a08a..a6735f6d2a 100644 --- a/Telegram/SourceFiles/data/data_user.cpp +++ b/Telegram/SourceFiles/data/data_user.cpp @@ -137,11 +137,13 @@ void UserData::setBotInfo(const MTPBotInfo &info) { botInfo->text = Ui::Text::String(st::msgMinWidth); } - auto commands = ranges::views::all( - d.vcommands().v - ) | ranges::views::transform( - Data::BotCommandFromTL - ) | ranges::to_vector; + auto commands = d.vcommands() + ? ranges::views::all( + d.vcommands()->v + ) | ranges::views::transform( + Data::BotCommandFromTL + ) | ranges::to_vector + : std::vector(); const auto changedCommands = !ranges::equal( botInfo->commands, commands);