2017-08-09 21:53:54 +02:00
|
|
|
import unittest
|
|
|
|
|
2018-05-27 14:28:01 +02:00
|
|
|
from minecraft import SUPPORTED_PROTOCOL_VERSIONS
|
|
|
|
from minecraft.networking.connection import ConnectionContext
|
2017-08-09 21:53:54 +02:00
|
|
|
from minecraft.networking import packets
|
2018-03-02 02:49:08 +01:00
|
|
|
from minecraft.networking import types
|
2017-08-09 21:53:54 +02:00
|
|
|
from minecraft.networking.packets import clientbound
|
|
|
|
from minecraft.networking.packets import serverbound
|
|
|
|
|
|
|
|
|
|
|
|
class LegacyPacketNamesTest(unittest.TestCase):
|
|
|
|
def test_legacy_packets_equal_current_packets(self):
|
2017-08-24 03:14:53 +02:00
|
|
|
self.assertEqual(packets.KeepAlivePacket,
|
|
|
|
packets.AbstractKeepAlivePacket)
|
|
|
|
|
2017-08-09 21:53:54 +02:00
|
|
|
self.assertEqual(packets.state_handshake_clientbound,
|
|
|
|
clientbound.handshake.get_packets)
|
|
|
|
self.assertEqual(packets.HandShakePacket,
|
|
|
|
serverbound.handshake.HandShakePacket)
|
|
|
|
self.assertEqual(packets.state_handshake_serverbound,
|
|
|
|
serverbound.handshake.get_packets)
|
|
|
|
|
|
|
|
self.assertEqual(packets.ResponsePacket,
|
|
|
|
clientbound.status.ResponsePacket)
|
|
|
|
self.assertEqual(packets.PingPacketResponse,
|
|
|
|
clientbound.status.PingResponsePacket)
|
|
|
|
self.assertEqual(packets.state_status_clientbound,
|
|
|
|
clientbound.status.get_packets)
|
|
|
|
self.assertEqual(packets.RequestPacket,
|
|
|
|
serverbound.status.RequestPacket)
|
|
|
|
self.assertEqual(packets.PingPacket,
|
|
|
|
serverbound.status.PingPacket)
|
|
|
|
self.assertEqual(packets.state_status_serverbound,
|
|
|
|
serverbound.status.get_packets)
|
|
|
|
|
|
|
|
self.assertEqual(packets.DisconnectPacket,
|
|
|
|
clientbound.login.DisconnectPacket)
|
|
|
|
self.assertEqual(packets.EncryptionRequestPacket,
|
|
|
|
clientbound.login.EncryptionRequestPacket)
|
|
|
|
self.assertEqual(packets.LoginSuccessPacket,
|
|
|
|
clientbound.login.LoginSuccessPacket)
|
|
|
|
self.assertEqual(packets.SetCompressionPacket,
|
|
|
|
clientbound.login.SetCompressionPacket)
|
|
|
|
self.assertEqual(packets.state_login_clientbound,
|
|
|
|
clientbound.login.get_packets)
|
|
|
|
self.assertEqual(packets.LoginStartPacket,
|
|
|
|
serverbound.login.LoginStartPacket)
|
|
|
|
self.assertEqual(packets.EncryptionResponsePacket,
|
|
|
|
serverbound.login.EncryptionResponsePacket)
|
|
|
|
self.assertEqual(packets.state_login_serverbound,
|
|
|
|
serverbound.login.get_packets)
|
|
|
|
|
|
|
|
self.assertEqual(packets.KeepAlivePacketClientbound,
|
|
|
|
clientbound.play.KeepAlivePacket)
|
|
|
|
self.assertEqual(packets.KeepAlivePacketServerbound,
|
|
|
|
serverbound.play.KeepAlivePacket)
|
|
|
|
self.assertEqual(packets.JoinGamePacket,
|
|
|
|
clientbound.play.JoinGamePacket)
|
|
|
|
self.assertEqual(packets.ChatMessagePacket,
|
|
|
|
clientbound.play.ChatMessagePacket)
|
|
|
|
self.assertEqual(packets.PlayerPositionAndLookPacket,
|
|
|
|
clientbound.play.PlayerPositionAndLookPacket)
|
|
|
|
self.assertEqual(packets.DisconnectPacketPlayState,
|
|
|
|
clientbound.play.DisconnectPacket)
|
|
|
|
self.assertEqual(packets.SetCompressionPacketPlayState,
|
|
|
|
clientbound.play.SetCompressionPacket)
|
|
|
|
self.assertEqual(packets.PlayerListItemPacket,
|
|
|
|
clientbound.play.PlayerListItemPacket)
|
|
|
|
self.assertEqual(packets.MapPacket,
|
|
|
|
clientbound.play.MapPacket)
|
|
|
|
self.assertEqual(packets.state_playing_clientbound,
|
|
|
|
clientbound.play.get_packets)
|
|
|
|
self.assertEqual(packets.ChatPacket,
|
|
|
|
serverbound.play.ChatPacket)
|
|
|
|
self.assertEqual(packets.PositionAndLookPacket,
|
|
|
|
serverbound.play.PositionAndLookPacket)
|
|
|
|
self.assertEqual(packets.TeleportConfirmPacket,
|
|
|
|
serverbound.play.TeleportConfirmPacket)
|
|
|
|
self.assertEqual(packets.AnimationPacketServerbound,
|
|
|
|
serverbound.play.AnimationPacket)
|
|
|
|
self.assertEqual(packets.state_playing_serverbound,
|
|
|
|
serverbound.play.get_packets)
|
2018-03-02 02:49:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
class ClassMemberAliasesTest(unittest.TestCase):
|
|
|
|
def test_alias_values(self):
|
|
|
|
self.assertEqual(serverbound.play.AnimationPacket.HAND_MAIN,
|
|
|
|
types.RelativeHand.MAIN)
|
|
|
|
self.assertEqual(serverbound.play.AnimationPacket.HAND_OFF,
|
|
|
|
types.RelativeHand.OFF)
|
|
|
|
|
|
|
|
self.assertEqual(serverbound.play.ClientSettingsPacket.Hand.LEFT,
|
|
|
|
types.AbsoluteHand.LEFT)
|
|
|
|
self.assertEqual(serverbound.play.ClientSettingsPacket.Hand.RIGHT,
|
|
|
|
types.AbsoluteHand.RIGHT)
|
2018-05-27 14:28:01 +02:00
|
|
|
|
|
|
|
def test_block_change_packet(self):
|
|
|
|
context = ConnectionContext()
|
|
|
|
context.protocol_version = SUPPORTED_PROTOCOL_VERSIONS[-1]
|
|
|
|
bi, bm = 358, 9
|
|
|
|
packet = clientbound.play.BlockChangePacket(blockId=bi, blockMeta=bm)
|
|
|
|
self.assertEqual((packet.blockId, packet.blockMeta), (bi, bm))
|
|
|
|
self.assertEqual(packet.blockStateId, packet.block_state_id)
|