aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars <larsh@apache.org>2020-09-20 12:51:12 -0700
committerlhofhansl <larsh@apache.org>2020-09-20 19:16:14 -0700
commit49117de47658cd6c885f88010c9328f8ce3e6e93 (patch)
tree3184d20de0f7620d98dccf5d34ae676bd4f25e8b
parent9ec75d77651c333eca3c5b46a3a56c8353fed464 (diff)
downloadminetest-49117de47658cd6c885f88010c9328f8ce3e6e93.tar.gz
minetest-49117de47658cd6c885f88010c9328f8ce3e6e93.tar.bz2
minetest-49117de47658cd6c885f88010c9328f8ce3e6e93.zip
Record player existence in dymmy database.
-rw-r--r--src/database/database-dummy.cpp23
-rw-r--r--src/database/database-dummy.h9
2 files changed, 28 insertions, 4 deletions
diff --git a/src/database/database-dummy.cpp b/src/database/database-dummy.cpp
index a3d8cd579..b56f341c5 100644
--- a/src/database/database-dummy.cpp
+++ b/src/database/database-dummy.cpp
@@ -22,6 +22,7 @@ Dummy database class
*/
#include "database-dummy.h"
+#include "remoteplayer.h"
bool Database_Dummy::saveBlock(const v3s16 &pos, const std::string &data)
@@ -57,3 +58,25 @@ void Database_Dummy::listAllLoadableBlocks(std::vector<v3s16> &dst)
}
}
+void Database_Dummy::savePlayer(RemotePlayer *player)
+{
+ m_player_database.insert(player->getName());
+}
+
+bool Database_Dummy::loadPlayer(RemotePlayer *player, PlayerSAO *sao)
+{
+ return m_player_database.find(player->getName()) != m_player_database.end();
+}
+
+bool Database_Dummy::removePlayer(const std::string &name)
+{
+ m_player_database.erase(name);
+ return true;
+}
+
+void Database_Dummy::listPlayers(std::vector<std::string> &res)
+{
+ for (const auto &player : m_player_database) {
+ res.emplace_back(player);
+ }
+}
diff --git a/src/database/database-dummy.h b/src/database/database-dummy.h
index 2d87d58f6..b69919f84 100644
--- a/src/database/database-dummy.h
+++ b/src/database/database-dummy.h
@@ -32,14 +32,15 @@ public:
bool deleteBlock(const v3s16 &pos);
void listAllLoadableBlocks(std::vector<v3s16> &dst);
- void savePlayer(RemotePlayer *player) {}
- bool loadPlayer(RemotePlayer *player, PlayerSAO *sao) { return true; }
- bool removePlayer(const std::string &name) { return true; }
- void listPlayers(std::vector<std::string> &res) {}
+ void savePlayer(RemotePlayer *player);
+ bool loadPlayer(RemotePlayer *player, PlayerSAO *sao);
+ bool removePlayer(const std::string &name);
+ void listPlayers(std::vector<std::string> &res);
void beginSave() {}
void endSave() {}
private:
std::map<s64, std::string> m_database;
+ std::set<std::string> m_player_database;
};