summaryrefslogtreecommitdiff
path: root/src/serverenvironment.h
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-04-23 14:35:08 +0200
committerGitHub <noreply@github.com>2017-04-23 14:35:08 +0200
commit29ab20c27229672c24a7699afbcd54caad903331 (patch)
treee42e7ea35f54b1439055abc500191eb29baa6355 /src/serverenvironment.h
parentdda171d2925e20efc00c78bcb45cf595fd986da9 (diff)
downloadminetest-29ab20c27229672c24a7699afbcd54caad903331.tar.gz
minetest-29ab20c27229672c24a7699afbcd54caad903331.tar.bz2
minetest-29ab20c27229672c24a7699afbcd54caad903331.zip
Player data to Database (#5475)
* Player data to Database Add player data into databases (SQLite3 & PG only) PostgreSQL & SQLite: better POO Design for databases Add --migrate-players argument to server + deprecation warning * Remove players directory if empty
Diffstat (limited to 'src/serverenvironment.h')
-rw-r--r--src/serverenvironment.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/serverenvironment.h b/src/serverenvironment.h
index 99110542a..0e31aa41a 100644
--- a/src/serverenvironment.h
+++ b/src/serverenvironment.h
@@ -27,7 +27,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class IGameDef;
class ServerMap;
+struct GameParams;
class RemotePlayer;
+class PlayerDatabase;
class PlayerSAO;
class ServerEnvironment;
class ActiveBlockModifier;
@@ -217,9 +219,11 @@ public:
// Save players
void saveLoadedPlayers();
void savePlayer(RemotePlayer *player);
- RemotePlayer *loadPlayer(const std::string &playername, PlayerSAO *sao);
+ PlayerSAO *loadPlayer(RemotePlayer *player, bool *new_player, u16 peer_id,
+ bool is_singleplayer);
void addPlayer(RemotePlayer *player);
void removePlayer(RemotePlayer *player);
+ bool removePlayerFromDatabase(const std::string &name);
/*
Save and load time of day and game timer
@@ -334,8 +338,13 @@ public:
RemotePlayer *getPlayer(const u16 peer_id);
RemotePlayer *getPlayer(const char* name);
+
+ static bool migratePlayersDatabase(const GameParams &game_params,
+ const Settings &cmd_args);
private:
+ static PlayerDatabase *openPlayerDatabase(const std::string &name,
+ const std::string &savedir, const Settings &conf);
/*
Internal ActiveObject interface
-------------------------------------------
@@ -419,6 +428,8 @@ private:
// peer_ids in here should be unique, except that there may be many 0s
std::vector<RemotePlayer*> m_players;
+ PlayerDatabase *m_player_database;
+
// Particles
IntervalLimiter m_particle_management_interval;
UNORDERED_MAP<u32, float> m_particle_spawners;