/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠRen ĠBind en Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . r pk it . chat . bukkit . ch atch annel . und irect ed Ċ Ċ import Ġcom . r pk it . chat . bukkit . RP K Chat Bu kkit Ċ import Ġcom . r pk it . chat . bukkit . ch atch annel . pipeline . Un directed Pipeline Component Ċ import Ġcom . r pk it . chat . bukkit . context . Un directed Message Context Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . configuration . serialization . Configuration Serializable Ċ import Ġorg . bukkit . configuration . serialization . Serializable As Ċ import Ġjava . io . Buffered Writer Ċ import Ġjava . io . File Ċ import Ġjava . io . FileWriter Ċ import Ġjava . io . IOException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Date Ċ Ċ /** Ċ Ġ* ĠLog Ġcomponent . Ċ Ġ* ĠLogs Ġmessages Ġto Ġa Ġd ated Ġlog Ġfile . Ċ Ġ*/ Ċ @ Serializable As (" Log Component ") Ċ class ĠLog Component ( private Ġval Ġplugin : ĠRP K Chat Bu kkit ) Ġ: ĠUnd irect ed Pipeline Component , ĠConfiguration Serializable Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġprocess ( context : ĠUnd irect ed Message Context ): ĠUnd irect ed Message Context Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog Directory Ġ= ĠFile ( plugin . data Folder , Ġ" logs ") ĊĠĠĠĠĠĠĠ Ġval Ġlog DateFormat Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ") ĊĠĠĠĠĠĠĠ Ġval Ġd ated Log Directory Ġ= ĠFile ( log Directory , Ġlog DateFormat . format ( Date ())) ĊĠĠĠĠĠĠĠ Ġif Ġ(! dated Log Directory . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! dated Log Directory . mkdir s ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException (" Could Ġnot Ġcreate Ġlog Ġdirectory . ĠDoes Ġthe Ġserver Ġhave Ġpermission Ġto Ġwrite Ġto Ġthe Ġdirectory ?") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlog Ġ= ĠFile ( dated Log Directory , Ġcontext . chat Channel . name . value Ġ+ Ġ". log ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! log . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! log . createNew File ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException (" Failed Ġto Ġcreate Ġlog Ġfile . ĠDoes Ġthe Ġserver Ġhave Ġpermission Ġto Ġwrite Ġto Ġthe Ġdirectory ?") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠBuffered Writer ( FileWriter ( log , Ġtrue )) ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ĠHH : mm : ss ") ĊĠĠĠĠĠĠĠ Ġwriter . append (" [" ). append ( date Format . format ( Date ())). append (" ] Ġ"). append ( context . message ). append ("\ n ") ĊĠĠĠĠĠĠĠ Ġwriter . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġserialize (): ĠMutable Map < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmutable Map Of () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġdeserialize ( serialized : ĠMutable Map < String , ĠAny >): ĠLog Component Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLog Component ( Bu kkit . get PluginManager (). get Plugin (" r pk - chat - bukkit ") Ġas ĠRP K Chat Bu kkit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }