1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-06-21 07:27:45 +00:00

Add config for world address to be served by lobby server

This commit is contained in:
OTCompa 2025-06-19 14:19:47 -05:00 committed by Joshua Goins
parent 086cd24b09
commit 6d79a365f3
2 changed files with 16 additions and 2 deletions

View file

@ -195,6 +195,8 @@ pub struct WorldConfig {
pub port: u16, pub port: u16,
#[serde(default = "WorldConfig::default_listen_address")] #[serde(default = "WorldConfig::default_listen_address")]
pub listen_address: String, pub listen_address: String,
#[serde(default = "WorldConfig::default_world_address")]
pub world_address: String,
/// See the World Excel sheet. /// See the World Excel sheet.
#[serde(default = "WorldConfig::default_world_id")] #[serde(default = "WorldConfig::default_world_id")]
pub world_id: u16, pub world_id: u16,
@ -221,6 +223,7 @@ impl Default for WorldConfig {
Self { Self {
port: Self::default_port(), port: Self::default_port(),
listen_address: Self::default_listen_address(), listen_address: Self::default_listen_address(),
world_address: Self::default_world_address(),
world_id: Self::default_world_id(), world_id: Self::default_world_id(),
scripts_location: Self::default_scripts_location(), scripts_location: Self::default_scripts_location(),
rcon_port: Self::default_rcon_port(), rcon_port: Self::default_rcon_port(),
@ -240,6 +243,10 @@ impl WorldConfig {
"0.0.0.0".to_string() "0.0.0.0".to_string()
} }
fn default_world_address() -> String {
"127.0.0.1".to_string()
}
fn default_world_id() -> u16 { fn default_world_id() -> u16 {
63 // Gilgamesh 63 // Gilgamesh
} }
@ -274,6 +281,13 @@ impl WorldConfig {
)) ))
} }
pub fn get_world_socketaddr(&self) -> SocketAddr {
SocketAddr::from((
IpAddr::from_str(&self.world_address).expect("Invalid IP address format in config!"),
self.port,
))
}
/// Returns the configured IP address & port as a `SocketAddr` for RCON. /// Returns the configured IP address & port as a `SocketAddr` for RCON.
pub fn get_rcon_socketaddr(&self) -> SocketAddr { pub fn get_rcon_socketaddr(&self) -> SocketAddr {
SocketAddr::from(( SocketAddr::from((

View file

@ -250,7 +250,7 @@ impl LobbyConnection {
content_id, content_id,
token: String::new(), token: String::new(),
port: config.world.port, port: config.world.port,
host: config.world.listen_address, host: config.world.world_address,
}; };
let ipc = ServerLobbyIpcSegment { let ipc = ServerLobbyIpcSegment {
@ -538,7 +538,7 @@ impl LobbyConnection {
pub async fn send_custom_world_packet(segment: CustomIpcSegment) -> Option<CustomIpcSegment> { pub async fn send_custom_world_packet(segment: CustomIpcSegment) -> Option<CustomIpcSegment> {
let config = get_config(); let config = get_config();
let addr = config.world.get_socketaddr(); let addr = config.world.get_world_socketaddr();
let mut stream = TcpStream::connect(addr).await.unwrap(); let mut stream = TcpStream::connect(addr).await.unwrap();