diff --git a/src/game/ChannelHandler.cpp b/src/game/ChannelHandler.cpp index 1d40f8c25..077bfcc79 100644 --- a/src/game/ChannelHandler.cpp +++ b/src/game/ChannelHandler.cpp @@ -24,16 +24,17 @@ void WorldSession::HandleJoinChannelOpcode(WorldPacket& recvPacket) DEBUG_LOG("Opcode %u", recvPacket.GetOpcode()); uint32 channel_id; - uint8 unknown1, unknown2; std::string channelname, pass; - recvPacket >> channel_id >> unknown1 >> unknown2; + recvPacket >> channel_id; + recvPacket.read_skip(); + recvPacket.read_skip(); + recvPacket >> pass; recvPacket >> channelname; if (channelname.empty()) return; - recvPacket >> pass; if (ChannelMgr* cMgr = channelMgr(_player->GetTeam())) if (Channel* chn = cMgr->GetJoinChannel(channelname, channel_id)) chn->Join(_player->GetObjectGuid(), pass.c_str()); diff --git a/src/game/Opcodes.cpp b/src/game/Opcodes.cpp index eedeafb15..a1b31dbee 100644 --- a/src/game/Opcodes.cpp +++ b/src/game/Opcodes.cpp @@ -196,9 +196,9 @@ void InitializeOpcodes() //OPCODE(UMSG_UPDATE_GUILD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_MESSAGECHAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); //OPCODE(SMSG_MESSAGECHAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_JOIN_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleJoinChannelOpcode ); + OPCODE(CMSG_JOIN_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleJoinChannelOpcode ); //OPCODE(CMSG_LEAVE_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLeaveChannelOpcode ); - //OPCODE(SMSG_CHANNEL_NOTIFY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_CHANNEL_NOTIFY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_CHANNEL_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelListOpcode ); //OPCODE(SMSG_CHANNEL_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_CHANNEL_PASSWORD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelPasswordOpcode ); diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index fc1ca2e5f..baabb47a8 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -190,9 +190,9 @@ enum Opcodes UMSG_UPDATE_GUILD = 0x1095, CMSG_MESSAGECHAT = 0x1096, SMSG_MESSAGECHAT = 0x1097, - CMSG_JOIN_CHANNEL = 0x1098, + CMSG_JOIN_CHANNEL = 0x0156, CMSG_LEAVE_CHANNEL = 0x1099, - SMSG_CHANNEL_NOTIFY = 0x109A, + SMSG_CHANNEL_NOTIFY = 0x0825, CMSG_CHANNEL_LIST = 0x109B, SMSG_CHANNEL_LIST = 0x109C, CMSG_CHANNEL_PASSWORD = 0x109D,