package Ġtab ool ib . module . chat Ċ Ċ import Ġnet . md _ 5 . b ungee . api . chat .* Ċ import Ġnet . md _ 5 . b ungee . api . chat . hover . content . Item Ċ import Ġnet . md _ 5 . b ungee . api . chat . hover . content . Text Ċ import Ġnet . md _ 5 . b ungee . chat . Component Serializer Ċ import Ġtab ool ib . common . Is olated Ċ import Ġtab ool ib . common . env . Runtime Dependency Ċ import Ġtab ool ib . common . platform . Proxy Command Sender Ċ import Ġtab ool ib . common . platform . Proxy Player Ċ Ċ /** Ċ Ġ* Ġ@ author Ġsky Ċ Ġ* Ġ@ since Ġ 2 0 1 8 - 0 5 - 2 6 Ġ 1 4 : 4 2 json Ċ Ġ*/ Ċ @ Runtime Dependency ( ĊĠĠĠ Ġvalue Ġ= Ġ"! net . md - 5 : b unge ec ord - chat : 1 . 1 7 ", Ġtest Ġ= Ġ"! net . md _ 5 . b ungee . api . chat . Text Component ", ĊĠĠĠ Ġrepository Ġ= Ġ" https :// repo 2 s . pt ms . ink / repository / maven - public " Ċ ) Ċ @ Is olated Ċ @ Suppress (" DE PREC ATION ") Ċ open Ġclass ĠRaw Message Ġ{ ĊĊĠĠĠ Ġvar Ġcomponents Ġ= ĠArrayList < Base Component >() ĊĠĠĠ Ġval Ġcomponents Latest Ġ= ĠArrayList < Base Component >() ĊĊĠĠĠ Ġopen Ġfun Ġsend To ( sender : ĠProxy Command Sender , Ġbuilder : ĠRaw Message . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sender Ġis ĠProxy Player ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . send Raw Message ( to Raw Message ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( to Legacy Text ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġto Raw Message (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠComponent Serializer . toString (* components All . to Typed Array ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġto Legacy Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠText Component . to Legacy Text (* components All . to Typed Array ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġto Plain Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠText Component . to Plain Text (* components All . to Typed Array ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġnew Line (): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġappend ("\ n ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġappend ( text : ĠString ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġnew () ĊĠĠĠĠĠĠĠ Ġcomponents Latest . addAll ( Text Component . from Legacy Text ( text )) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġappend ( json : ĠRaw Message ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġnew () ĊĠĠĠĠĠĠĠ Ġcomponents Latest . addAll ( json . components All ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġhover Text ( text : ĠString ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . hover Event Ġ= ĠHover Event ( Hover Event . Action . SHOW _ TEXT , ĠText ( text )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠNo Class Def Found Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . hover Event Ġ= ĠHover Event ( Hover Event . Action . SHOW _ TEXT , ĠText Component . from Legacy Text ( text )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠNoSuch Method Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . hover Event Ġ= ĠHover Event ( Hover Event . Action . SHOW _ TEXT , ĠText Component . from Legacy Text ( text )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġhover Item ( id : ĠString , Ġtag : ĠString Ġ= Ġ"{} "): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . hover Event Ġ= ĠHover Event ( Hover Event . Action . SHOW _ ITEM , ĠItem ( id , Ġ 1 , ĠItem Tag . of N bt ( tag ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠNo Class Def Found Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . hover Event Ġ= ĠHover Event ( Hover Event . Action . SHOW _ ITEM , ĠComponent Builder ("{ id :\" $ id \", Count : 1 b , tag :$ tag } "). create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠNoSuch Method Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . hover Event Ġ= ĠHover Event ( Hover Event . Action . SHOW _ ITEM , ĠComponent Builder ("{ id :\" $ id \", Count : 1 b , tag :$ tag } "). create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġinsertion ( text : ĠString ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ Ġit . insertion Ġ= Ġtext Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġopen URL ( url : ĠString ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ Ġit . click Event Ġ= ĠClick Event ( Click Event . Action . OPEN _ URL , Ġurl ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġopen File ( file : ĠString ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ Ġit . click Event Ġ= ĠClick Event ( Click Event . Action . OPEN _ FILE , Ġfile ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġrun Command ( command : ĠString ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ Ġit . click Event Ġ= ĠClick Event ( Click Event . Action . RUN _ COMMAND , Ġcommand ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġchange Page ( page : ĠInt ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ Ġit . click Event Ġ= ĠClick Event ( Click Event . Action . CHANGE _ PAGE , Ġpage . toString ()) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġsuggest Command ( command : ĠString ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ Ġit . click Event Ġ= ĠClick Event ( Click Event . Action . SU G GEST _ COMMAND , Ġcommand ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġcopy To Clipboard ( text : ĠString ): ĠRaw Message Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents Latest . forEach Ġ{ Ġit . click Event Ġ= ĠClick Event ( Click Event . Action . COPY _ TO _ CLIP BOARD , Ġtext ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġval Ġcomponents All : ĠList < Base Component > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponents Ġ= Ġcomponents . filter Ġ{ Ġit Ġ! is ĠText Component Ġ|| Ġit . text . isNotEmpty () Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . addAll ( components Latest . filter Ġ{ Ġit Ġ! is ĠText Component Ġ|| Ġit . text . isNotEmpty () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcomponents ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġnew () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponents . addAll ( components Latest ) ĊĠĠĠĠĠĠĠ Ġcomponents Latest . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġwhitelist Tags Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĻĦ éŃ Ķ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ench ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĻĦ éŃ Ķ Ġ 1 . 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Enchant ments ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĻĦ éŃ Ķ ä¹¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Stored Enchant ments ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ å±ķç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" display ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå±ŀæĢ§ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Attribute Modifiers ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ èį ¯ æ°´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" P otion ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ çī¹æ®Ĭ èį ¯ æ°´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Custom P otion Effects ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éļĲèĹı æłĩçŃ¾ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Hide Flags ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æĸ¹ åĿĹ æłĩçŃ¾ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Block Entity Tag ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBu kkit Ġ èĩªå®ļä¹ī æłĩçŃ¾ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Public Bu kkit Values " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }