package Ġorg . r sm od . plugins . api Ċ Ċ import Ġorg . r sm od . game . event . impl . Close Modal Ċ import Ġorg . r sm od . game . event . impl . Close Overlay Ċ import Ġorg . r sm od . game . event . impl . Close TopLevel Ċ import Ġorg . r sm od . game . event . impl . Login Event Ċ import Ġorg . r sm od . game . event . impl . Open Modal Ċ import Ġorg . r sm od . game . event . impl . Open Overlay Ċ import Ġorg . r sm od . game . event . impl . Open TopLevel Ċ import Ġorg . r sm od . game . cmd . Command Builder Ċ import Ġorg . r sm od . game . model . ui . User Interface Ċ import Ġorg . r sm od . game . plugin . Plugin Ċ Ċ fun ĠPlugin . on Early Login ( block : ĠLogin Event . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Login Event >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġpriority Ġ== ĠLogin Event . Priority . High Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ Ċ fun ĠPlugin . on Login ( block : ĠLogin Event . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Login Event >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġpriority Ġ== ĠLogin Event . Priority . Normal Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ Ċ fun ĠPlugin . on Post Login ( block : ĠLogin Event . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Login Event >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġpriority Ġ== ĠLogin Event . Priority . Low Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ Ċ fun ĠPlugin . on Command ( cmd : ĠString , Ġblock : ĠCommand Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġcommands . register ( cmd , Ġblock ) Ċ } Ċ Ċ fun ĠPlugin . on Open TopLevel ( top : ĠUser Interface , Ġblock : ĠOpen TopLevel . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Open TopLevel >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġthis . top Ġ== Ġtop Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ Ċ fun ĠPlugin . onClose TopLevel ( top : ĠUser Interface , Ġblock : ĠClose TopLevel . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Close TopLevel >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġthis . top Ġ== Ġtop Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ Ċ fun ĠPlugin . on Open Modal ( modal : ĠUser Interface , Ġblock : ĠOpen Modal . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Open Modal >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġthis . modal Ġ== Ġmodal Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ Ċ fun ĠPlugin . onClose Modal ( modal : ĠUser Interface , Ġblock : ĠClose Modal . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Close Modal >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġthis . modal Ġ== Ġmodal Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ Ċ fun ĠPlugin . on Open Overlay ( overlay : ĠUser Interface , Ġblock : ĠOpen Overlay . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Open Overlay >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġthis . overlay Ġ== Ġoverlay Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ Ċ fun ĠPlugin . onClose Overlay ( overlay : ĠUser Interface , Ġblock : ĠClose Overlay . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon Event < Close Overlay >() ĊĠĠĠĠĠĠĠ Ġ. where Ġ{ Ġthis . overlay Ġ== Ġoverlay Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( block ) Ċ } Ċ