aboutsummaryrefslogtreecommitdiff
path: root/src/database
diff options
context:
space:
mode:
Diffstat (limited to 'src/database')
-rw-r--r--src/database/database-dummy.cpp23
-rw-r--r--src/database/database-dummy.h9
-rw-r--r--src/database/database-leveldb.cpp16
3 files changed, 36 insertions, 12 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;
};
diff --git a/src/database/database-leveldb.cpp b/src/database/database-leveldb.cpp
index 1976ae13d..73cd63f6d 100644
--- a/src/database/database-leveldb.cpp
+++ b/src/database/database-leveldb.cpp
@@ -145,8 +145,8 @@ void PlayerDatabaseLevelDB::savePlayer(RemotePlayer *player)
StringMap stringvars = sao->getMeta().getStrings();
writeU32(os, stringvars.size());
for (const auto &it : stringvars) {
- os << serializeString(it.first);
- os << serializeLongString(it.second);
+ os << serializeString16(it.first);
+ os << serializeString32(it.second);
}
player->inventory.serialize(os);
@@ -183,8 +183,8 @@ bool PlayerDatabaseLevelDB::loadPlayer(RemotePlayer *player, PlayerSAO *sao)
u32 attribute_count = readU32(is);
for (u32 i = 0; i < attribute_count; i++) {
- std::string name = deSerializeString(is);
- std::string value = deSerializeLongString(is);
+ std::string name = deSerializeString16(is);
+ std::string value = deSerializeString32(is);
sao->getMeta().setString(name, value);
}
sao->getMeta().setModified(false);
@@ -247,13 +247,13 @@ bool AuthDatabaseLevelDB::getAuth(const std::string &name, AuthEntry &res)
res.id = 1;
res.name = name;
- res.password = deSerializeString(is);
+ res.password = deSerializeString16(is);
u16 privilege_count = readU16(is);
res.privileges.clear();
res.privileges.reserve(privilege_count);
for (u16 i = 0; i < privilege_count; i++) {
- res.privileges.push_back(deSerializeString(is));
+ res.privileges.push_back(deSerializeString16(is));
}
res.last_login = readS64(is);
@@ -264,14 +264,14 @@ bool AuthDatabaseLevelDB::saveAuth(const AuthEntry &authEntry)
{
std::ostringstream os;
writeU8(os, 1);
- os << serializeString(authEntry.password);
+ os << serializeString16(authEntry.password);
size_t privilege_count = authEntry.privileges.size();
FATAL_ERROR_IF(privilege_count > U16_MAX,
"Unsupported number of privileges");
writeU16(os, privilege_count);
for (const std::string &privilege : authEntry.privileges) {
- os << serializeString(privilege);
+ os << serializeString16(privilege);
}
writeS64(os, authEntry.last_login);