Catch CooldownError, AuthorityError and ChecklistError

This commit is contained in:
Ben 2019-06-21 23:09:45 +01:00
parent a4052b66d5
commit 1429e9e9be

View File

@ -5,6 +5,10 @@ from asyncio import IncompleteReadError, CancelledError
import defusedxml.cElementTree as Et import defusedxml.cElementTree as Et
from xml.etree.cElementTree import Element, SubElement, tostring from xml.etree.cElementTree import Element, SubElement, tostring
from houdini.handlers import AuthorityError
from houdini.converters import ChecklistError
from houdini.cooldown import CooldownError
class Spheniscidae: class Spheniscidae:
@ -135,10 +139,17 @@ class Spheniscidae:
async def __data_received(self, data): async def __data_received(self, data):
data = data.decode()[:-1] data = data.decode()[:-1]
if data.startswith('<'): try:
await self.__handle_xml_data(data) if data.startswith('<'):
else: await self.__handle_xml_data(data)
await self.__handle_xt_data(data) else:
await self.__handle_xt_data(data)
except AuthorityError:
self.logger.debug('{} tried to send game packet before authentication'.format(self))
except CooldownError:
self.logger.debug('{} tried to send a packet during a cooldown'.format(self))
except ChecklistError:
self.logger.debug('{} sent a packet without meeting checklist requirements'.format(self))
async def run(self): async def run(self):
await self._client_connected() await self._client_connected()