def chat(self, message): if self.mode is not ClientMode.Server: raise network.NotInServerMode("We are not connected to any server") if self.game is None: raise network.NotInGameLobby("We are not in a game lobby") self.log.debug("[CHAT] %s" % (message)) self.send(packets.client.cmd_chatmsg(message)) return True
def leavegame(self): if self.mode is not ClientMode.Server: raise network.NotInServerMode("We are not connected to any server") if self.game is None: raise network.NotInGameLobby("We are not in a game lobby") self.log.debug("[LEAVE]") self.send(packets.client.cmd_leavegame()) packet = self.recv_packet([packets.cmd_error, packets.cmd_ok]) if packet is None: raise network.CommandError("No reply from server") elif isinstance(packet[1], packets.cmd_error): raise network.CommandError(packet[1].errorstr) elif not isinstance(packet[1], packets.cmd_ok): raise network.CommandError("Unexpected packet") self.game = None return True
def leavegame(self, stealth=False): if self.mode is None: raise network.NotConnected() if self.mode is not ClientMode.Server: raise network.NotInServerMode("We are not in server mode") if self.game is None: raise network.NotInGameLobby("We are not in a game lobby") self.log.debug("[LEAVE]") if stealth: self.game = None return self.send(packets.client.cmd_leavegame()) packet = self.recv_packet([packets.cmd_ok]) if packet is None: raise network.FatalError("No reply from server") elif not isinstance(packet[1], packets.cmd_ok): raise network.CommandError("Unexpected packet") self.game = None return True
def _assert_lobby(self): if self._game is None: raise network.NotInGameLobby("We are not in a game lobby")