From b38147852af0cf7808106be37ead0c7d1b2771b6 Mon Sep 17 00:00:00 2001 From: LoafyLemon Date: Tue, 20 Dec 2022 22:54:47 +0000 Subject: [PATCH] Bug fix * Fixed naughty list username retrieval failing on Windows --- .../rooms/main_room/objects/poster.rpy | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/game/scripts/rooms/main_room/objects/poster.rpy b/game/scripts/rooms/main_room/objects/poster.rpy index 1687f688..b4af2a1c 100644 --- a/game/scripts/rooms/main_room/objects/poster.rpy +++ b/game/scripts/rooms/main_room/objects/poster.rpy @@ -17,19 +17,31 @@ default naughty_list_commentary = False label naughty_list: python: + # This code retrieves user name and displays it on a leaderboard-like + # list for funsies, the variable is discarded afterwards. _username = None _d = [(i, get_character_progression(i)) for i in CHARACTERS if get_character_unlock(i)] _d.append(["Snape", sna_friendship]) try: - _username = os.getlogin().split(" ")[0].capitalize() + _username = os.getenv("USERNAME") + + if not _username: + _username = os.getlogin() + + # Windows returns an empty string when it encounters an error, + # in ucrtbase.dll, and we need to catch that. + if not _username: + raise Exception("Cannot retrieve user name, using the fallback.") + + _username = _username.split(" ")[0].capitalize() _d.append([_username, 999]) + except: _d.append(["Genie", 999]) _d.sort(key=lambda x: x[1], reverse=True) - show screen naughty_list(_d) with d3 @@ -38,16 +50,19 @@ label naughty_list: pause 1.0 - if _username: - gen "List checks out... But who the fuck is [_username]?" ("base", xpos="far_left", ypos="head") - else: + if _username is None: gen "I'm on the first place, nice!" ("base", xpos="far_left", ypos="head") + else: + gen "List checks out... But who the fuck is [_username]?" ("base", xpos="far_left", ypos="head") call ctc hide screen naughty_list with d3 + python: + del _username + jump main_room_menu screen naughty_list(d):