aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Chat/Commands/Level3.cpp6
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp25
-rwxr-xr-xsrc/server/game/Entities/Player/Player.h13
-rwxr-xr-xsrc/server/game/Guilds/Guild.cpp2
-rwxr-xr-xsrc/server/shared/Database/Implementation/CharacterDatabase.cpp8
5 files changed, 27 insertions, 27 deletions
diff --git a/src/server/game/Chat/Commands/Level3.cpp b/src/server/game/Chat/Commands/Level3.cpp
index aecf9122f5b..9276c536101 100755
--- a/src/server/game/Chat/Commands/Level3.cpp
+++ b/src/server/game/Chat/Commands/Level3.cpp
@@ -1725,7 +1725,7 @@ bool ChatHandler::HandleGuildUninviteCommand(const char *args)
if (!extractPlayerTarget((char*)args, &target, &target_guid))
return false;
- uint32 glId = target ? target->GetGuildId () : Player::GetGuildIdFromDB (target_guid);
+ uint32 glId = target ? target->GetGuildId() : Player::GetGuildIdFromGuid(target_guid);
if (!glId)
return false;
@@ -1752,11 +1752,11 @@ bool ChatHandler::HandleGuildRankCommand(const char *args)
if (!extractPlayerTarget(nameStr, &target, &target_guid, &target_name))
return false;
- uint32 glId = target ? target->GetGuildId () : Player::GetGuildIdFromDB (target_guid);
+ uint32 glId = target ? target->GetGuildId() : Player::GetGuildIdFromGuid(target_guid);
if (!glId)
return false;
- Guild* targetGuild = sGuildMgr->GetGuildById (glId);
+ Guild* targetGuild = sGuildMgr->GetGuildById(glId);
if (!targetGuild)
return false;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 861fcfb91c6..82d63790b32 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -692,6 +692,7 @@ Player::Player (WorldSession* session): Unit(), m_achievementMgr(this), m_reputa
duel = NULL;
m_GuildIdInvited = 0;
+ m_guildId = 0;
m_ArenaTeamIdInvited = 0;
m_atLoginFlags = AT_LOGIN_NONE;
@@ -4804,7 +4805,7 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC
// bones will be deleted by corpse/bones deleting thread shortly
sObjectAccessor->ConvertCorpseForPlayer(playerguid);
- if (uint32 guildId = GetGuildIdFromDB(playerguid))
+ if (uint32 guildId = GetGuildIdFromGuid(playerguid))
if (Guild* guild = sGuildMgr->GetGuildById(guildId))
guild->DeleteMember(guid);
@@ -5488,13 +5489,13 @@ uint32 Player::DurabilityRepair(uint16 pos, bool cost, float discountMod, bool g
if (guildBank)
{
- if (GetGuildId() == 0)
+ if (m_guildId == 0)
{
sLog->outStaticDebug("You are not member of a guild");
return TotalCost;
}
- Guild* guild = sGuildMgr->GetGuildById(GetGuildId());
+ Guild* guild = sGuildMgr->GetGuildById(m_guildId);
if (!guild)
return TotalCost;
@@ -5574,7 +5575,7 @@ bool Player::CanJoinConstantChannelInZone(ChatChannelsEntry const* channel, Area
if ((channel->flags & CHANNEL_DBC_FLAG_CITY_ONLY) && (!(zone->flags & AREA_FLAG_SLAVE_CAPITAL)))
return false;
- if ((channel->flags & CHANNEL_DBC_FLAG_GUILD_REQ) && GetGuildId())
+ if ((channel->flags & CHANNEL_DBC_FLAG_GUILD_REQ) && m_guildId)
return false;
return true;
@@ -7419,14 +7420,14 @@ uint32 Player::_GetCurrencyWeekCap(const CurrencyTypesEntry* currency) const
return cap;
}
-uint32 Player::GetGuildIdFromDB(uint64 guid)
+uint32 Player::GetGuildIdFromGuid(uint64 guid)
{
- QueryResult result = CharacterDatabase.PQuery("SELECT guildid FROM guild_member WHERE guid='%u'", GUID_LOPART(guid));
- if (!result)
- return 0;
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_GET_GUILD_ID);
+ stmt->setUInt64(0, guid);
+ if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
+ return (*result)[0].GetUInt32();
- uint32 id = result->Fetch()[0].GetUInt32();
- return id;
+ return 0;
}
uint8 Player::GetRankFromDB(uint64 guid)
@@ -17052,6 +17053,8 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
if (m_grantableLevels > 0)
SetByteValue(PLAYER_FIELD_BYTES, 1, 0x01);
+ m_guildId = fields[62].GetUInt32();
+
_LoadDeclinedNames(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADDECLINEDNAMES));
m_achievementMgr.CheckAllAchievementCriteria();
@@ -24484,7 +24487,7 @@ uint32 Player::GetReputation(uint32 factionentry)
std::string Player::GetGuildName()
{
- return sGuildMgr->GetGuildById(GetGuildId())->GetName();
+ return sGuildMgr->GetGuildById(m_guildId)->GetName();
}
void Player::SendDuelCountdown(uint32 counter)
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 7e559b0e077..95197595bf2 100755
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1840,19 +1840,14 @@ class Player : public Unit, public GridObject<Player>
stmt->setUInt32(0, GuildId);
stmt->setUInt64(1, GetGUID());
CharacterDatabase.Execute(stmt);
+ m_guildId = GuildId;
}
+ uint32 GetGuildId() { return m_guildId; }
+ static uint32 GetGuildIdFromGuid(uint64 guid);
- uint32 GetGuildId()
- {
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_GET_GUILD_ID);
- stmt->setUInt64(0, GetGUIDLow());
- PreparedQueryResult result = CharacterDatabase.Query(stmt);
- return result ? (*result)[0].GetUInt32() : 0;
- }
void SetRank(uint8 rankId) { SetUInt32Value(PLAYER_GUILDRANK, rankId); }
uint8 GetRank() { return uint8(GetUInt32Value(PLAYER_GUILDRANK)); }
void SetGuildIdInvited(uint32 GuildId) { m_GuildIdInvited = GuildId; }
- static uint32 GetGuildIdFromDB(uint64 guid);
static uint8 GetRankFromDB(uint64 guid);
int GetGuildIdInvited() { return m_GuildIdInvited; }
static void RemovePetitionsAndSigns(uint64 guid, uint32 type);
@@ -2758,6 +2753,8 @@ class Player : public Unit, public GridObject<Player>
uint32 m_restTime;
+ uint32 m_guildId;
+
uint32 m_WeaponProficiency;
uint32 m_ArmorProficiency;
bool m_canParry;
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 59c107bd40f..1d5395b8ad1 100755
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -2073,7 +2073,7 @@ bool Guild::AddMember(uint64 guid, uint8 rankId)
if (player->GetGuildId() != 0)
return false;
}
- else if (Player::GetGuildIdFromDB(guid) != 0)
+ else if (Player::GetGuildIdFromGuid(guid) != 0)
return false;
// Remove all player signs from another petitions
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
index b5ea47d1a53..70a5b69ae9d 100755
--- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
@@ -42,7 +42,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
"position_x, position_y, position_z, map, orientation, taximask, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, "
"resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, instance_mode_mask, "
"conquestPoints, totalHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, watchedFaction, drunk, "
- "health, power1, power2, power3, power4, power5, instance_id, speccount, activespec, exploredZones, equipmentCache, knownTitles, actionBars, grantableLevels FROM characters WHERE guid = ?", CONNECTION_ASYNC)
+ "health, power1, power2, power3, power4, power5, instance_id, speccount, activespec, exploredZones, equipmentCache, knownTitles, actionBars, grantableLevels, guildId FROM characters WHERE guid = ?", CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_GROUP, "SELECT guid FROM group_member WHERE memberGuid = ?", CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_BOUNDINSTANCES, "SELECT id, permanent, map, difficulty, resettime FROM character_instance LEFT JOIN instance ON instance = id WHERE guid = ?", CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_AURAS, "SELECT caster_guid, spell, effect_mask, recalculate_mask, stackcount, amount0, amount1, amount2, "
@@ -311,12 +311,12 @@ void CharacterDatabaseConnection::DoPrepareStatements()
"extra_flags, stable_slots, at_login, zone, "
"death_expire_time, taxi_path, conquestPoints, totalHonorPoints, totalKills, "
"todayKills, yesterdayKills, chosenTitle, watchedFaction, drunk, health, power1, power2, power3, "
- "power4, power5, latency, speccount, activespec, exploredZones, equipmentCache, knownTitles, actionBars, grantableLevels, guildId) VALUES "
- "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", CONNECTION_ASYNC);
+ "power4, power5, latency, speccount, activespec, exploredZones, equipmentCache, knownTitles, actionBars, grantableLevels) VALUES "
+ "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_CHARACTER, "UPDATE characters SET name=?,race=?,class=?,gender=?,level=?,xp=?,money=?,playerBytes=?,playerBytes2=?,playerFlags=?,"
"map=?,instance_id=?,instance_mode_mask=?,position_x=?,position_y=?,position_z=?,orientation=?,taximask=?,cinematic=?,totaltime=?,leveltime=?,rest_bonus=?,"
"logout_time=?,is_logout_resting=?,resettalents_cost=?,resettalents_time=?,extra_flags=?,stable_slots=?,at_login=?,zone=?,death_expire_time=?,taxi_path=?,"
"conquestPoints=?,totalHonorPoints=?,totalKills=?,todayKills=?,yesterdayKills=?,chosenTitle=?,"
"watchedFaction=?,drunk=?,health=?,power1=?,power2=?,power3=?,power4=?,power5=?,latency=?,speccount=?,activespec=?,exploredZones=?,"
- "equipmentCache=?,knownTitles=?,actionBars=?,grantableLevels=?,guildId=?,online=? WHERE guid=?", CONNECTION_ASYNC);
+ "equipmentCache=?,knownTitles=?,actionBars=?,grantableLevels=?,online=? WHERE guid=?", CONNECTION_ASYNC);
}