Improve labeled chest caching interactions
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import unittest
|
||||
from munch import Munch
|
||||
|
||||
from minecraft.networking.modern import ClientTickEnd, UseItemOnBlockPacket
|
||||
from mosfet.game import Game
|
||||
from mosfet.protocol.modern import PlayerInputPacket
|
||||
|
||||
|
||||
class FakeConnection:
|
||||
def __init__(self):
|
||||
self.packets = []
|
||||
|
||||
def write_packet(self, packet, force=False):
|
||||
self.packets.append((packet, force))
|
||||
|
||||
|
||||
class SneakPlacementTests(unittest.TestCase):
|
||||
def test_sneaking_wraps_block_placement_and_is_released(self):
|
||||
connection = FakeConnection()
|
||||
game = Game.__new__(Game)
|
||||
game.g = Munch(connection=connection)
|
||||
game.sequence = 0
|
||||
|
||||
game.place_block((3, 64, 7), 1, sneaking=True)
|
||||
|
||||
packets = [packet for packet, _force in connection.packets]
|
||||
self.assertEqual(len(packets), 6)
|
||||
self.assertIsInstance(packets[0], PlayerInputPacket)
|
||||
self.assertEqual(packets[0].flags, 0x20)
|
||||
self.assertIsInstance(packets[1], ClientTickEnd)
|
||||
self.assertIsInstance(packets[2], UseItemOnBlockPacket)
|
||||
self.assertEqual(packets[2].location, (3, 64, 7))
|
||||
self.assertIsInstance(packets[3], ClientTickEnd)
|
||||
self.assertIsInstance(packets[4], PlayerInputPacket)
|
||||
self.assertEqual(packets[4].flags, 0)
|
||||
self.assertIsInstance(packets[5], ClientTickEnd)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user