package Ġorg . word and ah alf . mine bot . commands čĊč Ċ import Ġkotlinx . coroutines . Global Scope č Ċ import Ġkotlinx . coroutines . launch č Ċ import Ġorg . javac ord . api . entity . channel . Server Text Channel č Ċ import Ġorg . javac ord . api . entity . channel . Text Channel č Ċ import Ġorg . javac ord . api . entity . message . embed . Embed Builder č Ċ import Ġorg . javac ord . api . entity . server . Server č Ċ import Ġorg . javac ord . api . event . message . Message Create Event č Ċ import Ġorg . json . JSONObject č Ċ import Ġorg . word and ah alf . mine bot . games . retrie vers . Minecraft Server Data Retriever č Ċ import Ġjava . awt . Color č Ċ import Ġjava . net . Inet SocketAddress č Ċ import Ġjava . util .* čĊč Ċ class ĠPing Command Ġ: ĠM ine bot Command (" ping ") č Ċ { čĊĠĠĠ Ġoverride Ġfun Ġget Aliases (): ĠArray < String >? čĊĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf (" p ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠgetDescription (): ĠString ? čĊĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġ" Per forms Ġa Ġping Ġat Ġthe Ġprovided ĠMinecraft Ġserver " čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġget Usage (): ĠString ? čĊĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġ"[ address ] Ġ< port >" čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġget Parameter Count () Ġ: ĠArray < Int > čĊĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( 1 , Ġ 2 ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// ĠTODO : ĠMake Ġthis Ġgeneric Ġfor Ġfuture Ġmult ig ame Ġcompat čĊĠĠĠ Ġoverride Ġfun Ġon Executed ( e : ĠMessage Create Event , Ġs : ĠServer , Ġc : ĠServer Text Channel , Ġargs : ĠList < String >) čĊĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠ ĠGlobal Scope . launch { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġretrie ver Ġ= ĠMinecraft Server Data Retriever ( Inet SocketAddress ( args [ 1 ], Ġargs [ 2 ]. toInt ())) // Minecraft Server Data Retriever ( Inet SocketAddress ( args [ 1 ], Ġargs [ 2 ]. toInt ())) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġretrie ver . retrieve () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠEmbed Builder () čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Author (" Mine bot ", Ġ" https :// craft bot . github . io ", Ġ" https :// cdn . discord app . com / avatars / 6 1 2 7 9 6 3 8 8 6 9 4 1 6 3 4 5 7 / f 3 a 1 b 9 8 e 5 7 b 4 5 b 6 3 8 9 eef 0 9 1 c 8 7 ead 7 e . png ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle ( retrie ver . address . host String Ġ+ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( retrie ver . address . port Ġ!= Ġretrie ver . getDefault Port ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ":" Ġ+ Ġretrie ver . address . port čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . has (" error ")) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setColor ( Color . RED ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setDescription ( data . getString (" error ")) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setColor ( Color . GREEN ) čĊĠĠĠĠ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . has (" version ")) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . get (" description ") Ġis ĠJSONObject ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setDescription ( data . getJSONObject (" description "). getString (" text ")) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setDescription ( data . getString (" description ")) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . addField (" Version ", Ġdata . getJSONObject (" version "). getString (" name "), Ġtrue ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . addField (" Protocol ", Ġdata . getJSONObject (" version "). getInt (" protocol "). toString (), Ġtrue ) čĊĠĠĠĠ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . addField (" Players ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . getJSONObject (" players "). has (" sample ")) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getJSONObject (" players "). get JSONArray (" sample "). join ToString Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠJSONObject ). getString (" name ") Ġ+ Ġ"\ n " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ+ Ġ" (${ data . getJSONObject (" players "). getInt (" online ") }/${ data . getJSONObject (" players "). getInt (" max ") })" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" (${ data . getJSONObject (" players "). getInt (" online ") }/${ data . getJSONObject (" players "). getInt (" max ") })" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . has (" favicon ")) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Thumbnail ( Base 6 4 . get Decoder (). decode ( data . getString (" favicon "). substring (" data : image / png ; base 6 4 , ". length ). replace ("\ n ", Ġ" "))) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setDescription ( data . getString (" mot d ")) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . addField (" Players ", Ġ"${ data . getInt (" player Count ")} Ġ/ Ġ${ data . getInt (" player Limit ") }") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . addField (" Version ", Ġif ( data . has (" game Version ")) Ġdata . getString (" game Version ") Ġelse Ġ" Legacy Ġ( b 1 . 8 Ġ- Ġ 1 . 5 )") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġc . sendMessage ( builder ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ }