/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . Ċ Ġ* ĠCreated Ġby ĠYo lo Santa Ċ Ġ* ĠCreated ĠOn Ġ 1 0 / 2 2 / 2 0 , Ġ 1 : 2 3 ĠAM Ċ Ġ*/ Ċ Ċ package Ġcc . fy re . st ark . engine . sign Ċ Ċ import Ġcom . comp hen ix . protocol . Packet Type Ċ import Ġcom . comp hen ix . protocol . Protocol Library Ċ import Ġcom . comp hen ix . protocol . Protocol Manager Ċ import Ġcom . comp hen ix . protocol . events . Packet Adapter Ċ import Ġcom . comp hen ix . protocol . events . Packet Container Ċ import Ġcom . comp hen ix . protocol . events . Packet Listener Ċ import Ġorg . bukkit . Material Ċ import Ġorg . bukkit . entity . Player Ċ import Ġorg . bukkit . util . Vector Ċ import Ġjava . lang . reflect . Invocation TargetException Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠD addy Dom bo Ġd addy dom bo @ gmail . com Ġon Ġ 9 / 2 / 2 0 2 0 . Ċ Ġ*/ Ċ class ĠSign GUI Ġ{ ĊĠĠĠ Ġvar Ġprotocol Manager : ĠProtocol Manager Ġ= ĠProtocol Library . get Protocol Manager () ĊĠĠĠ Ġvar Ġpacket Listener : ĠPacket Adapter ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġlisteners : ĠMutable Map < String , ĠSign GUI Listener > Ġ= ĠConcurrent HashMap () ĊĠĠĠ Ġvar Ġsign Locations : ĠMutable Map < String , ĠVector > Ġ= ĠConcurrent HashMap () ĊĊĊĠĠĠ Ġfun Ġopen ( player : ĠPlayer , Ġdefault Text : ĠArray < String ?> ?, Ġresponse : ĠSign GUI Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpackets : ĠMutable List < Packet Container > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġvar Ġx Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġz Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( default Text Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= Ġplayer . location . block X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġz Ġ= Ġplayer . location . block Z ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpacket 5 3 Ġ= Ġprotocol Manager . create Packet ( Packet Type . Play . Server . BLOCK _ CHANGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpacket 5 3 . inte gers . write ( 0 , ĠInteger . valueOf ( x )). write ( 1 , ĠInteger . valueOf ( y )). write ( 2 , ĠInteger . valueOf ( z )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpacket 5 3 . blocks . write ( 0 , ĠMaterial . SIGN _ POST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackets . add ( packet 5 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpacket 1 3 0 Ġ= Ġprotocol Manager . create Packet ( Packet Type . Play . Server . UPDATE _ SIGN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpacket 1 3 0 . inte gers . write ( 0 , ĠInteger . valueOf ( x )). write ( 1 , ĠInteger . valueOf ( y )). write ( 2 , ĠInteger . valueOf ( z )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpacket 1 3 0 . string Arrays . write ( 0 , Ġdefault Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackets . add ( packet 1 3 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpacket 1 3 3 Ġ= Ġprotocol Manager . create Packet ( Packet Type . Play . Server . OPEN _ SIGN _ ENTITY ) ĊĠĠĠĠĠĠĠ Ġpacket 1 3 3 . inte gers . write ( 0 , ĠInteger . valueOf ( x )). write ( 2 , ĠInteger . valueOf ( z )) ĊĠĠĠĠĠĠĠ Ġpackets . add ( packet 1 3 3 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( default Text Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpacket 5 3 Ġ= Ġprotocol Manager . create Packet ( Packet Type . Play . Server . BLOCK _ CHANGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpacket 5 3 . inte gers . write ( 0 , ĠInteger . valueOf ( x )). write ( 1 , ĠInteger . valueOf ( 0 )). write ( 2 , ĠInteger . valueOf ( z )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpacket 5 3 . blocks . write ( 0 , ĠMaterial . B ED RO CK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackets . add ( packet 5 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( packet Ġin Ġpackets ) Ġprotocol Manager . send Server Packet ( player , Ġpacket ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsign Locations [ player . name ] Ġ= ĠVector ( x , Ġy , Ġz ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlisteners [ player . name ] Ġ= Ġresponse ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInvocation TargetException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġprotocol Manager . remove Packet Listener ( packet Listener Ġas ĠPacket Listener ?) ĊĠĠĠĠĠĠĠ Ġlisteners . clear () ĊĠĠĠĠĠĠĠ Ġsign Locations . clear () ĊĠĠĠ Ġ} Ċ }