/* Ċ Ġ* Ġ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 . util . serialization Ċ Ċ import Ġorg . bukkit . craft bukkit . libs . com . google . gson .* Ċ import Ġorg . bukkit . p otion . P otion Effect Ċ import Ġorg . bukkit . p otion . P otion Effect Type Ċ import Ġjava . lang . reflect . Type Ċ Ċ class ĠP otion Effect Adapter Ġ: ĠJson Deserializer < P otion Effect >, ĠJsonSerializer < P otion Effect > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġserialize ( src : ĠP otion Effect , ĠtypeOf Src : ĠType , Ġcontext : ĠJson Serialization Context ): ĠJson Element Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠtoJson ( src ) Ġas ĠJson Element ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Json ParseException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( json : ĠJson Element , ĠtypeOf T : ĠType , Ġcontext : ĠJson Deserialization Context ): ĠP otion Effect ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfrom Json ( json ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠtoJson ( p otion Effect : ĠP otion Effect ?): ĠJsonObject ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p otion Effect Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= ĠJsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . addProperty (" id ", Ġp otion Effect . type . id Ġas ĠNumber ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . addProperty (" duration ", Ġp otion Effect . duration Ġas ĠNumber ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . addProperty (" amp l ifier ", Ġp otion Effect . amp l ifier Ġas ĠNumber ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . addProperty (" ambient ", Ġjava . lang . Boolean . valueOf ( p otion Effect . is Ambient )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠjsonObject ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Json ( json Element : ĠJson Element ?): ĠP otion Effect ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( json Element Ġ== Ġnull Ġ|| Ġ! json Element . is JsonObject ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġjson Element . as JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeffect Type Ġ= ĠP otion Effect Type . getById ( jsonObject . get (" id "). as Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġduration Ġ= ĠjsonObject . get (" duration "). as Int ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamp l ifier Ġ= ĠjsonObject . get (" amp l ifier "). as Int ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġambient Ġ= ĠjsonObject . get (" ambient "). as Boolean ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠP otion Effect ( effect Type , Ġduration , Ġamp l ifier , Ġambient ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