Skip to content

Commit e492944

Browse files
committed
Core/Misc: Reduce code differences between branches
1 parent 41e48ff commit e492944

File tree

12 files changed

+64
-62
lines changed

12 files changed

+64
-62
lines changed

src/server/database/Database/Implementation/CharacterDatabase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
176176
// 0: uint32, 1: uint8, 3: string, 4: uint32, 5: uint32
177177
PrepareStatement(CHAR_INS_GUILD_RANK, "INSERT INTO guild_rank (guildid, rid, rname, rights, BankMoneyPerDay) VALUES (?, ?, ?, ?, ?)", CONNECTION_ASYNC);
178178
PrepareStatement(CHAR_DEL_GUILD_RANKS, "DELETE FROM guild_rank WHERE guildid = ?", CONNECTION_ASYNC); // 0: uint32
179-
PrepareStatement(CHAR_DEL_GUILD_LOWEST_RANK, "DELETE FROM guild_rank WHERE guildid = ? AND rid >= ?", CONNECTION_ASYNC); // 0: uint32, 1: uint8
179+
PrepareStatement(CHAR_DEL_GUILD_RANK, "DELETE FROM guild_rank WHERE guildid = ? AND rid = ?", CONNECTION_ASYNC); // 0: uint32, 1: uint8
180180
PrepareStatement(CHAR_INS_GUILD_BANK_TAB, "INSERT INTO guild_bank_tab (guildid, TabId) VALUES (?, ?)", CONNECTION_ASYNC); // 0: uint32, 1: uint8
181181
PrepareStatement(CHAR_DEL_GUILD_BANK_TAB, "DELETE FROM guild_bank_tab WHERE guildid = ? AND TabId = ?", CONNECTION_ASYNC); // 0: uint32, 1: uint8
182182
PrepareStatement(CHAR_DEL_GUILD_BANK_TABS, "DELETE FROM guild_bank_tab WHERE guildid = ?", CONNECTION_ASYNC); // 0: uint32

src/server/database/Database/Implementation/CharacterDatabase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ enum CharacterDatabaseStatements : uint32
155155
CHAR_DEL_GUILD_MEMBERS,
156156
CHAR_INS_GUILD_RANK,
157157
CHAR_DEL_GUILD_RANKS,
158-
CHAR_DEL_GUILD_LOWEST_RANK,
158+
CHAR_DEL_GUILD_RANK,
159159
CHAR_INS_GUILD_BANK_TAB,
160160
CHAR_DEL_GUILD_BANK_TAB,
161161
CHAR_DEL_GUILD_BANK_TABS,

src/server/game/Entities/Player/Player.cpp

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ Player::Player(WorldSession* session): Unit(true)
251251
SetLastRuneGraceTimer(i, 0);
252252
}
253253

254-
for (uint8 i=0; i < MAX_TIMERS; i++)
254+
for (uint8 i = 0; i < MAX_TIMERS; i++)
255255
m_MirrorTimer[i] = DISABLED_MIRROR_TIMER;
256256

257257
m_MirrorTimerFlags = UNDERWATER_NONE;
@@ -512,7 +512,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo
512512
SetArenaFaction(0);
513513

514514
SetUInt32Value(PLAYER_GUILDID, 0);
515-
SetRank(0);
515+
SetGuildRank(0);
516516
SetUInt32Value(PLAYER_GUILD_TIMESTAMP, 0);
517517

518518
for (int i = 0; i < KNOWN_TITLES_SIZE; ++i)
@@ -18918,8 +18918,8 @@ void Player::SendSavedInstances()
1891818918
}
1891918919
}
1892018920

18921-
//Send opcode 811. true or false means, whether you have current raid/heroic instances
18922-
data.Initialize(SMSG_UPDATE_INSTANCE_OWNERSHIP);
18921+
//Send opcode SMSG_UPDATE_INSTANCE_OWNERSHIP. true or false means, whether you have current raid/heroic instances
18922+
data.Initialize(SMSG_UPDATE_INSTANCE_OWNERSHIP, 4);
1892318923
data << uint32(hasBeenSaved);
1892418924
SendDirectMessage(&data);
1892518925

