cobble_core/instance/
servers.rs

1use std::path::PathBuf;
2
3use crate::error::CobbleResult;
4use crate::minecraft::{load_servers, Server};
5use crate::Instance;
6
7impl Instance {
8    /// Path to the .minecraft/servers.dat file.
9    #[cfg_attr(doc_cfg, doc(cfg(feature = "servers")))]
10    pub fn servers_file(&self) -> PathBuf {
11        let mut servers_file = self.dot_minecraft_path();
12        servers_file.push("servers.dat");
13        servers_file
14    }
15
16    /// Loads all screenshots from this instance.
17    #[cfg_attr(doc_cfg, doc(cfg(feature = "servers")))]
18    pub async fn load_servers(&self) -> CobbleResult<Vec<Server>> {
19        load_servers(self.servers_file()).await
20    }
21
22    /// Adds a new server to this instance.
23    /// Also sets the correct path to this instances servers.dat file.
24    #[cfg_attr(doc_cfg, doc(cfg(feature = "servers")))]
25    pub async fn add_server(&self, mut server: Server) -> CobbleResult<()> {
26        server.path = self.servers_file();
27        Server::add(server).await
28    }
29}