mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 19:06:49 +01:00
@@ -1588,20 +1588,20 @@ void Guild::HandleSetEmblem(WorldSession* session, const EmblemInfo& emblemInfo)
|
||||
}
|
||||
}
|
||||
|
||||
void Guild::HandleSetLeader(WorldSession* session, std::string const& name)
|
||||
void Guild::HandleSetNewGuildMaster(WorldSession* session, std::string const& name)
|
||||
{
|
||||
Player* player = session->GetPlayer();
|
||||
// Only leader can assign new leader
|
||||
// Only the guild master can throne a new guild master
|
||||
if (!_IsLeader(player))
|
||||
SendCommandResult(session, GUILD_COMMAND_CHANGE_LEADER, ERR_GUILD_PERMISSIONS);
|
||||
// Old leader must be a member of guild
|
||||
else if (Member* pOldLeader = GetMember(player->GetGUID()))
|
||||
// Old GM must be a guild member
|
||||
else if (Member* oldGuildMaster = GetMember(player->GetGUID()))
|
||||
{
|
||||
// New leader must be a member of guild
|
||||
if (Member* pNewLeader = GetMember(name))
|
||||
// Same for the new one
|
||||
if (Member* newGuildMaster = GetMember(name))
|
||||
{
|
||||
_SetLeaderGUID(pNewLeader);
|
||||
pOldLeader->ChangeRank(GR_OFFICER);
|
||||
_SetLeaderGUID(newGuildMaster);
|
||||
oldGuildMaster->ChangeRank(GR_INITIATE);
|
||||
_BroadcastEvent(GE_LEADER_CHANGED, 0, player->GetName().c_str(), name.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -774,7 +774,7 @@ public:
|
||||
void HandleSetMOTD(WorldSession* session, std::string const& motd);
|
||||
void HandleSetInfo(WorldSession* session, std::string const& info);
|
||||
void HandleSetEmblem(WorldSession* session, const EmblemInfo& emblemInfo);
|
||||
void HandleSetLeader(WorldSession* session, std::string const& name);
|
||||
void HandleSetNewGuildMaster(WorldSession* session, std::string const& name);
|
||||
void HandleSetBankTabInfo(WorldSession* session, uint8 tabId, std::string const& name, std::string const& icon);
|
||||
void HandleSetMemberNote(WorldSession* session, std::string const& note, uint64 guid, bool isPublic);
|
||||
void HandleSetRankInfo(WorldSession* session, uint8 rankId, std::string const& name, uint32 rights, uint32 moneyPerDay, GuildBankRightsAndSlotsVec rightsAndSlots);
|
||||
|
||||
@@ -229,18 +229,6 @@ void WorldSession::HandleGuildDisbandOpcode(WorldPacket& /*recvPacket*/)
|
||||
guild->HandleDisband(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildLeaderOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
std::string name;
|
||||
recvPacket >> name;
|
||||
|
||||
sLog->outDebug(LOG_FILTER_GUILD, "CMSG_GUILD_LEADER [%s]: Target: %s", GetPlayerInfo().c_str(), name.c_str());
|
||||
|
||||
if (normalizePlayerName(name))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleSetLeader(this, name);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
uint32 motdLength = recvPacket.ReadBits(11);
|
||||
@@ -825,3 +813,12 @@ void WorldSession::HandleGuildNewsUpdateStickyOpcode(WorldPacket& recvPacket)
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleNewsSetSticky(this, newsId, sticky);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetGuildMaster(WorldPacket& recvPacket)
|
||||
{
|
||||
uint8 nameLength;
|
||||
recvPacket >> nameLength;
|
||||
std::string playerName = recvPacket.ReadString(nameLength);
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleSetNewGuildMaster(this, playerName);
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_BAG_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBagItemOpcode );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_BANK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBankItemOpcode );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_LOOT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutostoreLootItemOpcode );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_AUTO_DECLINE_GUILD_INVITES, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAutoDeclineGuildInvites );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_AUTO_DECLINE_GUILD_INVITES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoDeclineGuildInvites );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_BANKER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBankerActivateOpcode );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_LEAVE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleBattlefieldLeaveOpcode );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldListOpcode );
|
||||
@@ -279,7 +279,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_PARTY_STATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestPartyState );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_GUILD_ROSTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRosterOpcode );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_GUILD_MASTER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_GUILD_MASTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetGuildMaster );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_NOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetNoteOpcode );
|
||||
DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_RANK_PERMISSIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetRankPermissionsOpcode);
|
||||
DEFINE_OPCODE_HANDLER(CMSG_GUILD_SWITCH_RANK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -900,7 +900,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER(SMSG_INSPECT_HONOR_STATS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
DEFINE_OPCODE_HANDLER(SMSG_INSPECT_RATED_BG_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
DEFINE_OPCODE_HANDLER(SMSG_INSPECT_RESULTS_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
DEFINE_OPCODE_HANDLER(SMSG_INSPECT_TALENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
DEFINE_OPCODE_HANDLER(SMSG_INSPECT_TALENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::Handle_ServerSide );
|
||||
DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_LOCK_WARNING_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_RESET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_RESET_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
@@ -1415,7 +1415,6 @@ void OpcodeTable::Initialize()
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_NOTE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_GUILD_CREATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildCreateOpcode );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_GUILD_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildInfoOpcode );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_GUILD_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildLeaderOpcode );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_IGNORE_KNOCKBACK_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_IGNORE_REQUIREMENTS_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
|
||||
@@ -259,7 +259,6 @@ enum Opcodes
|
||||
CMSG_GUILD_INFO = 0x0000,
|
||||
CMSG_GUILD_INFO_TEXT = 0x3227,
|
||||
CMSG_GUILD_INVITE = 0x24B0,
|
||||
CMSG_GUILD_LEADER = 0x0000,
|
||||
CMSG_GUILD_LEAVE = 0x1021,
|
||||
CMSG_GUILD_MEMBER_SEND_SOR_REQUEST = 0x3225,
|
||||
CMSG_GUILD_MOTD = 0x1035,
|
||||
|
||||
@@ -549,7 +549,7 @@ class WorldSession
|
||||
void HandleGuildAssignRankOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildLeaveOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildDisbandOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildLeaderOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildSetGuildMaster(WorldPacket& recvPacket);
|
||||
void HandleGuildMOTDOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildNewsUpdateStickyOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildSetNoteOpcode(WorldPacket& recvPacket);
|
||||
|
||||
Reference in New Issue
Block a user