From 6c70f57e8ea8926b52532f0a8ac0f64262a8b1eb Mon Sep 17 00:00:00 2001 From: Flerp Date: Sat, 1 Nov 2025 17:40:15 -0700 Subject: [PATCH] Attempt to fix autoloot --- src/mod_autofish.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mod_autofish.cpp b/src/mod_autofish.cpp index b0d0830..8cf4956 100644 --- a/src/mod_autofish.cpp +++ b/src/mod_autofish.cpp @@ -3,7 +3,7 @@ #include "GameObject.h" #include "ObjectAccessor.h" #include "Config.h" -#include "WorldSession.h" +#include "LootMgr.h" #include #include #include @@ -12,6 +12,7 @@ namespace { bool sEnabled = true; + bool sServerAutoLoot = true; uint32 sTickMs = 200; float sScanRange = 30.0f; std::vector sBobberEntries; @@ -48,6 +49,17 @@ namespace if (go->getLootState() == GO_READY && go->GetGoType() == GAMEOBJECT_TYPE_FISHINGNODE) { go->Use(plr); + + if (sServerAutoLoot) + { + Loot* loot = &go->loot; + for (uint32 i = 0; i < loot->items.size(); ++i) + plr->StoreLootItem(i, loot); + + plr->SendLootRelease(go->GetGUID()); + go->SetLootState(GO_JUST_DEACTIVATED); + } + return; } } @@ -62,6 +74,7 @@ public: void OnAfterConfigLoad(bool) override { sEnabled = sConfigMgr->GetOption("AutoFish.Enabled", true); + sServerAutoLoot = sConfigMgr->GetOption("AutoFish.ServerAutoLoot", true); sTickMs = sConfigMgr->GetOption("AutoFish.TickMs", 200u); sScanRange = sConfigMgr->GetOption("AutoFish.ScanRange", 30.0f); sBobberEntries = ParseEntryList(sConfigMgr->GetOption("AutoFish.BobberEntries", "35591"));