package Ġme . anno . network . packets Ċ Ċ import Ġme . anno . io . base . Base Writer Ċ import Ġme . anno . network . Packet Ċ import Ġme . anno . network . Server Ċ import Ġme . anno . network . TCP Client Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ import Ġjava . io . Data InputStream Ċ import Ġjava . io . Data OutputStream Ċ Ċ @ Suppress (" unused ") Ċ open Ġclass ĠClose Packet ( var Ġreason : ĠString , Ġmagic : ĠString ) Ġ: ĠPacket ( magic ) Ġ{ ĊĊĠĠĠ Ġconstructor () Ġ: Ġthis ("") ĊĊĠĠĠ Ġconstructor ( reason : ĠString ) Ġ: Ġthis ( reason , Ġ" CLO S ") ĊĊĠĠĠ Ġconstructor ( reason : ĠString , Ġbig Endian Magic : ĠInt ) Ġ: Ġthis ( reason ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . big Endian Magic Ġ= Ġbig Endian Magic ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġsize : ĠInt Ġ= Ġif Ġ( reason . any Ġ{ Ġit . code Ġ! in Ġ 0 Ġuntil Ġ 1 2 8 Ġ}) Ġ- 1 Ġelse Ġreason . length ĊĊĠĠĠ Ġoverride Ġfun Ġwrite Data ( server : ĠServer ?, Ġclient : ĠTCP Client , Ġdos : ĠData OutputStream ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdos . write UTF ( reason ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread Data ( server : ĠServer ?, Ġclient : ĠTCP Client , Ġdis : ĠData InputStream , Ġsize : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreason Ġ= Ġdis . read UTF () ĊĠĠĠĠĠĠĠ Ġ// Ġshould Ġbe Ġshown Ġin Ġthe ĠUI ĊĠĠĠĠĠĠĠ Ġclient . closing Reason Ġ= Ġreason ĊĠĠĠĠĠĠĠ Ġclient . close () ĊĠĠĠĠĠĠĠ ĠLOGGER . warn (" Connection Ġwas Ġclosed , Ġbecause Ġ'$ reason '") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave ( writer : ĠBase Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . save ( writer ) ĊĠĠĠĠĠĠĠ Ġwriter . writeString (" reason ", Ġreason ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread String ( name : ĠString , Ġvalue : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġ" reason ") Ġreason Ġ= Ġvalue Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġelse Ġsuper . readString ( name , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval ĠclassName : ĠString Ġ= Ġ" Close Packet " ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOGGER Ġ= ĠLog Manager . getLogger ( Close Packet :: class ) ĊĠĠĠ Ġ} Ċ Ċ }