aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-03-18 00:02:21 +0100
committerShauren <shauren.trinity@gmail.com>2020-03-18 00:02:21 +0100
commit967f21a4b40d23d6501006e4fb7bc0608a1d86d1 (patch)
tree37bb53ef3ff1617fd2ec5d73421ad2a513c9d953 /src
parent274fe25e2ea6e833916bff37788cddbb720bd23d (diff)
Core/Guilds: Implement guild bank gold limit matching client
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Guilds/Guild.cpp6
-rw-r--r--src/server/game/Guilds/Guild.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 2e991470fb7..2a48c73f59d 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -1807,6 +1807,12 @@ void Guild::HandleMemberDepositMoney(WorldSession* session, uint32 amount)
// Call script after validation and before money transfer.
sScriptMgr->OnGuildMemberDepositMoney(this, player, amount);
+ if (m_bankMoney > GUILD_BANK_MONEY_LIMIT - amount)
+ {
+ SendCommandResult(session, GUILD_COMMAND_MOVE_ITEM, ERR_GUILD_BANK_FULL);
+ return;
+ }
+
SQLTransaction trans = CharacterDatabase.BeginTransaction();
_ModifyBankMoney(trans, amount, true);
diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h
index 64841963550..2b98241da99 100644
--- a/src/server/game/Guilds/Guild.h
+++ b/src/server/game/Guilds/Guild.h
@@ -45,6 +45,8 @@ enum GuildMisc
TAB_UNDEFINED = 0xFF,
};
+constexpr uint64 GUILD_BANK_MONEY_LIMIT = UI64LIT(0x7FFFFFFFFFFFF);
+
enum GuildMemberData
{
GUILD_MEMBER_DATA_ZONEID,