summaryrefslogtreecommitdiffstats
path: root/src/chat-server/guildmanager.cpp
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2008-03-06 15:13:14 +0000
committerDavid Athay <ko2fan@gmail.com>2008-03-06 15:13:14 +0000
commit13a48effdbd44a3811f9bcbb0115776ec46c3dfa (patch)
tree40b1bd63460cea01ecaad68e2f1f39b1358fa832 /src/chat-server/guildmanager.cpp
parenta65b4bd0a8e45895cc180fb5882734a87d55beeb (diff)
downloadmanaserv-13a48effdbd44a3811f9bcbb0115776ec46c3dfa.tar.gz
manaserv-13a48effdbd44a3811f9bcbb0115776ec46c3dfa.tar.xz
manaserv-13a48effdbd44a3811f9bcbb0115776ec46c3dfa.zip
Fixed telling clients what guilds they are in after they reconnect
Diffstat (limited to 'src/chat-server/guildmanager.cpp')
-rw-r--r--src/chat-server/guildmanager.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/chat-server/guildmanager.cpp b/src/chat-server/guildmanager.cpp
index 2c669e2..12965f1 100644
--- a/src/chat-server/guildmanager.cpp
+++ b/src/chat-server/guildmanager.cpp
@@ -122,3 +122,29 @@ bool GuildManager::doesExist(const std::string &name)
{
return findByName(name) != NULL;
}
+
+std::vector<Guild*> GuildManager::getGuilds(const std::string &name)
+{
+ Guild *guild;
+ std::vector<Guild*> guildList;
+
+ // Iterate through all guilds, get the number of members
+ // Check if any of the members match the specified name
+ // Add the guild to the list if they match, and return
+ // the list of all guilds the user with that name belongs to
+ for (std::list<Guild*>::iterator itr = mGuilds.begin(),
+ itr_end = mGuilds.end();
+ itr != itr_end; ++itr)
+ {
+ guild = (*itr);
+ for (int i = 0; i < guild->totalMembers(); ++i)
+ {
+ if (guild->getMember(i) == name)
+ {
+ guildList.push_back(guild);
+ break;
+ }
+ }
+ }
+ return guildList;
+}