package Ġme . ab err ant fox . hot bot . commands . utility Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġk http . post Ċ import Ġme . ab err ant fox . hot bot . arguments . Hex Colour Arg Ċ import Ġme . ab err ant fox . hot bot . database . is Member Mut ed Ċ import Ġme . ab err ant fox . hot bot . permissions . Permission Manager Ċ import Ġme . ab err ant fox . hot bot . services . Configuration Ċ import Ġme . ab err ant fox . hot bot . services . M Service Ċ import Ġme . ab err ant fox . hot bot . services . save Config Ċ import Ġme . ab err ant fox . hot bot . utility . mute Member Ċ import Ġme . ab err ant fox . kj da utils . api . dsl . Command Set Ċ import Ġme . ab err ant fox . kj da utils . api . dsl . arg Ċ import Ġme . ab err ant fox . kj da utils . api . dsl . commands Ċ import Ġme . ab err ant fox . kj da utils . api . dsl . embed Ċ import Ġme . ab err ant fox . kj da utils . extensions . j da . fullName Ċ import Ġme . ab err ant fox . kj da utils . extensions . stdlib . sanit ise Ment ions Ċ import Ġme . ab err ant fox . kj da utils . internal . command . arguments . Sentence Arg Ċ import Ġme . ab err ant fox . kj da utils . internal . command . arguments . Text Channel Arg Ċ import Ġme . ab err ant fox . kj da utils . internal . command . arguments . Time String Arg Ċ import Ġme . ab err ant fox . kj da utils . internal . command . arguments . User Arg Ċ import Ġme . ab err ant fox . kj da utils . internal . logging . Bot Logger Ċ import Ġme . ab err ant fox . hot bot . java utilities . Url Utilities . send Image To Channel Ċ import Ġnet . dv 8 tion . j da . core . Online Status Ċ import Ġnet . dv 8 tion . j da . core . entities . Guild Ċ import Ġnet . dv 8 tion . j da . core . entities . Text Channel Ċ import Ġnet . dv 8 tion . j da . core . entities . User Ċ import Ġjava . awt . Color Ċ import Ġjava . net . URL Encoder Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . util .* Ċ import Ġkotlin . math . round To Long Ċ Ċ data Ġclass ĠProperties ( val Ġversion : ĠString , Ġval Ġauthor : ĠString ) Ċ Ċ object ĠProject Ġ{ ĊĠĠĠ Ġval Ġproperties : ĠProperties ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprop File Ġ= ĠConfiguration :: class . java . getResource ("/ properties . json "). read Text () ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠ Ġproperties Ġ= Ġgson . fromJson ( prop File , ĠProperties :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠstartTime Ġ= ĠDate () Ċ Ċ @ Command Set (" utility ") Ċ fun Ġutil Commands ( m Service : ĠM Service , Ġmanager : ĠPermission Manager , Ġconfig : ĠConfiguration , Ġlog : ĠBot Logger ) Ġ= Ġcommands Ġ{ ĊĠĠĠ Ġcommand (" ping ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" P ong !" ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" Resp on ded Ġin Ġ${ it . j da . ping } ms ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" bot info ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Display Ġthe Ġbot Ġinformation ." ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( embed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( it . j da . self User . fullName ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription ( m Service . messages . bot Description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( Color . red ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Thumbnail ( it . j da . self User . effective Avatar Url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Creator " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" F ox # 0 0 0 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Contribut ors " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" J osh The Wall # 3 6 9 8 , ĠMo e # 9 9 9 9 , ĠS ud onym # 8 6 2 3 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Tech nologies " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Built Ġwith ĠKotlin Ġus ĠK Utils Ġand ĠJ DA " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Repository Ġlink " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" https :// gitlab . com / Ab err ant F ox / hot bot " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" server info ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Display Ġa Ġmessage Ġgiving Ġbasic Ġserver Ġinformation " ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġguild Ġ= Ġit . j da . get Guild ById ( config . server Information . guild id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġembed Ġ= Ġproduce Server Info Embed ( guild , Ġm Service ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( embed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" invite ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Display Ġa Ġpermanent Ġinvite Ġfor Ġthe Ġserver " ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( m Service . messages . permanent Invite Link ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" uptime ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Display s Ġhow Ġlong Ġyou Ġhave Ġkept Ġme , ĠH OT BOT , ĠA WAKE !" ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmilliseconds Ġ= ĠDate (). time Ġ- ĠstartTime . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseconds Ġ= Ġ( milliseconds Ġ/ Ġ 1 0 0 0 ) Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= Ġ( milliseconds Ġ/ Ġ( 1 0 0 0 Ġ* Ġ 6 0 )) Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhours Ġ= Ġ( milliseconds Ġ/ Ġ( 1 0 0 0 Ġ* Ġ 6 0 Ġ* Ġ 6 0 )) Ġ% Ġ 2 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdays Ġ= Ġ( milliseconds Ġ/ Ġ( 1 0 0 0 Ġ* Ġ 6 0 Ġ* Ġ 6 0 Ġ* Ġ 2 4 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( embed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle (" I Ġhave Ġbeen Ġrunning Ġsince ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Description ( startTime . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" That 's Ġbeen " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"$ days Ġday ( s ), Ġ$ hours Ġhour ( s ), Ġ$ minutes Ġminute ( s ) Ġand Ġ$ seconds Ġsecond ( s )" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" exit ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Exit , Ġsaving Ġconfigurations ." ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" Exit ing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Config ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" saved Ġconfigurations ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . save () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" saved Ġpermissions Ġto Ġdatabase Ġprior Ġto Ġshut Ġdown .") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . exit ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" kill ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Exit , Ġwithout Ġsaving Ġconfigurations ." ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" K illing Ġprocess , Ġconfigurations Ġwill Ġnot Ġbe Ġsaved .") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . exit ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" save configurations ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Save Ġthe Ġconfiguration Ġof Ġthe Ġbot . ĠYou Ġmay Ġwant Ġto Ġdo Ġthis Ġif Ġyou Ġchange Ġthe Ġprefix ." ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Config ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" Configurations Ġsaved . ĠI Ġhope Ġyou Ġknow Ġwhat Ġyou Ġare Ġdoing ...") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" version ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Display Ġthe Ġbot Ġversion Ġ-- Ġthis Ġis Ġupdated Ġvia Ġmaven Ġfiltering ." ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" ** Hot bot Ġversion **: Ġ${ Project . properties . version }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" author ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Display Ġproject Ġauthors Ġ-- Ġthis Ġis Ġupdated Ġvia Ġmaven Ġfiltering ." ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" ** Project Ġauthor **: Ġ${ Project . properties . author }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" echo ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Echo Ġa Ġmessage Ġto Ġa Ġchannel " ĊĠĠĠĠĠĠĠ Ġexpect ( arg ( Text Channel Arg , Ġoptional = true , Ġdefault ={ Ġit . channel Ġ}), Ġarg ( Sentence Arg (" Message "))) ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġit . args [ 0 ] Ġas ĠText Channel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġit . args [ 1 ] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsafe Message Ġ= Ġmessage . sanit ise Ment ions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . sendMessage ( safe Message ). queue () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" view creation date ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" See Ġwhen Ġa Ġuser Ġwas Ġcreated " ĊĠĠĠĠĠĠĠ Ġexpect ( User Arg ) ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġit . args . component 1 () Ġas ĠUser ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ("${ target . fullName () }' s Ġaccount Ġwas Ġmade Ġon Ġ${ target . creation Time }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" upload text ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Upload s Ġthe Ġgiven Ġblock Ġof Ġtext / code Ġto Ġh ast eb in Ġand Ġremoves Ġthe Ġinvocation " ĊĠĠĠĠĠĠĠ Ġexpect ( Sentence Arg (" Text ")) ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġit . args . component 1 () Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġpost (" https :// h ast eb in . com / documents ", Ġdata Ġ= Ġtext ). jsonObject ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . command Struct . double Invocation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . message . delete (). queue () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ("${ it . author . fullName () }' s Ġpaste : Ġhttps :// h ast eb in . com /" Ġ+ Ġresponse . getString (" key ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" colour ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Shows Ġan Ġembed Ġwith Ġthe Ġgiven Ġhex Ġcolour Ġcode " ĊĠĠĠĠĠĠĠ Ġexpect ( Hex Colour Arg ) ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolour Ġ= Ġit . args . component 1 () Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhex Ġ= Ġcolour . toString ( 1 6 ). pad Start ( 6 , Ġ' 0 ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġembed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( colour ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle (" Colour ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Description ("# $ hex ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Thumbnail (" http :// via . placeholder . com / 4 0 /$ hex ? text =% 2 0 & ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( response ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand (" what p fp "){ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Returns Ġthe Ġreverse Ġimage Ġurl Ġof Ġa Ġusers Ġprofile Ġpicture ." ĊĠĠĠĠĠĠĠ Ġexpect ( User Arg ) ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġit . args . component 1 () Ġas ĠUser ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreverse Search Url Ġ= Ġ"< https :// www . google . com / search by image ?& image _ url =${ user . effective Avatar Url }> " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġembed Ġ= Ġembed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ("${ user . name }' s Ġp fp ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( Color . BLUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image ( user . effective Avatar Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Description ("[ Reverse ĠSearch ]( $ reverse Search Url )") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( embed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcommand Ġ(" latex "){ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" A Ġcommand Ġthat Ġwill Ġparse Ġlat ex " ĊĠĠĠĠĠĠĠ Ġexpect ( Sentence Arg (" La TeX ĠText ")) ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġit . args . component 1 () Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat ex Ġ= ĠURL Encoder . encode ( input , Ġ" UTF - 8 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" http :// chart . apis . google . com / chart ? cht = tx & ch l =$ latex " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Image To Channel ( url , Ġ" latex - processed . png ", Ġ" Could Ġnot Ġprocess Ġlat ex ", Ġit . channel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcommand (" self mute ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Need Ġto Ġstudy Ġand Ġwant Ġno Ġdist r actions ? ĠM ute Ġyourself ! Ġ( Length Ġdefaults Ġto Ġ 1 Ġhour )" ĊĠĠĠĠĠĠĠ Ġexpect ( arg ( Time String Arg , Ġtrue , Ġ 3 6 0 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= Ġ( it . args . component 1 () Ġas ĠDouble ). round To Long () Ġ* Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġguild Ġ= Ġit . j da . get Guild ById ( config . server Information . guild id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( is Member Mut ed ( it . author . id , Ġguild . id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" N ice Ġtry Ġbut Ġyou 're Ġalready Ġmut ed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ execute ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( time Ġ> Ġ 1 0 0 0 * 6 0 * config . server Information . max Self mute Minutes ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" Sorry Ġbut Ġyou Ġcan 't Ġmute Ġyourself Ġfor Ġthat Ġlong ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ execute ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmute Member ( guild , Ġit . author , Ġtime , Ġ" No Ġdist r actions Ġfor Ġa Ġwhile ? ĠGot Ġit ", Ġconfig , Ġit . author , Ġlog ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġproduce Server Info Embed ( guild : ĠGuild , Ġm Service : ĠM Service ) Ġ= ĊĠĠĠ Ġembed Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle ( guild . name ) ĊĠĠĠĠĠĠĠ Ġset Color ( Color . MAG ENT A ) ĊĠĠĠĠĠĠĠ Ġdescription ( m Service . messages . server Description ) ĊĠĠĠĠĠĠĠ Ġset Footer (" Guild Ġcreation Ġdate : Ġ${ guild . creation Time . format ( DateTime Formatter . RFC _ 1 1 2 3 _ DATE _ TIME )} ", Ġ" http :// i . imgur . com / i ww E pr G . png ") ĊĠĠĠĠĠĠĠ Ġset Thumbnail (" http :// i . imgur . com / DF oa G 7 k . png ") ĊĊĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Users " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"${ guild . members . filter Ġ{ Ġit . online Status Ġ!= ĠOnline Status . OFF LINE Ġ}. size }/${ guild . members . size }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Total ĠRoles " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġguild . roles . size . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Owner " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġguild . owner . fullName () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Region " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġguild . region . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Text ĠChannels " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġguild . text Channel Cache . size (). toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Voice ĠChannels " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġguild . voice Channels . size . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