38 lines
1009 B
Rust
38 lines
1009 B
Rust
use std::{fs, path::PathBuf};
|
|
|
|
use pumpkin::plugin::Context;
|
|
|
|
pub struct PatchBukkitDirectories {
|
|
pub base: PathBuf,
|
|
pub plugins: PathBuf,
|
|
pub plugin_updates: PathBuf,
|
|
pub j4rs: PathBuf,
|
|
pub jassets: PathBuf,
|
|
}
|
|
|
|
pub fn setup_directories(server: &Context) -> Result<PatchBukkitDirectories, String> {
|
|
let base = server
|
|
.get_data_folder()
|
|
.canonicalize()
|
|
.map_err(|_| "Failed to get absolute directory from relative")?;
|
|
|
|
let plugins = base.join("patchbukkit-plugins");
|
|
let plugin_updates = plugins.join("update");
|
|
let j4rs = base.join("j4rs");
|
|
let jassets = j4rs.join("jassets");
|
|
|
|
fs::create_dir_all(&jassets)
|
|
.map_err(|err| format!("Failed to create jassets folder: {:?}", err))?;
|
|
|
|
fs::create_dir_all(&plugins)
|
|
.map_err(|err| format!("Failed to create patchbukkit-plugins folder: {:?}", err))?;
|
|
|
|
Ok(PatchBukkitDirectories {
|
|
base,
|
|
plugins,
|
|
plugin_updates,
|
|
j4rs,
|
|
jassets,
|
|
})
|
|
}
|