Merge pull request #1692 from DarkflameUniverse/really

fix: folder and file checks
This commit is contained in:
Gie "Max" Vanommeslaeghe 2024-12-25 00:25:48 +01:00 committed by GitHub
commit 8509ec8856
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 30 additions and 4 deletions

View File

@ -1,5 +1,5 @@
PROJECT_VERSION_MAJOR=2 PROJECT_VERSION_MAJOR=3
PROJECT_VERSION_MINOR=3 PROJECT_VERSION_MINOR=0
PROJECT_VERSION_PATCH=0 PROJECT_VERSION_PATCH=0
# Debugging # Debugging

View File

@ -5,6 +5,7 @@
#include "dConfig.h" #include "dConfig.h"
#include "Logger.h" #include "Logger.h"
#include "dPlatforms.h" #include "dPlatforms.h"
#include "BinaryPathFinder.h"
// Static Variables // Static Variables
@ -17,7 +18,14 @@ namespace {
void SQLiteDatabase::Connect() { void SQLiteDatabase::Connect() {
LOG("Using SQLite database"); LOG("Using SQLite database");
con = new CppSQLite3DB(); con = new CppSQLite3DB();
con->open(Game::config->GetValue("sqlite_database_path").c_str()); const auto path = BinaryPathFinder::GetBinaryDir() / Game::config->GetValue("sqlite_database_path");
if (!std::filesystem::exists(path)) {
LOG("Creating sqlite path %s", path.string().c_str());
std::filesystem::create_directories(path.parent_path());
}
con->open(path.string().c_str());
isConnected = true; isConnected = true;
// Make sure wal is enabled for the database. // Make sure wal is enabled for the database.

View File

@ -84,6 +84,24 @@ int main(int argc, char** argv) {
Server::SetupLogger("MasterServer"); Server::SetupLogger("MasterServer");
if (!Game::logger) return EXIT_FAILURE; if (!Game::logger) return EXIT_FAILURE;
auto folders = { "navmeshes", "migrations", "vanity" };
for (const auto folder : folders) {
if (!std::filesystem::exists(BinaryPathFinder::GetBinaryDir() / folder)) {
std::string msg = "The (" +
std::string(folder) +
") folder was not copied to the binary directory. Please copy the (" +
std::string(folder) +
") folder from your download to the binary directory or re-run cmake.";
LOG("%s", msg.c_str());
// toss an error box up for windows users running the download
#ifdef DARKFLAME_PLATFORM_WIN32
MessageBoxA(nullptr, msg.c_str(), "Missing Folder", MB_OK | MB_ICONERROR);
#endif
return EXIT_FAILURE;
}
}
if (!dConfig::Exists("authconfig.ini")) LOG("Could not find authconfig.ini, using default settings"); if (!dConfig::Exists("authconfig.ini")) LOG("Could not find authconfig.ini, using default settings");
if (!dConfig::Exists("chatconfig.ini")) LOG("Could not find chatconfig.ini, using default settings"); if (!dConfig::Exists("chatconfig.ini")) LOG("Could not find chatconfig.ini, using default settings");
if (!dConfig::Exists("masterconfig.ini")) LOG("Could not find masterconfig.ini, using default settings"); if (!dConfig::Exists("masterconfig.ini")) LOG("Could not find masterconfig.ini, using default settings");
@ -177,7 +195,7 @@ int main(int argc, char** argv) {
} }
// Run migrations should any need to be run. // Run migrations should any need to be run.
MigrationRunner::RunSQLiteMigrations(); MigrationRunner::RunSQLiteMigrations();
//If the first command line argument is -a or --account then make the user //If the first command line argument is -a or --account then make the user
//input a username and password, with the password being hidden. //input a username and password, with the password being hidden.