updated gitignore to include modules

This commit is contained in:
mikx
2023-11-07 18:17:57 -05:00
parent 749adf47ca
commit bde1978585
429 changed files with 104850 additions and 6 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,92 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
*/
#include "ScriptMgr.h"
#include "AuctionHouseBot.h"
#include "Log.h"
#include "Mail.h"
#include "Player.h"
#include "WorldSession.h"
class AHBot_WorldScript : public WorldScript
{
public:
AHBot_WorldScript() : WorldScript("AHBot_WorldScript") { }
void OnBeforeConfigLoad(bool /*reload*/) override
{
auctionbot->InitializeConfiguration();
}
void OnStartup() override
{
LOG_INFO("server.loading", "Initialize AuctionHouseBot...");
auctionbot->Initialize();
}
};
class AHBot_AuctionHouseScript : public AuctionHouseScript
{
public:
AHBot_AuctionHouseScript() : AuctionHouseScript("AHBot_AuctionHouseScript") { }
void OnBeforeAuctionHouseMgrSendAuctionSuccessfulMail(AuctionHouseMgr* /*auctionHouseMgr*/, AuctionEntry* /*auction*/, Player* owner, uint32& /*owner_accId*/, uint32& /*profit*/, bool& sendNotification, bool& updateAchievementCriteria, bool& /*sendMail*/) override
{
if (owner && owner->GetGUID().GetCounter() == auctionbot->GetAHBplayerGUID())
{
sendNotification = false;
updateAchievementCriteria = false;
}
}
void OnBeforeAuctionHouseMgrSendAuctionExpiredMail(AuctionHouseMgr* /*auctionHouseMgr*/, AuctionEntry* /*auction*/, Player* owner, uint32& /*owner_accId*/, bool& sendNotification, bool& /*sendMail*/) override
{
if (owner && owner->GetGUID().GetCounter() == auctionbot->GetAHBplayerGUID())
sendNotification = false;
}
void OnBeforeAuctionHouseMgrSendAuctionOutbiddedMail(AuctionHouseMgr* /*auctionHouseMgr*/, AuctionEntry* auction, Player* oldBidder, uint32& /*oldBidder_accId*/, Player* newBidder, uint32& newPrice, bool& /*sendNotification*/, bool& /*sendMail*/) override
{
if (oldBidder && !newBidder)
oldBidder->GetSession()->SendAuctionBidderNotification(auction->GetHouseId(), auction->Id, ObjectGuid::Create<HighGuid::Player>(auctionbot->GetAHBplayerGUID()), newPrice, auction->GetAuctionOutBid(), auction->item_template);
}
void OnAuctionAdd(AuctionHouseObject* /*ah*/, AuctionEntry* auction) override
{
auctionbot->IncrementItemCounts(auction);
}
void OnAuctionRemove(AuctionHouseObject* /*ah*/, AuctionEntry* auction) override
{
auctionbot->DecrementItemCounts(auction, auction->item_template);
}
void OnBeforeAuctionHouseMgrUpdate() override
{
auctionbot->Update();
}
};
class AHBot_MailScript : public MailScript
{
public:
AHBot_MailScript() : MailScript("AHBot_MailScript") { }
void OnBeforeMailDraftSendMailTo(MailDraft* /*mailDraft*/, MailReceiver const& receiver, MailSender const& sender, MailCheckMask& /*checked*/, uint32& /*deliver_delay*/, uint32& /*custom_expiration*/, bool& deleteMailItemsFromDB, bool& sendMail) override
{
if (receiver.GetPlayerGUIDLow() == auctionbot->GetAHBplayerGUID())
{
if (sender.GetMailMessageType() == MAIL_AUCTION) // auction mail with items
deleteMailItemsFromDB = true;
sendMail = false;
}
}
};
void AddAHBotScripts()
{
new AHBot_WorldScript();
new AHBot_AuctionHouseScript();
new AHBot_MailScript();
}

View File

@@ -0,0 +1,15 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
* Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore>
*/
// From SC
void AddAHBotCommandScripts();
void AddAHBotScripts();
// Add all
void Addmod_ah_botScripts()
{
AddAHBotCommandScripts();
AddAHBotScripts();
}

View File

