package Ġcom . m riv an play s . toggle inventory . util Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . JsonObject Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . net . URL Ċ Ċ class ĠUpdate Checker ( private Ġval Ġversion Info : ĠVersion Info ) Ġ{ ĊĊĠĠĠ Ġ// Ġinfo Ġspecification ĊĠĠĠ Ġprivate Ġval Ġjob Name Ġ= Ġ" Toggle Inventory - Rev amp ed " ĊĠĠĠ Ġprivate Ġval Ġartifact Name Ġ= Ġ" Toggle Inventory -% build Number %. jar " ĊĠĠĠ Ġprivate Ġval Ġartifact Path Ġ= Ġ" build / libs " ĊĠĠĠ Ġprivate Ġval Ġci Url Ġ= Ġ" https :// ci . m riv an play s . com /" ĊĊĠĠĠ Ġprivate Ġval Ġjob Api Url Ġ= Ġ"${ ci Url } job /${ job Name }/ api / json " ĊĠĠĠ Ġvar Ġresult : ĠResult ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġgson : ĠGson Ġ= ĠGson () ĊĊĠĠĠ Ġfun Ġcheck For Updates () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠURL ( job Api Url ) ĊĠĠĠĠĠĠĠ Ġval Ġurl Connection Ġ= Ġurl . open Connection () Ġas ĠHttp URLConnection ĊĠĠĠĠĠĠĠ Ġurl Connection . request Method Ġ= Ġ" GET " ĊĠĠĠĠĠĠĠ Ġurl Connection . add Request Property (" User - Agent ", Ġ" Toggle Inventory ĠPlugin Ġv " Ġ+ Ġversion Info . version ) ĊĠĠĠĠĠĠĠ ĠInputStreamReader ( url Connection . inputStream ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Ġ= Ġgson . fromJson ( it , ĠJsonObject :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Build Info Ġ= Ġobj . get (" builds "). as JsonArray [ 0 ]. as JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Number Ġ= Ġlast Build Info . get (" number "). as Number . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Number String Ġ= Ġbuild Number . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Url Ġ= Ġlast Build Info . get (" url "). asString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdownload Url Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ build Url }/ artifact /${ artifact Path }/${ artifact Name . replace ("% build Number %", Ġbuild Number String )}" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Build String Ġ= Ġversion Info . build ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Build String Ġ== Ġ" CUSTOM ĠBUILD ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= ĠResult ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdev Build Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Build Download Url Ġ= Ġdownload Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilds Be hind Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Build Ġ= Ġcurrent Build String . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġif Ġ( build Number Ġ> Ġcurrent Build ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdev Build Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Build Download Url Ġ= Ġdownload Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilds Be hind Ġ= Ġbuild Number Ġ- Ġcurrent Build ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdev Build Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Build Download Url Ġ= Ġdownload Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilds Be hind Ġ= Ġbuild Number Ġ- Ġcurrent Build ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Result Safe (): ĠResult Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult !! ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck For Updates () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠResult ( ĊĠĠĠĠĠĠĠ Ġval Ġdev Build : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġlast Build Download Url : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġbuilds Be hind : ĠInt ĊĠĠĠ Ġ) Ċ }