diff options
| author | qwasdrizzel <145519042+qwasdrizzel@users.noreply.github.com> | 2026-03-05 17:17:45 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-05 17:17:45 -0600 |
| commit | 0666959d312dc74903f55d1071488a90239330f1 (patch) | |
| tree | 5c6886f7ec65a7828bc6e34a469514e418bcf78b /Minecraft.Client/Common/Network/PlatformNetworkManagerStub.cpp | |
| parent | 9370cbc7d878df1615d8ce76bc459e8b414d0f19 (diff) | |
| parent | eed770b121aa4ce38f002db042d0137c24c6d344 (diff) | |
Merge branch 'smartcmd:main' into main
Diffstat (limited to 'Minecraft.Client/Common/Network/PlatformNetworkManagerStub.cpp')
| -rw-r--r-- | Minecraft.Client/Common/Network/PlatformNetworkManagerStub.cpp | 90 |
1 files changed, 70 insertions, 20 deletions
diff --git a/Minecraft.Client/Common/Network/PlatformNetworkManagerStub.cpp b/Minecraft.Client/Common/Network/PlatformNetworkManagerStub.cpp index c2466fe3..85531e47 100644 --- a/Minecraft.Client/Common/Network/PlatformNetworkManagerStub.cpp +++ b/Minecraft.Client/Common/Network/PlatformNetworkManagerStub.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx.h" #include "..\..\..\Minecraft.World\Socket.h" #include "..\..\..\Minecraft.World\StringHelpers.h" #include "PlatformNetworkManagerStub.h" @@ -7,6 +7,7 @@ #include "..\..\Windows64\Network\WinsockNetLayer.h" #include "..\..\Minecraft.h" #include "..\..\User.h" +#include <iostream> #endif CPlatformNetworkManagerStub *g_pPlatformNetworkManager; @@ -63,9 +64,8 @@ void CPlatformNetworkManagerStub::NotifyPlayerJoined(IQNetPlayer *pQNetPlayer ) { // Do we already have a primary player for this system? bool systemHasPrimaryPlayer = false; - for(AUTO_VAR(it, m_machineQNetPrimaryPlayers.begin()); it < m_machineQNetPrimaryPlayers.end(); ++it) - { - IQNetPlayer *pQNetPrimaryPlayer = *it; + for (auto& pQNetPrimaryPlayer : m_machineQNetPrimaryPlayers) + { if( pQNetPlayer->IsSameSystem(pQNetPrimaryPlayer) ) { systemHasPrimaryPlayer = true; @@ -77,7 +77,7 @@ void CPlatformNetworkManagerStub::NotifyPlayerJoined(IQNetPlayer *pQNetPlayer ) } } g_NetworkManager.PlayerJoining( networkPlayer ); - + if( createFakeSocket == true && !m_bHostChanged ) { g_NetworkManager.CreateSocket( networkPlayer, localPlayer ); @@ -97,7 +97,7 @@ void CPlatformNetworkManagerStub::NotifyPlayerJoined(IQNetPlayer *pQNetPlayer ) // g_NetworkManager.UpdateAndSetGameSessionData(); SystemFlagAddPlayer( networkPlayer ); } - + for( int idx = 0; idx < XUSER_MAX_COUNT; ++idx) { if(playerChangedCallback[idx] != NULL) @@ -161,7 +161,7 @@ bool CPlatformNetworkManagerStub::Initialise(CGameNetworkManager *pGameNetworkMa { playerChangedCallback[ i ] = NULL; } - + m_bLeavingGame = false; m_bLeaveGameOnTick = false; m_bHostChanged = false; @@ -317,8 +317,8 @@ bool CPlatformNetworkManagerStub::LeaveGame(bool bMigrateHost) m_pIQNet->EndGame(); } - for (AUTO_VAR(it, currentNetworkPlayers.begin()); it != currentNetworkPlayers.end(); it++) - delete* it; + for (auto & it : currentNetworkPlayers) + delete it; currentNetworkPlayers.clear(); m_machineQNetPrimaryPlayers.clear(); SystemFlagReset(); @@ -472,7 +472,7 @@ void CPlatformNetworkManagerStub::UnRegisterPlayerChangedCallback(int iPad, void void CPlatformNetworkManagerStub::HandleSignInChange() { - return; + return; } bool CPlatformNetworkManagerStub::_RunNetworkGame() @@ -499,24 +499,24 @@ bool CPlatformNetworkManagerStub::_RunNetworkGame() void CPlatformNetworkManagerStub::UpdateAndSetGameSessionData(INetworkPlayer *pNetworkPlayerLeaving /*= NULL*/) { // DWORD playerCount = m_pIQNet->GetPlayerCount(); -// +// // if( this->m_bLeavingGame ) // return; -// +// // if( GetHostPlayer() == NULL ) // return; -// +// // for(unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i) // { // if( i < playerCount ) // { // INetworkPlayer *pNetworkPlayer = GetPlayerByIndex(i); -// +// // // We can call this from NotifyPlayerLeaving but at that point the player is still considered in the session // if( pNetworkPlayer != pNetworkPlayerLeaving ) // { // m_hostGameSessionData.players[i] = ((NetworkPlayerXbox *)pNetworkPlayer)->GetUID(); -// +// // char *temp; // temp = (char *)wstringtofilename( pNetworkPlayer->GetOnlineName() ); // memcpy(m_hostGameSessionData.szPlayers[i],temp,XUSER_NAME_SIZE); @@ -533,7 +533,7 @@ void CPlatformNetworkManagerStub::UpdateAndSetGameSessionData(INetworkPlayer *pN // memset(m_hostGameSessionData.szPlayers[i],0,XUSER_NAME_SIZE); // } // } -// +// // m_hostGameSessionData.hostPlayerUID = ((NetworkPlayerXbox *)GetHostPlayer())->GetQNetPlayer()->GetXuid(); // m_hostGameSessionData.m_uiGameHostSettings = app.GetGameHostOption(eGameHostOption_All); } @@ -700,6 +700,7 @@ void CPlatformNetworkManagerStub::SearchForGames() #ifdef _WINDOWS64 std::vector<Win64LANSession> lanSessions = WinsockNetLayer::GetDiscoveredSessions(); + //THEY GET DELETED HERE DAMMIT for (size_t i = 0; i < friendsSessions[0].size(); i++) delete friendsSessions[0][i]; friendsSessions[0].clear(); @@ -730,6 +731,55 @@ void CPlatformNetworkManagerStub::SearchForGames() friendsSessions[0].push_back(info); } + std::FILE* file = std::fopen("servers.txt", "r"); + + if (file) { + wstring wline; + int phase = 0; + + string ip; + wstring port; + wstring name; + + char buffer[512]; + while (std::fgets(buffer, sizeof(buffer), file)) { + if (phase == 0) { + ip = buffer; + if (!ip.empty() && (ip.back() == '\n' || ip.back() == '\r')) + ip.pop_back(); + phase = 1; + } + else if (phase == 1) { + wline = convStringToWstring(buffer); + port = wline; + phase = 2; + } + else if (phase == 2) { + wline = convStringToWstring(buffer); + name = wline; + phase = 0; + + //THEY GET DELETED AFTER USE LIKE 30 LINES UP!! + FriendSessionInfo* info = new FriendSessionInfo(); + wchar_t label[128]; + wcsncpy_s(label, sizeof(label)/sizeof(wchar_t), name.c_str(), _TRUNCATE); + size_t nameLen = wcslen(label); + info->displayLabel = new wchar_t[nameLen+1]; + wcscpy_s(info->displayLabel, nameLen + 1, label); + info->displayLabelLength = (unsigned char)nameLen; + info->displayLabelViewableStartIndex = 0; + info->data.isReadyToJoin = true; + info->data.isJoinable = true; + strncpy_s(info->data.hostIP, sizeof(info->data.hostIP), ip.c_str(), _TRUNCATE); + info->data.hostPort = stoi(port); + info->sessionId = (SessionID)(static_cast<uint64_t>(inet_addr(ip.c_str())) | (static_cast<uint64_t>(stoi(port)) << 32)); + friendsSessions[0].push_back(info); + } + } + + std::fclose(file); + } + m_searchResultsCount[0] = (int)friendsSessions[0].size(); if (m_SessionsUpdatedCallback != NULL) @@ -774,7 +824,7 @@ void CPlatformNetworkManagerStub::GetFullFriendSessionInfo( FriendSessionInfo *f void CPlatformNetworkManagerStub::ForceFriendsSessionRefresh() { app.DebugPrintf("Resetting friends session search data\n"); - + for(unsigned int i = 0; i < XUSER_MAX_COUNT; ++i) { m_searchResultsCount[i] = 0; @@ -795,8 +845,8 @@ INetworkPlayer *CPlatformNetworkManagerStub::addNetworkPlayer(IQNetPlayer *pQNet void CPlatformNetworkManagerStub::removeNetworkPlayer(IQNetPlayer *pQNetPlayer) { INetworkPlayer *pNetworkPlayer = getNetworkPlayer(pQNetPlayer); - for( AUTO_VAR(it, currentNetworkPlayers.begin()); it != currentNetworkPlayers.end(); it++ ) - { + for (auto it = currentNetworkPlayers.begin(); it != currentNetworkPlayers.end(); it++) + { if( *it == pNetworkPlayer ) { currentNetworkPlayers.erase(it); @@ -813,7 +863,7 @@ INetworkPlayer *CPlatformNetworkManagerStub::getNetworkPlayer(IQNetPlayer *pQNet INetworkPlayer *CPlatformNetworkManagerStub::GetLocalPlayerByUserIndex(int userIndex ) { - return getNetworkPlayer(m_pIQNet->GetLocalPlayerByUserIndex(userIndex)); + return getNetworkPlayer(m_pIQNet->GetLocalPlayerByUserIndex(userIndex)); } INetworkPlayer *CPlatformNetworkManagerStub::GetPlayerByIndex(int playerIndex) |
