From fced6d753a821ad0655f929037ff5f7d20546481 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Tue, 17 Dec 2024 19:06:07 -0800 Subject: [PATCH] fix: Create resServer and logs if it doesnt exist and update readme (#1686) * create resServer if not exist * Update README.md * Update README.md --- README.md | 11 ++++++----- dMasterServer/MasterServer.cpp | 1 + dServer/Server.cpp | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a402a163..fc076dff 100644 --- a/README.md +++ b/README.md @@ -24,13 +24,14 @@ Darkflame Universe is a server emulator and does not distribute any LEGO® Unive Warning: WSL version 1 does NOT support using sqlite as a database due to how it handles filesystem synchronization. You must use Version 2 if you must run the server under WSL. Not doing so will result in save data loss. * Single player installs now no longer require building the server from source or installing development tools. -* Download the [latest release](https://github.com/DarkflameUniverse/DarkflameServer/releases) and extract the files into a folder inside your client. -* You should be able to see the folder with the server executables in the same folder as `legouniverse.exe`. -* Open `sharedconfig.ini` and find the line that says `client_location` and put `..` after it so the line reads `client_location=..`. +* Download the [latest windows release](https://github.com/DarkflameUniverse/DarkflameServer/releases) (or whichever release you need) and extract the files into a folder inside your client. Note that this setup is expecting that when double clicking the folder that you put in the same folder as `legouniverse.exe`, the file `MasterServer.exe` is in there. +* You should be able to see the folder with the server files in the same folder as `legouniverse.exe`. +* Go into the server files folder and open `sharedconfig.ini`. Find the line that says `client_location` and put `..` after it so the line reads `client_location=..`. * To run the server, double-click `MasterServer.exe`. -* You will be asked to create an account the first time you run the server. +* You will be asked to create an account the first time you run the server. After you have created the account, the server will shutdown and need to be restarted. +* To connect to the server, either delete the file `boot.cfg` which is found in your LEGO Universe client, rename the file `boot.cfg` to something else or follow the steps [here](#allowing-a-user-to-connect-to-your-server) if you wish to keep the file. * When shutting down the server, it is highly recommended to click the `MasterServer.exe` window and hold `ctrl` while pressing `c` to stop the server. -* We are working on a way to make it so when you close the game, the server saves automatically alongside when you open the game, the server starts automatically. +* We are working on a way to make it so when you close the game, the server stops automatically alongside when you open the game, the server starts automatically. **If you are not planning on hosting a server for others, working in the codebase or wanting to use MariaDB for a database, you can stop reading here.** diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index e01ca255..b764169a 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -126,6 +126,7 @@ int main(int argc, char** argv) { MigrationRunner::RunMigrations(); const auto resServerPath = BinaryPathFinder::GetBinaryDir() / "resServer"; + std::filesystem::create_directories(resServerPath); const bool cdServerExists = std::filesystem::exists(resServerPath / "CDServer.sqlite"); const bool oldCDServerExists = std::filesystem::exists(Game::assetManager->GetResPath() / "CDServer.sqlite"); const bool fdbExists = std::filesystem::exists(Game::assetManager->GetResPath() / "cdclient.fdb"); diff --git a/dServer/Server.cpp b/dServer/Server.cpp index cd801a3b..3b9ba2bb 100644 --- a/dServer/Server.cpp +++ b/dServer/Server.cpp @@ -13,7 +13,7 @@ void Server::SetupLogger(const std::string_view serviceName) { const auto logsDir = BinaryPathFinder::GetBinaryDir() / "logs"; - if (!std::filesystem::exists(logsDir)) std::filesystem::create_directory(logsDir); + if (!std::filesystem::exists(logsDir)) std::filesystem::create_directories(logsDir); std::string logPath = (logsDir / serviceName).string() + "_" + std::to_string(time(nullptr)) + ".log"; bool logToConsole = false;