/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . Ċ Ġ* ĠCreated Ġby ĠYo lo Santa Ċ Ġ* ĠCreated ĠOn Ġ 1 0 / 2 2 / 2 0 , Ġ 1 : 2 3 ĠAM Ċ Ġ*/ Ċ Ċ package Ġcc . fy re . st ark . profile Ċ Ċ import Ġcc . fy re . st ark . St ark Ċ import Ġcc . fy re . st ark . core . pid gin . message . Message Ċ import Ġcc . fy re . st ark . core . profile . pun ish ment . Profile P un ish ment Type Ċ import Ġcc . fy re . st ark . core . tags . Tag Type Ċ import Ġcc . fy re . st ark . mod suite . options . Mod Options Handler Ċ import Ġcc . fy re . st ark . util . CC Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . Chat Color Ċ import Ġorg . bukkit . entity . Player Ċ import Ġorg . bukkit . event . EventHandler Ċ import Ġorg . bukkit . event . Event Priority Ċ import Ġorg . bukkit . event . Listener Ċ import Ġorg . bukkit . event . inventory . Inventory Click Event Ċ import Ġorg . bukkit . event . player .* Ċ Ċ class ĠProfile Listeners Ġ: ĠListener Ġ{ ĊĊĠĠĠ Ġ@ EventHandler ĊĠĠĠ Ġfun Ġon Async Player Pre Login Event ( event : ĠAsync Player Pre Login Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( System . currentTimeMillis () Ġ- Ġ 1 0 0 0 Ġ< ĠSt ark . instance . enabled At ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . login Result Ġ= ĠAsync Player Pre Login Event . Result . K ICK _ OTHER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . kick Message Ġ= Ġ"${ Chat Color . RED } This Ġserver Ġis Ġstill Ġloading ..." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠNeed Ġto Ġcheck Ġif Ġplayer Ġis Ġstill Ġlogged Ġin Ġwhen Ġreceiving Ġanother Ġlogin Ġattempt ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġhappens Ġwhen Ġa Ġplayer Ġusing Ġa Ġcustom Ġclient Ġcan Ġaccess Ġthe Ġserver Ġlist Ġwhile Ġin - game Ġ( and Ġreconnect ing ) ĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= ĠBu kkit . getPlayer ( event . unique Id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( player Ġ!= Ġnull Ġ&& Ġplayer . is Online ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . login Result Ġ= ĠAsync Player Pre Login Event . Result . K ICK _ OTHER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . kick Message Ġ= Ġ"${ Chat Color . RED } You Ġtried Ġto Ġlogin Ġtoo Ġquickly Ġafter Ġdisconnect ing .\ n Try Ġagain Ġin Ġa Ġfew Ġseconds ." ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSt ark . instance . server . scheduler . run Task ( St ark . instance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . kick Player ("${ Chat Color . RED } Duplicate Ġlogin Ġkick ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSearch Ġfor Ġan Ġactive Ġban ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġ- Ġby Ġuuid ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġ- Ġby Ġcurrent Ġip Ġaddress ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp un ish ment Ġ= ĠSt ark . instance . core . get Profile Handler (). find Active P un ish ment ( event . unique Id , Ġevent . address . host Address ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pun ish ment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġkick Message Ġ= Ġif Ġ( pun ish ment . second . type Ġ== ĠProfile P un ish ment Type . BAN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Profile P un ish ment Type . BAN . kick Messages . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . RED } Your Ġaccount Ġhas Ġbeen Ġb anned Ġfrom Ġ${ Chat Color . G OLD } Vy rix ĠNetwork ${ Chat Color . RED }. \ n Join Ġts . vy rix . us Ġto Ġappe al .\ n This Ġp un ish ment Ġduration Ġis Ġ${ pun ish ment . second . time Left () }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Profile P un ish ment Type . BLACK LIST . kick Messages . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . RED } Your Ġaccount Ġhas Ġbeen Ġblack listed Ġfrom Ġ${ Chat Color . G OLD } Vy rix ĠNetwork ${ Chat Color . RED }. \ n This Ġtype Ġof Ġp un ish ment Ġcan 't Ġbe Ġappe aled ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . unique Id Ġ!= Ġp un ish ment . first ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkick Message Ġ+= Ġ"\ n This Ġp un ish ment Ġis Ġin Ġrelation Ġto Ġ${ Chat Color . YELLOW }${ St ark . instance . core . uuid Cache . name ( pun ish ment . first )} ${ Chat Color . RED } ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMake Ġit Ġso Ġplayers Ġcan Ġjoin Ġhub s Ġwhile Ġb anned ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! St ark . instance . server . server Name . contains (" pun ish ments - hub ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . login Result Ġ= ĠAsync Player Pre Login Event . Result . K ICK _ BAN N ED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . kick Message Ġ= Ġkick Message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSt ark . instance . logger . info (" Failed Ġto Ġsearch Ġfor Ġactive Ġp un ish ment Ġfor Ġ" Ġ+ Ġevent . name Ġ+ Ġ": ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠSt ark . instance . core . get Profile Handler (). load Profile ( event . unique Id , Ġevent . address . host Address ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSt ark . instance . core . get Profile Handler (). profiles [ profile . uuid ] Ġ= Ġprofile ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSt ark . instance . logger . info (" Failed Ġto Ġload Ġ" Ġ+ Ġevent . name Ġ+ Ġ"' s Ġtarget :") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . login Result Ġ= ĠAsync Player Pre Login Event . Result . K ICK _ OTHER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . kick Message Ġ= ĠChat Color . RED . toString () Ġ+ Ġ" Failed Ġto Ġload Ġyour Ġtarget .\ n Try Ġreconnect ing Ġlater !" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ( priority Ġ= ĠEvent Priority . LOW EST ) ĊĠĠĠ Ġfun Ġon Async Player Chat Event Low ( event : ĠAsync Player Chat Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġevent . player ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠSt ark . instance . core . get Profile Handler (). getBy UUID ( player . unique Id ) !! ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! event . is Cancelled Ġ&& Ġprofile . getActive P un ish ment ( Profile P un ish ment Type . M UTE ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . sendMessage ("${ Chat Color . RED } You 're Ġcurrently Ġmut ed Ġfor Ġ`${ profile . getActive P un ish ment ( Profile P un ish ment Type . M UTE ) !!. reason }`, Ġthis Ġwill Ġlast Ġ${ profile . getActive P un ish ment ( Profile P un ish ment Type . M UTE ) !!. time Left () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrank Ġ= Ġprofile . get Rank () ĊĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġrank . prefix ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġprofile . tag ĊĠĠĠĠĠĠĠ Ġvar Ġtag String Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġif Ġ( tag Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag String Ġ= Ġtag . display ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( tag . tag Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTag Type . BEFORE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . format Ġ= ĠChat Color . translate Alternate Color Codes ('& ', Ġ"$ tag String Ġ$ prefix % s ${ Chat Color . RESET }: Ġ% s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTag Type . AFTER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . format Ġ= ĠChat Color . translate Alternate Color Codes ('& ', Ġ"$ prefix % s Ġ$ tag String ${ Chat Color . RESET }: Ġ% s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( rank . default ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . format Ġ= ĠChat Color . translate Alternate Color Codes ('& ', Ġ"$ prefix % s ${ Chat Color . RESET }: Ġ" Ġ+ ĠCC . GRAY Ġ+ Ġ"% s ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . format Ġ= ĠChat Color . translate Alternate Color Codes ('& ', Ġ"$ prefix % s ${ Chat Color . RESET }: Ġ% s ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ( priority Ġ= ĠEvent Priority . LOW EST ) ĊĠĠĠ Ġfun Ġon Player Join Event ( event : ĠPlayer Join Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . join Message Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġevent . player ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠSt ark . instance . core . get Profile Handler (). getBy UUID ( player . unique Id ) ĊĊĠĠĠĠĠĠĠ Ġprofile !!. apply () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! event . player . location . chunk . is Loaded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . player . location . chunk . load () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( online Player Ġin ĠBu kkit . getServer (). online Players ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠSt ark . instance . core . get Profile Handler (). getBy UUID ( online Player . unique Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ĊĠĠĠ Ġfun Ġon Player Quit Event ( event : ĠPlayer Quit Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . quit Message Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠSt ark . instance . core . get Profile Handler (). getBy UUID ( event . player . unique Id ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( profile Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( profile . attachment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . player . remove Attachment ( profile . attachment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠSt ark . instance . core . get Profile Handler (). profiles . remove ( event . player . unique Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ĊĠĠĠ Ġfun Ġon Teleport ( event : ĠPlayer Teleport Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! event . to . chunk . is Loaded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . to . chunk . load () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ĊĠĠĠ Ġfun Ġon Command ( event : ĠPlayer Command Pre process Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! event . message . contains (" register ") Ġ&& Ġis B anned ( event . player ) Ġ&& ĠSt ark . instance . server . server Name . contains (" pun ish ments - hub ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . player . sendMessage ( CC . CHAT _ BAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . player . sendMessage ( CC . RED Ġ+ Ġ" You Ġare Ġcurrently Ġb anned !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . player . sendMessage ( CC . RED Ġ+ Ġ" You Ġare Ġonly Ġable Ġto Ġuse Ġ/ register Ġto Ġappe al Ġyour Ġban .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . player . sendMessage ( CC . CHAT _ BAR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ĊĠĠĠ Ġfun ĠonClick ( event : ĠInventory Click Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is B anned ( event . who Clicked Ġas ĠPlayer ) Ġ&& ĠSt ark . instance . server . server Name . contains (" pun ish ments - hub ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . who Clicked Ġas ĠPlayer ). sendMessage ( CC . CHAT _ BAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . who Clicked Ġas ĠPlayer ). sendMessage ( CC . RED Ġ+ Ġ" You Ġare Ġcurrently Ġb anned !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . who Clicked Ġas ĠPlayer ). sendMessage ( CC . RED Ġ+ Ġ" You Ġare Ġonly Ġable Ġto Ġuse Ġ/ register Ġto Ġappe al Ġyour Ġban .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . who Clicked Ġas ĠPlayer ). sendMessage ( CC . CHAT _ BAR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis B anned ( player : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠSt ark . instance . core . get Profile Handler (). getBy UUID ( player . unique Id ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ( profile ?. getActive P un ish ment ( Profile P un ish ment Type . BAN ) Ġ!= Ġnull Ġ&& Ġprofile . getActive P un ish ment ( Profile P un ish ment Type . BAN ) !!. isActive ()) ĊĠĠĠ Ġ} Ċ Ċ }