Update ahbot.patch

This commit is contained in:
Barbz
2020-01-30 23:49:03 +01:00
committed by GitHub
parent f7ff6fea29
commit 80b5c18c04

View File

@@ -9,7 +9,7 @@ index 4aba5703b2..5c9a332016 100644
+#ifdef MOD_AH_BOT
+#include "AuctionHouseBot.h"
+#endif
enum eAuctionHouse
{
@@ -139,8 +142,11 @@ void AuctionHouseMgr::SendAuctionSuccessfulMail(AuctionEntry* auction, SQLTransa
@@ -35,7 +35,7 @@ index 4aba5703b2..5c9a332016 100644
if (owner)
+#endif
owner->GetSession()->SendAuctionOwnerNotification(auction);
MailDraft(auction->BuildAuctionMailSubject(AUCTION_EXPIRED), AuctionEntry::BuildAuctionMailBody(0, 0, auction->buyout, auction->deposit, 0))
@@ -207,6 +217,11 @@ void AuctionHouseMgr::SendAuctionOutbiddedMail(AuctionEntry* auction, uint32 new
// old bidder exist
@@ -48,23 +48,23 @@ index 4aba5703b2..5c9a332016 100644
+
if (oldBidder && newBidder)
oldBidder->GetSession()->SendAuctionBidderNotification(auction->GetHouseId(), auction->Id, newBidder->GetGUID(), newPrice, auction->GetAuctionOutBid(), auction->item_template);
@@ -407,10 +422,16 @@ void AuctionHouseObject::AddAuction(AuctionEntry* auction)
AuctionsMap[auction->Id] = auction;
sScriptMgr->OnAuctionAdd(this, auction);
+#ifdef MOD_AH_BOT
+ auctionbot->IncrementItemCounts(auction);
+#endif
}
bool AuctionHouseObject::RemoveAuction(AuctionEntry* auction)
{
+#ifdef MOD_AH_BOT
+ auctionbot->DecrementItemCounts(auction, auction->item_template);
+#endif
bool wasInMap = AuctionsMap.erase(auction->Id) ? true : false;
sScriptMgr->OnAuctionRemove(this, auction);
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index 6683fe2f15..9fcd209454 100644
@@ -77,13 +77,13 @@ index 6683fe2f15..9fcd209454 100644
+#ifdef MOD_AH_BOT
+#include "AuctionHouseBot.h"
+#endif
MailSender::MailSender(Object* sender, MailStationery stationery) : m_stationery(stationery)
{
@@ -175,6 +178,15 @@ void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver,
uint32 mailId = sObjectMgr->GenerateMailID();
+#ifdef MOD_AH_BOT
+ if (receiver.GetPlayerGUIDLow() == auctionbot->GetAHBplayerGUID())
+ {
@@ -94,7 +94,7 @@ index 6683fe2f15..9fcd209454 100644
+#endif
+
time_t deliver_time = time(NULL) + deliver_delay;
//expire time if COD 3 days, if no COD 30 days, if auction sale pending 1 hour
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index d1a82ee70f..7ea4386788 100644
@@ -103,7 +103,7 @@ index d1a82ee70f..7ea4386788 100644
@@ -82,6 +82,10 @@
#include "LuaEngine.h"
#endif
+#ifdef MOD_AH_BOT
+#include "AuctionHouseBot.h"
+#endif
@@ -114,7 +114,7 @@ index d1a82ee70f..7ea4386788 100644
@@ -1709,6 +1713,11 @@ void World::SetInitialWorldSettings()
sLog->outString("Loading Completed Achievements...");
sAchievementMgr->LoadCompletedAchievements();
+#ifdef MOD_AH_BOT
+ // Initialize AHBot settings before deleting expired auctions due to AHBot hooks
+ auctionbot->InitializeConfiguration();
@@ -123,18 +123,6 @@ index d1a82ee70f..7ea4386788 100644
///- Load dynamic data tables from the database
sLog->outString("Loading Item Auctions...");
sAuctionMgr->LoadAuctionItems();
@@ -1949,6 +1958,11 @@ void World::SetInitialWorldSettings()
sEluna->OnConfigLoad(false,false); // Must be done after Eluna is initialized and scripts have run.
#endif
+#ifdef MOD_AH_BOT
+ sLog->outString("Initialize AuctionHouseBot...");
+ auctionbot->Initialize();
+#endif
+
uint32 startupDuration = GetMSTimeDiffToNow(startupBegin);
sLog->outString();
sLog->outError("WORLD: World initialized in %u minutes %u seconds", (startupDuration / 60000), ((startupDuration % 60000) / 1000));
@@ -2114,6 +2128,9 @@ void World::Update(uint32 diff)
// pussywizard: handle auctions when the timer has passed
if (m_timers[WUPDATE_AUCTIONS].Passed())
@@ -143,5 +131,5 @@ index d1a82ee70f..7ea4386788 100644
+ auctionbot->Update();
+#endif
m_timers[WUPDATE_AUCTIONS].Reset();
// pussywizard: handle expired auctions, auctions expired when realm was offline are also handled here (not during loading when many required things aren't loaded yet)