From 324bc614ac72f7e331d147af4adaa8025506db7f Mon Sep 17 00:00:00 2001 From: Hexalgo Date: Tue, 2 Jul 2024 21:00:54 +0200 Subject: [PATCH] improving a little the tracking of kamas lost on teleporting --- .../berilia/managers/KernelEvent.py | 1 + .../berilia/managers/KernelEventsManager.py | 3 +-- .../com/ankamagames/dofus/kernel/Kernel.py | 8 +++---- ...icationFrame.py => AuthenticationFrame.py} | 2 +- .../frames/DisconnectionHandlerFrame.py | 4 ++-- .../connection/frames/ServerSelectionFrame.py | 21 +++++++++---------- 6 files changed, 19 insertions(+), 20 deletions(-) rename pydofus2/com/ankamagames/dofus/logic/connection/frames/{AuthentificationFrame.py => AuthenticationFrame.py} (99%) diff --git a/pydofus2/com/ankamagames/berilia/managers/KernelEvent.py b/pydofus2/com/ankamagames/berilia/managers/KernelEvent.py index 765114ad4..72db6a7f2 100644 --- a/pydofus2/com/ankamagames/berilia/managers/KernelEvent.py +++ b/pydofus2/com/ankamagames/berilia/managers/KernelEvent.py @@ -92,6 +92,7 @@ class KernelEvent(Enum): ObtainedItem = auto() JobExperienceUpdate = auto() PlayerAddedToSceene = auto() + KamasLostFromTeleport = auto() # NPC NpcDialogOpen = auto() diff --git a/pydofus2/com/ankamagames/berilia/managers/KernelEventsManager.py b/pydofus2/com/ankamagames/berilia/managers/KernelEventsManager.py index 4781758ca..bb6fe1d85 100644 --- a/pydofus2/com/ankamagames/berilia/managers/KernelEventsManager.py +++ b/pydofus2/com/ankamagames/berilia/managers/KernelEventsManager.py @@ -61,7 +61,6 @@ def onEvt(event: Event, processedMapId): def send(self, event_id: KernelEvent, *args, **kwargs): self._listeners.get(event_id, []) - # Logger().info(f"Sending event {event_id} to {len(event_listeners)} listeners : {event_listeners}") if event_id == KernelEvent.ClientCrashed: self._crashMessage = kwargs.get("message", None) super().send(event_id, *args, **kwargs) @@ -142,5 +141,5 @@ def onNewMember(event: Event, partyId, member: PartyMemberInformations): ontimeout(event.listener) KernelEventsManager().on( - KernelEvent.MemberJoinedParty, onNewMember, timeout=None, ontimeout=None, originator=originator + KernelEvent.MemberJoinedParty, onNewMember, timeout=timeout, ontimeout=ontimeout, originator=originator ) diff --git a/pydofus2/com/ankamagames/dofus/kernel/Kernel.py b/pydofus2/com/ankamagames/dofus/kernel/Kernel.py index 687eafe59..92914d7a6 100644 --- a/pydofus2/com/ankamagames/dofus/kernel/Kernel.py +++ b/pydofus2/com/ankamagames/dofus/kernel/Kernel.py @@ -19,7 +19,7 @@ from pydofus2.com.ankamagames.dofus.logic.common.frames.ExternalGameFrame import ExternalGameFrame from pydofus2.com.ankamagames.dofus.logic.common.frames.MountDialogFrame import MountDialogFrame from pydofus2.com.ankamagames.dofus.logic.common.frames.QuestFrame import QuestFrame - from pydofus2.com.ankamagames.dofus.logic.connection.frames.AuthentificationFrame import AuthentificationFrame + from pydofus2.com.ankamagames.dofus.logic.connection.frames.AuthenticationFrame import AuthenticationFrame from pydofus2.com.ankamagames.dofus.logic.connection.frames.ServerSelectionFrame import ServerSelectionFrame from pydofus2.com.ankamagames.dofus.logic.game.approach.frames.GameServerApproachFrame import ( GameServerApproachFrame, @@ -165,14 +165,14 @@ def addInitialFrames(self) -> None: from pydofus2.com.ankamagames.dofus.logic.common.frames.ExternalGameFrame import ExternalGameFrame from pydofus2.com.ankamagames.dofus.logic.common.frames.LatencyFrame import LatencyFrame from pydofus2.com.ankamagames.dofus.logic.common.frames.QueueFrame import QueueFrame - from pydofus2.com.ankamagames.dofus.logic.connection.frames.AuthentificationFrame import AuthentificationFrame + from pydofus2.com.ankamagames.dofus.logic.connection.frames.AuthenticationFrame import AuthenticationFrame from pydofus2.com.ankamagames.dofus.logic.connection.frames.DisconnectionHandlerFrame import ( DisconnectionHandlerFrame, ) Logger().info("Adding initial frames ...") self._worker.addFrame(LatencyFrame()) - self._worker.addFrame(AuthentificationFrame()) + self._worker.addFrame(AuthenticationFrame()) self._worker.addFrame(QueueFrame()) self._worker.addFrame(DisconnectionHandlerFrame()) self._worker.addFrame(CleanupCrewFrame()) @@ -229,7 +229,7 @@ def roleplayContextFrame(self) -> "RoleplayContextFrame": return self._worker.getFrameByName("RoleplayContextFrame") @property - def authFrame(self) -> "AuthentificationFrame": + def authFrame(self) -> "AuthenticationFrame": return self._worker.getFrameByName("AuthentificationFrame") @property diff --git a/pydofus2/com/ankamagames/dofus/logic/connection/frames/AuthentificationFrame.py b/pydofus2/com/ankamagames/dofus/logic/connection/frames/AuthenticationFrame.py similarity index 99% rename from pydofus2/com/ankamagames/dofus/logic/connection/frames/AuthentificationFrame.py rename to pydofus2/com/ankamagames/dofus/logic/connection/frames/AuthenticationFrame.py index 2203ad486..1e2a358c9 100644 --- a/pydofus2/com/ankamagames/dofus/logic/connection/frames/AuthentificationFrame.py +++ b/pydofus2/com/ankamagames/dofus/logic/connection/frames/AuthenticationFrame.py @@ -42,7 +42,7 @@ from pydofus2.com.ClientStatusEnum import ClientStatusEnum -class AuthentificationFrame(Frame): +class AuthenticationFrame(Frame): HIDDEN_PORT: int = 443 CONNEXION_MODULE_NAME: str = "ComputerModule_Ankama_Connection" diff --git a/pydofus2/com/ankamagames/dofus/logic/connection/frames/DisconnectionHandlerFrame.py b/pydofus2/com/ankamagames/dofus/logic/connection/frames/DisconnectionHandlerFrame.py index 585c6c7f8..8a83c9885 100644 --- a/pydofus2/com/ankamagames/dofus/logic/connection/frames/DisconnectionHandlerFrame.py +++ b/pydofus2/com/ankamagames/dofus/logic/connection/frames/DisconnectionHandlerFrame.py @@ -10,7 +10,7 @@ from pydofus2.com.ankamagames.dofus.logic.connection.actions.LoginValidationWithTokenAction import ( LoginValidationWithTokenAction as LVA_WithToken, ) -from pydofus2.com.ankamagames.dofus.logic.connection.frames.AuthentificationFrame import AuthentificationFrame +from pydofus2.com.ankamagames.dofus.logic.connection.frames.AuthenticationFrame import AuthenticationFrame from pydofus2.com.ankamagames.dofus.logic.connection.managers.AuthenticationManager import AuthenticationManager from pydofus2.com.ankamagames.jerakine.logger.Logger import Logger from pydofus2.com.ankamagames.jerakine.messages.ConnectionProcessCrashedMessage import ConnectionProcessCrashedMessage @@ -97,7 +97,7 @@ def process(self, msg: Message) -> bool: ) else: Logger().info(f"Switching to target server {targetServerId} server ...") - Kernel().worker.addFrame(AuthentificationFrame()) + Kernel().worker.addFrame(AuthenticationFrame()) Kernel().worker.addFrame(QueueFrame()) lva = LVA_WithToken.create(targetServerId != 0, targetServerId) Kernel().worker.process(lva) diff --git a/pydofus2/com/ankamagames/dofus/logic/connection/frames/ServerSelectionFrame.py b/pydofus2/com/ankamagames/dofus/logic/connection/frames/ServerSelectionFrame.py index 4ea90c4b7..bac241a59 100644 --- a/pydofus2/com/ankamagames/dofus/logic/connection/frames/ServerSelectionFrame.py +++ b/pydofus2/com/ankamagames/dofus/logic/connection/frames/ServerSelectionFrame.py @@ -48,7 +48,7 @@ def __init__(self): self._worker: Worker = None self._alreadyConnectedToServerId: int = 0 self._serverSelectionAction: ServerSelectionAction = None - self._connexionPorts: list = [] + self._connectionPorts: list = [] self._waitingServerOnline = False self._serversTypeAvailableSlots = dict() super().__init__() @@ -131,14 +131,14 @@ def process(self, msg: Message) -> bool: Logger().error(f"Closed connection to change server but no serverId is specified in Auth Manager") else: from pydofus2.com.ankamagames.dofus.logic.common.frames.QueueFrame import QueueFrame - from pydofus2.com.ankamagames.dofus.logic.connection.frames.AuthentificationFrame import ( - AuthentificationFrame, + from pydofus2.com.ankamagames.dofus.logic.connection.frames.AuthenticationFrame import ( + AuthenticationFrame, ) Logger().info( f"Connection closed to change server to {AuthenticationManager()._lva.serverId}, will reconnect" ) - Kernel().worker.addFrame(AuthentificationFrame()) + Kernel().worker.addFrame(AuthenticationFrame()) Kernel().worker.addFrame(QueueFrame()) Kernel().worker.process( LoginValidationWithTokenAction.create( @@ -155,7 +155,7 @@ def process(self, msg: Message) -> bool: AuthenticationManager().gameServerTicket = AuthenticationManager().decodeWithAES(msg.ticket).decode() PlayerManager().server = Server.getServerById(msg.serverId) PlayerManager().kisServerPort = 0 - self._connexionPorts = msg.ports + self._connectionPorts = msg.ports KernelEventsManager().send( KernelEvent.SelectedServerData, msg.serverId, @@ -169,16 +169,15 @@ def process(self, msg: Message) -> bool: return True if isinstance(msg, SelectedServerRefusedMessage): - ssrmsg = msg for server in self._serversList: - self.getUpdateServerStatusFunction(ssrmsg.serverId, ssrmsg.serverStatus)(server) + self.getUpdateServerStatusFunction(msg.serverId, msg.serverStatus)(server) self.broadcastServersListUpdate() - error_text = self.getSelectionErrorText(ssrmsg.error, ssrmsg.serverStatus) + error_text = self.getSelectionErrorText(msg.error, msg.serverStatus) KernelEventsManager().send( KernelEvent.SelectedServerRefused, - ssrmsg.serverId, - ssrmsg.error, - ssrmsg.serverStatus, + msg.serverId, + msg.error, + msg.serverStatus, error_text, self.getSelectableServers(), )