1
0
Fork 0
mirror of synced 2024-06-23 08:40:45 +12:00

Fix console and game exit when rare closed

This commit is contained in:
Dummerle 2022-06-27 00:53:28 +02:00
parent 3f437a33fc
commit 52765be01a
No known key found for this signature in database
GPG key ID: AB68CC59CA39F2F1

View file

@ -5,7 +5,7 @@ import time
import traceback
from argparse import Namespace
from logging import getLogger
from typing import Union
from typing import Union, Optional
from PyQt5.QtCore import QObject, QProcess, pyqtSignal, QUrl, QRunnable, QThreadPool, QSettings
from PyQt5.QtGui import QDesktopServices
@ -59,7 +59,7 @@ class PreLaunchThread(QRunnable):
class GameProcessApp(RareApp):
game_process: QProcess
server: QLocalServer
socket: QLocalSocket = None
socket: Optional[QLocalSocket] = None
exit_app = pyqtSignal()
console: Console = None
success: bool = True
@ -91,12 +91,12 @@ class GameProcessApp(RareApp):
self.game_process.finished.connect(self.game_finished)
self.game_process.errorOccurred.connect(
lambda err: self.error_occurred(self.game_process.errorString()))
self.game_process.readyReadStandardOutput.connect(
lambda: self.console.log(
str(self.game_process.readAllStandardOutput().data(), "utf-8", "ignore")
if self.console:
self.game_process.readyReadStandardOutput.connect(
lambda: self.console.log(
str(self.game_process.readAllStandardOutput().data(), "utf-8", "ignore")
)
)
)
self.start_time = time.time()
@ -108,11 +108,14 @@ class GameProcessApp(RareApp):
pass
self.logger.info("New connection")
self.socket = self.server.nextPendingConnection()
self.socket.disconnected.connect(self.socket.deleteLater)
self.socket.disconnected.connect(lambda: self.logger.info("Server disconnected"))
self.socket.disconnected.connect(self.socket_disconnected)
self.socket.flush()
def socket_disconnected(self):
self.logger.info("Server disconnected")
self.socket.deleteLater()
self.socket = None
def send_message(self, message: BaseModel):
if self.socket:
self.socket.write(json.dumps(message.__dict__).encode("utf-8"))