package Ġorg . bot l ax y . telegram it . core . handler . loader . collect Ċ Ċ import Ġmu . Kotlin Logging Ċ import Ġorg . bot l ax y . telegram it . core . handler . Handler Constant Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths Ċ Ċ private Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{} Ċ Ċ class ĠDirectory Script Collector ( val Ġlocation : ĠString ) Ġ: ĠScript Collector Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcollect (): ĠList < Path > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug Ġ{ Ġ" Search Ġscripts Ġat Ġthe Ġ'$ location ' Ġdirectory " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġhandler Path Ġ= ĠPaths . get ( location ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Files . isDirectory ( handler Path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠScript Collector Exception (" Bad Ġhandler Ġscripts Ġlocation : Ġ$ location ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġscript Files Ġ= Ġmutable ListOf < Path >() ĊĠĠĠĠĠĠĠ Ġhandler Path . to File (). walk ( File Walk Direction . TOP _ DOWN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfilePath Ġ= Ġit . to Path () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= ĠfilePath . fileName . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fileName . endsWith ( Handler Constant . K OT LIN _ SCRIPT _ EXT )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscript Files . add ( filePath ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . debug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhandlers Ġ= Ġscript Files . join ToString Ġ{ Ġit . fileName . toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Work Dir Ġhandlers : Ġ$ handlers " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġscript Files ĊĠĠĠ Ġ} Ċ Ċ } Ċ