package Ġdial ight . gu ilib čĊč Ċ import Ġcom . google . inject . Inject č Ċ import Ġdial ight . extensions . get OrNull č Ċ import Ġdial ight . gu ilib . mixin . setValue č Ċ import Ġdial ight . observable . map . observable Map Of č Ċ import Ġorg . slf 4 j . Logger č Ċ import Ġorg . spongepowered . api . Sp onge č Ċ import Ġorg . spongepowered . api . entity . living . player . Player č Ċ import Ġorg . spongepowered . api . event . Listener č Ċ import Ġorg . spongepowered . api . event . game . state . Game Started Server Event č Ċ import Ġorg . spongepowered . api . item . inventory . Container č Ċ import Ġorg . spongepowered . api . item . inventory . Inventory č Ċ import Ġorg . spongepowered . api . item . inventory . property . Ident ifiable č Ċ import Ġorg . spongepowered . api . plugin . Plugin č Ċ import Ġorg . spongepowered . api . plugin . Plugin Container č Ċ import Ġorg . spongepowered . api . plugin . PluginManager č Ċ import Ġjava . util .* čĊč Ċ @ Plugin ( id Ġ= Ġ" gu ilib ") č Ċ class ĠGui Plugin Ġ@ Inject Ġconstructor ( čĊĠĠĠ Ġval Ġcontainer : ĠPlugin Container , čĊĠĠĠ Ġval Ġlogger : ĠLogger č Ċ ) Ġ{ čĊčĊĠĠĠ Ġval Ġgu imap Ġ= ĠGui Map ( this ) čĊĠĠĠ Ġval Ġgu istory Ġ= ĠGui Story ( this ) čĊčĊĠĠĠ Ġ@ Listener čĊĠĠĠ Ġfun Ġon Server Start ( event : ĠGame Started Server Event ) Ġ{ čĊĠĠĠĠĠĠĠ ĠSp onge . getEvent Manager (). register Listeners ( this , ĠGui Listener ( this )) čĊĠĠĠĠĠĠĠ Ġlogger . info ("${ container . name } Ġv ${ container . version . orElse (" null ")} Ġhas Ġbeen ĠEnabled ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġopen View ( player : ĠPlayer , Ġview : ĠView ) Ġ= Ġgu imap . open View ( player , Ġview ) čĊĠĠĠ Ġfun Ġopen Gui ( player : ĠPlayer , Ġgui : ĠGui ) Ġ= Ġgu istory . open Gui ( player , Ġgui ) čĊĠĠĠ Ġfun Ġopen Last ( player : ĠPlayer ) Ġ= Ġgu istory . open Last ( player ) čĊĠĠĠ Ġfun Ġclear Story ( player : ĠPlayer ) Ġ= Ġgu istory . clear Story ( player ) čĊĠĠĠ Ġfun Ġcurrent Gui ( player : ĠPlayer , Ġtarget Inventory : ĠContainer ? Ġ= Ġnull ): ĠGui ? Ġ{ čĊĠĠĠĠĠĠĠ Ġvar Ġinv : ĠInventory ? Ġ= Ġtarget Inventory čĊĠĠĠĠĠĠĠ Ġif ( inv Ġ== Ġnull ) Ġinv Ġ= Ġplayer . open Inventory . get OrNull () Ġ?: Ġreturn Ġnull čĊĠĠĠĠĠĠĠ Ġval Ġgui Ġ= Ġgu istory . current Gui ( player , Ġinv ) čĊĠĠĠĠĠĠĠ Ġif ( gui Ġ!= Ġnull ) Ġreturn Ġgui č Ċ // ĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= Ġgu imap . getCurrent Uuid ( player ) č Ċ // ĠĠĠĠĠĠĠ Ġif ( uuid Ġ!= Ġnull ) Ġ{ č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid to prop Ġ= Ġinv . get Inventory Property ( Ident ifiable :: class . java ). get OrNull () Ġ?: Ġthrow ĠException (" Can 't Ġidentify Ġto Ġview ") č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġid to prop . setValue ( uuid ) č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgui Ġ= Ġgu istory . current Gui ( player , Ġinv ) č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif ( gui Ġ!= Ġnull ) Ġreturn Ġgui č Ċ // ĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġnull čĊĠĠĠ Ġ} čĊč Ċ }