From fb0451d49fb8d4ae1d4b77164f9377827c377de0 Mon Sep 17 00:00:00 2001 From: NikkeDoy Date: Thu, 12 Dec 2024 02:01:05 +0200 Subject: [PATCH] :bug: | Fixed SHIFT-button getting stuck. --- main.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 557da32..1431a06 100644 --- a/main.py +++ b/main.py @@ -11,6 +11,10 @@ def save_preferences(): save_preferences_button.config(state=DISABLED, text="Saved!") root.after(5000, lambda: save_preferences_button.config(state=NORMAL, text="Save")) +def release_shift(is_windowed): + if is_windowed: + pyautogui.keyUp("shift") + def launch_exe(): # Check for valid server address (Currently only supports numerical addresses (not domains.)) if not validate_server_address(server_address_field.get()): @@ -29,16 +33,21 @@ def launch_exe(): # If game needs to be windowed then we use BF42Plus provided "workaround." if windowed.get(): pyautogui.keyDown("shift") - root.after(5000, lambda: pyautogui.keyUp("shift")) - - subprocess.call([ + try: + subprocess.call([ "./BF1942.exe", "+game", "FinnWars", "+restart", "1", "+game", "FinnWars", "+joinServer", server_address_field.get() ]) - root.quit() + root.after(2000, lambda: release_shift(windowed.get())) + root.after(2050, lambda: root.quit()) + except: + launch_game.config(state=DISABLED, text=".exe not found!") + root.after(5000, lambda: launch_game.config(state=NORMAL, text="Launch")) + + root.after(50, lambda: release_shift(windowed.get())) def validate_server_address(server_address): ip_regex = r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"