Fix EveryoneVerified setting being scoped to a specific player
checkIfAllPlayersVerified() read and wrote the EveryoneVerified setting scoped to whichever player happened to trigger the check (getSetting(..., $player) / setPlayer($player)), but it's meant to be a single session-wide flag. getFileContent() correctly reads it as session-global (no player, filters player IS NULL), so the two never matched: the "everyone verified" Mercure message still fired (that code path only checks its own player-scoped copy), but the special code injection into the Doyle/Vega/Lennox report files never ran since getFileContent() never found the setting. Store and read it consistently as session-global. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -635,7 +635,7 @@ class GameResponseService
|
||||
private function checkIfAllPlayersVerified(Player $player): void
|
||||
{
|
||||
$session = $player->getSession();
|
||||
$everyoneVerifiedSetting = $this->sessionSettingRepository->getSetting($session, SessionSettingType::EVERYONE_VERIFIED, $player);
|
||||
$everyoneVerifiedSetting = $this->sessionSettingRepository->getSetting($session, SessionSettingType::EVERYONE_VERIFIED);
|
||||
|
||||
if ($everyoneVerifiedSetting && $everyoneVerifiedSetting->getValue() === 'true') {
|
||||
return;
|
||||
@@ -663,7 +663,6 @@ class GameResponseService
|
||||
if (!$everyoneVerifiedSetting) {
|
||||
$everyoneVerifiedSetting = new SessionSetting();
|
||||
$everyoneVerifiedSetting->setSession($session);
|
||||
$everyoneVerifiedSetting->setPlayer($player);
|
||||
$everyoneVerifiedSetting->setName(SessionSettingType::EVERYONE_VERIFIED);
|
||||
}
|
||||
$everyoneVerifiedSetting->setValue('true');
|
||||
|
||||
Reference in New Issue
Block a user