parent
1d4adb796a
commit
9ce9a47493
4 changed files with 107 additions and 88 deletions
@ -0,0 +1,79 @@ |
||||
import minecraft.networking.packets |
||||
|
||||
from minecraft.networking.packets import Packet |
||||
from minecraft.networking.types import BlockFace, VarInt, Position, Boolean, Byte |
||||
|
||||
#def qot(x): |
||||
# print('qot.') |
||||
# return set() |
||||
# |
||||
#minecraft.networking.packets.clientbound.play.get_packets = qot |
||||
|
||||
|
||||
class AcknowledgePlayerDiggingPacket(Packet): |
||||
@staticmethod |
||||
def get_id(context): |
||||
return 0x08 |
||||
|
||||
packet_name = 'acknowledge player digging' |
||||
definition = [ |
||||
{'status': VarInt}, |
||||
{'location': Position}, |
||||
{'face': VarInt}, |
||||
{'successful': Boolean}, |
||||
] |
||||
|
||||
class BlockBreakAnimationPacket(Packet): |
||||
@staticmethod |
||||
def get_id(context): |
||||
return 0x09 |
||||
|
||||
packet_name = 'block break animation' |
||||
definition = [ |
||||
{'entity_id': VarInt}, |
||||
{'location': Position}, |
||||
{'destroy_stage': Byte}, |
||||
] |
||||
|
||||
def get_packets(old_get_packets): |
||||
def wrapper(func, context): |
||||
print('Monkey-patched.') |
||||
packets = func(context) |
||||
packets.add(AcknowledgePlayerDiggingPacket) |
||||
packets.add(BlockBreakAnimationPacket) |
||||
return packets |
||||
return lambda x: wrapper(old_get_packets, x) |
||||
|
||||
minecraft.networking.packets.clientbound.play.get_packets = get_packets(minecraft.networking.packets.clientbound.play.get_packets) |
||||
|
||||
class PlayerDiggingPacket(Packet): |
||||
# used when player mines / breaks blocks |
||||
# https://wiki.vg/Protocol#Player_Digging |
||||
|
||||
id = 0x1A |
||||
packet_name = 'player digging' |
||||
|
||||
definition = [ |
||||
{'status': VarInt}, |
||||
{'location': Position}, |
||||
{'face': VarInt}, |
||||
] |
||||
|
||||
STARTED = 0 |
||||
CANCELLED = 1 |
||||
FINISHED = 2 |
||||
|
||||
# PlayerBlockPlacementPacket.Face is an alias for BlockFace. |
||||
Face = BlockFace |
||||
|
||||
|
||||
class PickItemPacket(Packet): |
||||
# used when player picks item (middle click) |
||||
# https://wiki.vg/Protocol#Pick_Item |
||||
|
||||
id = 0x17 |
||||
packet_name = 'pick item' |
||||
|
||||
definition = [ |
||||
{'slot_to_use': VarInt}, |
||||
] |
Loading…
Reference in new issue