package Ġgg . octave . bot . commands . music Ċ Ċ import Ġcom . j ag ro sh . j da utilities . paginator Ċ import Ġgg . octave . bot . utils . Request Util Ċ import Ġgg . octave . bot . utils . extensions . launcher Ċ import Ġme . dev ox in . flight . api . Context Ċ import Ġme . dev ox in . flight . api . annotations . Command Ċ import Ġme . dev ox in . flight . api . annotations . G reedy Ċ import Ġme . dev ox in . flight . api . annotations . Sub Command Ċ import Ġme . dev ox in . flight . api . entities . C og Ċ import Ġme . dev ox in . flight . internal . utils . Text Splitter Ċ import Ġjava . net . URL Encoder Ċ Ċ class ĠL yr ics Ġ: ĠC og Ġ{ ĊĠĠĠ Ġ@ Command ( description Ġ= Ġ" Shows Ġthe Ġl yr ics Ġof Ġthe Ġcurrent Ġsong ") ĊĠĠĠ Ġfun Ġl yr ics ( ctx : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġctx . launcher . players . get Existing ( ctx . guild ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġctx . send (" There 's Ġno Ġplayer Ġto Ġbe Ġseen Ġhere .") ĊĊĠĠĠĠĠĠĠ Ġval Ġaudio Track Ġ= Ġmanager . player . playing Track ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġctx . send (" There 's Ġno Ġsong Ġplaying Ġcurrently .") ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġaudio Track . info . title ĊĠĠĠĠĠĠĠ Ġsend L yr ics For ( ctx , Ġtitle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Sub Command ( description Ġ= Ġ" Search Ġfor Ġspecific Ġsong Ġl yr ics ") ĊĠĠĠ Ġfun Ġsearch ( ctx : ĠContext , Ġ@ G reedy Ġcontent : ĠString ) Ġ= Ġsend L yr ics For ( ctx , Ġcontent ) ĊĊĠĠĠ Ġprivate Ġfun Ġsend L yr ics For ( ctx : ĠContext , Ġtitle : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Title Ġ= ĠURL Encoder . encode ( title , ĠChar sets . UTF _ 8 ) ĊĊĠĠĠĠĠĠĠ ĠRequest Util . jsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl (" https :// lyr ics . ts u . sh / v 1 /? q =$ encoded Title ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" User - Agent ", Ġ" Oct ave Ġ( Discord Bot , Ġhttps :// github . com / D ank Mem er / Oct ave ") ĊĠĠĠĠĠĠĠ Ġ}. then Accept Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . isNull (" error ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Accept Ġctx . send (" No Ġl yr ics Ġfound Ġfor Ġ`$ title `. ĠTry Ġanother Ġsong ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl yr ics Ġ= Ġit . getString (" content ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpages Ġ= ĠText Splitter . split ( lyr ics , Ġ 1 0 0 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong Object Ġ= Ġit . getJSONObject (" song ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull Title Ġ= Ġsong Object . getString (" full _ title ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . text Channel ?. let Ġ{ Ġtx Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . launcher . event Wait er . paginator Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetUser ( ctx . author ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Empty Message (" There Ġshould Ġbe Ġsomething Ġhere ĠðŁĳ Ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Items PerPage ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Ġ{ Ġmessage Ġ-> Ġmessage ?. delete ()?. queue () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ{ Ġ" L yr ics Ġfor Ġ$ full Title " Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( page Ġin Ġpages ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry Ġ{ Ġpage Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. display ( tx ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. exception ally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . send ( it . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ exception ally Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }