Detect disconnection and exit the script
This commit is contained in:
parent
e4b51aa2d6
commit
f35c7a4e51
9
game.py
9
game.py
|
@ -21,7 +21,7 @@ from protocol.packets import (
|
||||||
ClientWindowConfirmationPacket, EntityMetadataPacket,
|
ClientWindowConfirmationPacket, EntityMetadataPacket,
|
||||||
SpawnLivingEntityPacket, EntityPositionRotationPacket, DestroyEntitiesPacket,
|
SpawnLivingEntityPacket, EntityPositionRotationPacket, DestroyEntitiesPacket,
|
||||||
EntityActionPacket, EntityTeleport, InteractEntityPacket, TradeListPacket,
|
EntityActionPacket, EntityTeleport, InteractEntityPacket, TradeListPacket,
|
||||||
SelectTradePacket,
|
SelectTradePacket, DisconnectPacket,
|
||||||
)
|
)
|
||||||
|
|
||||||
from protocol.types import Slot
|
from protocol.types import Slot
|
||||||
|
@ -374,6 +374,7 @@ class Game:
|
||||||
register(self.handle_update_health, clientbound.play.UpdateHealthPacket)
|
register(self.handle_update_health, clientbound.play.UpdateHealthPacket)
|
||||||
#register(self.handle_entity_velocity, clientbound.play.EntityVelocityPacket)
|
#register(self.handle_entity_velocity, clientbound.play.EntityVelocityPacket)
|
||||||
register(self.handle_trade_list, TradeListPacket)
|
register(self.handle_trade_list, TradeListPacket)
|
||||||
|
register(self.handle_disconnect, DisconnectPacket)
|
||||||
|
|
||||||
#register(self.handle_packet, Packet, early=True)
|
#register(self.handle_packet, Packet, early=True)
|
||||||
|
|
||||||
|
@ -1230,6 +1231,12 @@ class Game:
|
||||||
packet.selected_slot = num
|
packet.selected_slot = num
|
||||||
self.g.connection.write_packet(packet)
|
self.g.connection.write_packet(packet)
|
||||||
|
|
||||||
|
def handle_disconnect(self, packet):
|
||||||
|
print(packet)
|
||||||
|
print('Client disconnected!')
|
||||||
|
import os
|
||||||
|
os._exit(1)
|
||||||
|
|
||||||
def tick(self):
|
def tick(self):
|
||||||
if self.g.breaking:
|
if self.g.breaking:
|
||||||
self.animate()
|
self.animate()
|
||||||
|
|
|
@ -19,6 +19,7 @@ def get_packets(old_get_packets):
|
||||||
mc_packets.add(packets.DestroyEntitiesPacket)
|
mc_packets.add(packets.DestroyEntitiesPacket)
|
||||||
mc_packets.add(packets.EntityTeleport)
|
mc_packets.add(packets.EntityTeleport)
|
||||||
mc_packets.add(packets.TradeListPacket)
|
mc_packets.add(packets.TradeListPacket)
|
||||||
|
mc_packets.add(packets.DisconnectPacket)
|
||||||
|
|
||||||
|
|
||||||
return mc_packets
|
return mc_packets
|
||||||
|
|
|
@ -447,3 +447,14 @@ class SelectTradePacket(Packet):
|
||||||
definition = [
|
definition = [
|
||||||
{'selected_slot': VarInt},
|
{'selected_slot': VarInt},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
class DisconnectPacket(Packet):
|
||||||
|
# Sent by the server before it disconnects a client
|
||||||
|
# https://wiki.vg/Protocol#Disconnect_.28play.29
|
||||||
|
|
||||||
|
id = 0x19
|
||||||
|
packet_name = 'disconnect'
|
||||||
|
|
||||||
|
definition = [
|
||||||
|
{'reason': String},
|
||||||
|
]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user