package Ġnet . gre em dev . mod . client . gui Ċ Ċ import Ġcom . moj ang . bl aze 3 d . vertex . Pose Stack Ċ import Ġnet . gre em dev . mod . util .* Ċ import Ġnet . minecraft . Chat Formatting Ċ import Ġnet . minecraft . client . Minecraft Ċ import Ġnet . minecraft . client . gui . components . Button Ċ import Ġnet . minecraft . client . gui . components . Object Selection List Ċ import Ġnet . minecraft . client . gui . screens . Screen Ċ import Ġnet . minecraft . nbt . Compound Tag Ċ import Ġnet . minecraft . network . chat . Component Ċ import Ġnet . minecraft . network . chat . Text Component Ċ Ċ // ĠThis Ġis Ġthe ĠKotlin Ġimplementation Ġof ĠSil ent Lib 's Ġsystem . Ċ // ĠIt Ġwas Ġused Ġas Ġa Ġreference . ĠHe avy Ġreference . ĠIf Ġyou Ġcan 't Ġtell . Ċ Ċ class ĠNbt Display Screen ( val Ġn bt : ĠCompound Tag , Ġtitle In : ĠComponent ) Ġ: ĠScreen ( title In ) Ġ{ ĊĊĠĠĠ Ġvar Ġheader : ĠComponent Ġ= Ġtitle ĊĠĠĠ Ġval Ġmc Ġby Ġinvoking Ġ{ Ġm inecraft Ġ?: ĠMinecraft . getInstance () Ġ} ĊĊĠĠĠ Ġval Ġlines Ġby Ġinvoking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbase Ġ= ĠN BT Util . format N bt ( nbt , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn @ inv oking Ġarray ListOf < String >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( text Builder (). with Reset ("{ "). format ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase . forEach Ġ{ Ġadd ( NBT Util . indent ( 1 ) Ġ+ Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( text Builder (). with Reset (" } "). format ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġlateinit Ġvar Ġdisplay List : ĠNbt Display List ĊĊĠĠĠ Ġoverride Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscaled Width Ġ= Ġmc . window . gui Scaled Width ĊĠĠĠĠĠĠĠ Ġval Ġscaled Height Ġ= Ġmc . window . gui Scaled Height ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġ 2 0 ĊĠĠĠĠĠĠĠ Ġadd Render able Widget ( Button ( scaled Width Ġ- Ġ( width Ġ+ Ġ 5 ) Ġ- Ġ 2 , Ġscaled Height Ġ- Ġ( height Ġ+ Ġ 2 0 ) Ġ- Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth , Ġheight , Ġtext Component (" Export Ġto ĠJSON ") Ġ{ Ġwith Style ( Chat Formatting . GREEN ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj Obj Ġ= ĠN BT Util . Json . to J Object ( nbt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠN BT Util . Json . save ( j Obj ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ= Ġtext Component ( message ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġdisplay List Ġ= ĠNbt Display List ( this , Ġmc , Ġscaled Width Ġ+ Ġ 8 0 , Ġthis . height , Ġ 1 2 , Ġthis . height Ġ- Ġ 1 2 , Ġ 1 1 ). also (:: addWidget ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( p Pose Stack : ĠP ose Stack , Ġp Mouse X : ĠInt , Ġp Mouse Y : ĠInt , Ġp Partial Tick : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay List . render ( p Pose Stack , Ġp Mouse X , Ġp Mouse Y , Ġp Partial Tick ) ĊĠĠĠĠĠĠĠ Ġval Ġscaled Width Ġ= Ġmc . window . gui Scaled Width ĊĠĠĠĠĠĠĠ Ġrender Text Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscaled ( p Pose Stack , Ġfont , Ġtext Component ( header . string ). visual Order Text , Ġ( scaled Width Ġ- Ġfont . width ( header . string )) Ġ/ Ġ 2 , Ġ 2 , Ġ 1 f , Ġ 0 x FFFFFF , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . render ( p Pose Stack , Ġp Mouse X , Ġp Mouse Y , Ġp Partial Tick ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠNbt Display List ( screen : ĠNbt Display Screen , Ġmc : ĠMinecraft , Ġwidth : ĠInt , Ġheight : ĠInt , Ġtop : ĠInt , Ġbottom : ĠInt , Ġslot Height : ĠInt ) ĊĠĠĠ Ġ: ĠObject Selection List < N bt Display List . Entry >( mc , Ġwidth , Ġheight , Ġtop , Ġbottom , Ġslot Height ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġscreen . lines . forEach Ġ{ Ġadd Entry ( N bt Display List . Entry ( it )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Row Width (): ĠInt Ġ= Ġsuper . getRow Width () Ġ+ Ġ 2 0 0 ĊĊĠĠĠ Ġclass ĠEntry ( val Ġtext : ĠString ) Ġ: ĠObject Selection List . Entry < Entry >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrender ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix : ĠP ose Stack , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Index : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Top : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Left : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Width : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Height : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Mouse X : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Mouse Y : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Is Mouse Over : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Partial Tick : ĠFloat ĊĠĠĠĠĠĠĠ Ġ) Ġ= Ġrender Text Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscaled ( matrix , ĠMinecraft . getInstance (). font , Ġtext Component ( text ). visual Order Text , Ġp Left , Ġp Top , Ġ 1 . 1 5 f , Ġ 0 x FFFFFF , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget N arr ation (): ĠComponent Ġ= ĠText Component . EMPTY ĊĠĠĠ Ġ} Ċ }