Don´t allow inviting people to chat channels if they are banned from that channel.
Also fix response codes CHAT_PLAYER_NOT_BANNED_NOTICE + CHAT_PLAYER_INVITE_BANNED_NOTICE for SMSG_CHANNEL_NOTIFY. --HG-- branch : trunk
This commit is contained in:
@@ -707,6 +707,14 @@ void Channel::Invite(uint64 p, const char *newname)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IsBanned(newp->GetGUID()))
|
||||||
|
{
|
||||||
|
WorldPacket data;
|
||||||
|
MakePlayerInviteBanned(&data, newname);
|
||||||
|
SendToOne(&data, p);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Player *plr = objmgr.GetPlayer(p);
|
Player *plr = objmgr.GetPlayer(p);
|
||||||
if (!plr)
|
if (!plr)
|
||||||
return;
|
return;
|
||||||
@@ -983,10 +991,10 @@ void Channel::MakePlayerUnbanned(WorldPacket *data, uint64 bad, uint64 good)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// done 0x16
|
// done 0x16
|
||||||
void Channel::MakePlayerNotBanned(WorldPacket *data, uint64 guid)
|
void Channel::MakePlayerNotBanned(WorldPacket *data, const std::string &name)
|
||||||
{
|
{
|
||||||
MakeNotifyPacket(data, CHAT_PLAYER_NOT_BANNED_NOTICE);
|
MakeNotifyPacket(data, CHAT_PLAYER_NOT_BANNED_NOTICE);
|
||||||
*data << uint64(guid);
|
*data << name;
|
||||||
}
|
}
|
||||||
|
|
||||||
// done 0x17
|
// done 0x17
|
||||||
@@ -1035,10 +1043,10 @@ void Channel::MakePlayerInvited(WorldPacket *data, const std::string& name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// done 0x1E
|
// done 0x1E
|
||||||
void Channel::MakePlayerInviteBanned(WorldPacket *data, uint64 guid)
|
void Channel::MakePlayerInviteBanned(WorldPacket *data, const std::string& name)
|
||||||
{
|
{
|
||||||
MakeNotifyPacket(data, CHAT_PLAYER_INVITE_BANNED_NOTICE);
|
MakeNotifyPacket(data, CHAT_PLAYER_INVITE_BANNED_NOTICE);
|
||||||
*data << uint64(guid);
|
*data << name;
|
||||||
}
|
}
|
||||||
|
|
||||||
// done 0x1F
|
// done 0x1F
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ class Channel
|
|||||||
void MakeBanned(WorldPacket *data); //? 0x13
|
void MakeBanned(WorldPacket *data); //? 0x13
|
||||||
void MakePlayerBanned(WorldPacket *data, uint64 bad, uint64 good); //? 0x14
|
void MakePlayerBanned(WorldPacket *data, uint64 bad, uint64 good); //? 0x14
|
||||||
void MakePlayerUnbanned(WorldPacket *data, uint64 bad, uint64 good); //? 0x15
|
void MakePlayerUnbanned(WorldPacket *data, uint64 bad, uint64 good); //? 0x15
|
||||||
void MakePlayerNotBanned(WorldPacket *data, uint64 guid); //? 0x16
|
void MakePlayerNotBanned(WorldPacket *data, const std::string& name); //? 0x16
|
||||||
void MakePlayerAlreadyMember(WorldPacket *data, uint64 guid); //+ 0x17
|
void MakePlayerAlreadyMember(WorldPacket *data, uint64 guid); //+ 0x17
|
||||||
void MakeInvite(WorldPacket *data, uint64 guid); //? 0x18
|
void MakeInvite(WorldPacket *data, uint64 guid); //? 0x18
|
||||||
void MakeInviteWrongFaction(WorldPacket *data); //? 0x19
|
void MakeInviteWrongFaction(WorldPacket *data); //? 0x19
|
||||||
@@ -195,7 +195,7 @@ class Channel
|
|||||||
void MakeInvalidName(WorldPacket *data); //? 0x1B
|
void MakeInvalidName(WorldPacket *data); //? 0x1B
|
||||||
void MakeNotModerated(WorldPacket *data); //? 0x1C
|
void MakeNotModerated(WorldPacket *data); //? 0x1C
|
||||||
void MakePlayerInvited(WorldPacket *data, const std::string& name); //+ 0x1D
|
void MakePlayerInvited(WorldPacket *data, const std::string& name); //+ 0x1D
|
||||||
void MakePlayerInviteBanned(WorldPacket *data, uint64 guid); //? 0x1E
|
void MakePlayerInviteBanned(WorldPacket *data, const std::string &name);//? 0x1E
|
||||||
void MakeThrottled(WorldPacket *data); //? 0x1F
|
void MakeThrottled(WorldPacket *data); //? 0x1F
|
||||||
void MakeNotInArea(WorldPacket *data); //? 0x20
|
void MakeNotInArea(WorldPacket *data); //? 0x20
|
||||||
void MakeNotInLfg(WorldPacket *data); //? 0x21
|
void MakeNotInLfg(WorldPacket *data); //? 0x21
|
||||||
|
|||||||
Reference in New Issue
Block a user