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:
parent
086cd24b09
commit
6d79a365f3
2 changed files with 16 additions and 2 deletions
|
@ -195,6 +195,8 @@ pub struct WorldConfig {
|
|||
pub port: u16,
|
||||
#[serde(default = "WorldConfig::default_listen_address")]
|
||||
pub listen_address: String,
|
||||
#[serde(default = "WorldConfig::default_world_address")]
|
||||
pub world_address: String,
|
||||
/// See the World Excel sheet.
|
||||
#[serde(default = "WorldConfig::default_world_id")]
|
||||
pub world_id: u16,
|
||||
|
@ -221,6 +223,7 @@ impl Default for WorldConfig {
|
|||
Self {
|
||||
port: Self::default_port(),
|
||||
listen_address: Self::default_listen_address(),
|
||||
world_address: Self::default_world_address(),
|
||||
world_id: Self::default_world_id(),
|
||||
scripts_location: Self::default_scripts_location(),
|
||||
rcon_port: Self::default_rcon_port(),
|
||||
|
@ -240,6 +243,10 @@ impl WorldConfig {
|
|||
"0.0.0.0".to_string()
|
||||
}
|
||||
|
||||
fn default_world_address() -> String {
|
||||
"127.0.0.1".to_string()
|
||||
}
|
||||
|
||||
fn default_world_id() -> u16 {
|
||||
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.
|
||||
pub fn get_rcon_socketaddr(&self) -> SocketAddr {
|
||||
SocketAddr::from((
|
||||
|
|
|
@ -250,7 +250,7 @@ impl LobbyConnection {
|
|||
content_id,
|
||||
token: String::new(),
|
||||
port: config.world.port,
|
||||
host: config.world.listen_address,
|
||||
host: config.world.world_address,
|
||||
};
|
||||
|
||||
let ipc = ServerLobbyIpcSegment {
|
||||
|
@ -538,7 +538,7 @@ impl LobbyConnection {
|
|||
pub async fn send_custom_world_packet(segment: CustomIpcSegment) -> Option<CustomIpcSegment> {
|
||||
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();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue