Core/Channels: Fix crash in HandleJoinChannel introduced with commit bbde479f4a.
This commit is contained in:
@@ -26,15 +26,21 @@ void WorldSession::HandleJoinChannel(WorldPacket& recvPacket)
|
|||||||
uint32 channel_id;
|
uint32 channel_id;
|
||||||
uint8 unknown1, unknown2;
|
uint8 unknown1, unknown2;
|
||||||
std::string channelname, pass;
|
std::string channelname, pass;
|
||||||
ChatChannelsEntry const* channel;
|
|
||||||
|
|
||||||
recvPacket >> channel_id;
|
recvPacket >> channel_id;
|
||||||
|
|
||||||
if (channel_id)
|
if (channel_id)
|
||||||
{
|
{
|
||||||
channel = sChatChannelsStore.LookupEntry(channel_id);
|
ChatChannelsEntry const* channel = sChatChannelsStore.LookupEntry(channel_id);
|
||||||
if (!channel)
|
if (!channel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
AreaTableEntry const* current_zone = GetAreaEntryByAreaID(_player->GetZoneId());
|
||||||
|
if (!current_zone)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!_player->CanJoinConstantChannelInZone(channel, current_zone))
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
recvPacket >> unknown1 >> unknown2;
|
recvPacket >> unknown1 >> unknown2;
|
||||||
@@ -45,17 +51,10 @@ void WorldSession::HandleJoinChannel(WorldPacket& recvPacket)
|
|||||||
|
|
||||||
recvPacket >> pass;
|
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()))
|
if (ChannelMgr* cMgr = channelMgr(_player->GetTeam()))
|
||||||
{
|
{
|
||||||
cMgr->team = _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());
|
chn->Join(_player->GetGUID(), pass.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user