45 lines
1.2 KiB
Rust
45 lines
1.2 KiB
Rust
#![allow(unused_imports)]
|
|
#![allow(non_snake_case)]
|
|
|
|
pub mod mctypes;
|
|
pub mod net;
|
|
pub mod server;
|
|
|
|
use log::{debug, error, info, warn};
|
|
use net::NetworkServer;
|
|
use server::GameServer;
|
|
use std::time::{Duration, Instant};
|
|
|
|
pub fn main() {
|
|
let start_time = Instant::now();
|
|
|
|
// Set up fern logging.
|
|
fern::Dispatch::new()
|
|
.format(move |out, message, record| {
|
|
out.finish(format_args!(
|
|
"[{date}][{target}][{level}] {message}",
|
|
date = chrono::Local::now().format("%Y-%m-%d %H:%M:%S"),
|
|
target = record.target(),
|
|
level = record.level(),
|
|
message = message,
|
|
))
|
|
})
|
|
.level(log::LevelFilter::Debug)
|
|
.chain(std::io::stdout())
|
|
.chain(fern::log_file("output.log").unwrap())
|
|
.apply()
|
|
.unwrap();
|
|
info!("Starting server...");
|
|
|
|
// Start the network.
|
|
let network = NetworkServer::new("0.0.0.0:25565");
|
|
let mut server = GameServer { network: network };
|
|
info!("Done! Start took {:?}", start_time.elapsed());
|
|
|
|
// The main server loop.
|
|
loop {
|
|
server.update();
|
|
std::thread::sleep(Duration::from_millis(2));
|
|
}
|
|
}
|