@@ -18932,7 +18932,7 @@ void Player::SendSavedInstances()
1893218932
{
1893318933
if (itr->second.perm)
1893418934
{
18935-
data.Initialize(SMSG_UPDATE_LAST_INSTANCE);
18935+
data.Initialize(SMSG_UPDATE_LAST_INSTANCE, 4);
1893618936
data << uint32(itr->second.save->GetMapId());
1893718937
SendDirectMessage(&data);
1893818938
}
@@ -19699,7 +19699,7 @@ void Player::_SaveInventory(CharacterDatabaseTransaction trans)
1969919699
// save all changes to the item...
1970019700
if (item->GetState() != ITEM_NEW) // only for existing items, no duplicates
1970119701
item->SaveToDB(trans);
19702-
// ...but do not save position in invntory
19702+
// ...but do not save position in inventory
1970319703
continue;
1970419704
}
1970519705
}
@@ -20675,6 +20675,16 @@ void Player::TextEmote(std::string_view text, WorldObject const* /*= nullptr*/,
2067520675
SendMessageToSetInRange(&data, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE), true, !GetSession()->HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHAT), true);
2067620676
}
2067720677

20678+
void Player::WhisperAddon(std::string const& text, Player* receiver)
20679+
{
20680+
std::string _text(text);
20681+
sScriptMgr->OnPlayerChat(this, CHAT_MSG_WHISPER, uint32(LANG_ADDON), _text, receiver);
20682+
20683+
WorldPacket data;
20684+
ChatHandler::BuildChatPacket(data, CHAT_MSG_WHISPER, LANG_ADDON, this, this, _text);
20685+
receiver->SendDirectMessage(&data);
20686+
}
20687+
2067820688
void Player::TextEmote(uint32 textId, WorldObject const* target /*= nullptr*/, bool /*isBossEmote = false*/)
2067920689
{
2068020690
Talk(textId, CHAT_MSG_EMOTE, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE), target);
@@ -26104,14 +26114,15 @@ void Player::SetReputation(uint32 factionentry, uint32 value)
2610426114
{
2610526115
GetReputationMgr().SetReputation(sFactionStore.LookupEntry(factionentry), value);
2610626116
}
26117+
2610726118
uint32 Player::GetReputation(uint32 factionentry) const
2610826119
{
2610926120
return GetReputationMgr().GetReputation(sFactionStore.LookupEntry(factionentry));
2611026121
}
2611126122

26112-
std::string const& Player::GetGuildName() const
26123+
std::string Player::GetGuildName() const
2611326124
{
26114-
return sGuildMgr->GetGuildById(GetGuildId())->GetName();
26125+
return GetGuildId() ? sGuildMgr->GetGuildById(GetGuildId())->GetName() : "";
2611526126
}
2611626127

2611726128
void Player::SendDuelCountdown(uint32 counter)

src/server/game/Entities/Player/Player.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,6 +1079,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
10791079
/// Handles whispers from Addons and players based on sender, receiver's guid and language.
10801080
void Whisper(std::string_view text, Language language, Player* receiver, bool = false) override;
10811081
void Whisper(uint32 textId, Player* target, bool isBossWhisper = false) override;
1082+
void WhisperAddon(std::string const& text, Player* receiver);
10821083

10831084
/*********************************************************/
10841085
/*** STORAGE SYSTEM ***/
@@ -1471,7 +1472,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
14711472
void RemoveTemporarySpell(uint32 spellId);
14721473
void SetReputation(uint32 factionentry, uint32 value);
14731474
uint32 GetReputation(uint32 factionentry) const;
1474-
std::string const& GetGuildName() const;
1475+
std::string GetGuildName() const;
14751476

