diff --git a/td/telegram/Game.cpp b/td/telegram/Game.cpp index 000b4575..ce17046c 100644 --- a/td/telegram/Game.cpp +++ b/td/telegram/Game.cpp @@ -87,6 +87,10 @@ void Game::set_message_text(FormattedText &&text) { text_ = std::move(text); } +const FormattedText &Game::get_message_text() const { + return text_; +} + tl_object_ptr Game::get_game_object(const Td *td) const { return make_tl_object( id_, short_name_, title_, get_formatted_text_object(text_), description_, diff --git a/td/telegram/Game.h b/td/telegram/Game.h index 4afe3031..a9b2a320 100644 --- a/td/telegram/Game.h +++ b/td/telegram/Game.h @@ -57,6 +57,8 @@ class Game { void set_message_text(FormattedText &&text); + const FormattedText &get_message_text() const; + tl_object_ptr get_game_object(const Td *td) const; tl_object_ptr get_input_media_game(const Td *td) const; diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 453951f8..624fb87d 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -15340,6 +15340,12 @@ void MessagesManager::add_message_dependencies(Dependencies &dependencies, Dialo case MessageGame::ID: { auto content = static_cast(m->content.get()); dependencies.user_ids.insert(content->game.get_bot_user_id()); + const FormattedText &formatted_text = content->game.get_message_text(); + for (auto &entity : formatted_text.entities) { + if (entity.user_id.is_valid()) { + dependencies.user_ids.insert(entity.user_id); + } + } break; } case MessageInvoice::ID: @@ -15425,6 +15431,12 @@ void MessagesManager::add_message_dependencies(Dependencies &dependencies, Dialo UNREACHABLE(); break; } + auto caption = get_message_content_caption(m->content.get()); + for (auto &entity : caption.entities) { + if (entity.user_id.is_valid()) { + dependencies.user_ids.insert(entity.user_id); + } + } } void MessagesManager::add_dialog_dependencies(Dependencies &dependencies, DialogId dialog_id) {