/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠD umb Dog D iner Ġ< d umb dog d iner . com >. ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicensed Ġunder Ġthe ĠMIT Ġlicense , Ġsee ĠLICENSE Ġfor Ġmore Ġinformation . Ċ Ġ*/ Ċ package Ġcom . d umb dog d iner . sticky commands . commands Ċ Ċ import Ġcom . d umb dog d iner . sticky api . bukkit . util . Sound Util Ċ import Ġcom . d umb dog d iner . sticky api . common . chat . ChatMessage Ċ import Ġcom . d umb dog d iner . sticky commands . Sticky Commands Ċ import Ġcom . d umb dog d iner . sticky commands . api . econom y . Listing Ċ import Ġcom . d umb dog d iner . sticky commands . util . Constants Ċ import Ġcom . d umb dog d iner . sticky commands . util . Inventory Util Ċ import Ġcom . d umb dog d iner . sticky commands . util . Variables Ċ import Ġdev . j ore l . command api . Command APIC ommand Ċ import Ġdev . j ore l . command api . arguments . Integer Argument Ċ import Ġdev . j ore l . command api . arguments . String Argument Ċ import Ġdev . j ore l . command api . exec utors . Command Executor Ċ import Ġdev . j ore l . command api . exec utors . Player Command Executor Ċ import Ġkotlin . math . round ToInt Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . command . Command Sender Ċ import Ġorg . bukkit . entity . Player Ċ Ċ // ĠWell ... Ġthis Ġis Ġa Ġlittle Ġmess y ... Ċ // ĠTODO : ĠClean Ġthis Ġup Ċ val Ġsell Command Ġ= Ġcommand Stub (" sell ", ĠConstants . Permissions . SE LL ) ĊĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠ Ġsender . sendMessage ( locale . translate ( Constants . Language Paths . SE LL _ MUST _ CONFIRM , ĠVariables (). with Player ( sender , Ġfalse ). get ())) ĊĠĠĠ Ġ}) ĊĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠ Ġcommand Stub (" confirm ", ĠConstants . Permissions . SE LL _ HAND ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute ( sender , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠ ĠCommand APIC ommand (" inventory ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Permission (" sell . inventory ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( locale . translate ( Constants . Language Paths . SE LL _ MUST _ CONFIRM , ĠVariables (). with Player ( sender , Ġfalse ). get ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand APIC ommand (" confirm ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Permission ( Constants . Permissions . SE LL _ IN VENT ORY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute ( sender , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠ Ġcommand Stub (" hand ", ĠConstants . Permissions . SE LL _ HAND ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( locale . translate ( Constants . Language Paths . SE LL _ MUST _ CONFIRM , ĠVariables (). with Player ( sender , Ġfalse ). get ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand APIC ommand (" confirm ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Permission ( Constants . Permissions . SE LL _ HAND ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute ( sender , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠ Ġcommand Stub (" log ", ĠConstants . Permissions . SE LL _ LOG ) ĊĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Log ( sender , Ġ 1 , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠ Ġcommand Stub (" log ", ĠConstants . Permissions . SE LL _ LOG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( Integer Argument (" page ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Log ( sender , Ġargs [ 0 ] Ġas ĠInt , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠ Ġcommand Stub (" log ", ĠConstants . Permissions . SE LL _ LOG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" player ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Log ( sender , Ġ 1 , ĠBu kkit . getPlayer ( args [ 0 ]. toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ). with Sub command ( ĊĠĠĠĠĠĠĠ Ġcommand Stub (" log ", ĠConstants . Permissions . SE LL _ LOG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" player ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( Integer Argument (" page ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes Player ( Player Command Executor Ġ{ Ġsender , Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Log ( sender , Ġargs [ 1 ] Ġas ĠInt , ĠBu kkit . getPlayer ( args [ 0 ]. toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ) Ċ Ċ private Ġval Ġa Ġ= ĠCommand APIC ommand (" perm ") ĊĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠ ĠCommand APIC ommand (" group ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand APIC ommand (" add ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" permission ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" groupName ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender : ĠCommand Sender ?, Ġargs : ĠArray < Any ?> ? Ġ-> Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand APIC ommand (" remove ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" permission ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" groupName ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender : ĠCommand Sender ?, Ġargs : ĠArray < Any ?> ? Ġ-> Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠ ĠCommand APIC ommand (" user ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand APIC ommand (" add ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" permission ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" userName ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender : ĠCommand Sender ?, Ġargs : ĠArray < Any ?> ? Ġ-> Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Sub command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand APIC ommand (" remove ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" permission ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( String Argument (" userName ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec utes ( Command Executor Ġ{ Ġsender : ĠCommand Sender ?, Ġargs : ĠArray < Any ?> ? Ġ-> Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ Ċ private Ġfun Ġexecute ( sender : ĠPlayer , Ġinventory : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġvars Ġ= ĠVariables (). with Player ( sender , Ġfalse ). get () ĊĊĠĠĠ Ġval Ġstack Ġ= Ġsender . inventory . item In Main Hand ĊĠĠĠ Ġif Ġ(! worth Table . is Sell able ( stack )) Ġ{ ĊĠĠĠĠĠĠĠ Ġsender . sendMessage ( locale . translate ( Constants . Language Paths . CAN NOT _ SE LL , Ġvars )) ĊĠĠĠĠĠĠĠ ĠSound Util . send Error ( sender ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlisting Ġ= ĠListing ( sender , Ġstack . type , Ġworth Table . get W orth ( stack ), Ġif Ġ( inventory ) ĠInventory Util . count ( sender . inventory , Ġstack . type ) Ġelse Ġstack . amount ) ĊĠĠĠ Ġvars . put All ( Variables (). with Listing ( listing , Ġsender . inventory ). get ()) ĊĊĠĠĠ Ġif Ġ( Sticky Commands . plugin . config . getBoolean (" auto - sell ", Ġtrue ) Ġ&& Ġlisting . seller . is Online ) Ġ{ ĊĠĠĠĠĠĠĠ ĠInventory Util . remove Items ( sender . inventory , Ġlisting . material , Ġlisting . quantity ) ĊĠĠĠĠĠĠĠ ĠSt icky Commands . econom y !!. deposit Player ( sender , Ġlisting . price ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġsender . sendMessage ( locale . translate ( Constants . Language Paths . SE LL _ MESSAGE , Ġvars )) ĊĠĠĠ Ġlisting . list () ĊĠĠĠ ĠSound Util . send Success ( sender ) ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ private Ġfun Ġexecute Log ( sender : ĠPlayer , Ġpage : ĠInt , Ġplayer : ĠPlayer ?): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġvars Ġ= ĠVariables (). with Player ( sender , Ġfalse ). get () ĊĊĠĠĠ Ġval Ġlist ings Ġ= Ġif Ġ( player Ġ== Ġnull ) Ġmarket . getList ings ( Listing . Sort By . DATE _ DESC ENDING , Ġpage , Ġ 8 ) Ġelse Ġmarket . getList ings Of Player ( player , ĠListing . Sort By . DATE _ DESC ENDING , Ġpage , Ġ 8 ) ĊĠĠĠ Ġsender . sendMessage ( locale . translate ( Constants . Language Paths . SE LL _ LOG _ MESSAGE , Ġvars )) ĊĊĠĠĠ Ġvar Ġlisting Count Ġ= Ġ 0 ĊĠĠĠ Ġlist ings . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġvars . put All ( Variables (). with Listing ( it ). get ()) ĊĠĠĠĠĠĠĠ Ġsender . sp ig ot (). sendMessage ( ChatMessage ( locale . translate ( Constants . Language Paths . SE LL _ LOG _ LOG , Ġvars )). set Hover Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocale . translate ( Constants . Language Paths . SE LL _ LOG _ LOG _ HO VER , Ġvars )). component ) ĊĠĠĠĠĠĠĠ Ġ++ listing Count ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtmp Pages Ġ= Ġmarket . listing Count . toDouble () Ġ/ Ġ 8 ĊĠĠĠ Ġval Ġpages Ġ= Ġif Ġ( tmp Pages Ġ> Ġtmp Pages . round ToInt ()) ĠMath . round ( tmp Pages Ġ+ Ġ 1 ). toDouble () Ġelse Ġtmp Pages Ġ// Ġew Ġbut Ġit Ġworks ?? ĊĊĠĠĠ Ġif Ġ( listing Count Ġ< Ġ 1 Ġ|| Ġpage Ġ> Ġpages ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsender . sendMessage ( locale . translate ( Constants . Language Paths . SE LL _ LOG _ NO _ SAL ES , Ġvars )) ĊĠĠĠĠĠĠĠ ĠSound Util . send Success ( sender ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvars [" current "] Ġ= Ġpage . toString () ĊĠĠĠ Ġvars [" total "] Ġ= Ġpages . toInt (). toString () ĊĠĠĠ Ġsender . sendMessage ( locale . translate ( Constants . Language Paths . SE LL _ LOG _ P AG IN ATOR , Ġvars )) ĊĠĠĠ ĠSound Util . send Success ( sender ) ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