def lineReceived(self, data):
		self.logger.info("Received data: " + data)
                packet = data
		if data.startswith("<"):
			data = etree.fromstring(data)[0]

			if data.get("action") == "rndK":
				self.randomKey = data.findtext("k")
				
				self.sendLogin()

		# World-server data is handled separately
		elif data.startswith("%"):
			if Parser.isValid(data):
				data = Parser.parseRaw(data)
				handler = data[1]
                                        
				if handler in self.listeners:
					for handlerCallback in self.listeners[handler]:
						handlerCallback(data)