diff --git a/src/packet/packet_rd.cpp b/src/packet/packet_rd.cpp index aabf20b5..e6cae789 100644 --- a/src/packet/packet_rd.cpp +++ b/src/packet/packet_rd.cpp @@ -63,5 +63,6 @@ void PacketRD::handlePacket(AreaData *area, AOClient &client) const } emit client.joined(); area->addClient(-1, client.clientId()); + client.getServer()->getPlayerStateObserver()->registerClient(&client); client.arup(client.ARUPType::PLAYER_COUNT, true); // Tell everyone there is a new player } diff --git a/src/server.cpp b/src/server.cpp index 2a3260e6..57ab9584 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -153,7 +153,6 @@ void Server::clientConnected() int user_id = m_available_ids.pop(); AOClient *client = new AOClient(this, l_socket, l_socket, user_id, music_manager); m_clients_ids.insert(user_id, client); - m_player_state_observer.registerClient(client); int multiclient_count = 1; bool is_at_multiclient_limit = false; @@ -277,6 +276,11 @@ QHostAddress Server::parseToIPv4(QHostAddress f_remote_ip) return l_remote_ip; } +PlayerStateObserver *Server::getPlayerStateObserver() +{ + return &m_player_state_observer; +} + void Server::reloadSettings() { ConfigManager::reloadSettings(); diff --git a/src/server.h b/src/server.h index 6f94a38d..f0f8d2c5 100644 --- a/src/server.h +++ b/src/server.h @@ -336,6 +336,11 @@ class Server : public QObject */ QHostAddress parseToIPv4(QHostAddress f_remote_ip); + /** + * @brief Returns a raw-pointer of the curr + */ + PlayerStateObserver *getPlayerStateObserver(); + public slots: /** * @brief Convenience class to call a reload of available configuraiton elements.