diff --git a/MANIFEST.in b/MANIFEST.in index 24ed4e9..7009f2f 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ recursive-include rustplus *.png -recursive-include rustplus *.ttf \ No newline at end of file +recursive-include rustplus *.ttf +include requirements.txt diff --git a/rustplus/annotations/entity_event.py b/rustplus/annotations/entity_event.py index 84ba11d..7d27de3 100644 --- a/rustplus/annotations/entity_event.py +++ b/rustplus/annotations/entity_event.py @@ -1,7 +1,7 @@ from typing import Callable from .. import ServerDetails -from ..identification import RegisteredEntityListener, RegisteredListener +from ..identification import RegisteredListener from ..events import EntityEventPayload as EntityEventManager @@ -10,9 +10,7 @@ def wrapper(func) -> RegisteredListener: if isinstance(func, RegisteredListener): func = func.get_coro() - listener = RegisteredEntityListener( - str(eid), func, 1 - ) # TODO, how are we going to handle the entity type? + listener = RegisteredListener(str(eid), func) EntityEventManager.HANDLER_LIST.register(listener, server_details) diff --git a/rustplus/events/entity_event.py b/rustplus/events/entity_event.py index 1c5dd76..b7e434a 100644 --- a/rustplus/events/entity_event.py +++ b/rustplus/events/entity_event.py @@ -26,8 +26,7 @@ def item_is_blueprint(self) -> bool: class EntityEventPayload: HANDLER_LIST = EntityHandlerList() - def __init__(self, entity_changed: AppEntityChanged, entity_type) -> None: - self._type = int(entity_type) # TODO CHECK HOW I HANDLE THIS + def __init__(self, entity_changed: AppEntityChanged) -> None: self._entity_id: int = entity_changed.entity_id self._value: bool = entity_changed.payload.value self._capacity: int = entity_changed.payload.capacity @@ -36,10 +35,6 @@ def __init__(self, entity_changed: AppEntityChanged, entity_type) -> None: self._items: List[Item] = [Item(item) for item in entity_changed.payload.items] - @property - def type(self) -> int: - return self._type - @property def entity_id(self) -> int: return self._entity_id diff --git a/rustplus/identification/__init__.py b/rustplus/identification/__init__.py index e2b323b..4d3c7aa 100644 --- a/rustplus/identification/__init__.py +++ b/rustplus/identification/__init__.py @@ -1,2 +1,2 @@ -from .registered_listener import RegisteredListener, RegisteredEntityListener +from .registered_listener import RegisteredListener from .server_details import ServerDetails diff --git a/rustplus/identification/handler_list.py b/rustplus/identification/handler_list.py index c4b2334..06bee4e 100644 --- a/rustplus/identification/handler_list.py +++ b/rustplus/identification/handler_list.py @@ -2,7 +2,6 @@ from typing import Set, Dict from rustplus.identification import ( RegisteredListener, - RegisteredEntityListener, ServerDetails, ) @@ -34,12 +33,12 @@ def get_handlers(self, server_details: ServerDetails) -> Set[RegisteredListener] class EntityHandlerList(HandlerList): def __init__(self) -> None: super().__init__() - self._handlers: Dict[ - ServerDetails, Dict[str, Set[RegisteredEntityListener]] - ] = defaultdict(dict) + self._handlers: Dict[ServerDetails, Dict[str, Set[RegisteredListener]]] = ( + defaultdict(dict) + ) def unregister( - self, listener: RegisteredEntityListener, server_details: ServerDetails + self, listener: RegisteredListener, server_details: ServerDetails ) -> None: if listener.listener_id in self._handlers.get(server_details): self._handlers.get(server_details).get(listener.listener_id).remove( @@ -47,7 +46,7 @@ def unregister( ) def register( - self, listener: RegisteredEntityListener, server_details: ServerDetails + self, listener: RegisteredListener, server_details: ServerDetails ) -> None: if server_details not in self._handlers: self._handlers[server_details] = defaultdict(set) @@ -57,9 +56,7 @@ def register( self._handlers.get(server_details).get(listener.listener_id).add(listener) - def has( - self, listener: RegisteredEntityListener, server_details: ServerDetails - ) -> bool: + def has(self, listener: RegisteredListener, server_details: ServerDetails) -> bool: if ( server_details in self._handlers and listener.listener_id in self._handlers.get(server_details) @@ -75,5 +72,5 @@ def unregister_all(self) -> None: def get_handlers( self, server_details: ServerDetails - ) -> Dict[str, Set[RegisteredEntityListener]]: + ) -> Dict[str, Set[RegisteredListener]]: return self._handlers.get(server_details, dict()) diff --git a/rustplus/identification/registered_listener.py b/rustplus/identification/registered_listener.py index a7323ef..bc12fa3 100644 --- a/rustplus/identification/registered_listener.py +++ b/rustplus/identification/registered_listener.py @@ -24,26 +24,3 @@ def __eq__(self, other) -> bool: def __hash__(self): return hash((self.listener_id, self._coroutine)) - - -class RegisteredEntityListener(RegisteredListener): - def __init__( - self, - listener_id: str, - coroutine: Coroutine, - entity_type: int, - ) -> None: - super().__init__(listener_id, coroutine) - self.entity_type = entity_type - - def get_entity_type(self): - return self.entity_type - - def __eq__(self, other) -> bool: - if not isinstance(other, RegisteredEntityListener): - return False - - return super().__eq__(other) and self.listener_id == other.listener_id - - def __hash__(self): - return hash((self.listener_id, self._coroutine, self.entity_type)) diff --git a/rustplus/remote/fcm/fcm_listener.py b/rustplus/remote/fcm/fcm_listener.py index 0b4a767..efed9d1 100644 --- a/rustplus/remote/fcm/fcm_listener.py +++ b/rustplus/remote/fcm/fcm_listener.py @@ -18,4 +18,4 @@ def __fcm_listen(self) -> None: if self.data is None: raise ValueError("Data is None") - self._push_listener.listen(callback=self.on_notification) \ No newline at end of file + self._push_listener.listen(callback=self.on_notification) diff --git a/rustplus/remote/websocket/ws.py b/rustplus/remote/websocket/ws.py index d851577..0bff758 100644 --- a/rustplus/remote/websocket/ws.py +++ b/rustplus/remote/websocket/ws.py @@ -84,7 +84,11 @@ async def connect(self) -> bool: async def disconnect(self) -> None: if self.task and self.connection: self.task.cancel() - await self.task + try: + await self.task + except asyncio.CancelledError: + pass # Ignore the cancellation error + self.task = None self.open = False @@ -207,7 +211,6 @@ async def handle_message(self, app_message: AppMessage) -> None: handler.get_coro()( EntityEventPayload( entity_changed=app_message.broadcast.entity_changed, - entity_type=handler.entity_type, ) )