Honor trading-blacklisted steamIDs over access

This allows to blacklist even masters/owners, in result denying all trade offers from them while still honoring everything else, like commands.

Don't ask me why anybody would need it, ask @Ryzhehvost 😎
This commit is contained in:
Archi
2022-12-29 17:55:46 +01:00
parent 08bfb16c04
commit 1cb1bd3d67

View File

@@ -537,13 +537,6 @@ public sealed class Trading : IDisposable {
}
if (tradeOffer.OtherSteamID64 != 0) {
// Always accept trades from SteamMasterID
if (Bot.GetAccess(tradeOffer.OtherSteamID64) >= EAccess.Master) {
Bot.ArchiLogger.LogGenericDebug(string.Format(CultureInfo.CurrentCulture, Strings.BotTradeOfferResult, tradeOffer.TradeOfferID, ParseTradeResult.EResult.Accepted, $"{nameof(tradeOffer.OtherSteamID64)} {tradeOffer.OtherSteamID64}: {BotConfig.EAccess.Master}"));
return ParseTradeResult.EResult.Accepted;
}
// Always deny trades from blacklisted steamIDs
if (Bot.IsBlacklistedFromTrades(tradeOffer.OtherSteamID64)) {
Bot.ArchiLogger.LogGenericDebug(string.Format(CultureInfo.CurrentCulture, Strings.BotTradeOfferResult, tradeOffer.TradeOfferID, ParseTradeResult.EResult.Blacklisted, $"{nameof(tradeOffer.OtherSteamID64)} {tradeOffer.OtherSteamID64}"));
@@ -551,6 +544,13 @@ public sealed class Trading : IDisposable {
return ParseTradeResult.EResult.Blacklisted;
}
// Always accept trades from SteamMasterID
if (Bot.GetAccess(tradeOffer.OtherSteamID64) >= EAccess.Master) {
Bot.ArchiLogger.LogGenericDebug(string.Format(CultureInfo.CurrentCulture, Strings.BotTradeOfferResult, tradeOffer.TradeOfferID, ParseTradeResult.EResult.Accepted, $"{nameof(tradeOffer.OtherSteamID64)} {tradeOffer.OtherSteamID64}: {BotConfig.EAccess.Master}"));
return ParseTradeResult.EResult.Accepted;
}
// Deny trades from bad steamIDs if user wishes to do so
if (ASF.GlobalConfig?.FilterBadBots ?? GlobalConfig.DefaultFilterBadBots) {
bool? isBadBot = await ArchiNet.IsBadBot(tradeOffer.OtherSteamID64).ConfigureAwait(false);