def teleport_to_own_ship(self, data): """ Teleports a player to their own ship. If no source player is provided, we assume you mean yourself. Syntax: /teleport home [source player] """ usage = 'Syntax: /teleport home [source player]' if not data: source = self.protocol.player.name else: source, rest = extract_name(data) if not self._validate_player(source): self.protocol.send_chat_message(usage) return source = source.lower() source_player = self.player_manager.get_logged_in_by_name(source) if source_player is None: self.logger.debug('Error: Player %s is not logged in.', source) self.protocol.send_chat_message( 'Error: Player {} is not logged in.'.format(source) ) return source_protocol = self.factory.protocols[source_player.protocol] teleport_packet = build_packet( Packets.PLAYER_WARP, player_warp_toalias_write(alias=2) ) source_protocol.client_protocol.transport.write(teleport_packet)
def warp_player_to_player(self, from_string, to_string): self.logger.debug("Warp player-to-player command called by %s: %s to %s", self.protocol.player.name, from_string, to_string) from_player = self.player_manager.get_logged_in_by_name(from_string) to_player = self.player_manager.get_logged_in_by_name(to_string) if from_player is not None: if to_player is not None: from_protocol = self.factory.protocols[from_player.protocol] if from_player is not to_player: self.logger.debug("target: %s", to_player.uuid) warp_packet = build_packet(Packets.PLAYER_WARP, player_warp_toplayer_write( uuid=to_player.uuid )) else: warp_packet = build_packet(Packets.PLAYER_WARP, player_warp_toalias_write( alias=WarpAliasType.SHIP )) from_protocol.client_protocol.transport.write(warp_packet) if from_string != to_string: self.protocol.send_chat_message("Warped ^yellow;%s^green; to ^yellow;%s^green;." % (from_string, to_string)) else: self.protocol.send_chat_message("Warped to ^yellow;%s^green;." % to_string) else: self.protocol.send_chat_message("No player by the name ^yellow;%s^green; found." % to_string) self.protocol.send_chat_message(self.warp.__doc__) return else: self.protocol.send_chat_message("No player by the name ^yellow;%s^green; found." % from_string) self.protocol.send_chat_message(self.warp.__doc__)
def warp_player_to_player(self, from_string, to_string): self.logger.debug( 'Warp player-to-player command called by %s: %s to %s', self.protocol.player.name, from_string, to_string) from_player = self.player_manager.get_logged_in_by_name(from_string) to_player = self.player_manager.get_logged_in_by_name(to_string) if from_player is not None: if to_player is not None: from_protocol = self.factory.protocols[from_player.protocol] if from_player is not to_player: self.logger.debug('target: %s', to_player.uuid) warp_packet = build_packet( Packets.PLAYER_WARP, player_warp_toplayer_write(uuid=to_player.uuid)) else: warp_packet = build_packet( Packets.PLAYER_WARP, player_warp_toalias_write(alias=WarpAliasType.SHIP)) from_protocol.client_protocol.transport.write(warp_packet) if from_string != to_string: self.protocol.send_chat_message( 'Warped ^yellow;{}^green;' ' to ^yellow;{}^green;.'.format( from_string, to_string)) else: self.protocol.send_chat_message( 'Warped to ^yellow;{}^green;.'.format(to_string)) else: self.protocol.send_chat_message( 'No player by the name ^yellow;{}^green; found.'.format( to_string)) self.protocol.send_chat_message(self.warp.__doc__) return else: self.protocol.send_chat_message( 'No player by the name ^yellow;{}^green; found.'.format( to_player)) self.protocol.send_chat_message(self.warp.__doc__)