fix not being able to be disable discord RPC

This commit is contained in:
csd4ni3l
2025-04-23 10:07:45 +02:00
parent bffada58a0
commit ccef4b7a8e

View File

@@ -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.preload import button_texture, button_hovered_texture, theme_sound
from utils.constants import button_style from utils.constants import button_style
from utils.utils import FakePyPresence from utils.utils import FakePyPresence
@@ -12,29 +12,39 @@ class Main(arcade.gui.UIView):
self.pypresence_client = pypresence_client self.pypresence_client = pypresence_client
if self.pypresence_client == None: # Game has started with open("settings.json", "r") as file:
try: self.settings_dict = json.load(file)
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): if self.settings_dict.get('discord_rpc', True):
# get start time from old object if self.pypresence_client == None: # Game has started
start_time = copy.deepcopy(self.pypresence_client.start_time) try:
try: asyncio.get_event_loop()
self.pypresence_client = pypresence.Presence(1363780625928028200) except:
self.pypresence_client.connect() asyncio.set_event_loop(asyncio.new_event_loop())
self.pypresence_client.start_time = start_time try:
except: self.pypresence_client = pypresence.Presence(1363780625928028200)
self.pypresence_client = FakePyPresence() self.pypresence_client.connect()
self.pypresence_client.start_time = start_time 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) self.pypresence_client.update(state='In Menu', details='In Main Menu', start=self.pypresence_client.start_time)