From 6af00a6d0de44ecc46b7c155129ba1d1f4165f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Wed, 17 Jun 2020 03:37:50 +0300 Subject: [PATCH] Avoid getting stuck if unable to get fresh random decks --- gameloop.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gameloop.py b/gameloop.py index d8287c6..ead9b10 100644 --- a/gameloop.py +++ b/gameloop.py @@ -277,12 +277,14 @@ def game(send, notice, voice, devoice, get_event): if namespace in deck_namespaces: if deck_namespaces[namespace].supports_random: - # Let's hope this never bites us in the butt - while True: + for _ in range(5): code = errwrapper('Failure getting random code for a deck. (%s)', get_random_deck_code, namespace) if code is Error: return if (namespace, code) not in decks: break send('That was weird, got %s randomly but it was already added' % code) + else: + send('Did not get a fresh random deck in 5 tries, bailing out') + return errwrapper('Failure adding deck: %s %s (%%s)' % (namespace, code), add_deck, namespace, code) send('Added deck %s (%s %s)' % (decks[(namespace, code)].name, namespace, code)) else: