package Ġit . o ech s ler . backup . actions Ċ Ċ import Ġnet . ling ala . zip 4 j . Zip File Ċ import Ġorg . bukkit . Chat Color Ċ import Ġorg . bukkit . Server Ċ import Ġorg . bukkit . plugin . Plugin Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ class ĠBackup Action ( private Ġval Ġplugin : ĠPlugin ) Ġ: ĠRunnable Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġserver : ĠServer Ġ= Ġplugin . server ĊĠĠĠ Ġprivate Ġval Ġprefix Ġ= Ġ"${ Chat Color . DARK _ GRAY }[ ${ Chat Color . YELLOW } Backup ${ Chat Color . DARK _ GRAY }] " ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġserver . broadcast Message ("$ prefix Ġ${ Chat Color . GRAY } Backing Ġup Ġthe Ġserver Ġ( may Ġcause Ġlag Ġfor Ġa Ġmoment )") ĊĊĠĠĠĠĠĠĠ Ġval Ġworld Container Ġ= Ġserver . world Container ĊĠĠĠĠĠĠĠ Ġval Ġworld Names Ġ= Ġserver . world s . map Ġ{ Ġit . name Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġword Folders Ġ= Ġworld Names . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġworld Path Ġ= Ġworld Container . resolve ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( world Path . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map Ġworld Path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. filter NotNull () ĊĊĠĠĠĠĠĠĠ Ġval Ġbackup Container Name Ġ= Ġplugin . config . getString (" container ") Ġ?: Ġ" backup " ĊĠĠĠĠĠĠĠ Ġval Ġbackup Container Ġ= Ġworld Container . resolve ( backup Container Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! backup Container . exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackup Container . mkdir () ĊĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠ Ġval Ġtime Formatter Ġ= ĠDateTime Formatter . of Pattern (" yyyy MM dd HH mm ss ") ĊĠĠĠĠĠĠĠ Ġval Ġtime Stamp Ġ= Ġtime Formatter . format ( currentTime ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbackup Name Prefix Ġ= Ġplugin . config . getString (" prefix ") Ġ?: Ġ" backup -" ĊĠĠĠĠĠĠĠ Ġval Ġbackup Name Ġ= Ġ"${ backup Name Prefix }${ time Stamp }" ĊĠĠĠĠĠĠĠ Ġval Ġbackup Ġ= ĠZip File ("${ backup Container . absolute Path }/${ backup Name }. zip ") ĊĠĠĠĠĠĠĠ Ġword Folders . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackup . add Folder ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġserver . broadcast Message ("$ prefix Ġ${ Chat Color . GRAY }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Saved Ġbackup Ġto Ġ\" ${ Chat Color . YELLOW }${ backup Name }. zip ${ Chat Color . GRAY }\" ") ĊĠĠĠ Ġ} Ċ Ċ }