package Ġcom . w yn n lab . commands Ċ Ċ import Ġcom . w yn n lab . WL _ COLOR Ċ import Ġcom . w yn n lab . api . send W yn n Message Ċ import Ġcom . w yn n lab . ess entials . Party Ċ import Ġnet . ky ori . ad venture . text . Component Ċ import Ġnet . ky ori . ad venture . text . format . TextColor Ċ import Ġnet . ky ori . ad venture . text . serializer . legacy . Legacy Component Serializer Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . command . Command Ċ import Ġorg . bukkit . command . Command Sender Ċ import Ġorg . bukkit . entity . Player Ċ Ċ object ĠEss entials Commands Ġ: ĠBase Command (" msg ", Ġ" r ", Ġ" party ", Ġ" p ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Command ( sender : ĠCommand Sender , Ġcommand : ĠCommand , Ġlabel : ĠString , Ġargs : ĠArray < out ĠString >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sender Ġ! is ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage (" Â§ c This Ġcommand Ġcan Ġonly Ġbe Ġexecuted Ġby Ġplayers ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( label ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" msg " Ġ-> Ġmsg ( sender , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" r " Ġ-> Ġr ( sender , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" party " Ġ-> Ġparty ( sender , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" p " Ġ-> Ġp ( sender , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmsg ( player : ĠPlayer , Ġargs : ĠArray < out ĠString >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( args . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" commands . no _ receiver ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( args . size Ġ< Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" commands . no _ message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġreceiv ers : ĠList < Player > Ġ= Ġplayer . server . select Entities ( player , Ġargs [ 0 ]). filter Is Instance < Player >() ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġargs . slice ( 1 Ġuntil Ġargs . size ). join ToString (" Ġ") ĊĠĠĠĠĠĠĠ Ġpm ( player , Ġreceiv ers , Ġargs [ 0 ], Ġmessage ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġconversations Ġ= Ġmutable Map Of < Player , ĠPlayer >() ĊĊĠĠĠ Ġprivate Ġfun Ġr ( player : ĠPlayer , Ġargs : ĠArray < out ĠString >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( args . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" commands . no _ message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġreceiver Ġ= Ġconversations [ player ] Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" commands . no _ conversation ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġargs . join ToString (" Ġ") ĊĠĠĠĠĠĠĠ Ġpm ( player , ĠlistOf ( receiver ), Ġplayer . name , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpm ( sender : ĠPlayer , Ġreceiv ers : ĠList < Player >, Ġspecified Receiver : ĠString , Ġtext : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġget Component ( s : ĠComponent , Ġr : ĠComponent ) Ġ= ĠComponent . text ("[ ", ĠText Color . color ( 0 x 6 6 6 6 6 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Component . text (" Ġâŀ ¤ Ġ", ĠText Color . color ( 0 xf 7 9 4 2 a ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( r ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Component . text (" ] Ġ", ĠText Color . color ( 0 x 6 6 6 6 6 6 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Legacy Component Serializer . legacy ('& '). deserialize ( text )) ĊĊĠĠĠĠĠĠĠ Ġval Ġyou Ġ= ĠComponent . text (" You ", ĠW L _ COLOR ) ĊĠĠĠĠĠĠĠ Ġval Ġsc Ġ= ĠComponent . text ( sender . name , ĠText Color . color ( 0 x 2 5 d 8 f 7 )) ĊĊĠĠĠĠĠĠĠ Ġsender . sendMessage ( getComponent ( you , ĠComponent . text ( specified Receiver , ĠText Color . color ( if Ġ( Bu kkit . getPlayer ( specified Receiver ) Ġ!= Ġnull ) Ġ 0 xd 9 4 ef 5 Ġelse Ġ 0 x 2 5 d 8 f 7 )))) ĊĠĠĠĠĠĠĠ Ġfor Ġ( receiver Ġin Ġreceiv ers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver . sendMessage ( getComponent ( sc , Ġyou )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconversations [ receiver ] Ġ= Ġsender ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparty ( player : ĠPlayer , Ġargs : ĠArray < out ĠString >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( args . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( args [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" create " Ġ-> Ġparty Create ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" invite " Ġ-> Ġparty Invite ( player , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" join " Ġ-> Ġparty Join ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" leave " Ġ-> Ġparty Leave ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparty Create ( player : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparty Ġ= ĠParty ( player ) ĊĊĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . create ") ĊĊĠĠĠĠĠĠĠ ĠParty . part ies . add ( party ) ĊĊĠĠĠĠĠĠĠ Ġparty . members . add ( player ) ĊĠĠĠĠĠĠĠ ĠParty . members [ player ] Ġ= Ġparty ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparty Invite ( player : ĠPlayer , Ġargs : ĠArray < out ĠString >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( args . size Ġ< Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . no _ player ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparty Ġ= Ġplayer . get Party () ĊĠĠĠĠĠĠĠ Ġif Ġ( party Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . no _ party ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( party . owner Ġ!= Ġplayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . not _ owner ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Member Ġ= ĠBu kkit . getPlayer ( args [ 1 ]) ĊĠĠĠĠĠĠĠ Ġif Ġ( new Member Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . player . not _ exist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparty . invite ( new Member ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparty Join ( player : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Party . inv ites . containsKey ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( player . get Party () Ġ== ĠParty . inv ites [ player ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . already _ joined ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParty . inv ites . remove ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( player . get Party () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . already _ other ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . leave ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠParty . inv ites [ player ] !!. add Member ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠParty . inv ites . remove ( player ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . no _ invite ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparty Leave ( player : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparty Ġ= Ġplayer . get Party () ĊĠĠĠĠĠĠĠ Ġif Ġ( party Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . no _ party ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparty . remove Member ( player ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġp ( player : ĠPlayer , Ġargs : ĠArray < out ĠString >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġplayer . name ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġargs . join ToString (" Ġ") ĊĊĠĠĠĠĠĠĠ Ġval Ġparty Ġ= Ġplayer . get Party () ĊĠĠĠĠĠĠĠ Ġif Ġ( party Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . send W yn n Message (" messages . party . no _ party ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparty . members . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . sendMessage (" Â§ 7 [ Â§ d Party Â§ 7 ] ĠÂ§ f $ name : Ġ$ msg ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPlayer . get Party () Ġ= ĠParty . members [ this ] Ċ }