rendered paste bodyIndex:Guild.h
===================================================================
--- Guild.h (revision 748)
+++ Guild.h (revision 749)
@@ -168,6 +168,7 @@
GUILD_INVITE_S = 0x01,
GUILD_QUIT_S = 0x02,
GUILD_FOUNDER_S = 0x0C,
+ GUILD_OFFICER_S = 0x0D,
};
enum GuildRankRights
Index:ChatHandler.cpp
===================================================================
--- ChatHandler.cpp (revision 748)
+++ ChatHandler.cpp (revision 749)
@@ -158,7 +158,18 @@
{
Guild *pGuild = objmgr.GetGuild( GetPlayer()->GetGuildId() );
if(pGuild)
- pGuild->OfficerChannelChat(this, msg);
+ {
+ if(pGuild->HasRankRight(GetPlayer()->GetGuildRank(), GR_RIGHT_OFFCHATSPEAK))
+ pGuild->OfficerChannelChat(this, msg);
+ else
+ {
+ WorldPacket data2(SMSG_GUILD_COMMAND_RESULT, 100);
+ data2 << uint32(GUILD_OFFICER_S);
+ data2 << pGuild->GetGuildName();
+ data2 << uint32(C_R_DONT_HAVE_PERMISSION);
+ SendPacket(&data2);
+ }
+ }
}
sLog.outString("[officer] %s: %s", _player->GetName(), msg.c_str());
} break;
@@ -274,11 +285,8 @@
else
{
GetPlayer()->SetFlag(PLAYER_FLAGS, 0x02);
- data = sChatHandler.FillMessageData(CHAT_MSG_AFK, LANG_UNIVERSAL, reason.c_str(),_player->GetGUID());
- GetPlayer()->SendMessageToSet(data, false);
if(sWorld.GetKickAFKPlayerTime())
sEventMgr.AddEvent(GetPlayer(),&Player::SoftDisconnect,EVENT_PLAYER_SOFT_DISCONNECT,sWorld.GetKickAFKPlayerTime(),1);
- delete data;
}
} break;
case CHAT_MSG_DND:
@@ -291,9 +299,6 @@
else
{
GetPlayer()->SetFlag(PLAYER_FLAGS, 0x04);
- data = sChatHandler.FillMessageData(CHAT_MSG_DND, LANG_UNIVERSAL, reason.c_str(),_player->GetGUID());
- GetPlayer()->SendMessageToSet(data, false);
- delete data;
}
} break;
default: