Improve labeled chest caching interactions

This commit is contained in:
Tanner
2026-11-07 18:23:55 +00:00
parent 34d902c46d
commit 688297e968
7 changed files with 240 additions and 25 deletions
+40
View File
@@ -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()