fix not being able to disable Discord RPC

This commit is contained in:
csd4ni3l
2025-04-23 10:08:19 +02:00
parent d32d49b27b
commit 13f0983534

View File

@@ -1,4 +1,4 @@
import arcade, arcade.gui, asyncio, pypresence, time
import arcade, arcade.gui, asyncio, pypresence, time, copy, json
from utils.preload import button_texture, button_hovered_texture
from utils.constants import button_style
from utils.utils import FakePyPresence
@@ -12,30 +12,40 @@ class Main(arcade.gui.UIView):
self.pypresence_client = pypresence_client
with open("settings.json", "r") as file:
self.settings_dict = json.load(file)
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(1360953272843632680)
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):
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(1360953272843632680)
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)
def on_show_view(self):