mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2026-01-01 06:00:46 +00:00
Misc trading logic enhancements, #351
This commit is contained in:
@@ -93,6 +93,7 @@ namespace ArchiSteamFarm {
|
||||
internal bool HasMobileAuthenticator => BotDatabase.MobileAuthenticator != null;
|
||||
internal bool IsConnectedAndLoggedOn => SteamClient.IsConnected && (SteamClient.SteamID != null);
|
||||
internal bool IsFarmingPossible => !PlayingBlocked && (LibraryLockedBySteamID == 0);
|
||||
internal ulong SteamID => SteamClient.SteamID;
|
||||
|
||||
private bool FirstTradeSent, PlayingBlocked, SkipFirstShutdown;
|
||||
private string AuthCode, TwoFactorCode;
|
||||
|
||||
@@ -107,7 +107,7 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
private async Task ParseActiveTrades() {
|
||||
if ((Bot.BotConfig.TradingPreferences == BotConfig.ETradingPreferences.None) || string.IsNullOrEmpty(Bot.BotConfig.SteamApiKey)) {
|
||||
if (string.IsNullOrEmpty(Bot.BotConfig.SteamApiKey)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -186,6 +186,11 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Always accept trades from SteamMasterID
|
||||
if ((tradeOffer.OtherSteamID64 != 0) && (tradeOffer.OtherSteamID64 == Bot.BotConfig.SteamMasterID)) {
|
||||
return new ParseTradeResult(tradeOffer.TradeOfferID, tradeOffer.ItemsToGive.Count > 0 ? ParseTradeResult.EResult.AcceptedWithItemLose : ParseTradeResult.EResult.AcceptedWithoutItemLose);
|
||||
}
|
||||
|
||||
// Check if it's donation trade
|
||||
if (tradeOffer.ItemsToGive.Count == 0) {
|
||||
ParseTradeResult.EResult donationResult;
|
||||
@@ -193,7 +198,7 @@ namespace ArchiSteamFarm {
|
||||
// If it's steam fuckup, temporarily ignore it, otherwise react accordingly, depending on our preference
|
||||
if (tradeOffer.ItemsToReceive.Count == 0) {
|
||||
donationResult = ParseTradeResult.EResult.RejectedTemporarily;
|
||||
} else if (Bot.BotConfig.TradingPreferences.HasFlag(BotConfig.ETradingPreferences.AcceptDonations)) {
|
||||
} else if (Bot.BotConfig.TradingPreferences.HasFlag(BotConfig.ETradingPreferences.AcceptDonations) || ((tradeOffer.OtherSteamID64 != 0) && Bot.Bots.Values.Any(bot => bot.SteamID == tradeOffer.OtherSteamID64))) {
|
||||
donationResult = ParseTradeResult.EResult.AcceptedWithoutItemLose;
|
||||
} else {
|
||||
donationResult = ParseTradeResult.EResult.RejectedPermanently;
|
||||
@@ -202,11 +207,6 @@ namespace ArchiSteamFarm {
|
||||
return new ParseTradeResult(tradeOffer.TradeOfferID, donationResult);
|
||||
}
|
||||
|
||||
// Always accept trades from SteamMasterID
|
||||
if ((tradeOffer.OtherSteamID64 != 0) && (tradeOffer.OtherSteamID64 == Bot.BotConfig.SteamMasterID)) {
|
||||
return new ParseTradeResult(tradeOffer.TradeOfferID, ParseTradeResult.EResult.AcceptedWithItemLose);
|
||||
}
|
||||
|
||||
// If we don't have SteamTradeMatcher enabled, this is the end for us
|
||||
if (!Bot.BotConfig.TradingPreferences.HasFlag(BotConfig.ETradingPreferences.SteamTradeMatcher)) {
|
||||
return new ParseTradeResult(tradeOffer.TradeOfferID, ParseTradeResult.EResult.RejectedPermanently);
|
||||
|
||||
Reference in New Issue
Block a user