package Ġorg . age series . security age . data Ċ Ċ import Ġnet . minecraft . nbt . Compound Tag Ċ import Ġjava . util .* Ċ Ċ class ĠKey Bit ting Ġ{ ĊĠĠĠ Ġpublic Ġvar Ġdescriptor : ĠBit ting Descriptor ? Ġ= Ġnull ĊĠĠĠ Ġpublic Ġvar Ġpins : ĠInt Array ? Ġ= Ġnull ĊĠĠĠ Ġpublic Ġvar Ġoverrides Ġ= Ġfalse ĊĊĠĠĠ Ġval ĠOVER RIDE _ BIT TING : ĠKey Bit ting Ġ= ĠKey Bit ting ( true ) ĊĊĠĠĠ Ġprivate Ġfun ĠKey Bit ting ( unused : ĠBoolean ): ĠKey Bit ting Ġ{ ĊĠĠĠĠĠĠĠ Ġdescriptor Ġ= ĠBit ting Descriptor . WO OD ĊĠĠĠĠĠĠĠ Ġpins Ġ= ĠInt Array ( descriptor !!. positions !! ) ĊĠĠĠĠĠĠĠ Ġoverrides Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠKey Bit ting ( descriptor : ĠBit ting Descriptor ?, Ġpins : ĠInt Array ): ĠKey Bit ting Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . descriptor Ġ= Ġdescriptor ĊĠĠĠĠĠĠĠ Ġthis . pins Ġ= Ġpins ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠKey Bit ting ( descriptor : ĠBit ting Descriptor ): ĠKey Bit ting Ġ{ ĊĠĠĠĠĠĠĠ ĠKey Bit ting ( descriptor , ĠInt Array ( descriptor . positions !! )) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Pin ( idx : ĠInt ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( idx Ġ< Ġ 0 Ġ|| Ġidx Ġ>= Ġdescriptor !!. positions ) Ġ- 1 Ġelse Ġpins ?. get ( idx ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Pin ( idx : ĠInt , Ġsetting : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsetting Ġ= Ġsetting ĊĠĠĠĠĠĠĠ Ġif Ġ( idx Ġ< Ġ 0 Ġ|| Ġidx Ġ>= Ġdescriptor !!. positions !! ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( setting Ġ< Ġ 0 ) Ġsetting Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( setting Ġ>= Ġdescriptor !!. settings !! ) Ġsetting Ġ= Ġdescriptor !!. settings !! Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġpins ?. set ( idx , Ġsetting ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfits ( lock : ĠLock set Bit ting ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlock . fits ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto NBT (): ĠCompound Tag ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= ĠCompound Tag () ĊĠĠĠĠĠĠĠ Ġtag . put (" desc ", Ġdescriptor !!. to NBT ()) ĊĠĠĠĠĠĠĠ Ġtag . put IntArray (" pins ", Ġpins ) ĊĠĠĠĠĠĠĠ Ġif Ġ( overrides ) Ġtag . put Boolean (" overrides ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtag ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfrom NBT ( tag : ĠCompound Tag ): ĠKey Bit ting Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdesc Ġ= ĠBit ting Descriptor . from NBT ( tag . get Compound (" desc ")) ĊĠĠĠĠĠĠĠ Ġval Ġpins Ġ= Ġtag . getInt Array (" pins ") ĊĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠKey Bit ting ( desc , Ġpins ) ĊĠĠĠĠĠĠĠ Ġif Ġ( tag . get (" overrides ") Ġ!= Ġnull Ġ&& Ġtag . getBoolean (" overrides ")) Ġinstance . overrides Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġinstance ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Key Bit ting {" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" descriptor =" Ġ+ Ġdescriptor Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġpins =" Ġ+ ĠArrays . toString ( pins ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġoverrides =" Ġ+ Ġoverrides Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' }' ĊĠĠĠ Ġ} Ċ }