Repository navigation
Keep the serverinfo timer and round embed alive when verification is unavailable - #39
Conversation
…unavailable #38 caught VerifierException in Moderator's own verifier lookups, but scrutinizeCkey reaches Verifier::get through Civ13::ckeyinfo() too, and the plain loop timer turned that throw into a PHP fatal again (2026-10-29 13:19). Catch any throwable per ckey in the serverinfo timer and log it. The round embed's verified-player list also threw from the same lookup, so the embed was never built; omit that list while verification is unavailable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. Walkthrough
Merge Risk:
|
Summary
Follow-up to #38. After deploying #38 (
5c6e2b8) the portable bot still died within 3 minutes with a player connected:scrutinizeCkey()also reachesVerifier::get()throughCiv13::ckeyinfo(), and the serverinfo timer is a plain loop timer, so any throw is fatal.GameServer::serverinfoTimer(): catch any\Throwableper ckey and log a warning, so one player's check can never kill the bot.GameServer::createCurrentRoundEmbedMessageBuilder(): the verified-player list calledVerifier::get()insidearray_map; while verification is unavailable it threw and the round embed was never built (Could not create a MessageBuilder for test1714). Omit that list instead.Testing
php -l src/Civ13/GameServer.php: no syntax errors.Civ13instance). Live check after merge: portable bot stays up across several 180 s serverinfo cycles with a player connected and hosted verification unavailable.🤖 Generated with Claude Code
Summary by CodeRabbit