From 55231bb8d3e1a4e2752ac3d444c4287eb0ca4e8b Mon Sep 17 00:00:00 2001 From: void_17 <61356189+void2012@users.noreply.github.com> Date: Fri, 6 Mar 2026 02:11:18 +0700 Subject: Remove AUTO_VAR macro and _toString function (#592) --- Minecraft.Client/PlayerList.cpp | 130 ++++++++++++++++++---------------------- 1 file changed, 59 insertions(+), 71 deletions(-) (limited to 'Minecraft.Client/PlayerList.cpp') diff --git a/Minecraft.Client/PlayerList.cpp b/Minecraft.Client/PlayerList.cpp index 0de0c36b..c1ccfe14 100644 --- a/Minecraft.Client/PlayerList.cpp +++ b/Minecraft.Client/PlayerList.cpp @@ -1,5 +1,7 @@ #include "stdafx.h" #include "PlayerList.h" + +#include #include "PlayerChunkMap.h" #include "MinecraftServer.h" #include "Settings.h" @@ -65,11 +67,11 @@ PlayerList::PlayerList(MinecraftServer *server) PlayerList::~PlayerList() { - for( AUTO_VAR(it, players.begin()); it < players.end(); it++ ) - { - (*it)->connection = nullptr; // Must remove reference to connection, or else there is a circular dependency - delete (*it)->gameMode; // Gamemode also needs deleted as it references back to this player - (*it)->gameMode = NULL; + for (auto& player : players) + { + player->connection = nullptr; // Must remove reference to connection, or else there is a circular dependency + delete player->gameMode; // Gamemode also needs deleted as it references back to this player + player->gameMode = nullptr; } DeleteCriticalSection(&m_kickPlayersCS); @@ -89,7 +91,7 @@ void PlayerList::placeNewPlayer(Connection *connection, shared_ptr INetworkPlayer *networkPlayer = connection->getSocket()->getPlayer(); if(networkPlayer != NULL && networkPlayer->IsHost()) { - player->enableAllPlayerPrivileges(true); + player->enableAllPlayerPrivileges(true); player->setPlayerGamePrivilege(Player::ePlayerGamePrivilege_HOST,1); } @@ -123,9 +125,9 @@ void PlayerList::placeNewPlayer(Connection *connection, shared_ptr { bool usedIndexes[MINECRAFT_NET_MAX_PLAYERS]; ZeroMemory( &usedIndexes, MINECRAFT_NET_MAX_PLAYERS * sizeof(bool) ); - for(AUTO_VAR(it, players.begin()); it < players.end(); ++it) - { - usedIndexes[ (int)(*it)->getPlayerIndex() ] = true; + for (auto& player : players ) + { + usedIndexes[player->getPlayerIndex()] = true; } for(unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i) { @@ -175,7 +177,7 @@ void PlayerList::placeNewPlayer(Connection *connection, shared_ptr } } else if(!player->customTextureUrl.empty() && app.IsFileInMemoryTextures(player->customTextureUrl)) - { + { // Update the ref count on the memory texture data app.AddMemoryTextureFile(player->customTextureUrl,NULL,0); } @@ -191,7 +193,7 @@ void PlayerList::placeNewPlayer(Connection *connection, shared_ptr } } else if(!player->customTextureUrl2.empty() && app.IsFileInMemoryTextures(player->customTextureUrl2)) - { + { // Update the ref count on the memory texture data app.AddMemoryTextureFile(player->customTextureUrl2,NULL,0); } @@ -250,10 +252,9 @@ void PlayerList::placeNewPlayer(Connection *connection, shared_ptr server->getConnection()->addPlayerConnection(playerConnection); playerConnection->send( shared_ptr( new SetTimePacket(level->getGameTime(), level->getDayTime(), level->getGameRules()->getBoolean(GameRules::RULE_DAYLIGHT)) ) ); - AUTO_VAR(activeEffects, player->getActiveEffects()); - for(AUTO_VAR(it, activeEffects->begin()); it != activeEffects->end(); ++it) + auto activeEffects = player->getActiveEffects(); + for(MobEffectInstance *effect : *player->getActiveEffects()) { - MobEffectInstance *effect = *it; playerConnection->send(shared_ptr( new UpdateMobEffectPacket(player->entityId, effect) ) ); } @@ -275,13 +276,12 @@ void PlayerList::placeNewPlayer(Connection *connection, shared_ptr // If we are joining at the same time as someone in the end on this system is travelling through the win portal, // then we should set our wonGame flag to true so that respawning works when the EndPoem is closed INetworkPlayer *thisPlayer = player->connection->getNetworkPlayer(); - if( thisPlayer != NULL ) + if( thisPlayer ) { - for(AUTO_VAR(it, players.begin()); it != players.end(); ++it) + for(auto& servPlayer : players) { - shared_ptr servPlayer = *it; - INetworkPlayer *checkPlayer = servPlayer->connection->getNetworkPlayer(); - if(thisPlayer != checkPlayer && checkPlayer != NULL && thisPlayer->IsSameSystem( checkPlayer ) && servPlayer->wonGame ) + INetworkPlayer* checkPlayer = servPlayer->connection->getNetworkPlayer(); + if(thisPlayer != checkPlayer && checkPlayer && thisPlayer->IsSameSystem( checkPlayer ) && servPlayer->wonGame ) { player->wonGame = true; break; @@ -460,7 +460,7 @@ void PlayerList::add(shared_ptr player) shared_ptr thisPlayer = players[i]; if(thisPlayer->isSleeping()) { - if(firstSleepingPlayer == NULL) firstSleepingPlayer = thisPlayer; + if(firstSleepingPlayer == NULL) firstSleepingPlayer = thisPlayer; thisPlayer->connection->send(shared_ptr( new ChatPacket(thisPlayer->name, ChatPacket::e_ChatBedMeSleep))); } } @@ -487,12 +487,12 @@ if (player->riding != NULL) level->getTracker()->removeEntity(player); level->removeEntity(player); level->getChunkMap()->remove(player); - AUTO_VAR(it, find(players.begin(),players.end(),player)); - if( it != players.end() ) + auto it = find(players.begin(), players.end(), player); + if( it != players.end() ) { players.erase(it); } - //broadcastAll(shared_ptr( new PlayerInfoPacket(player->name, false, 9999) ) ); + //broadcastAll(shared_ptr( new PlayerInfoPacket(player->name, false, 9999) ) ); removePlayerFromReceiving(player); player->connection = nullptr; // Must remove reference to connection, or else there is a circular dependency @@ -548,7 +548,7 @@ shared_ptr PlayerList::getPlayerForLogin(PendingConnection *pendin shared_ptr PlayerList::respawn(shared_ptr serverPlayer, int targetDimension, bool keepAllPlayerData) { - // How we handle the entity tracker depends on whether we are the primary player currently, and whether there will be any player in the same system in the same dimension once we finish respawning. + // How we handle the entity tracker depends on whether we are the primary player currently, and whether there will be any player in the same system in the same dimension once we finish respawning. bool isPrimary = canReceiveAllPackets(serverPlayer); // Is this the primary player in its current dimension? int oldDimension = serverPlayer->dimension; bool isEmptying = ( targetDimension != oldDimension); // We're not emptying this dimension on this machine if this player is going back into the same dimension @@ -599,8 +599,8 @@ shared_ptr PlayerList::respawn(shared_ptr serverPlay } serverPlayer->getLevel()->getChunkMap()->remove(serverPlayer); - AUTO_VAR(it, find(players.begin(),players.end(),serverPlayer)); - if( it != players.end() ) + auto it = find(players.begin(), players.end(), serverPlayer); + if( it != players.end() ) { players.erase(it); } @@ -689,20 +689,18 @@ shared_ptr PlayerList::respawn(shared_ptr serverPlay player->setPos(player->x, player->y + 1, player->z); } - player->connection->send( shared_ptr( new RespawnPacket((char) player->dimension, player->level->getSeed(), player->level->getMaxBuildHeight(), + player->connection->send( std::make_shared( (char) player->dimension, player->level->getSeed(), player->level->getMaxBuildHeight(), player->gameMode->getGameModeForPlayer(), level->difficulty, level->getLevelData()->getGenerator(), - player->level->useNewSeaLevel(), player->entityId, level->getLevelData()->getXZSize(), level->getLevelData()->getHellScale()) ) ); + player->level->useNewSeaLevel(), player->entityId, level->getLevelData()->getXZSize(), level->getLevelData()->getHellScale() ) ); player->connection->teleport(player->x, player->y, player->z, player->yRot, player->xRot); - player->connection->send( shared_ptr( new SetExperiencePacket(player->experienceProgress, player->totalExperience, player->experienceLevel)) ); + player->connection->send( std::make_shared( player->experienceProgress, player->totalExperience, player->experienceLevel) ); if(keepAllPlayerData) { vector *activeEffects = player->getActiveEffects(); - for(AUTO_VAR(it, activeEffects->begin()); it != activeEffects->end(); ++it) + for(MobEffectInstance *effect : *activeEffects) { - MobEffectInstance *effect = *it; - - player->connection->send(shared_ptr( new UpdateMobEffectPacket(player->entityId, effect) ) ); + player->connection->send(std::make_shared( player->entityId, effect ) ); } delete activeEffects; player->getEntityData()->markDirty(Mob::DATA_EFFECT_COLOR_ID); @@ -719,7 +717,7 @@ shared_ptr PlayerList::respawn(shared_ptr serverPlay // 4J-JEV - Dying before this point in the tutorial is pretty annoying, // making sure to remove health/hunger and give you back your meat. - if( Minecraft::GetInstance()->isTutorial() + if( Minecraft::GetInstance()->isTutorial() && (!Minecraft::GetInstance()->gameMode->getTutorial()->isStateCompleted(e_Tutorial_State_Food_Bar)) ) { app.getGameRuleDefinitions()->postProcessPlayer(player); @@ -737,7 +735,7 @@ shared_ptr PlayerList::respawn(shared_ptr serverPlay void PlayerList::toggleDimension(shared_ptr player, int targetDimension) { int lastDimension = player->dimension; - // How we handle the entity tracker depends on whether we are the primary player currently, and whether there will be any player in the same system in the same dimension once we finish respawning. + // How we handle the entity tracker depends on whether we are the primary player currently, and whether there will be any player in the same system in the same dimension once we finish respawning. bool isPrimary = canReceiveAllPackets(player); // Is this the primary player in its current dimension? bool isEmptying = true; @@ -832,11 +830,9 @@ void PlayerList::toggleDimension(shared_ptr player, int targetDime // 4J Stu - Fix for #64683 - Customer Encountered: TU7: Content: Gameplay: Potion effects are removed after using the Nether Portal vector *activeEffects = player->getActiveEffects(); - for(AUTO_VAR(it, activeEffects->begin()); it != activeEffects->end(); ++it) + for(MobEffectInstance *effect : *activeEffects) { - MobEffectInstance *effect = *it; - - player->connection->send(shared_ptr( new UpdateMobEffectPacket(player->entityId, effect) ) ); + player->connection->send(std::make_shared( player->entityId, effect ) ); } delete activeEffects; player->getEntityData()->markDirty(Mob::DATA_EFFECT_COLOR_ID); @@ -933,10 +929,10 @@ void PlayerList::tick() sendAllPlayerInfoIn = 0; } - if (sendAllPlayerInfoIn < players.size()) + if (sendAllPlayerInfoIn < players.size()) { shared_ptr op = players[sendAllPlayerInfoIn]; - //broadcastAll(shared_ptr( new PlayerInfoPacket(op->name, true, op->latency) ) ); + //broadcastAll(shared_ptr( new PlayerInfoPacket(op->name, true, op->latency) ) ); if( op->connection->getNetworkPlayer() ) { broadcastAll(shared_ptr( new PlayerInfoPacket( op ) ) ); @@ -1091,7 +1087,7 @@ bool PlayerList::isOp(shared_ptr player) shared_ptr PlayerList::getPlayer(const wstring& name) { - for (unsigned int i = 0; i < players.size(); i++) + for (unsigned int i = 0; i < players.size(); i++) { shared_ptr p = players[i]; if (p->name == name) // 4J - used to be case insensitive (using equalsIgnoreCase) - imagine we'll be shifting to XUIDs anyway @@ -1105,7 +1101,7 @@ shared_ptr PlayerList::getPlayer(const wstring& name) // 4J Added shared_ptr PlayerList::getPlayer(PlayerUID uid) { - for (unsigned int i = 0; i < players.size(); i++) + for (unsigned int i = 0; i < players.size(); i++) { shared_ptr p = players[i]; if (p->getXuid() == uid || p->getOnlineXuid() == uid) // 4J - used to be case insensitive (using equalsIgnoreCase) - imagine we'll be shifting to XUIDs anyway @@ -1264,7 +1260,7 @@ void PlayerList::broadcast(shared_ptr except, double x, double y, double } else { - for(unsigned int j = 0; j < sentTo.size(); j++ ) + for(unsigned int j = 0; j < sentTo.size(); j++ ) { shared_ptr player2 = sentTo[j]; INetworkPlayer *otherPlayer = player2->connection->getNetworkPlayer(); @@ -1351,7 +1347,7 @@ void PlayerList::sendLevelInfo(shared_ptr player, ServerLevel *lev player->connection->send( shared_ptr( new GameEventPacket(GameEventPacket::STOP_RAINING, 0) ) ); } - // send the stronghold position if there is one + // send the stronghold position if there is one if((level->dimension->id==0) && level->getLevelData()->getHasStronghold()) { player->connection->send( shared_ptr( new XZPacket(XZPacket::STRONGHOLD,level->getLevelData()->getXStronghold(),level->getLevelData()->getZStronghold()) ) ); @@ -1374,9 +1370,9 @@ int PlayerList::getPlayerCount(ServerLevel *level) { int count = 0; - for(AUTO_VAR(it, players.begin()); it != players.end(); ++it) + for(auto& player : players) { - if( (*it)->level == level ) ++count; + if( player->level == level ) ++count; } return count; @@ -1431,18 +1427,16 @@ shared_ptr PlayerList::findAlivePlayerOnSystem(shared_ptrconnection->getNetworkPlayer(); - if( thisPlayer != NULL ) + if( thisPlayer ) { - for(AUTO_VAR(itP, players.begin()); itP != players.end(); ++itP) + for(auto& newPlayer : players) { - shared_ptr newPlayer = *itP; - INetworkPlayer *otherPlayer = newPlayer->connection->getNetworkPlayer(); if( !newPlayer->removed && newPlayer != player && newPlayer->dimension == playerDim && - otherPlayer != NULL && + otherPlayer && otherPlayer->IsSameSystem( thisPlayer ) ) { @@ -1466,8 +1460,8 @@ void PlayerList::removePlayerFromReceiving(shared_ptr player, bool #endif bool playerRemoved = false; - AUTO_VAR(it, find( receiveAllPlayers[dimIndex].begin(), receiveAllPlayers[dimIndex].end(), player)); - if( it != receiveAllPlayers[dimIndex].end() ) + auto it = find(receiveAllPlayers[dimIndex].begin(), receiveAllPlayers[dimIndex].end(), player); + if( it != receiveAllPlayers[dimIndex].end() ) { #ifndef _CONTENT_PACKAGE app.DebugPrintf("Remove: Removing player %ls as primary in dimension %d\n", player->name.c_str(), dimIndex); @@ -1477,17 +1471,15 @@ void PlayerList::removePlayerFromReceiving(shared_ptr player, bool } INetworkPlayer *thisPlayer = player->connection->getNetworkPlayer(); - if( thisPlayer != NULL && playerRemoved ) + if( thisPlayer && playerRemoved ) { - for(AUTO_VAR(itP, players.begin()); itP != players.end(); ++itP) + for(auto& newPlayer : players) { - shared_ptr newPlayer = *itP; - INetworkPlayer *otherPlayer = newPlayer->connection->getNetworkPlayer(); if( newPlayer != player && newPlayer->dimension == playerDim && - otherPlayer != NULL && + otherPlayer && otherPlayer->IsSameSystem( thisPlayer ) ) { @@ -1506,20 +1498,18 @@ void PlayerList::removePlayerFromReceiving(shared_ptr player, bool #endif // 4J Stu - Something went wrong, or possibly the QNet player left before we got here. // Re-check all active players and make sure they have someone on their system to receive all packets - for(AUTO_VAR(itP, players.begin()); itP != players.end(); ++itP) + for(auto& newPlayer : players) { - shared_ptr newPlayer = *itP; INetworkPlayer *checkingPlayer = newPlayer->connection->getNetworkPlayer(); - if( checkingPlayer != NULL ) + if( checkingPlayer ) { int newPlayerDim = 0; if( newPlayer->dimension == -1 ) newPlayerDim = 1; else if( newPlayer->dimension == 1) newPlayerDim = 2; bool foundPrimary = false; - for(AUTO_VAR(it, receiveAllPlayers[newPlayerDim].begin()); it != receiveAllPlayers[newPlayerDim].end(); ++it) + for(auto& primaryPlayer : receiveAllPlayers[newPlayerDim]) { - shared_ptr primaryPlayer = *it; INetworkPlayer *primPlayer = primaryPlayer->connection->getNetworkPlayer(); if(primPlayer != NULL && checkingPlayer->IsSameSystem( primPlayer ) ) { @@ -1562,11 +1552,10 @@ void PlayerList::addPlayerToReceiving(shared_ptr player) } else { - for(AUTO_VAR(it, receiveAllPlayers[playerDim].begin()); it != receiveAllPlayers[playerDim].end(); ++it) + for(auto& oldPlayer : receiveAllPlayers[playerDim]) { - shared_ptr oldPlayer = *it; INetworkPlayer *checkingPlayer = oldPlayer->connection->getNetworkPlayer(); - if(checkingPlayer != NULL && checkingPlayer->IsSameSystem( thisPlayer ) ) + if(checkingPlayer != NULL && checkingPlayer->IsSameSystem( thisPlayer ) ) { shouldAddPlayer = false; break; @@ -1588,9 +1577,8 @@ bool PlayerList::canReceiveAllPackets(shared_ptr player) int playerDim = 0; if( player->dimension == -1 ) playerDim = 1; else if( player->dimension == 1) playerDim = 2; - for(AUTO_VAR(it, receiveAllPlayers[playerDim].begin()); it != receiveAllPlayers[playerDim].end(); ++it) + for(const auto& newPlayer : receiveAllPlayers[playerDim]) { - shared_ptr newPlayer = *it; if(newPlayer == player) { return true; @@ -1619,9 +1607,9 @@ bool PlayerList::isXuidBanned(PlayerUID xuid) bool banned = false; - for( AUTO_VAR(it, m_bannedXuids.begin()); it != m_bannedXuids.end(); ++it ) + for(PlayerUID it : m_bannedXuids) { - if( ProfileManager.AreXUIDSEqual( xuid, *it ) ) + if( ProfileManager.AreXUIDSEqual( xuid, it ) ) { banned = true; break; -- cgit v1.2.3