import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ import Ġcom . github . jen gel man . gradle . plugins . shadow . tasks . Shadow Jar Ċ Ċ object ĠVersions Ġ{ ĊĠĠĠ Ġconst Ġval ĠBot Version Ġ= Ġ" 1 . 0 . 0 " ĊĠĠĠ Ġconst Ġval ĠK ord Ġ= Ġ" 0 . 7 . 4 " ĊĠĠĠ Ġconst Ġval ĠLat ex Math Ġ= Ġ" 1 . 0 . 7 " ĊĠĠĠ Ġconst Ġval ĠS lf 4 j Ġ= Ġ" 1 . 7 . 3 2 " ĊĠĠĠ Ġconst Ġval ĠDate time Ġ= Ġ" 0 . 2 . 1 " ĊĠĠĠ Ġconst Ġval ĠK tor Ġ= Ġ" 1 . 6 . 2 " ĊĠĠĠ Ġconst Ġval ĠKotlin Ġ= Ġ" 1 . 5 . 2 0 " Ċ } Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġ// ĠApply Ġthe Ġorg . jetbrains . kotlin . jvm ĠPlugin Ġto Ġadd Ġsupport Ġfor ĠKotlin . ĊĠĠĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 5 . 2 0 " ĊĠĠĠ Ġkotlin (" plugin . serialization ") Ġversion Ġ" 1 . 5 . 0 " ĊĠĠĠ Ġid (" com . github . john ren gel man . shadow ") Ġversion Ġ" 7 . 0 . 0 " ĊĊĠĠĠ Ġ// ĠApply Ġthe Ġapplication Ġplugin Ġto Ġadd Ġsupport Ġfor Ġbuilding Ġa ĠCLI Ġapplication Ġin ĠJava . ĊĠĠĠ Ġapplication Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġ// ĠUse ĠMaven ĠCentral Ġfor Ġresolving Ġdependencies . ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġmaven (" https :// oss . son atype . org / content / repositories / snapshots ") Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation (" dev . k ord : k ord - core :${ Versions . K ord }") ĊĠĠĠ Ġimplementation (" org . sc il ab . forge : j latex math :${ Versions . Lat ex Math }") ĊĠĠĠ Ġimplementation (" org . slf 4 j : slf 4 j - simple :${ Versions . Slf 4 j }") ĊĠĠĠ Ġimplementation (" org . jetbrains . kotlin x : kotlin x - datetime :${ Versions . Datetime }") ĊĠĠĠ Ġimplementation (" io . ktor : ktor - client - core :${ Versions . K tor }") ĊĠĠĠ Ġimplementation (" io . ktor : ktor - client - c io :${ Versions . K tor }") ĊĊĠĠĠ Ġ// ĠAlign Ġversions Ġof Ġall ĠKotlin Ġcomponents ĊĠĠĠ Ġimplementation ( platform (" org . jetbrains . kotlin : kotlin - bom ")) ĊĊĠĠĠ Ġ// ĠUse Ġthe ĠKotlin ĠJDK Ġ 8 Ġstandard Ġlibrary . ĊĠĠĠ Ġimplementation (" org . jetbrains . kotlin : kotlin - stdlib - jdk 8 ") Ċ } Ċ Ċ application Ġ{ ĊĠĠĠ Ġ// ĠDefine Ġthe Ġmain Ġclass Ġfor Ġthe Ġapplication . ĊĠĠĠ Ġmain Class . set (" me . pal ander . omega . Main Kt ") Ċ } Ċ Ċ tasks . with Type < Kotlin Compile > Ġ{ ĊĠĠĠ Ġ// ĠGenerate Ġversion Ġobject Ġat Ġcompile Ġtime ĊĠĠĠ Ġdo First Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpkg Ġ= Ġ"${ rootDir . path }/ src / main / kotlin / me / pal ander / meta " ĊĠĠĠĠĠĠĠ Ġmkdir ( pkg ) ĊĊĠĠĠĠĠĠĠ ĠFile ("$ pkg / Versions . kt "). write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġme . pal ander . meta ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversions Ġ= ĠVersions ("${ Versions . Bot Version }", Ġ"${ Versions . K ord }", Ġ"${ Versions . Lat ex Math }", Ġ"${ Versions . Kotlin }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġclass ĠVersions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbot : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk ord : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat ex : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkotlin : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" ``` \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bot : Ġ${ "$ "} bot \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" K ord : Ġ${ "$ "} k ord \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Lat ex : Ġ${ "$ "} latex \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Kotlin : Ġ${ "$ "} kotlin \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ``` " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " Ċ } Ċ Ċ tasks . with Type < Shadow Jar > Ġ{ ĊĠĠĠ Ġarchive FileName . set (" Omega -${ Versions . Bot Version }. jar ") ĊĠĠĠ Ġmanifest Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes (" Main - Class " Ġto Ġ" me . pal ander . omega . Main Kt ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . register < Copy >(" bin ") Ġ{ ĊĠĠĠ Ġdepends On (" shadow Jar ") ĊĠĠĠ Ġfrom ("${ rootDir . path }/ build / libs / Omega -${ Versions . Bot Version }. jar ") ĊĠĠĠ Ġinto (" bin ") Ċ } Ċ Ċ // ĠExtend Ġthe Ġclean Ġtask Ġto Ġalso Ġdelete Ġthe Ġbin Ġdirectory Ċ tasks . clean Ġ{ ĊĠĠĠ Ġdo First Ġ{ ĊĠĠĠĠĠĠĠ ĠFile (" src / main / kotlin / me / pal ander / meta "). delete Re cursively () ĊĠĠĠĠĠĠĠ ĠFile (" bin "). delete Re cursively () ĊĠĠĠ Ġ} Ċ }