summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/chathandler.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/net/eathena/chathandler.cpp b/src/net/eathena/chathandler.cpp
index 6aca795c2..a8f9709ed 100644
--- a/src/net/eathena/chathandler.cpp
+++ b/src/net/eathena/chathandler.cpp
@@ -932,8 +932,35 @@ void ChatHandler::processChatRoomDestroy(Net::MessageIn &msg)
void ChatHandler::processChatRoomJoinFailed(Net::MessageIn &msg)
{
- UNIMPLIMENTEDPACKET;
- msg.readUInt8("flag");
+ const int result = msg.readUInt8("flag");
+ switch(result)
+ {
+ case 0:
+ NotifyManager::notify(NotifyTypes::ROOM_ERROR_FULL);
+ break;
+ case 1:
+ NotifyManager::notify(NotifyTypes::ROOM_ERROR_WRONG_PASSWORD);
+ break;
+ case 2:
+ NotifyManager::notify(NotifyTypes::ROOM_ERROR_KICKED);
+ break;
+ case 3:
+ break;
+ case 4:
+ NotifyManager::notify(NotifyTypes::ROOM_ERROR_ZENY);
+ break;
+ case 5:
+ NotifyManager::notify(NotifyTypes::ROOM_ERROR_LOW_LEVEL);
+ break;
+ case 6:
+ NotifyManager::notify(NotifyTypes::ROOM_ERROR_HIGH_LEVEL);
+ break;
+ case 7:
+ NotifyManager::notify(NotifyTypes::ROOM_ERROR_RACE);
+ break;
+ default:
+ UNIMPLIMENTEDPACKET;
+ }
}
void ChatHandler::processChatRoomAddMember(Net::MessageIn &msg)