@@ -32,6 +32,8 @@ public CharSequence nickName()
32
32
return nickNames [ordinal ()];
33
33
}
34
34
}
35
+
36
+ private static int times = 0 ;
35
37
36
38
private static boolean checkingIds = false ;
37
39
private static long serverTime = -1 ;
@@ -62,7 +64,7 @@ private static void queryEnergyRanking(ClassLoader loader, String startPoint)
62
64
String userId = jo .getString ("userId" );
63
65
if (optBoolean && !userId .equals (selfId ))
64
66
{
65
- canCollectEnergy (loader , userId );
67
+ canCollectEnergy (loader , userId , true );
66
68
}else
67
69
{
68
70
Config .getNameById (userId );
@@ -90,6 +92,7 @@ private static void canCollectSelfEnergy(ClassLoader loader)
90
92
long end = System .currentTimeMillis ();
91
93
if (s == null )
92
94
{
95
+ Thread .sleep (RandomUtils .delay ());
93
96
start = System .currentTimeMillis ();
94
97
s = AntForestRpcCall .rpcCall_queryNextAction (loader , "" );
95
98
end = System .currentTimeMillis ();
@@ -104,6 +107,8 @@ private static void canCollectSelfEnergy(ClassLoader loader)
104
107
jo = jo .getJSONObject ("userEnergy" );
105
108
selfId = jo .getString ("userId" );
106
109
String selfName = jo .getString ("displayName" );
110
+ if (selfName == null || selfName .isEmpty ())
111
+ selfName = "我" ;
107
112
Config .putIdMap (selfId , selfName );
108
113
Log .recordLog ("进入【" + selfName + "】的蚂蚁森林" , "" );
109
114
Config .saveIdMap ();
@@ -124,7 +129,7 @@ private static void canCollectSelfEnergy(ClassLoader loader)
124
129
if (Config .getDontCollectList ().contains (selfId ))
125
130
break ;
126
131
long produceTime = jo .getLong ("produceTime" );
127
- if (produceTime - serverTime < Config .timeInterval ())
132
+ if (produceTime - serverTime < Config .checkInterval ())
128
133
execute (loader , selfName , selfId , null , bubbleId , produceTime );
129
134
else
130
135
setLaterTime (produceTime );
@@ -135,30 +140,28 @@ private static void canCollectSelfEnergy(ClassLoader loader)
135
140
{
136
141
Log .recordLog (jo .getString ("resultDesc" ), s );
137
142
}
138
- if (Statistics . canReceiveForestTaskAwardToday () && Config . receiveForestTaskAward () )
143
+ if (times == 0 )
139
144
{
140
145
receiveTaskAward (loader );
141
- Statistics .receiveForestTaskAwardToday ();
142
- }
143
- if (Statistics .canWaterFriendListToday ())
144
- {
145
146
for (int i = 0 ; i < Config .getWaterFriendList ().size (); i ++)
146
147
{
148
+ String uid = Config .getWaterFriendList ().get (i );
149
+ if (selfId .equals (uid )) continue ;
147
150
int waterCount = Config .getWaterCountList ().get (i );
148
151
if (waterCount <= 0 ) continue ;
149
152
if (waterCount > 3 ) waterCount = 3 ;
150
- waterFriendEnergy (loader , Config . getWaterFriendList (). get ( i ) , waterCount );
153
+ waterFriendEnergy (loader , uid , waterCount );
151
154
}
152
- Statistics .waterFriendListToday ();
153
155
}
154
156
}catch (Throwable t )
155
157
{
156
158
Log .i (TAG , "canCollectSelfEnergy err:" );
157
159
Log .printStackTrace (TAG , t );
158
160
}
161
+ times = (times + 1 ) % (3600_000 / Config .checkInterval ());
159
162
}
160
163
161
- private static void canCollectEnergy (ClassLoader loader , String userId )
164
+ private static void canCollectEnergy (ClassLoader loader , String userId , boolean laterCollect )
162
165
{
163
166
try
164
167
{
@@ -176,11 +179,11 @@ private static void canCollectEnergy(ClassLoader loader, String userId)
176
179
JSONArray jaBubbles = jo .getJSONArray ("bubbles" );
177
180
jo = jo .getJSONObject ("userEnergy" );
178
181
String userName = jo .getString ("displayName" );
182
+ if (userName == null || userName .isEmpty ())
183
+ userName = "*null*" ;
179
184
String loginId = userName ;
180
185
if (jo .has ("loginId" ))
181
186
loginId += "(" + jo .getString ("loginId" ) + ")" ;
182
- if (loginId == null || loginId .isEmpty ())
183
- loginId = "*null*" ;
184
187
Config .putIdMap (userId , loginId );
185
188
Log .recordLog ("进入【" + loginId + "】的蚂蚁森林" , "" );
186
189
Config .saveIdMap ();
@@ -212,10 +215,10 @@ private static void canCollectEnergy(ClassLoader loader, String userId)
212
215
break ;
213
216
214
217
case WAITING :
215
- if (Config .getDontCollectList ().contains (userId ))
218
+ if (! laterCollect || Config .getDontCollectList ().contains (userId ))
216
219
break ;
217
220
long produceTime = jo .getLong ("produceTime" );
218
- if (produceTime - serverTime < Config .timeInterval ())
221
+ if (produceTime - serverTime < Config .checkInterval ())
219
222
execute (loader , userName , userId , bizNo , bubbleId , produceTime );
220
223
else
221
224
setLaterTime (produceTime );
@@ -235,7 +238,7 @@ private static void canCollectEnergy(ClassLoader loader, String userId)
235
238
}
236
239
if (helped > 0 )
237
240
{
238
- canCollectEnergy (loader , userId );
241
+ canCollectEnergy (loader , userId , false );
239
242
}
240
243
collectedEnergy += collected ;
241
244
}else
@@ -249,7 +252,7 @@ private static void canCollectEnergy(ClassLoader loader, String userId)
249
252
}
250
253
}
251
254
252
- private static synchronized int collectEnergy (ClassLoader loader , String userId , long bubbleId , String userName , String bizNo )
255
+ private static int collectEnergy (ClassLoader loader , String userId , long bubbleId , String userName , String bizNo )
253
256
{
254
257
int collected = 0 ;
255
258
try
@@ -566,11 +569,11 @@ public void run()
566
569
Log .i (TAG , "服务器时间:" + serverTime + ",本地减服务器时间差:" + offsetTime );
567
570
jo = jo .getJSONObject ("userEnergy" );
568
571
String userName = jo .getString ("displayName" );
572
+ if (userName == null || userName .isEmpty ())
573
+ userName = "*null*" ;
569
574
String loginId = userName ;
570
575
if (jo .has ("loginId" ))
571
576
loginId += "(" + jo .getString ("loginId" ) + ")" ;
572
- if (loginId == null || loginId .isEmpty ())
573
- loginId = "*null*" ;
574
577
Config .putIdMap (unknownIds [i ], loginId );
575
578
Log .recordLog ("进入【" + loginId + "】的蚂蚁森林" , "" );
576
579
Config .saveIdMap ();
@@ -589,11 +592,14 @@ public void run()
589
592
590
593
public static void execute (ClassLoader loader , String userName , String userId , String bizNo , long bubbleId , long produceTime )
591
594
{
592
- BubbleTimerTask btt = new BubbleTimerTask (loader , userName , userId , bizNo , bubbleId , produceTime );
593
- long delay = btt .getDelayTime ();
594
- btt .start ();
595
- collectTaskCount ++;
596
- Log .recordLog (delay / 1000 + "秒后尝试收取能量" , "" );
595
+ for (int i = Config .threadCount (); i > 0 ; i --)
596
+ {
597
+ BubbleTimerTask btt = new BubbleTimerTask (loader , userName , userId , bizNo , bubbleId , produceTime );
598
+ long delay = btt .getDelayTime ();
599
+ btt .start ();
600
+ collectTaskCount ++;
601
+ Log .recordLog (delay / 1000 + "秒后尝试收取能量" , "" );
602
+ }
597
603
}
598
604
599
605
public static class BubbleTimerTask extends Thread
@@ -637,7 +643,8 @@ public void run()
637
643
{
638
644
collected = collectEnergy (loader , userId , bubbleId , userName , bizNo );
639
645
if (collected > 0 ) break ;
640
- Thread .sleep (Config .collectInterval ());
646
+ if (Config .collectInterval () > 0 )
647
+ Thread .sleep (Config .collectInterval ());
641
648
}
642
649
}catch (Throwable t )
643
650
{
0 commit comments