diff options
author | Loïc Blot <nerzhul@users.noreply.github.com> | 2017-04-23 14:35:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-23 14:35:08 +0200 |
commit | 29ab20c27229672c24a7699afbcd54caad903331 (patch) | |
tree | e42e7ea35f54b1439055abc500191eb29baa6355 /src/serverenvironment.h | |
parent | dda171d2925e20efc00c78bcb45cf595fd986da9 (diff) | |
download | minetest-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.h | 13 |
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; |