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: