aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Chat
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2012-11-26 08:43:29 +0100
committerSpp <spp@jorge.gr>2012-11-26 08:43:29 +0100
commit8ae0f2332c9f3d34f602acdaeb5409d9cb56ab79 (patch)
tree5afe17de42ae9399c730cccfaa876608f84b69ba /src/server/game/Chat
parentfdf0c32857c804701e7a25b27e59b11f2a306116 (diff)
parent941be9cdc473713f97ad505114bcb32f7e3350ef (diff)
Merge branch 'master' into 4.3.4
Conflicts: src/server/game/Battlefield/Zones/BattlefieldWG.cpp src/server/game/Conditions/ConditionMgr.cpp src/server/game/Entities/Unit/Unit.cpp src/server/game/Server/WorldSession.cpp src/server/game/Server/WorldSocket.cpp src/server/game/Spells/SpellEffects.cpp src/server/scripts/EasternKingdoms/stormwind_city.cpp src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp src/server/scripts/Kalimdor/azshara.cpp
Diffstat (limited to 'src/server/game/Chat')
-rwxr-xr-xsrc/server/game/Chat/Channels/Channel.cpp27
-rwxr-xr-xsrc/server/game/Chat/Channels/ChannelMgr.cpp4
2 files changed, 19 insertions, 12 deletions
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index 7bada252da6..8ce7d7d2139 100755
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -297,7 +297,7 @@ void Channel::KickOrBan(Player const* player, std::string const& badname, bool b
SendToOne(&data, good);
return;
}
-
+
Player* bad = sObjectAccessor->FindPlayerByName(badname);
uint64 victim = bad ? bad->GetGUID() : 0;
if (!victim || !IsOn(victim))
@@ -403,7 +403,7 @@ void Channel::Password(Player const* player, std::string const& pass)
SendToOne(&data, guid);
return;
}
-
+
if (!playersStore[guid].IsModerator() && !AccountMgr::IsGMAccount(player->GetSession()->GetSecurity()))
{
WorldPacket data;
@@ -479,7 +479,7 @@ void Channel::SetOwner(Player const* player, std::string const& newname)
uint64 guid = player->GetGUID();
uint32 sec = player->GetSession()->GetSecurity();
- if (!IsOn(guid) || (!AccountMgr::IsGMAccount(sec) && guid != _ownerGUID))
+ if (!IsOn(guid))
{
WorldPacket data;
MakeNotMember(&data);
@@ -487,9 +487,17 @@ void Channel::SetOwner(Player const* player, std::string const& newname)
return;
}
+ if (!AccountMgr::IsGMAccount(sec) && guid != _ownerGUID)
+ {
+ WorldPacket data;
+ MakeNotOwner(&data);
+ SendToOne(&data, guid);
+ return;
+ }
+
Player* newp = sObjectAccessor->FindPlayerByName(newname);
uint64 victim = newp ? newp->GetGUID() : 0;
-
+
if (!victim || !IsOn(victim) ||
(newp->GetTeam() != player->GetTeam() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)))
{
@@ -600,8 +608,6 @@ void Channel::Say(uint64 guid, std::string const& what, uint32 lang)
if (sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL))
lang = LANG_UNIVERSAL;
- Player* player = ObjectAccessor::FindPlayer(guid);
-
if (!IsOn(guid))
{
WorldPacket data;
@@ -609,7 +615,7 @@ void Channel::Say(uint64 guid, std::string const& what, uint32 lang)
SendToOne(&data, guid);
return;
}
-
+
if (playersStore[guid].IsMuted())
{
WorldPacket data;
@@ -621,12 +627,13 @@ void Channel::Say(uint64 guid, std::string const& what, uint32 lang)
WorldPacket data(SMSG_MESSAGECHAT, 1 + 4 + 8 + 4 + _name.size() + 8 + 4 + what.size() + 1);
data << uint8(CHAT_MSG_CHANNEL);
data << uint32(lang);
- data << guid;
+ data << uint64(guid);
data << uint32(0);
data << _name;
- data << guid;
- data << what.size() + 1;
+ data << uint64(guid);
+ data << uint32(what.size() + 1);
data << what;
+ Player* player = ObjectAccessor::FindPlayer(guid);
data << uint8(player ? player->GetChatTag() : 0);
SendToAll(&data, !playersStore[guid].IsModerator() ? guid : false);
diff --git a/src/server/game/Chat/Channels/ChannelMgr.cpp b/src/server/game/Chat/Channels/ChannelMgr.cpp
index b903f15c9a8..2ec7ed199ba 100755
--- a/src/server/game/Chat/Channels/ChannelMgr.cpp
+++ b/src/server/game/Chat/Channels/ChannelMgr.cpp
@@ -43,7 +43,7 @@ ChannelMgr* ChannelMgr::forTeam(uint32 team)
return NULL;
}
-Channel* ChannelMgr::GetJoinChannel(std::string const& name, uint32 channel_id)
+Channel* ChannelMgr::GetJoinChannel(std::string const& name, uint32 channelId)
{
std::wstring wname;
Utf8toWStr(name, wname);
@@ -53,7 +53,7 @@ Channel* ChannelMgr::GetJoinChannel(std::string const& name, uint32 channel_id)
if (i == channels.end())
{
- Channel* nchan = new Channel(name, channel_id, team);
+ Channel* nchan = new Channel(name, channelId, team);
channels[wname] = nchan;
return nchan;
}