aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src/ping.rs
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-10-23 14:46:06 -0500
committermat <github@matdoes.dev>2022-10-23 14:46:06 -0500
commita9ff79a10553026b0fa32f0e31f1e0442467ca78 (patch)
tree5ecda41c72d2202faeb70cda08aae0a9f1c17675 /azalea-client/src/ping.rs
parent127126c2cc415887395f18119404ace362d4173a (diff)
downloadazalea-drasl-a9ff79a10553026b0fa32f0e31f1e0442467ca78.tar.xz
write more documentation
Diffstat (limited to 'azalea-client/src/ping.rs')
-rwxr-xr-xazalea-client/src/ping.rs22
1 files changed, 19 insertions, 3 deletions
diff --git a/azalea-client/src/ping.rs b/azalea-client/src/ping.rs
index c59fb3ac..6817677e 100755
--- a/azalea-client/src/ping.rs
+++ b/azalea-client/src/ping.rs
@@ -1,4 +1,5 @@
-///! Ping Minecraft servers.
+//! Ping Minecraft servers.
+
use azalea_protocol::{
connect::{Connection, ConnectionError},
packets::{
@@ -25,12 +26,27 @@ pub enum PingError {
ReadPacket(#[from] azalea_protocol::read::ReadPacketError),
#[error("{0}")]
WritePacket(#[from] io::Error),
+ #[error("The given address could not be parsed into a ServerAddress")]
+ InvalidAddress,
}
+/// Ping a Minecraft server.
+///
+/// ```
+/// use azalea_client::ping;
+///
+/// #[tokio::main]
+/// async fn main() {
+/// let response = ping::ping_server("play.hypixel.net").await.unwrap();
+/// println!("{}", response.description.to_ansi(None));
+/// }
+/// ```
pub async fn ping_server(
- address: &ServerAddress,
+ address: impl TryInto<ServerAddress>,
) -> Result<ClientboundStatusResponsePacket, PingError> {
- let resolved_address = resolver::resolve_address(address).await?;
+ let address: ServerAddress = address.try_into().map_err(|_| PingError::InvalidAddress)?;
+
+ let resolved_address = resolver::resolve_address(&address).await?;
let mut conn = Connection::new(&resolved_address).await?;