aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-06-22 00:39:07 +0200
committerMachiavelli <none@none>2010-06-22 00:39:07 +0200
commit4e361d0d9b339dde22a1edd7cc9ce5a33cb2f9f0 (patch)
treefde47dcc7d0aa78942a60e216946e857eafff3bd
parent06ef6e2553a76bd9be2562d89a1128e840a290c8 (diff)
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
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp16
-rw-r--r--src/server/game/Chat/Channels/Channel.h4
2 files changed, 14 insertions, 6 deletions
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index 0047892972b..bb70e54354c 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -707,6 +707,14 @@ void Channel::Invite(uint64 p, const char *newname)
return;
}
+ if (IsBanned(newp->GetGUID()))
+ {
+ WorldPacket data;
+ MakePlayerInviteBanned(&data, newname);
+ SendToOne(&data, p);
+ return;
+ }
+
Player *plr = objmgr.GetPlayer(p);
if (!plr)
return;
@@ -983,10 +991,10 @@ void Channel::MakePlayerUnbanned(WorldPacket *data, uint64 bad, uint64 good)
}
// 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);
- *data << uint64(guid);
+ *data << name;
}
// done 0x17
@@ -1035,10 +1043,10 @@ void Channel::MakePlayerInvited(WorldPacket *data, const std::string& name)
}
// 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);
- *data << uint64(guid);
+ *data << name;
}
// done 0x1F
diff --git a/src/server/game/Chat/Channels/Channel.h b/src/server/game/Chat/Channels/Channel.h
index d0b5923e30e..a52a697cba1 100644
--- a/src/server/game/Chat/Channels/Channel.h
+++ b/src/server/game/Chat/Channels/Channel.h
@@ -187,7 +187,7 @@ class Channel
void MakeBanned(WorldPacket *data); //? 0x13
void MakePlayerBanned(WorldPacket *data, uint64 bad, uint64 good); //? 0x14
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 MakeInvite(WorldPacket *data, uint64 guid); //? 0x18
void MakeInviteWrongFaction(WorldPacket *data); //? 0x19
@@ -195,7 +195,7 @@ class Channel
void MakeInvalidName(WorldPacket *data); //? 0x1B
void MakeNotModerated(WorldPacket *data); //? 0x1C
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 MakeNotInArea(WorldPacket *data); //? 0x20
void MakeNotInLfg(WorldPacket *data); //? 0x21