From ccef4b7a8e240b3aaaa0efbf810f5670965e4113 Mon Sep 17 00:00:00 2001 From: csd4ni3l Date: Wed, 23 Apr 2025 10:07:45 +0200 Subject: [PATCH] fix not being able to be disable discord RPC --- menus/main.py | 56 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/menus/main.py b/menus/main.py index 0d67867..c1eaa1d 100644 --- a/menus/main.py +++ b/menus/main.py @@ -1,4 +1,4 @@ -import arcade, arcade.gui, asyncio, pypresence, time, json +import arcade, arcade.gui, asyncio, pypresence, time, json, copy from utils.preload import button_texture, button_hovered_texture, theme_sound from utils.constants import button_style from utils.utils import FakePyPresence @@ -12,29 +12,39 @@ class Main(arcade.gui.UIView): self.pypresence_client = pypresence_client - if self.pypresence_client == None: # Game has started - try: - asyncio.get_event_loop() - except: - asyncio.set_event_loop(asyncio.new_event_loop()) - try: - self.pypresence_client = pypresence.Presence(1363780625928028200) - self.pypresence_client.connect() - self.pypresence_client.start_time = time.time() - except: - self.pypresence_client = FakePyPresence() - self.pypresence_client.start_time = time.time() + with open("settings.json", "r") as file: + self.settings_dict = json.load(file) - elif isinstance(self.pypresence_client, FakePyPresence): - # get start time from old object - start_time = copy.deepcopy(self.pypresence_client.start_time) - try: - self.pypresence_client = pypresence.Presence(1363780625928028200) - self.pypresence_client.connect() - self.pypresence_client.start_time = start_time - except: - self.pypresence_client = FakePyPresence() - self.pypresence_client.start_time = start_time + if self.settings_dict.get('discord_rpc', True): + if self.pypresence_client == None: # Game has started + try: + asyncio.get_event_loop() + except: + asyncio.set_event_loop(asyncio.new_event_loop()) + try: + self.pypresence_client = pypresence.Presence(1363780625928028200) + self.pypresence_client.connect() + self.pypresence_client.start_time = time.time() + except: + self.pypresence_client = FakePyPresence() + self.pypresence_client.start_time = time.time() + + elif isinstance(self.pypresence_client, FakePyPresence): # the user has enabled RPC in the settings in this session. + # get start time from old object + start_time = copy.deepcopy(self.pypresence_client.start_time) + try: + self.pypresence_client = pypresence.Presence(1363780625928028200) + self.pypresence_client.connect() + self.pypresence_client.start_time = start_time + except: + self.pypresence_client = FakePyPresence() + self.pypresence_client.start_time = start_time + + self.pypresence_client.update(state='In Menu', + details=f'In Main Menu', start=self.pypresence_client.start_time) + else: # game has started, but the user has disabled RPC in the settings. + self.pypresence_client = FakePyPresence() + self.pypresence_client.start_time = time.time() self.pypresence_client.update(state='In Menu', details='In Main Menu', start=self.pypresence_client.start_time)