Skip to content

Commit

Permalink
合并来自cwj851的pr,优化异常判断;调整送道具送麦子间隔;增加自动完成神奇物种[送好友卡片]任务。零零散散修复了一些问题,添加了一些功能。
Browse files Browse the repository at this point in the history
  • Loading branch information
constanline committed Sep 7, 2023
1 parent 77e8d05 commit d78284d
Show file tree
Hide file tree
Showing 21 changed files with 738 additions and 140 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ android {
minSdk 21
//noinspection ExpiredTargetSdkVersion
targetSdk 29
versionCode 60
versionName "1.1.8-fix1"
versionCode 63
versionName "1.1.9"
}
buildTypes {
release {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1358,7 +1358,7 @@ private static int visitFriend(String userId, int count) {
} else {
Log.recordLog(jo.getString("memo"), jo.toString());
}
Thread.sleep(200);
Thread.sleep(1000L);
}
} else {
Log.recordLog(jo.getString("memo"), s);
Expand Down
87 changes: 86 additions & 1 deletion app/src/main/java/pansong291/xposed/quickenergy/AntForest.java
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ public void run() {
}
if (Config.antdodoCollect()) {
antdodoCollect();
antdodoReceiveTaskAward();
antdodoPropList();
}
if (!Config.whoYouWantGiveTo().isEmpty()
&& !FriendIdMap.currentUid.equals(Config.whoYouWantGiveTo().get(0))) {
Expand Down Expand Up @@ -1169,7 +1171,7 @@ private static void giveProp(String targetUserId) {
} else {
Log.recordLog(jo.getString("resultDesc"), jo.toString());
}
Thread.sleep(200);
Thread.sleep(1000L);
if (holdsNum > 1 || forestPropVOList.length() > 1) {
giveProp(targetUserId);
}
Expand Down Expand Up @@ -1286,6 +1288,89 @@ private static void collectAnimalCard() {
}
}

private static void antdodoReceiveTaskAward() {
try {
String s = AntForestRpcCall.antdodoTaskList();
JSONObject jo = new JSONObject(s);
if ("SUCCESS".equals(jo.getString("resultCode"))) {
JSONArray taskGroupInfoList = jo.getJSONObject("data").optJSONArray("taskGroupInfoList");
if (taskGroupInfoList == null)
return;
for (int i = 0; i < taskGroupInfoList.length(); i++) {
JSONObject antdodoTask = taskGroupInfoList.getJSONObject(i);
JSONArray taskInfoList = antdodoTask.getJSONArray("taskInfoList");
for (int j = 0; j < taskInfoList.length(); j++) {
JSONObject taskInfo = taskInfoList.getJSONObject(j);
JSONObject taskBaseInfo = taskInfo.getJSONObject("taskBaseInfo");
JSONObject bizInfo = new JSONObject(taskBaseInfo.getString("bizInfo"));
String taskType = taskBaseInfo.getString("taskType");
String taskTitle = bizInfo.optString("taskTitle", taskType);
String awardCount = bizInfo.optString("awardCount", "1");
String sceneCode = taskBaseInfo.getString("sceneCode");
String taskStatus = taskBaseInfo.getString("taskStatus");
if (TaskStatus.FINISHED.name().equals(taskStatus)) {
JSONObject joAward = new JSONObject(
AntForestRpcCall.antdodoReceiveTaskAward(sceneCode, taskType));
if (joAward.getBoolean("success"))
Log.forest("任务奖励🎖️[" + taskTitle + "]#" + awardCount + "个");
else
Log.recordLog("领取失败," + s, joAward.toString());
} else if (TaskStatus.TODO.name().equals(taskStatus)) {
if ("SEND_FRIEND_CARD".equals(taskType)) {
JSONObject joFinishTask = new JSONObject(
AntForestRpcCall.antdodoFinishTask(sceneCode, taskType));
if (joFinishTask.getBoolean("success")) {
Log.forest("物种任务🧾️[" + taskTitle + "]");
antdodoReceiveTaskAward();
return;
} else {
Log.recordLog("完成任务失败," + taskTitle);
}
}
}
}
}
} else {
Log.recordLog(jo.getString("resultDesc"), s);
}
} catch (Throwable t) {
Log.i(TAG, "antdodoReceiveTaskAward err:");
Log.printStackTrace(TAG, t);
}
}

private static void antdodoPropList() {
try {
JSONObject jo = new JSONObject(AntForestRpcCall.antdodoPropList());
if ("SUCCESS".equals(jo.getString("resultCode"))) {
JSONArray propList = jo.getJSONObject("data").optJSONArray("propList");
for (int i = 0; i < propList.length(); i++) {
JSONObject prop = propList.getJSONObject(i);
String propType = prop.getString("propType");
if ("COLLECT_TIMES_7_DAYS".equals(propType)) {
JSONArray propIdList = prop.getJSONArray("propIdList");
String propId = propIdList.getString(0);
String propName = prop.getJSONObject("propConfig").getString("propName");
jo = new JSONObject(AntForestRpcCall.antdodoConsumeProp(propId, propType));
if ("SUCCESS".equals(jo.getString("resultCode"))) {
JSONObject useResult = jo.getJSONObject("data").getJSONObject("useResult");
JSONObject animal = useResult.getJSONObject("animal");
String ecosystem = animal.getString("ecosystem");
String name = animal.getString("name");
Log.forest("使用道具🎭[" + propName + "]#" + ecosystem + "-" + name);
} else {
Log.recordLog(jo.getString("resultDesc"), jo.toString());
}
Thread.sleep(1000L);
}
}
}
} catch (Throwable th) {
Log.i(TAG, "antdodoPropList err:");
Log.printStackTrace(TAG, th);
}
}

/* 巡护保护地 */
private static void UserPatrol() {
try {
Expand Down
47 changes: 47 additions & 0 deletions app/src/main/java/pansong291/xposed/quickenergy/AntOcean.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import pansong291.xposed.quickenergy.util.FriendIdMap;
import pansong291.xposed.quickenergy.util.Log;
import pansong291.xposed.quickenergy.AntFarm.TaskStatus;
import pansong291.xposed.quickenergy.util.StringUtil;

/**
* @author Constanline
Expand Down Expand Up @@ -276,6 +277,48 @@ private static void queryOceanPropList() {
}
}

private static void switchOceanChapter() {
String s = AntOceanRpcCall.queryOceanChapterList();
try {
JSONObject jo = new JSONObject(s);
if ("SUCCESS".equals(jo.getString("resultCode"))) {
String currentChapterCode = jo.getString("currentChapterCode");
JSONArray chapterVOs = jo.getJSONArray("userChapterDetailVOList");
boolean isFinish = false;
String dstChapterCode = "";
String dstChapterName = "";
for (int i = 0; i < chapterVOs.length(); i++) {
JSONObject chapterVO = chapterVOs.getJSONObject(i);
int repairedSeaAreaNum = chapterVO.getInt("repairedSeaAreaNum");
int seaAreaNum = chapterVO.getInt("seaAreaNum");
if (chapterVO.getString("chapterCode").equals(currentChapterCode)) {
isFinish = repairedSeaAreaNum >= seaAreaNum;
} else {
if (repairedSeaAreaNum >= seaAreaNum || !chapterVO.getBoolean("chapterOpen")) {
continue;
}
dstChapterName = chapterVO.getString("chapterName");
dstChapterCode = chapterVO.getString("chapterCode");
}
}
if (isFinish && !StringUtil.isEmpty(dstChapterCode)) {
s = AntOceanRpcCall.switchOceanChapter(dstChapterCode);
jo = new JSONObject(s);
if ("SUCCESS".equals(jo.getString("resultCode"))) {
Log.forest("神奇海洋🐳切换到[" + dstChapterName + "]系列");
} else {
Log.i(TAG, jo.getString("resultDesc"));
}
}
} else {
Log.i(TAG, jo.getString("resultDesc"));
}
} catch (Throwable t) {
Log.i(TAG, "queryUserRanking err:");
Log.printStackTrace(TAG, t);
}
}

private static void querySeaAreaDetailList() {
try {
String s = AntOceanRpcCall.querySeaAreaDetailList();
Expand Down Expand Up @@ -318,6 +361,10 @@ private static void queryMiscInfo() {
if (homeTipsRefresh.optBoolean("fishCanBeCombined") || homeTipsRefresh.optBoolean("canBeRepaired")) {
querySeaAreaDetailList();
}
//此处不确定,因为修复完成好像也会返回false
if (homeTipsRefresh.optBoolean("currentChapterFixed")) {
switchOceanChapter();
}
} else {
Log.i(TAG, jo.getString("resultDesc"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public class AntOrchard {
public static void start() {
if (!Config.antOrchard())
return;

PluginUtils.invoke(AntOrchard.class, PluginUtils.PluginAction.START);
new Thread() {
@Override
Expand Down
Loading

0 comments on commit d78284d

Please sign in to comment.