From 1b74471c3a4d8b3827b77b2111df6a02e6b2fa37 Mon Sep 17 00:00:00 2001 From: cidoku Date: Mon, 17 Feb 2025 21:42:15 -0300 Subject: [PATCH] logout button / only enable kick-ban if logged in --- gameview.py | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/gameview.py b/gameview.py index 505b5ce..87a2654 100644 --- a/gameview.py +++ b/gameview.py @@ -685,6 +685,7 @@ class gui(QtGui.QWidget): charini = ConfigParser() chatmsg = '' charid = -1 + login = False #ICchat = QtCore.pyqtSignal(str, str, str, str, str, str, int, int, int, int, int, int, int, int) #ICchat = QtCore.pyqtSignal(list) @@ -863,9 +864,11 @@ class gui(QtGui.QWidget): self.playerKick = QtGui.QPushButton(self.gametab_players) self.playerKick.setText('Kick') self.playerKick.clicked.connect(self.onClicked_playerKick) + self.playerKick.setDisabled(True) self.playerBan = QtGui.QPushButton(self.gametab_players) self.playerBan.setText('Ban') self.playerBan.clicked.connect(self.onClicked_playerBan) + self.playerBan.setDisabled(True) self.unmutedlist = QtGui.QListWidget(self.gametab_mute) self.mutedlist = QtGui.QListWidget(self.gametab_mute) @@ -931,12 +934,12 @@ class gui(QtGui.QWidget): self.gametabs.addTab(self.gametab_log, 'Log') self.gametabs.addTab(self.gametab_evidence, 'Evidence') - self.gametabs.addTab(self.gametab_msgqueue, 'Queue') self.gametabs.addTab(self.gametab_players, 'Players') self.gametabs.addTab(self.gametab_mute, 'Mute') self.gametabs.addTab(self.gametab_iniswap, 'INI swap') self.gametabs.addTab(self.gametab_pair, 'Pair') self.gametabs.addTab(self.gametab_misc, 'Misc') + self.gametabs.addTab(self.gametab_msgqueue, 'Queue') self.icchatinput = QtGui.QLineEdit(self) self.icchatinput.setGeometry(0, VIEWPORT_H, VIEWPORT_W, 23) @@ -1169,10 +1172,16 @@ class gui(QtGui.QWidget): self.effectdropdown.setCurrentIndex(0) def onOOCLoginBtn(self): - password, ok = QtGui.QInputDialog.getText(self, "Login as moderator", "Enter password.") - if password and ok: - self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/login") - self.sendOOCchat(self.oocnameinput.text().toUtf8(), password.toUtf8()) + if not self.oocnameinput.text(): + self.oocnameinput.setText("unnamed") + + if not self.login: + password, ok = QtGui.QInputDialog.getText(self, "Login as moderator", "Enter password.") + if password and ok: + self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/login") + self.sendOOCchat(self.oocnameinput.text().toUtf8(), password.toUtf8()) + else: + self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/logout") def setPing(self, newping): self.pinglabel.setText("Ping: %d" % newping) @@ -1595,6 +1604,12 @@ class gui(QtGui.QWidget): elif type == 'warning': reply = QtGui.QMessageBox.warning(self, *args, **kwargs) if self.willDisconnect: + self.selectedplayer = -1 + self.playerList.clear() + self.playerKick.setDisabled(True) + self.playerBan.setDisabled(True) + self.ooclogin.setText("Login") + login = False self.stopMusic() self.gamewindow.returnToMenu() @@ -1649,7 +1664,7 @@ class gui(QtGui.QWidget): for i in range(1, len(l)+len(l)-1, 2): l.insert(i, " ") text = l.join("") - + self.sendOOCchat(self.oocnameinput.text().toUtf8(), text) self.oocinput.clear() @@ -2651,7 +2666,7 @@ class gui(QtGui.QWidget): self.charselect.setCharList(charlist) self.charselect.show() - self.oocnameinput.setText(ini.read_ini("AO2XP.ini", "General", "OOC name")) + self.oocnameinput.setText(ini.read_ini("AO2XP.ini", "General", "OOC name", "unnamed")) self.shownameedit.setText(ini.read_ini("AO2XP.ini", "General", "Showname")) self.pairdropdown.clear() @@ -3040,6 +3055,10 @@ class TCP_Thread(QtCore.QThread): self.parent.playerList.clear() self.parent.stopMusic() self.parent.tcp.close() + self.parent.playerKick.setDisabled(True) + self.parent.playerBan.setDisabled(True) + self.parent.ooclogin.setText("Login") + self.parent.login = False self.quit() return pingtimer -= 1 @@ -3184,6 +3203,16 @@ class TCP_Thread(QtCore.QThread): elif header == 'AUTH': # login status (AO 2.9) status = int(network[1]) statusStrings = ["You have logged out", "Wrong password", "Logged in"] + if status == 1: + self.parent.login = True + self.parent.playerKick.setDisabled(False) + self.parent.playerBan.setDisabled(False) + self.parent.ooclogin.setText("Log out") + elif status == -1: + self.parent.login = False + self.parent.playerKick.setDisabled(True) + self.parent.playerBan.setDisabled(True) + self.parent.ooclogin.setText("Login") self.OOC_Log.emit("%s" % (statusStrings[status+1])) elif header == "CHECK": #ping