Core/Channels: Fix crash in HandleJoinChannel introduced with commit bbde479f4a.

This commit is contained in:
kaelima
2011-09-05 13:53:14 +02:00
parent cf0921f656
commit 18af717a0f
@@ -26,15 +26,21 @@ void WorldSession::HandleJoinChannel(WorldPacket& recvPacket)
uint32 channel_id;
uint8 unknown1, unknown2;
std::string channelname, pass;
ChatChannelsEntry const* channel;
recvPacket >> channel_id;
if (channel_id)
{
channel = sChatChannelsStore.LookupEntry(channel_id);
ChatChannelsEntry const* channel = sChatChannelsStore.LookupEntry(channel_id);
if (!channel)
return;
AreaTableEntry const* current_zone = GetAreaEntryByAreaID(_player->GetZoneId());
if (!current_zone)
return;
if (!_player->CanJoinConstantChannelInZone(channel, current_zone))
return;
}
recvPacket >> unknown1 >> unknown2;
@@ -45,17 +51,10 @@ void WorldSession::HandleJoinChannel(WorldPacket& recvPacket)
recvPacket >> pass;
AreaTableEntry const* current_zone = GetAreaEntryByAreaID(_player->GetZoneId());
if (!current_zone)
return;
if (!_player->CanJoinConstantChannelInZone(channel, current_zone))
return;
if (ChannelMgr* cMgr = channelMgr(_player->GetTeam()))
{
cMgr->team = _player->GetTeam();
if (Channel *chn = cMgr->GetJoinChannel(channelname, channel_id))
if (Channel* chn = cMgr->GetJoinChannel(channelname, channel_id))
chn->Join(_player->GetGUID(), pass.c_str());
}
}