package Ġmain Ċ Ċ import Ġdev . j ore l . command api . Command API Ċ import Ġdev . j ore l . command api . Command APIC ommand Ċ import Ġdev . j ore l . command api . Command API Config Ċ import Ġdev . j ore l . command api . arguments . String Argument Ċ import Ġdev . j ore l . command api . arguments . UUID Argument Ċ import Ġdev . j ore l . command api . exec utors . Command Executor Ċ import Ġmain . tools . Lang Helper Ċ import Ġmain . tools . Lang Strings Ċ import Ġmain . tools . Y ML Helper Ċ import Ġnet . ky ori . ad venture . text . Component Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . Chat Color Ċ import Ġorg . bukkit . event . player . Player Kick Event Ċ import Ġorg . bukkit . plugin . java . Java Plugin Ċ import Ġjava . util .* ĊĊ Ċ class ĠUniversal Whitelist Ġ: ĠJava Plugin () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġwhitelist Ġ= ĠY ML Helper (" whitelist ", Ġthis ) ĊĠĠĠ Ġprivate Ġval Ġlang Helper Ġ= ĠLang Helper ( config ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġwhitelist Activated Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad () Ġ= ĠCommand API . on Load ( Command API Config ()) ĊĊĠĠĠ Ġoverride Ġfun Ġon Enable () Ġ{ ĊĠĠĠĠĠĠĠ ĠCommand API . on Enable ( this ) ĊĠĠĠĠĠĠĠ Ġsave Default Config () ĊĠĠĠĠĠĠĠ Ġif Ġ( server . has Whitelist () Ġ&& Ġserver . is Whitelist En forced ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwh itelisted Players Ġ= Ġserver . wh itelisted Players ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( player Ġin Ġwh itelisted Players ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist . set ( player . unique Id . toString (), Ġplayer . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver . set Whitelist ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġserver . plugin Manager . register Events ( Login Listener ( whitelist , Ġlang Helper ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġregister Commands () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġregister Commands () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadd UUID Ġ= ĠCommand APIC ommand (" add uuid ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( UUID Argument (" a Ġuuid ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= Ġargs [ 0 ] Ġas ĠUUID ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( whitelist . getString ( uuid . toString ()) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . YELLOW }${ lang Helper . get ( Lang Strings . AL READY _ AD DED ). format ( uuid )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Command Executor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist . set ( uuid . toString (), Ġuuid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . GREEN }${ lang Helper . get ( Lang Strings . AD DED ). format ( uuid )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġremove UUID Ġ= ĠCommand APIC ommand (" remove uuid ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( UUID Argument (" a Ġuuid ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= Ġargs [ 0 ] Ġas ĠUUID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( whitelist . contains ( uuid . toString ())) Ġreturn @ Command Executor ĠCommand API . fail (" UUID Ġis Ġalready Ġon Ġthe Ġwhitelist ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist . set ( uuid . toString (), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver . getPlayer ( uuid )?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkick ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComponent . text ( lang Helper . get ( Lang Strings . NO _ LON GER _ WHITE LIST ED )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlayer Kick Event . Cause . WHITE LIST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . GREEN }${ lang Helper . get ( Lang Strings . RE MOVED ). format ( uuid )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġadd Ġ= ĠCommand APIC ommand (" add ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" player Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Name Ġ= Ġargs [ 0 ] Ġas ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( player Ġin Ġwhitelist . getValues ( false ). values ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( player Ġ== Ġplayer Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . YELLOW }${ lang Helper . get ( Lang Strings . AL READY _ AD DED ). format ( player Name )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Command Executor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist . set ( player Name , Ġplayer Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . GREEN }${ lang Helper . get ( Lang Strings . AD DED ). format ( player Name )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġremove Ġ= ĠCommand APIC ommand (" remove ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" player Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Name Ġ= Ġargs [ 0 ] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġon Whitelist Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( player Key Ġin Ġwhitelist . get Keys ( false )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( whitelist . getString ( player Key ) Ġ!= Ġplayer Name ) Ġcontinue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Whitelist Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist . set ( player Key , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBu kkit . getPlayer Exact ( player Name )?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkick ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComponent . text ( lang Helper . get ( Lang Strings . NO _ LON GER _ WHITE LIST ED )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlayer Kick Event . Cause . WHITE LIST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . GREEN }${ lang Helper . get ( Lang Strings . RE MOVED ). format ( player Name )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! on Whitelist ) ĠCommand API . fail ("' $ player Name ' Ġwas Ġnot Ġon Ġthe Ġwhitelist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġturn On Ġ= ĠCommand APIC ommand (" on ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist Activated Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver . online Players . forEach Ġ{ Ġplayer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= Ġplayer . unique Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( whitelist . get ( uuid . toString ()) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . kick ( Component . text ( lang Helper . get ( Lang Strings . WHITE LIST _ NOW _ ON ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . GREEN }${ lang Helper . get ( Lang Strings . WHITE LIST _ T URN ED _ ON )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġturn Off Ġ= ĠCommand APIC ommand (" off ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . RED }${ lang Helper . get ( Lang Strings . WHITE LIST _ T URN ED _ OFF )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠCommand APIC ommand (" status ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( whitelist Activated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . GREEN }${ lang Helper . get ( Lang Strings . WHITE LIST _ ON )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . YELLOW }${ lang Helper . get ( Lang Strings . WHITE LIST _ OFF )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Players Ġ= ĠCommand APIC ommand (" list ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwh itelisted Players Ġ= Ġwhitelist . getValues ( false ). values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wh itelisted Players . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand API . fail (" The Ġwhitelist Ġis Ġempty ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Command Executor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist String Ġ= Ġwh itelisted Players . to Typed Array (). join ToString (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . YELLOW }${ lang Helper . get ( Lang Strings . PLAY ERS _ ON _ WHITE LIST ). format ( list String )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġreload Ġ= ĠCommand APIC ommand (" reload ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreload Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Chat Color . GREEN }${ lang Helper . get ( Lang Strings . CONFIG _ RE LOADED )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠCommand API . unregister (" whitelist ", Ġtrue ) ĊĠĠĠĠĠĠĠ ĠCommand APIC ommand (" whitelist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( add UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( remove UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( add ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( remove ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( turn On ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( turn Off ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( list Players ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( reload ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Permission (" whitelist . manage ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register () ĊĠĠĠ Ġ} Ċ } Ċ