From a696847f67cf90e386caa44388ef21b5ae0bcd64 Mon Sep 17 00:00:00 2001
From: Joshua Barretto <joshua.s.barretto@gmail.com>
Date: Tue, 21 May 2019 23:31:17 +0100
Subject: [PATCH] Fixed singleplayer failure caused by worldgen

Former-commit-id: a2fdb56682922694b32e4d25890afa7a90c5b923
---
 voxygen/src/menu/main/client_init.rs        |  2 ++
 voxygen/src/menu/main/start_singleplayer.rs |  2 +-
 voxygen/src/singleplayer.rs                 | 11 +++++------
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/voxygen/src/menu/main/client_init.rs b/voxygen/src/menu/main/client_init.rs
index ceef63c874..c464117e0e 100644
--- a/voxygen/src/menu/main/client_init.rs
+++ b/voxygen/src/menu/main/client_init.rs
@@ -1,3 +1,4 @@
+use log::info;
 use client::{error::Error as ClientError, Client};
 use common::comp;
 use std::{
@@ -32,6 +33,7 @@ impl ClientInit {
         thread::spawn(move || {
             // Sleep the thread to wait for the single-player server to start up.
             if wait {
+                info!("Waiting for server to come up...");
                 thread::sleep(Duration::from_millis(500));
             }
             // Parse ip address or resolves hostname.
diff --git a/voxygen/src/menu/main/start_singleplayer.rs b/voxygen/src/menu/main/start_singleplayer.rs
index ff77161948..c3e3446294 100644
--- a/voxygen/src/menu/main/start_singleplayer.rs
+++ b/voxygen/src/menu/main/start_singleplayer.rs
@@ -29,7 +29,7 @@ impl PlayState for StartSingleplayerState {
                 let server_address = self.sock.ip().to_string();
 
                 let client_init = ClientInit::new(
-                    (server_address.clone(), self.sock.port(), false),
+                    (server_address.clone(), self.sock.port(), true),
                     comp::Player::new(username.clone(), Some(10)),
                     true,
                 );
diff --git a/voxygen/src/singleplayer.rs b/voxygen/src/singleplayer.rs
index 1955227d4b..0a9aa67a06 100644
--- a/voxygen/src/singleplayer.rs
+++ b/voxygen/src/singleplayer.rs
@@ -31,9 +31,11 @@ impl Singleplayer {
             pick_unused_port().expect("Failed to find unused port!"),
         ));
 
-        let sock2 = sock.clone();
+        // Create server
+        let server = Server::bind(sock.clone()).expect("Failed to create server instance!");
+
         let thread = thread::spawn(move || {
-            run_server(sock2, reciever);
+            run_server(server, reciever);
         });
 
         (
@@ -53,15 +55,12 @@ impl Drop for Singleplayer {
     }
 }
 
-fn run_server(sock: SocketAddr, rec: Receiver<Msg>) {
+fn run_server(mut server: Server, rec: Receiver<Msg>) {
     info!("Starting server-cli...");
 
     // Set up an fps clock
     let mut clock = Clock::new();
 
-    // Create server
-    let mut server = Server::bind(sock).expect("Failed to create server instance!");
-
     loop {
         let events = server
             .tick(Input::default(), clock.get_last_delta())