/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 - 2 0 1 9 ĠThe Ġlg ou 2 w Ġ< lg ou 2 w @ hotmail . com > Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . lg ou 2 w . ld k . bukkit . attribute Ċ Ċ import Ġcom . lg ou 2 w . ld k . common . Comparison Chain Ċ import Ġcom . lg ou 2 w . ld k . common . Enums Ċ import Ġcom . lg ou 2 w . ld k . common . notNull Ċ import Ġorg . bukkit . configuration . serialization . Configuration Serializable Ċ import Ġorg . bukkit . configuration . serialization . Configuration Serialization Ċ import Ġjava . util . Linked HashMap Ċ import Ġjava . util . UUID Ċ Ċ /** Ċ Ġ* Ġ## ĠAttribute Modifier Ġ( å±ŀæĢ§ ä¿®æĶ¹ åĻ¨ ) Ċ Ġ* Ċ Ġ* Ġ* ĠAdd Ġor Ġremove Ġthis Ġmodifier Ġfrom Ġthe Ġattribute . Ċ Ġ* Ġ* Ġä»İ å±ŀæĢ§ ä¸Ń æ·»åĬł æĪĸ ç§»éĻ¤ æŃ¤ ä¿®æĶ¹ åĻ¨ . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ[ Attribute ] Ċ Ġ* Ġ@ see Ġ[ Attribute . add Modifier ] Ċ Ġ* Ġ@ see Ġ[ Attribute . remove Modifier ] Ċ Ġ* Ġ@ see Ġ[ Configuration Serializable ] Ċ Ġ* Ġ@ author Ġlg ou 2 w Ċ Ġ*/ Ċ data Ġclass ĠAttribute Modifier ( ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĠThe Ġname Ġof Ġthis Ġmodifier . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĠæŃ¤ ä¿®æĶ¹ åĻ¨ çļĦ åĲįåŃĹ . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĠThe Ġoperation Ġmode Ġof Ġthis Ġmodifier . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĠæŃ¤ ä¿®æĶ¹ åĻ¨ çļĦ è¿Ĳç®Ĺ æ¨¡å¼ı . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Operation ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġoperation : ĠOperation , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĠThe Ġoperation Ġamount Ġof Ġthis Ġmodifier . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĠæŃ¤ ä¿®æĶ¹ åĻ¨ çļĦ è¿Ĳç®Ĺ æķ°éĩı . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġamount : ĠDouble , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĠThe Ġunique Ġid Ġof Ġthis Ġmodifier . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĠæŃ¤ ä¿®æĶ¹ åĻ¨ çļĦ åĶ¯ä¸Ģ ĠId . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġuuid : ĠUUID Ġ= ĠUUID . randomUUID () Ċ ) Ġ: ĠConfiguration Serializable , ĊĠĠĠĠĠĠĠ ĠComparable < Attribute Modifier > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠAttribute Modifier ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠComparison Chain . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compare ( name , Ġother . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compare ( operation , Ġother . operation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compare ( amount , Ġother . amount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compare ( uuid , Ġother . uuid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. result ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġserialize (): ĠMutable Map < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠLinkedHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġresult [" name "] Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġresult [" operation "] Ġ= Ġoperation . value ĊĠĠĠĠĠĠĠ Ġresult [" amount "] Ġ= Ġamount ĊĠĠĠĠĠĠĠ Ġresult [" uuid "] Ġ= Ġuuid . toString () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration Serialization . register Class ( Attribute Modifier :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Configuration Serializable ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġdeserialize ( args : ĠMap < String , ĠAny >): ĠAttribute Modifier Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString Ġ= Ġargs [" name "] ?. toString (). notNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoperation : ĠOperation Ġ= ĠEnums . of Val uable NotNull ( Operation :: class . java , Ġargs [" operation "]. toString (). toInt OrNull () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġargs [" amount "]. toString (). toDouble OrNull () Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= ĠUUID . fromString ( args [" uuid "] ?. toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAttribute Modifier ( name , Ġoperation , Ġamount , Ġuuid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