14761477
// Talents
14771478
uint32 GetFreeTalentPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS1); }
@@ -1605,8 +1606,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
16051606
void SendUpdateToOutOfRangeGroupMembers();
16061607

16071608
void SetInGuild(uint32 guildId);
1608-
void SetRank(uint8 rankId) { SetUInt32Value(PLAYER_GUILDRANK, rankId); }
1609-
uint8 GetRank() const { return uint8(GetUInt32Value(PLAYER_GUILDRANK)); }
1609+
void SetGuildRank(uint8 rankId) { SetUInt32Value(PLAYER_GUILDRANK, rankId); }
1610+
uint8 GetGuildRank() const { return uint8(GetUInt32Value(PLAYER_GUILDRANK)); }
16101611
void SetGuildIdInvited(uint32 GuildId) { m_GuildIdInvited = GuildId; }
16111612
uint32 GetGuildId() const { return GetUInt32Value(PLAYER_GUILDID); }
16121613
Guild* GetGuild();

src/server/game/Guilds/Guild.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ void Guild::Member::ChangeRank(CharacterDatabaseTransaction trans, uint8 newRank
581581

582582
// Update rank information in player's field, if he is online.
583583
if (Player* player = FindConnectedPlayer())
584-
player->SetRank(newRank);
584+
player->SetGuildRank(newRank);
585585

586586
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_MEMBER_RANK);
587587
stmt->setUInt8 (0, newRank);
@@ -1398,17 +1398,17 @@ void Guild::HandleSetBankTabInfo(WorldSession* session, uint8 tabId, std::string
13981398
_BroadcastEvent(GE_BANK_TAB_UPDATED, ObjectGuid::Empty, std::to_string(tabId), tab->GetName(), tab->GetIcon());
13991399
}
14001400

