diff options
author | David Athay <ko2fan@gmail.com> | 2008-08-18 16:32:33 +0000 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2008-08-18 16:32:33 +0000 |
commit | ea1287bed502f43a1c00601e2a236fcbd5b29bdc (patch) | |
tree | 6d985a7a504483befcc27dc552b14eb1f85d9eb5 /src/account-server | |
parent | 43af98d8a72966ed2e97b387c6fd0f99a480eb4e (diff) | |
download | manaserv-ea1287bed502f43a1c00601e2a236fcbd5b29bdc.tar.gz manaserv-ea1287bed502f43a1c00601e2a236fcbd5b29bdc.tar.bz2 manaserv-ea1287bed502f43a1c00601e2a236fcbd5b29bdc.tar.xz manaserv-ea1287bed502f43a1c00601e2a236fcbd5b29bdc.zip |
Changed guilds to use character id.
Diffstat (limited to 'src/account-server')
-rw-r--r-- | src/account-server/dalstorage.cpp | 39 | ||||
-rw-r--r-- | src/account-server/dalstorage.hpp | 6 | ||||
-rw-r--r-- | src/account-server/dalstoragesql.hpp | 30 |
3 files changed, 35 insertions, 40 deletions
diff --git a/src/account-server/dalstorage.cpp b/src/account-server/dalstorage.cpp index 42a35467..cae4bcec 100644 --- a/src/account-server/dalstorage.cpp +++ b/src/account-server/dalstorage.cpp @@ -391,17 +391,12 @@ Character *DALStorage::getCharacter(int id, Account *owner) return getCharacterBySQL(sql.str(), owner); } -/** - * Gets a character by character name. - */ Character *DALStorage::getCharacter(const std::string &name) { std::ostringstream sql; - sql << "select * from " << CHARACTERS_TBL_NAME << " where name = \"" << name << "\";"; + sql << "select * from " << CHARACTERS_TBL_NAME << " where name = '" << name << "';"; return getCharacterBySQL(sql.str(), NULL); } - - #if 0 /** * Return the list of all Emails addresses. @@ -908,17 +903,17 @@ void DALStorage::removeGuild(Guild* guild) /** * add a member to a guild */ -void DALStorage::addGuildMember(int guildId, const std::string &memberName) +void DALStorage::addGuildMember(int guildId, int memberId) { std::ostringstream sql; try { sql << "insert into " << GUILD_MEMBERS_TBL_NAME - << " (guild_id, member_name, rights)" + << " (guild_id, member_id, rights)" << " values (" << guildId << ", \"" - << memberName << "\", " + << memberId << "\", " << 0 << ");"; mDb->execSql(sql.str()); } @@ -931,15 +926,15 @@ void DALStorage::addGuildMember(int guildId, const std::string &memberName) /** * remove a member from a guild */ -void DALStorage::removeGuildMember(int guildId, const std::string &memberName) +void DALStorage::removeGuildMember(int guildId, int memberId) { std::ostringstream sql; try { sql << "delete from " << GUILD_MEMBERS_TBL_NAME - << " where member_name = \"" - << memberName << "\" and guild_id = '" + << " where member_id = \"" + << memberId << "\" and guild_id = '" << guildId << "';"; mDb->execSql(sql.str()); } @@ -950,7 +945,7 @@ void DALStorage::removeGuildMember(int guildId, const std::string &memberName) } } -void DALStorage::setMemberRights(const std::string &memberName, int rights) +void DALStorage::setMemberRights(int memberId, int rights) { std::ostringstream sql; @@ -958,8 +953,8 @@ void DALStorage::setMemberRights(const std::string &memberName, int rights) { sql << "update " << GUILD_MEMBERS_TBL_NAME << " set rights = '" << rights << "'" - << " where member_name = \"" - << memberName << "\";"; + << " where member_id = \"" + << memberId << "\";"; } catch (const dal::DbSqlQueryExecFailure& e) { @@ -1009,25 +1004,25 @@ std::list<Guild*> DALStorage::getGuildList() ++itr) { std::ostringstream memberSql; - memberSql << "select member_name, rights from " << GUILD_MEMBERS_TBL_NAME + memberSql << "select member_id, rights from " << GUILD_MEMBERS_TBL_NAME << " where guild_id = '" << (*itr)->getId() << "';"; const dal::RecordSet& memberInfo = mDb->execSql(memberSql.str()); - std::list<std::pair<std::string, int> > names; + std::list<std::pair<int, int> > members; for (unsigned int j = 0; j < memberInfo.rows(); ++j) { - names.push_back(std::pair<std::string, int>(memberInfo(j, 0), toUint(memberInfo(j, 1)))); + members.push_back(std::pair<int, int>(toUint(memberInfo(j, 0)), toUint(memberInfo(j, 1)))); } - for (std::list<std::pair<std::string, int> >::const_iterator i = names.begin(); - i != names.end(); + for (std::list<std::pair<int, int> >::const_iterator i = members.begin(); + i != members.end(); ++i) { - Character *character = getCharacter((*i).first); + Character *character = getCharacter((*i).first, NULL); if (character) { character->addGuild((*itr)->getName()); - (*itr)->addMember(character->getName(), (*i).second); + (*itr)->addMember(character->getDatabaseID(), (*i).second); } } } diff --git a/src/account-server/dalstorage.hpp b/src/account-server/dalstorage.hpp index 14222473..607b8187 100644 --- a/src/account-server/dalstorage.hpp +++ b/src/account-server/dalstorage.hpp @@ -172,19 +172,19 @@ class DALStorage * */ void - addGuildMember(int guild_id, const std::string &memberName); + addGuildMember(int guild_id, int memberId); /** * Remove member from guild */ void - removeGuildMember(int guildId, const std::string &memberName); + removeGuildMember(int guildId, int memberId); /** * Save guild member rights */ void - setMemberRights(const std::string &memberName, int rights); + setMemberRights(int memberId, int rights); /** * Get guild list diff --git a/src/account-server/dalstoragesql.hpp b/src/account-server/dalstoragesql.hpp index 83062838..e485f6f9 100644 --- a/src/account-server/dalstoragesql.hpp +++ b/src/account-server/dalstoragesql.hpp @@ -75,6 +75,7 @@ static char const *SQL_ACCOUNTS_TABLE = "email VARCHAR(64) NOT NULL," "level TINYINT UNSIGNED NOT NULL," "banned TINYINT UNSIGNED NOT NULL," +// "activation VARCHAR(32)," "INDEX (id)" #error "Incorrect definition. Please fix the types." #elif defined (SQLITE_SUPPORT) @@ -84,13 +85,15 @@ static char const *SQL_ACCOUNTS_TABLE = "email TEXT NOT NULL," "level INTEGER NOT NULL," "banned INTEGER NOT NULL" +// "activation TEXT" #elif defined (POSTGRESQL_SUPPORT) "id SERIAL PRIMARY KEY," "username TEXT NOT NULL UNIQUE," "password TEXT NOT NULL," "email TEXT NOT NULL," "level INTEGER NOT NULL," - "banned INTEGER NOT NULL" + "banned INTEGER NOT NULL," +// "activation TEXT" #endif ");"; @@ -261,16 +264,13 @@ static char const *SQL_GUILDS_TABLE = "CREATE TABLE tmw_guilds (" #if defined (MYSQL_SUPPORT) "id INTEGER PRIMARY KEY AUTO_INCREMENT," - "name VARCHAR(32) NOT NULL UNIQUE," - "FOREIGN KEY (name) REFERENCES tmw_characters(name)" + "name VARCHAR(32) NOT NULL UNIQUE" #elif defined (SQLITE_SUPPORT) "id INTEGER PRIMARY KEY," - "name TEXT NOT NULL UNIQUE," - "FOREIGN KEY (name) REFERENCES tmw_characters(name)" + "name TEXT NOT NULL UNIQUE" #elif defined (POSTGRESQL_SUPPORT) "id SERIAL PRIMARY KEY," - "name TEXT NOT NULL UNIQUE," - "FOREIGN KEY (name) REFERENCES tmw_characters(name)" + "name TEXT NOT NULL UNIQUE" #endif ");"; @@ -282,23 +282,23 @@ static char const *GUILD_MEMBERS_TBL_NAME = "tmw_guild_members"; static char const *SQL_GUILD_MEMBERS_TABLE = "CREATE TABLE tmw_guild_members (" #if defined (MYSQL_SUPPORT) - "guild_id INTEGER NOT NULL," - "member_name VARCHAR(32) NOT NULL," - "rights INTEGER NOT NULL," + "guild_id INTEGER NOT NULL," + "member_id INTEGER NOT NULL," + "rights INTEGER NOT NULL," "FOREIGN KEY (guild_id) REFERENCES tmw_guilds(id)," - "FOREIGN KEY (member_name) REFERENCES tmw_characters(name)" + "FOREIGN KEY (member_id) REFERENCES tmw_characters(id)" #elif defined (SQLITE_SUPPORT) "guild_id INTEGER NOT NULL," - "member_name TEXT NOT NULL," + "member_id INTEGER NOT NULL," "rights INTEGER NOT NULL," "FOREIGN KEY (guild_id) REFERENCES tmw_guilds(id)," - "FOREIGN KEY (member_name) REFERENCES tmw_characters(name)" + "FOREIGN KEY (member_id) REFERENCES tmw_characters(id)" #elif defined (POSTGRESQL_SUPPORT) "guild_id INTEGER NOT NULL," - "member_name TEXT NOT NULL," + "member_id INTEGER NOT NULL," "rights INTEGER NOT NULL," "FOREIGN KEY (guild_id) REFERENCES tmw_guilds(id)," - "FOREIGN KEY (member_name) REFERENCES tmw_characters(name)" + "FOREIGN KEY (member_id) REFERENCES tmw_characters(id)" #endif ");"; |