4
4
using System . Composition ;
5
5
using System . Linq ;
6
6
using System . Threading . Tasks ;
7
- using ArchiSteamFarm ;
7
+ using ArchiSteamFarm . Steam ;
8
+ using ArchiSteamFarm . Steam . Cards ;
9
+ using ArchiSteamFarm . Steam . Data ;
10
+ using ArchiSteamFarm . Steam . Storage ;
8
11
using ArchiSteamFarm . Collections ;
9
- using ArchiSteamFarm . Json ;
10
- using ArchiSteamFarm . Plugins ;
12
+ using ArchiSteamFarm . Core ;
13
+ using ArchiSteamFarm . Plugins . Interfaces ;
11
14
using JetBrains . Annotations ;
12
15
using Newtonsoft . Json ;
13
16
using Newtonsoft . Json . Linq ;
@@ -23,7 +26,7 @@ public class ItemDispenser : IBotTradeOffer, IBotModules {
23
26
24
27
public Version Version => typeof ( ItemDispenser ) . Assembly . GetName ( ) . Version ?? new Version ( "0" ) ;
25
28
26
- public async Task < bool > OnBotTradeOffer ( [ NotNull ] Bot bot , [ NotNull ] Steam . TradeOffer tradeOffer ) {
29
+ public async Task < bool > OnBotTradeOffer ( [ NotNull ] Bot bot , [ NotNull ] TradeOffer tradeOffer ) {
27
30
if ( tradeOffer == null ) {
28
31
ASF . ArchiLogger . LogNullError ( nameof ( tradeOffer ) ) ;
29
32
return false ;
@@ -43,7 +46,7 @@ public async Task<bool> OnBotTradeOffer([NotNull] Bot bot, [NotNull] Steam.Trade
43
46
// If user has a trade hold, we add extra logic
44
47
if ( holdDuration . Value > 0 ) {
45
48
// If trade hold duration exceeds our max, or user asks for cards with short lifespan, reject the trade
46
- if ( ( holdDuration . Value > ( ASF . GlobalConfig ? . MaxTradeHoldDuration ?? 0 ) ) || tradeOffer . ItemsToGiveReadOnly . Any ( item => ( ( item . Type == Steam . Asset . EType . FoilTradingCard ) || ( item . Type == Steam . Asset . EType . TradingCard ) ) && CardsFarmer . SalesBlacklist . Contains ( item . RealAppID ) ) ) {
49
+ if ( ( holdDuration . Value > ( ASF . GlobalConfig ? . MaxTradeHoldDuration ?? 0 ) ) || tradeOffer . ItemsToGiveReadOnly . Any ( item => ( ( item . Type == Asset . EType . FoilTradingCard ) || ( item . Type == Asset . EType . TradingCard ) ) && CardsFarmer . SalesBlacklist . Contains ( item . RealAppID ) ) ) {
47
50
return false ;
48
51
}
49
52
}
@@ -53,7 +56,7 @@ public async Task<bool> OnBotTradeOffer([NotNull] Bot bot, [NotNull] Steam.Trade
53
56
return false ;
54
57
}
55
58
56
- foreach ( Steam . Asset item in tradeOffer . ItemsToGiveReadOnly ) {
59
+ foreach ( Asset item in tradeOffer . ItemsToGiveReadOnly ) {
57
60
if ( ! ItemsToDispense . Any ( sample =>
58
61
( sample . AppID == item . AppID ) &&
59
62
( sample . ContextID == item . ContextID ) &&
@@ -83,7 +86,7 @@ public void OnBotInitModules([NotNull] Bot bot, [CanBeNull] IReadOnlyDictionary<
83
86
84
87
ConcurrentHashSet < DispenseItem > ? dispenseItems ;
85
88
try {
86
- dispenseItems = jToken . Value < JArray > ( ) . ToObject < ConcurrentHashSet < DispenseItem > > ( ) ;
89
+ dispenseItems = jToken . Value < JArray > ( ) ? . ToObject < ConcurrentHashSet < DispenseItem > > ( ) ;
87
90
if ( dispenseItems == null ) {
88
91
bot . ArchiLogger . LogNullError ( nameof ( dispenseItems ) ) ;
89
92
return ;
0 commit comments