aboutsummaryrefslogtreecommitdiff
path: root/azalea/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'azalea/src/lib.rs')
-rw-r--r--azalea/src/lib.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/azalea/src/lib.rs b/azalea/src/lib.rs
index 84c215d5..6e18ff7d 100644
--- a/azalea/src/lib.rs
+++ b/azalea/src/lib.rs
@@ -15,6 +15,8 @@ pub mod pathfinder;
pub mod prelude;
pub mod swarm;
+use std::net::SocketAddr;
+
use app::Plugins;
pub use azalea_auth as auth;
pub use azalea_block as blocks;
@@ -189,6 +191,25 @@ where
}
self.swarm.start(address).await
}
+
+ /// Do the same as [`Self::start`], but allow passing in a custom resolved
+ /// address. This is useful if the address you're connecting to doesn't
+ /// resolve to anything, like if the server uses the address field to pass
+ /// custom data (like Bungeecord or Forge).
+ pub async fn start_with_custom_resolved_address(
+ mut self,
+ account: Account,
+ address: impl TryInto<ServerAddress>,
+ resolved_address: SocketAddr,
+ ) -> Result<!, StartError> {
+ self.swarm.accounts = vec![account];
+ if self.swarm.states.is_empty() {
+ self.swarm.states = vec![S::default()];
+ }
+ self.swarm
+ .start_with_custom_resolved_address(address, resolved_address)
+ .await
+ }
}
impl Default for ClientBuilder<NoState> {
fn default() -> Self {