@@ -0,0 +1,488 @@
/*
* Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
Name: ah_bot_commandscript
%Complete: 100
Comment: All ah_bot related commands
Category: commandscripts
EndScriptData */
#include "ScriptMgr.h"
#include "Chat.h"
#include "AuctionHouseBot.h"
#include "Config.h"
#if AC_COMPILER == AC_COMPILER_GNU
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
using namespace Acore::ChatCommands;
class ah_bot_commandscript : public CommandScript
{
public:
ah_bot_commandscript() : CommandScript("ah_bot_commandscript") { }
std::vector<ChatCommand> GetCommands() const override
{
static std::vector<ChatCommand> commandTable =
{
{ "ahbotoptions", SEC_GAMEMASTER, true, &HandleAHBotOptionsCommand, "" },
};
return commandTable;
}
static bool HandleAHBotOptionsCommand(ChatHandler* handler, const char*args)
{
uint32 ahMapID = 0;
char* opt = strtok((char*)args, " ");
char* ahMapIdStr = strtok(NULL, " ");
if (ahMapIdStr)
{
ahMapID = uint32(strtoul(ahMapIdStr, NULL, 0));
switch (ahMapID)
{
case 2:
case 6:
case 7:
break;
default:
opt = NULL;
break;
}
}
if (!opt)
{
handler->PSendSysMessage("Syntax is: ahbotoptions $option $ahMapID (2, 6 or 7) $parameter");
handler->PSendSysMessage("Try ahbotoptions help to see a list of options.");
return false;
}
int l = strlen(opt);
if (strncmp(opt, "help", l) == 0)
{
handler->PSendSysMessage("AHBot commands:");
handler->PSendSysMessage("ahexpire");
handler->PSendSysMessage("minitems");
handler->PSendSysMessage("maxitems");
//handler->PSendSysMessage("");
//handler->PSendSysMessage("");
handler->PSendSysMessage("percentages");
handler->PSendSysMessage("minprice");
handler->PSendSysMessage("maxprice");
handler->PSendSysMessage("minbidprice");
handler->PSendSysMessage("maxbidprice");
handler->PSendSysMessage("maxstack");
handler->PSendSysMessage("buyerprice");
handler->PSendSysMessage("bidinterval");
handler->PSendSysMessage("bidsperinterval");
return true;
}
else if (strncmp(opt, "ahexpire", l) == 0)
{
if (!ahMapIdStr)
{
handler->PSendSysMessage("Syntax is: ahbotoptions ahexpire $ahMapID (2, 6 or 7)");
return false;
}
auctionbot->Commands(0, ahMapID, 0, NULL);
}
else if (strncmp(opt, "minitems", l) == 0)
{
char* param1 = strtok(NULL, " ");
if (!ahMapIdStr || !param1)
{
handler->PSendSysMessage("Syntax is: ahbotoptions minitems $ahMapID (2, 6 or 7) $minItems");
return false;
}
auctionbot->Commands(1, ahMapID, 0, param1);
}
else if (strncmp(opt, "maxitems", l) == 0)
{
char* param1 = strtok(NULL, " ");
if (!ahMapIdStr || !param1)
{
handler->PSendSysMessage("Syntax is: ahbotoptions maxitems $ahMapID (2, 6 or 7) $maxItems");
return false;
}
auctionbot->Commands(2, ahMapID, 0, param1);
}
else if (strncmp(opt, "mintime", l) == 0)
{
handler->PSendSysMessage("ahbotoptions mintime has been deprecated");
return false;
/*
char* param1 = strtok(NULL, " ");
if (!ahMapIdStr || !param1)
{
PSendSysMessage("Syntax is: ahbotoptions mintime $ahMapID (2, 6 or 7) $mintime");
return false;
}
auctionbot.Commands(3, ahMapID, 0, param1);
*/
}
else if (strncmp(opt, "maxtime", l) == 0)
{
handler->PSendSysMessage("ahbotoptions maxtime has been deprecated");
return false;
/*
char* param1 = strtok(NULL, " ");
if (!ahMapIdStr || !param1)
{
PSendSysMessage("Syntax is: ahbotoptions maxtime $ahMapID (2, 6 or 7) $maxtime");
return false;
}
auctionbot.Commands(4, ahMapID, 0, param1);
*/
}
else if (strncmp(opt, "percentages", l) == 0)
{
char* param1 = strtok(NULL, " ");
char* param2 = strtok(NULL, " ");
char* param3 = strtok(NULL, " ");
char* param4 = strtok(NULL, " ");
char* param5 = strtok(NULL, " ");
char* param6 = strtok(NULL, " ");
char* param7 = strtok(NULL, " ");
char* param8 = strtok(NULL, " ");
char* param9 = strtok(NULL, " ");
char* param10 = strtok(NULL, " ");
char* param11 = strtok(NULL, " ");
char* param12 = strtok(NULL, " ");
char* param13 = strtok(NULL, " ");
char* param14 = strtok(NULL, " ");
if (!ahMapIdStr || !param14)
{
handler->PSendSysMessage("Syntax is: ahbotoptions percentages $ahMapID (2, 6 or 7) $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14");
handler->PSendSysMessage("1 GreyTradeGoods 2 WhiteTradeGoods 3 GreenTradeGoods 4 BlueTradeGoods 5 PurpleTradeGoods");
handler->PSendSysMessage("6 OrangeTradeGoods 7 YellowTradeGoods 8 GreyItems 9 WhiteItems 10 GreenItems 11 BlueItems");
handler->PSendSysMessage("12 PurpleItems 13 OrangeItems 14 YellowItems");
handler->PSendSysMessage("The total must add up to 100%%");
return false;
}
uint32 greytg = uint32(strtoul(param1, NULL, 0));
uint32 whitetg = uint32(strtoul(param2, NULL, 0));
uint32 greentg = uint32(strtoul(param3, NULL, 0));
uint32 bluetg = uint32(strtoul(param4, NULL, 0));
uint32 purpletg = uint32(strtoul(param5, NULL, 0));
uint32 orangetg = uint32(strtoul(param6, NULL, 0));
uint32 yellowtg = uint32(strtoul(param7, NULL, 0));
uint32 greyi = uint32(strtoul(param8, NULL, 0));
uint32 whitei = uint32(strtoul(param9, NULL, 0));
uint32 greeni = uint32(strtoul(param10, NULL, 0));
uint32 bluei = uint32(strtoul(param11, NULL, 0));
uint32 purplei = uint32(strtoul(param12, NULL, 0));
uint32 orangei = uint32(strtoul(param13, NULL, 0));
uint32 yellowi = uint32(strtoul(param14, NULL, 0));
uint32 totalPercent = greytg + whitetg + greentg + bluetg + purpletg + orangetg + yellowtg + greyi + whitei + greeni + bluei + purplei + orangei + yellowi;
if (totalPercent == 0 || totalPercent != 100)
{
handler->PSendSysMessage("Syntax is: ahbotoptions percentages $ahMapID (2, 6 or 7) $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14");
handler->PSendSysMessage("1 GreyTradeGoods 2 WhiteTradeGoods 3 GreenTradeGoods 4 BlueTradeGoods 5 PurpleTradeGoods");
handler->PSendSysMessage("6 OrangeTradeGoods 7 YellowTradeGoods 8 GreyItems 9 WhiteItems 10 GreenItems 11 BlueItems");
handler->PSendSysMessage("12 PurpleItems 13 OrangeItems 14 YellowItems");
handler->PSendSysMessage("The total must add up to 100%%");
return false;
}
char param[100];
param[0] = '\0';
strcat(param, param1);
strcat(param, " ");
strcat(param, param2);
strcat(param, " ");
strcat(param, param3);
strcat(param, " ");
strcat(param, param4);
strcat(param, " ");
strcat(param, param5);
strcat(param, " ");
strcat(param, param6);
strcat(param, " ");
strcat(param, param7);
strcat(param, " ");
strcat(param, param8);
strcat(param, " ");
strcat(param, param9);
strcat(param, " ");
strcat(param, param10);
strcat(param, " ");
strcat(param, param11);
strcat(param, " ");
strcat(param, param12);
strcat(param, " ");
strcat(param, param13);
strcat(param, " ");
strcat(param, param14);
auctionbot->Commands(5, ahMapID, 0, param);
}
else if (strncmp(opt, "minprice", l) == 0)
{
char* param1 = strtok(NULL, " ");
char* param2 = strtok(NULL, " ");
if (!ahMapIdStr || !param1 || !param2)
{
handler->PSendSysMessage("Syntax is: ahbotoptions minprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $price");
return false;
}
if (strncmp(param1, "grey", l) == 0)
auctionbot->Commands(6, ahMapID, AHB_GREY, param2);
else if (strncmp(param1, "white", l) == 0)
auctionbot->Commands(6, ahMapID, AHB_WHITE, param2);
else if (strncmp(param1, "green", l) == 0)
auctionbot->Commands(6, ahMapID, AHB_GREEN, param2);
else if (strncmp(param1, "blue", l) == 0)
auctionbot->Commands(6, ahMapID, AHB_BLUE, param2);
else if (strncmp(param1, "purple", l) == 0)
auctionbot->Commands(6, ahMapID, AHB_PURPLE, param2);
else if (strncmp(param1, "orange", l) == 0)
auctionbot->Commands(6, ahMapID, AHB_ORANGE, param2);
else if (strncmp(param1, "yellow", l) == 0)
auctionbot->Commands(6, ahMapID, AHB_YELLOW, param2);
else
{
handler->PSendSysMessage("Syntax is: ahbotoptions minprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $price");
return false;
}
}
else if (strncmp(opt, "maxprice", l) == 0)
{
char* param1 = strtok(NULL, " ");
char* param2 = strtok(NULL, " ");
if (!ahMapIdStr || !param1 || !param2)
{
handler->PSendSysMessage("Syntax is: ahbotoptions maxprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $price");
return false;
}
if (strncmp(param1, "grey", l) == 0)
auctionbot->Commands(7, ahMapID, AHB_GREY, param2);
else if (strncmp(param1, "white", l) == 0)
auctionbot->Commands(7, ahMapID, AHB_WHITE, param2);
else if (strncmp(param1, "green", l) == 0)
auctionbot->Commands(7, ahMapID, AHB_GREEN, param2);
else if (strncmp(param1, "blue", l) == 0)
auctionbot->Commands(7, ahMapID, AHB_BLUE, param2);
else if (strncmp(param1, "purple", l) == 0)
auctionbot->Commands(7, ahMapID, AHB_PURPLE, param2);
else if (strncmp(param1, "orange",l) == 0)
auctionbot->Commands(7, ahMapID, AHB_ORANGE, param2);
else if (strncmp(param1, "yellow", l) == 0)
auctionbot->Commands(7, ahMapID, AHB_YELLOW, param2);
else
{
handler->PSendSysMessage("Syntax is: ahbotoptions maxprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $price");
return false;
}
}
else if (strncmp(opt, "minbidprice", l) == 0)
{
char* param1 = strtok(NULL, " ");
char* param2 = strtok(NULL, " ");
if (!ahMapIdStr || !param2 || !param2)
{
handler->PSendSysMessage("Syntax is: ahbotoptions minbidprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $price");
return false;
}
uint32 minBidPrice = uint32(strtoul(param2, NULL, 0));
if (minBidPrice < 1 || minBidPrice > 100)
{
handler->PSendSysMessage("The min bid price multiplier must be between 1 and 100");
return false;
}
if (strncmp(param1, "grey", l) == 0)
auctionbot->Commands(8, ahMapID, AHB_GREY, param2);
else if (strncmp(param1, "white", l) == 0)
auctionbot->Commands(8, ahMapID, AHB_WHITE, param2);
else if (strncmp(param1, "green", l) == 0)
auctionbot->Commands(8, ahMapID, AHB_GREEN, param2);
else if (strncmp(param1, "blue", l) == 0)
auctionbot->Commands(8, ahMapID, AHB_BLUE, param2);
else if (strncmp(param1, "purple", l) == 0)
auctionbot->Commands(8, ahMapID, AHB_PURPLE, param2);
else if (strncmp(param1, "orange", l) == 0)
auctionbot->Commands(8, ahMapID, AHB_ORANGE, param2);
else if (strncmp(param1, "yellow", l) == 0)
auctionbot->Commands(8, ahMapID, AHB_YELLOW, param2);
else
{
handler->PSendSysMessage("Syntax is: ahbotoptions minbidprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $price");
return false;
}
}
else if (strncmp(opt, "maxbidprice", l) == 0)
{
char* param1 = strtok(NULL, " ");
char* param2 = strtok(NULL, " ");
if (!ahMapIdStr || !param1 || !param2)
{
handler->PSendSysMessage("Syntax is: ahbotoptions maxbidprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $price");
return false;
}
uint32 maxBidPrice = uint32(strtoul(param2, NULL, 0));
if (maxBidPrice < 1 || maxBidPrice > 100)
{
handler->PSendSysMessage("The max bid price multiplier must be between 1 and 100");
return false;
}
if (strncmp(param1, "grey", l) == 0)
auctionbot->Commands(9, ahMapID, AHB_GREY, param2);
else if (strncmp(param1, "white", l) == 0)
auctionbot->Commands(9, ahMapID, AHB_WHITE, param2);
else if (strncmp(param1, "green", l) == 0)
auctionbot->Commands(9, ahMapID, AHB_GREEN, param2);
else if (strncmp(param1, "blue", l) == 0)
auctionbot->Commands(9, ahMapID, AHB_BLUE, param2);
else if (strncmp(param1, "purple", l) == 0)
auctionbot->Commands(9, ahMapID, AHB_PURPLE, param2);
else if (strncmp(param1, " orange", l) == 0)
auctionbot->Commands(9, ahMapID, AHB_ORANGE, param2);
else if (strncmp(param1, "yellow", l) == 0)
auctionbot->Commands(9, ahMapID, AHB_YELLOW, param2);
else
{
handler->PSendSysMessage("Syntax is: ahbotoptions max bidprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $price");
return false;
}
}
else if (strncmp(opt, "maxstack",l) == 0)
{
char* param1 = strtok(NULL, " ");
char* param2 = strtok(NULL, " ");
if (!ahMapIdStr || !param1 || !param2)
{
handler->PSendSysMessage("Syntax is: ahbotoptions maxstack $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $value");
return false;
}
// uint32 maxStack = uint32(strtoul(param2, NULL, 0));
// if (maxStack < 0)
// {
// handler->PSendSysMessage("maxstack can't be a negative number.");
// return false;
// }
if (strncmp(param1, "grey",l) == 0)
auctionbot->Commands(10, ahMapID, AHB_GREY, param2);
else if (strncmp(param1, "white", l) == 0)
auctionbot->Commands(10, ahMapID, AHB_WHITE, param2);
else if (strncmp(param1, "green", l) == 0)
auctionbot->Commands(10, ahMapID, AHB_GREEN, param2);
else if (strncmp(param1, "blue", l) == 0)
auctionbot->Commands(10, ahMapID, AHB_BLUE, param2);
else if (strncmp(param1, "purple", l) == 0)
auctionbot->Commands(10, ahMapID, AHB_PURPLE, param2);
else if (strncmp(param1, "orange", l) == 0)
auctionbot->Commands(10, ahMapID, AHB_ORANGE, param2);
else if (strncmp(param1, "yellow", l) == 0)
auctionbot->Commands(10, ahMapID, AHB_YELLOW, param2);
else
{
handler->PSendSysMessage("Syntax is: ahbotoptions maxstack $ahMapID (2, 6 or 7) $color (grey, white, green, blue, purple, orange or yellow) $value");
return false;
}
}
else if (strncmp(opt, "buyerprice", l) == 0)
{
char* param1 = strtok(NULL, " ");
char* param2 = strtok(NULL, " ");
if (!ahMapIdStr || !param1 || !param2)
{
handler->PSendSysMessage("Syntax is: ahbotoptions buyerprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue or purple) $price");
return false;
}
if (strncmp(param1, "grey", l) == 0)
auctionbot->Commands(11, ahMapID, AHB_GREY, param2);
else if (strncmp(param1, "white", l) == 0)
auctionbot->Commands(11, ahMapID, AHB_WHITE, param2);
else if (strncmp(param1, "green", l) == 0)
auctionbot->Commands(11, ahMapID, AHB_GREEN, param2);
else if (strncmp(param1, "blue", l) == 0)
auctionbot->Commands(11, ahMapID, AHB_BLUE, param2);
else if (strncmp(param1, "purple", l) == 0)
auctionbot->Commands(11, ahMapID, AHB_PURPLE, param2);
else if (strncmp(param1, "orange", l) == 0)
auctionbot->Commands(11, ahMapID, AHB_ORANGE, param2);
else if (strncmp(param1, "yellow", l) == 0)
auctionbot->Commands(11, ahMapID, AHB_YELLOW, param2);
else
{
handler->PSendSysMessage("Syntax is: ahbotoptions buyerprice $ahMapID (2, 6 or 7) $color (grey, white, green, blue or purple) $price");
return false;
}
}
else if (strncmp(opt, "bidinterval", l) == 0)
{
char* param1 = strtok(NULL, " ");
if (!ahMapIdStr || !param1)
{
handler->PSendSysMessage("Syntax is: ahbotoptions bidinterval $ahMapID (2, 6 or 7) $interval(in minutes)");
return false;
}
auctionbot->Commands(12, ahMapID, 0, param1);
}
else if (strncmp(opt, "bidsperinterval", l) == 0)
{
char* param1 = strtok(NULL, " ");
if (!ahMapIdStr || !param1)
{
handler->PSendSysMessage("Syntax is: ahbotoptions bidsperinterval $ahMapID (2, 6 or 7) $bids");
return false;
}
auctionbot->Commands(13, ahMapID, 0, param1);
}
else
{
handler->PSendSysMessage("Syntax is: ahbotoptions $option $ahMapID (2, 6 or 7) $parameter");
handler->PSendSysMessage("Try ahbotoptions help to see a list of options.");
return false;
}
return true;
}
};
void AddAHBotCommandScripts()
{
new ah_bot_commandscript();
}