1401-
void Guild::HandleSetMemberNote(WorldSession* session, std::string_view name, std::string_view note, bool officer)
1401+
void Guild::HandleSetMemberNote(WorldSession* session, std::string_view note, std::string_view name, bool isPublic)
14021402
{
14031403
// Player must have rights to set public/officer note
1404-
if (!_HasRankRight(session->GetPlayer(), officer ? GR_RIGHT_EOFFNOTE : GR_RIGHT_EPNOTE))
1404+
if (!_HasRankRight(session->GetPlayer(), isPublic ? GR_RIGHT_EPNOTE : GR_RIGHT_EOFFNOTE))
14051405
SendCommandResult(session, GUILD_COMMAND_PUBLIC_NOTE, ERR_GUILD_PERMISSIONS);
14061406
else if (Member* member = GetMember(name))
14071407
{
1408-
if (officer)
1409-
member->SetOfficerNote(note);
1410-
else
1408+
if (isPublic)
14111409
member->SetPublicNote(note);
1410+
else
1411+
member->SetOfficerNote(note);
14121412

14131413
HandleRoster(session);
14141414
}
@@ -1579,12 +1579,12 @@ void Guild::HandleRemoveMember(WorldSession* session, std::string_view name)
15791579
else
15801580
{
15811581
ObjectGuid guid = member->GetGUID();
1582+
_LogEvent(GUILD_EVENT_LOG_UNINVITE_PLAYER, player->GetGUID().GetCounter(), guid.GetCounter());
1583+
_BroadcastEvent(GE_REMOVED, ObjectGuid::Empty, name, player->GetName());
15821584

15831585
// After call to DeleteMember pointer to member becomes invalid
15841586
CharacterDatabaseTransaction trans(nullptr);
15851587
DeleteMember(trans, guid, false, true);
1586-
_LogEvent(GUILD_EVENT_LOG_UNINVITE_PLAYER, player->GetGUID().GetCounter(), guid.GetCounter());
1587-
_BroadcastEvent(GE_REMOVED, ObjectGuid::Empty, name, player->GetName());
15881588
}
15891589
}
15901590
}
@@ -1676,7 +1676,7 @@ void Guild::HandleRemoveRank(WorldSession* session, uint8 rankId)
16761676
stmt->setUInt8(1, rankId);
16771677
CharacterDatabase.Execute(stmt);
16781678
// Delete rank
1679-
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_LOWEST_RANK);
1679+
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_RANK);
16801680
stmt->setUInt32(0, m_id);
16811681
stmt->setUInt8(1, rankId);
16821682
CharacterDatabase.Execute(stmt);
@@ -2218,7 +2218,7 @@ bool Guild::AddMember(CharacterDatabaseTransaction trans, ObjectGuid guid, uint8
22182218
{
22192219
player->SetInGuild(m_id);
22202220
player->SetGuildIdInvited(0);
2221-
player->SetRank(rankId);
2221+
player->SetGuildRank(rankId);
22222222
member.SetStats(player);
22232223
SendLoginInfo(player->GetSession());
22242224
name = player->GetName();
@@ -2294,7 +2294,7 @@ bool Guild::DeleteMember(CharacterDatabaseTransaction trans, ObjectGuid guid, bo
22942294

22952295
// If player not online data in data field will be loaded from guild tabs no need to update it !!
22962296
if (Player* newLeaderPlayer = newLeader->FindPlayer())
2297-
newLeaderPlayer->SetRank(GR_GUILDMASTER);
2297+
newLeaderPlayer->SetGuildRank(GR_GUILDMASTER);
22982298

22992299
// If leader does not exist (at guild loading with deleted leader) do not send broadcasts
23002300
if (oldLeader)
@@ -2312,7 +2312,7 @@ bool Guild::DeleteMember(CharacterDatabaseTransaction trans, ObjectGuid guid, bo
23122312
if (player)
23132313
{
23142314
player->SetInGuild(0);
2315-
player->SetRank(0);
2315+
player->SetGuildRank(0);
23162316
}
23172317
else
23182318
sCharacterCache->UpdateCharacterGuildId(guid, 0);

src/server/game/Guilds/Guild.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,8 +313,8 @@ class TC_GAME_API Guild
313313
std::string GetPublicNote() const { return m_publicNote; }
314314
std::string GetOfficerNote() const { return m_officerNote; }
315315
uint8 GetClass() const { return m_class; }
316-
uint8 GetLevel() const { return m_level; }
317316
uint8 GetGender() const { return m_gender; }
317+
uint8 GetLevel() const { return m_level; }
318318
uint8 GetFlags() const { return m_flags; }
319319
uint32 GetZoneId() const { return m_zoneId; }
320320
bool IsOnline() const { return (m_flags & GUILDMEMBER_STATUS_ONLINE); }
@@ -501,7 +501,6 @@ class TC_GAME_API Guild
501501

502502
private:
503503
ObjectGuid::LowType m_guildId;
504-
505504
uint8 m_rankId;
506505
std::string m_name;
507506
uint32 m_rights;
@@ -655,7 +654,7 @@ class TC_GAME_API Guild
655654
void HandleSetEmblem(WorldSession* session, EmblemInfo const& emblemInfo);
656655
void HandleSetLeader(WorldSession* session, std::string_view name);
657656
void HandleSetBankTabInfo(WorldSession* session, uint8 tabId, std::string_view name, std::string_view icon);
658-
void HandleSetMemberNote(WorldSession* session, std::string_view name, std::string_view note, bool officer);
657+
void HandleSetMemberNote(WorldSession* session, std::string_view note, std::string_view name, bool isPublic);
659658
void HandleSetRankInfo(WorldSession* session, uint8 rankId, std::string_view name, uint32 rights, uint32 moneyPerDay, std::array<GuildBankRightsAndSlots, GUILD_BANK_MAX_TABS> const& rightsAndSlots);
660659
void HandleBuyBankTab(WorldSession* session, uint8 tabId);
661660
void HandleInviteMember(WorldSession* session, std::string_view name);

src/server/game/Handlers/CharacterHandler.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -776,12 +776,12 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder const& holder)
776776
{
777777
Field* fields = resultGuild->Fetch();
778778
pCurrChar->SetInGuild(fields[0].GetUInt32());
779-
pCurrChar->SetRank(fields[1].GetUInt8());
779+
pCurrChar->SetGuildRank(fields[1].GetUInt8());
780780
}
781781
else if (pCurrChar->GetGuildId()) // clear guild related fields in case wrong data about non existed membership
782782
{
783783
pCurrChar->SetInGuild(0);
784-
pCurrChar->SetRank(0);
784+
pCurrChar->SetGuildRank(0);
785785
}
786786

787787
if (pCurrChar->GetGuildId() != 0)

src/server/game/Handlers/ChatHandler.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,10 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
366366
(HasPermission(rbac::RBAC_PERM_CAN_FILTER_WHISPERS) && !sender->isAcceptWhispers() && !sender->IsInWhisperWhiteList(receiver->GetGUID())))
367367
sender->AddWhisperWhiteList(receiver->GetGUID());
368368

369-
GetPlayer()->Whisper(msg, Language(lang), receiver);
369+
if (lang == LANG_ADDON)
370+
GetPlayer()->WhisperAddon(msg, receiver);
371+
else
372+
GetPlayer()->Whisper(msg, Language(lang), receiver);
370373
break;
371374
}
372375
case CHAT_MSG_PARTY:

src/server/game/Handlers/GuildHandler.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ void WorldSession::HandleGuildSetPublicNoteOpcode(WorldPackets::Guild::GuildSetM
151151

152152
if (normalizePlayerName(packet.NoteeName))
153153
if (Guild* guild = GetPlayer()->GetGuild())
154-
guild->HandleSetMemberNote(this, packet.NoteeName, packet.Note, false);
154+
guild->HandleSetMemberNote(this, packet.Note, packet.NoteeName, false);
155155
}
156156

157157
void WorldSession::HandleGuildSetOfficerNoteOpcode(WorldPackets::Guild::GuildSetMemberNote& packet)
@@ -161,7 +161,7 @@ void WorldSession::HandleGuildSetOfficerNoteOpcode(WorldPackets::Guild::GuildSet
161161

162162
if (normalizePlayerName(packet.NoteeName))
163163
if (Guild* guild = GetPlayer()->GetGuild())
164-
guild->HandleSetMemberNote(this, packet.NoteeName, packet.Note, true);
164+
guild->HandleSetMemberNote(this, packet.Note, packet.NoteeName, true);
165165
}
166166

167167
void WorldSession::HandleGuildSetRankPermissions(WorldPackets::Guild::GuildSetRankPermissions& packet)

src/server/game/Handlers/ItemHandler.cpp

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -549,28 +549,12 @@ void WorldSession::HandleBuyItemInSlotOpcode(WorldPacket& recvData)
549549
else
550550
return; // cheating
551551

552-
uint8 bag = NULL_BAG; // init for case invalid bagGUID
553-
554-
// find bag slot by bag guid
555-
if (bagguid == _player->GetGUID())
552+
uint8 bag = NULL_BAG;
553+
if (bagguid == GetPlayer()->GetGUID()) // The client sends the player guid when trying to store an item in the default backpack
556554
bag = INVENTORY_SLOT_BAG_0;
555+
else if (Item* bagItem = _player->GetItemByGuid(bagguid))
556+
bag = bagItem->GetSlot();
557557
else
558-
{
559-
for (int i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i)
560-
{
561-
if (Bag* pBag = _player->GetBagByPos(i))
562-
{
563-
if (bagguid == pBag->GetGUID())
564-
{
565-
bag = i;
566-
break;
567-
}
568-
}
569-
}
570-
}
571-
572-
// bag not found, cheating?
573-
if (bag == NULL_BAG)
574558
return;
575559

576560
GetPlayer()->BuyItemFromVendorSlot(vendorguid, slot, item, count, bag, bagslot);

0 commit comments

Comments
 (0)