summaryrefslogtreecommitdiffstats
path: root/src/chat-server
diff options
context:
space:
mode:
authorStefan Dombrowski <stefan@uni-bonn.de>2011-05-16 00:08:51 +0200
committerStefan Dombrowski <stefan@uni-bonn.de>2011-05-16 00:08:51 +0200
commitfcc7c9d2ce4471d07fe5ed9dcc5d94a4ed8ac5fb (patch)
tree3736fd3b02433cad1bc0ea3c685aaa1592499260 /src/chat-server
parentda1cc91155771d5fa3ced443de0480db5aab49d0 (diff)
downloadmanaserv-fcc7c9d2ce4471d07fe5ed9dcc5d94a4ed8ac5fb.tar.gz
manaserv-fcc7c9d2ce4471d07fe5ed9dcc5d94a4ed8ac5fb.tar.xz
manaserv-fcc7c9d2ce4471d07fe5ed9dcc5d94a4ed8ac5fb.zip
Starting to fix party invite
Reviewed-by: Bjorn
Diffstat (limited to 'src/chat-server')
-rw-r--r--src/chat-server/party.h3
-rw-r--r--src/chat-server/partyhandler.cpp21
2 files changed, 17 insertions, 7 deletions
diff --git a/src/chat-server/party.h b/src/chat-server/party.h
index 8d053a1..f003c0b 100644
--- a/src/chat-server/party.h
+++ b/src/chat-server/party.h
@@ -54,8 +54,11 @@ public:
*/
unsigned int getId() const { return mId; }
+ const PartyUsers &getUsers() const { return mUsers; }
+
private:
PartyUsers mUsers;
+
unsigned int mId;
};
diff --git a/src/chat-server/partyhandler.cpp b/src/chat-server/partyhandler.cpp
index 3d4eaeb..52eb89a 100644
--- a/src/chat-server/partyhandler.cpp
+++ b/src/chat-server/partyhandler.cpp
@@ -42,8 +42,6 @@ void updateInfo(ChatClient *client, int partyId)
bool ChatHandler::handlePartyJoin(const std::string &invited, const std::string &inviter)
{
- MessageOut out(CPMSG_PARTY_INVITE_RESPONSE);
-
// Get inviting client
ChatClient *c1 = getClient(inviter);
if (c1)
@@ -52,13 +50,16 @@ bool ChatHandler::handlePartyJoin(const std::string &invited, const std::string
if (!c1->party)
{
c1->party = new Party();
+ // add inviter to the party
+ c1->party->addUser(inviter);
+ MessageOut out(CPMSG_PARTY_NEW_MEMBER);
+ out.writeInt32(c1->characterId);
+ out.writeString(inviter);
+ c1->send(out);
// tell game server to update info
updateInfo(c1, c1->party->getId());
}
- // add inviter to the party
- c1->party->addUser(inviter);
-
// Get invited client
ChatClient *c2 = getClient(invited);
if (c2)
@@ -67,6 +68,7 @@ bool ChatHandler::handlePartyJoin(const std::string &invited, const std::string
c1->party->addUser(invited);
c2->party = c1->party;
// was successful so return success to inviter
+ MessageOut out(CPMSG_PARTY_INVITE_RESPONSE);
out.writeString(invited);
out.writeInt8(ERRMSG_OK);
c1->send(out);
@@ -146,6 +148,11 @@ void ChatHandler::handlePartyAcceptInvite(ChatClient &client, MessageIn &msg)
if (handlePartyJoin(client.characterName, inviter))
{
out.writeInt8(ERRMSG_OK);
+ Party::PartyUsers users = client.party->getUsers();
+ const unsigned usersSize = users.size();
+ for (unsigned i = 0; i < usersSize; i++)
+ out.writeString(users[i]);
+
mPartyInvitedUsers.erase(itr);
found = true;
break;
@@ -239,7 +246,7 @@ void ChatHandler::informPartyMemberQuit(ChatClient &client)
if (itr->second->party == client.party)
{
MessageOut out(CPMSG_PARTY_MEMBER_LEFT);
- out.writeInt16(client.characterId);
+ out.writeInt32(client.characterId);
itr->second->send(out);
}
}
@@ -255,7 +262,7 @@ void ChatHandler::informPartyMemberJoined(ChatClient &client)
if (itr->second->party == client.party)
{
MessageOut out(CPMSG_PARTY_NEW_MEMBER);
- out.writeInt16(client.characterId);
+ out.writeInt32(client.characterId);
out.writeString(client.characterName);
itr->second->send(out);
}