diff --git a/src/multiint.cpp b/src/multiint.cpp index a6e930fbb43..10f0abfbc5e 100644 --- a/src/multiint.cpp +++ b/src/multiint.cpp @@ -3240,6 +3240,7 @@ static SwapPlayerIndexesResult recvSwapPlayerIndexes(NETQUEUE queue, const std:: } } swapPlayerMultiStatsLocal(playerIndexA, playerIndexB); + std::swap(ingame.muteChat[playerIndexA], ingame.muteChat[playerIndexB]); multiSyncPlayerSwap(playerIndexA, playerIndexB); if (playerIndexA == selectedPlayer || playerIndexB == selectedPlayer) diff --git a/src/multijoin.cpp b/src/multijoin.cpp index b09267cd831..34a896d52e7 100644 --- a/src/multijoin.cpp +++ b/src/multijoin.cpp @@ -443,6 +443,8 @@ bool MultiPlayerLeave(UDWORD playerIndex) NETlogEntry("Player leaving game", SYNC_FLAG, playerIndex); debug(LOG_NET, "** Player %u [%s], has left the game at game time %u.", playerIndex, getPlayerName(playerIndex), gameTime); + ingame.muteChat[playerIndex] = false; + if (wz_command_interface_enabled()) { std::string playerPublicKeyB64 = base64Encode(getMultiStats(playerIndex).identity.toBytes(EcKey::Public));