mcstatusface/src/main.rs

37 lines
1 KiB
Rust
Raw Normal View History

2025-04-14 07:20:05 +01:00
use std::io::{Result};
use std::net::{ToSocketAddrs};
use std::env;
use mcstatusface::http::HttpServer;
use mcstatusface::{MinecraftStatus};
2025-04-14 07:20:05 +01:00
fn main() -> Result<()> {
let args: Vec<String> = env::args().collect();
if args.len() < 2 {
eprintln!("Usage: {} <serve | address[:port]>", args[0]);
2025-04-14 07:20:05 +01:00
std::process::exit(1);
}
if args[1] != "serve" {
let mut address = String::from(args[1].as_str());
if !address.contains(":") {
address += ":25565";
}
let mut addrs_iter = args[1].to_socket_addrs().unwrap();
let address = addrs_iter.next().unwrap();
let status = MinecraftStatus::fetch(address).unwrap();
2025-04-14 07:20:05 +01:00
println!("\nVersion: {} ({})", status.version.name, status.version.protocol);
println!("Players: {}/{}", status.players.online, status.players.max);
println!("MOTD:");
println!("{}", status.parse_description());
return Ok(());
}
2025-04-14 07:20:05 +01:00
HttpServer::new("0.0.0.0").start().unwrap();
2025-04-14 07:20:05 +01:00
Ok(())
}