From fe97a0dda4f3a96a285ba30b39cc05c7d0e6d175 Mon Sep 17 00:00:00 2001 From: James Osborne Date: Mon, 8 Jun 2026 03:59:27 -0400 Subject: [PATCH] Add log-only BB account sync login hook --- src/AccountSync.hh | 13 +++++++++++++ src/ReceiveCommands.cc | 9 +++++++++ 2 files changed, 22 insertions(+) diff --git a/src/AccountSync.hh b/src/AccountSync.hh index 3662caf5..5b797f34 100644 --- a/src/AccountSync.hh +++ b/src/AccountSync.hh @@ -35,4 +35,17 @@ inline void notify_player_state_saved( filename.c_str()); } +inline void notify_bb_login_start( + uint32_t account_id, + const std::string& bb_username, + int64_t character_slot, + uint8_t connection_phase) { + std::fprintf(stderr, + "[AccountSync] event=bb_login_start account_id=%010u bb_username=%s character_slot=%lld connection_phase=%u\n", + static_cast(account_id), + bb_username.c_str(), + static_cast(character_slot), + static_cast(connection_phase)); +} + } // namespace AccountSync diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index 79aeeb8e..acf99d35 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -27,6 +27,7 @@ #include "StaticGameData.hh" #include "Text.hh" #include "BrutalPeeps.hh" +#include "AccountSync.hh" const char* BATTLE_TABLE_DISCONNECT_HOOK_NAME = "battle_table_state"; const char* QUEST_BARRIER_DISCONNECT_HOOK_NAME = "quest_barrier"; @@ -1672,6 +1673,14 @@ static asio::awaitable on_93_BB(std::shared_ptr c, Channel::Messag co_return; } + if (c->login->account && c->login->bb_license) { + AccountSync::notify_bb_login_start( + c->login->account->account_id, + c->login->bb_license->username, + c->bb_character_index, + c->bb_connection_phase); + } + std::string version_string = c->bb_client_config.as_string(); phosg::strip_trailing_zeroes(version_string); // If the version std::string starts with "Ver.", assume it's Sega and apply the normal version encoding logic. Otherwise,