diff --git a/cockatrice/resources/config/qtlogging.ini b/cockatrice/resources/config/qtlogging.ini index d5a96f6c3..0db51f40b 100644 --- a/cockatrice/resources/config/qtlogging.ini +++ b/cockatrice/resources/config/qtlogging.ini @@ -5,18 +5,18 @@ # Uncomment a rule to see debug level logs for that category, # or set = false to disable logging -#main = true +main = true #qt_translator = true -#window_main.* = true +window_main.* = true #release_channel = true #spoiler_background_updater = true #theme_manager = true #sound_engine = true #tapped_out_interface = true -#tab_game = true -#tab_message = true -#tab_supervisor = true +tab_game = true +tab_message = true +tab_supervisor = true #dlg_edit_avatar = true #dlg_load_deck_from_website = true @@ -28,16 +28,16 @@ #servers_settings = true #shortcuts_settings = true -#local_client = true -#remote_client = true +local_client = true +remote_client = true -#player = true -#game_scene = true -#game_scene.player_addition_removal = true -#card_zone = true -#view_zone = true +player = true +game_scene = true +game_scene.player_addition_removal = true +card_zone = true +view_zone = true -#user_info_connection = true +user_info_connection = true #picture_loader = true #picture_loader.worker = true diff --git a/cockatrice/src/client/tabs/tab_game.cpp b/cockatrice/src/client/tabs/tab_game.cpp index d8bb79da1..8b29d8c52 100644 --- a/cockatrice/src/client/tabs/tab_game.cpp +++ b/cockatrice/src/client/tabs/tab_game.cpp @@ -882,6 +882,14 @@ void TabGame::eventGameStateChanged(const Event_GameStateChanged &event, } deckViewContainer->playerDeckView->setReadyStart(prop.ready_start()); deckViewContainer->playerDeckView->setSideboardLocked(prop.sideboard_locked()); + } else { + DeckList loader; + loader.loadFromString_Native(QString::fromStdString(playerInfo.deck_list())); + QMapIterator i(deckViewContainers); + while (i.hasNext()) { + i.next(); + i.value()->addOpponentDeckView(loader, playerId, player->getName()); + } } } } @@ -967,6 +975,7 @@ void TabGame::eventPlayerPropertiesChanged(const Event_PlayerPropertiesChanged & i.value()->addOpponentDeckView(loader, eventPlayerId, player->getName()); } } + qInfo() << "lol, lmao even"; break; } case GameEventContext::SET_SIDEBOARD_LOCK: { diff --git a/common/server_game.cpp b/common/server_game.cpp index 4597cc7c1..415d55f9e 100644 --- a/common/server_game.cpp +++ b/common/server_game.cpp @@ -21,6 +21,7 @@ #include "decklist.h" #include "pb/context_connection_state_changed.pb.h" +#include "pb/context_deck_select.pb.h" #include "pb/context_ping_changed.pb.h" #include "pb/event_delete_arrow.pb.h" #include "pb/event_game_closed.pb.h" @@ -512,6 +513,21 @@ void Server_Game::addPlayer(Server_AbstractUserInterface *userInterface, userInterface->playerAddedToGame(gameId, room->getId(), newPlayer->getPlayerId()); createGameJoinedEvent(newPlayer, rc, false); + + Event_PlayerPropertiesChanged event; + GameEventStorage ges; + + if (getShareDecklistsOnLoad()) { + for (const auto &player : players) { + Context_DeckSelect context; + if (player->getDeckList() != nullptr) { + context.set_deck_list(player->getDeckList()->writeToString_Native().toStdString()); + ges.setGameEventContext(context); + ges.enqueueGameEvent(event, player->getPlayerId()); + ges.sendToGame(this); + } + } + } } void Server_Game::removePlayer(Server_Player *player, Event_Leave::LeaveReason reason) diff --git a/common/server_player.h b/common/server_player.h index b9d414482..45736957d 100644 --- a/common/server_player.h +++ b/common/server_player.h @@ -96,6 +96,10 @@ public: Server_AbstractUserInterface *_handler); ~Server_Player() override; void prepareDestroy(); + const DeckList *getDeckList() const + { + return deck; + } Server_AbstractUserInterface *getUserInterface() const { return userInterface;