Merge pull request #103 from SirGhostal/patch-2

This commit is contained in:
joo 2019-05-13 19:14:37 +02:00 committed by GitHub
commit 4956d5e70d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 6 deletions

View File

@ -187,6 +187,16 @@ class Connection(object):
else:
self._outgoing_packet_queue.append(packet)
def listener(self, *packet_types, **kwds):
"""
Shorthand decorator to register a function as a packet listener.
"""
def _method_func(method):
self.register_packet_listener(method, *packet_types, **kwds)
return method
return _method_func
def register_packet_listener(self, method, *packet_types, **kwds):
"""
Registers a listener method which will be notified when a packet of

View File

@ -224,26 +224,23 @@ class EarlyPacketListenerTest(ConnectTest):
the early packet listener is registered afterwards.
"""
def _start_client(self, client):
@client.listener(clientbound.play.JoinGamePacket)
def handle_join(packet):
assert early_handle_join.called, \
'Ordinary listener called before early listener.'
handle_join.called = True
handle_join.called = False
client.register_packet_listener(
handle_join, clientbound.play.JoinGamePacket)
@client.listener(clientbound.play.JoinGamePacket, early=True)
def early_handle_join(packet):
early_handle_join.called = True
client.register_packet_listener(
early_handle_join, clientbound.play.JoinGamePacket, early=True)
early_handle_join.called = False
@client.listener(clientbound.play.DisconnectPacket)
def handle_disconnect(packet):
assert early_handle_join.called, 'Early listener not called.'
assert handle_join.called, 'Ordinary listener not called.'
raise fake_server.FakeServerTestSuccess
client.register_packet_listener(
handle_disconnect, clientbound.play.DisconnectPacket)
client.connect()