diff options
Diffstat (limited to 'src/net/eathena')
-rw-r--r-- | src/net/eathena/beinghandler.cpp | 29 | ||||
-rw-r--r-- | src/net/eathena/beinghandler.h | 2 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index 69f09ed8f..100fa273b 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -1775,4 +1775,33 @@ void BeingHandler::processBeingResurrect(Net::MessageIn &msg) const BLOCK_END("BeingHandler::processBeingResurrect") } +void BeingHandler::processPlayerGuilPartyInfo(Net::MessageIn &msg) const +{ + BLOCK_START("BeingHandler::processPlayerGuilPartyInfo") + if (!actorManager) + { + BLOCK_END("BeingHandler::processPlayerGuilPartyInfo") + return; + } + + Being *const dstBeing = actorManager->findBeing(msg.readInt32("being id")); + + if (dstBeing) + { + dstBeing->setPartyName(msg.readString(24, "party name")); + if (!guildManager || !GuildManager::getEnableGuildBot()) + { + dstBeing->setGuildName(msg.readString(24, "guild name")); + dstBeing->setGuildPos(msg.readString(24, "guild pos")); + } + else + { + msg.skip(48); + } + dstBeing->addToCache(); + msg.readString(24, "?"); + } + BLOCK_END("BeingHandler::processPlayerGuilPartyInfo") +} + } // namespace EAthena diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h index 522032da1..c5e0b2562 100644 --- a/src/net/eathena/beinghandler.h +++ b/src/net/eathena/beinghandler.h @@ -107,6 +107,8 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler void processPlaterStatusChangeNoTick(Net::MessageIn &msg) const; void processBeingResurrect(Net::MessageIn &msg) const; + + void processPlayerGuilPartyInfo(Net::MessageIn &msg) const; }; } // namespace EAthena |