diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 639aa5d06..2dcb28576 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,9 +39,11 @@ jobs: buildToolsVersion: 31.0.0 - name: Upload to Release Action - uses: Shopify/upload-to-release@v1.0.1 + uses: termux/upload-release-action@v4.1.0 with: - name: xqe-sesame-${{ github.event.release.tag_name }}.apk - path: ${{ steps.sign_app.outputs.signedFile }} - repo-token: ${{ github.token }} - content-type: application/zip + asset_name: xqe-sesame-${{ github.event.release.tag_name }}.apk + file: ${{ steps.sign_app.outputs.signedFile }} + repo_token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ github.ref }} + overwrite: true + checksums: sha256 diff --git a/app/build.gradle b/app/build.gradle index 1b4f11472..545ac2703 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { //noinspection ExpiredTargetSdkVersion targetSdk 29 versionCode 71 - versionName "1.2.3-beta12" + versionName "1.2.3-beta14" } buildTypes { release { diff --git a/app/src/main/java/pansong291/xposed/quickenergy/AntBookRead.java b/app/src/main/java/pansong291/xposed/quickenergy/AntBookRead.java index 614135179..53341754f 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/AntBookRead.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/AntBookRead.java @@ -2,6 +2,7 @@ import org.json.JSONArray; import org.json.JSONObject; +import pansong291.xposed.quickenergy.data.RuntimeInfo; import pansong291.xposed.quickenergy.hook.AntBookReadRpcCall; import pansong291.xposed.quickenergy.util.Config; import pansong291.xposed.quickenergy.util.Log; @@ -15,6 +16,12 @@ public static void start() { if (!Config.antBookRead()) return; + long executeTime = RuntimeInfo.getInstance().getLong("consumeGold", 0); + if (System.currentTimeMillis() - executeTime < 21600000) { + return; + } + RuntimeInfo.getInstance().put("consumeGold", System.currentTimeMillis()); + new Thread() { @Override public void run() { diff --git a/app/src/main/java/pansong291/xposed/quickenergy/AntFarm.java b/app/src/main/java/pansong291/xposed/quickenergy/AntFarm.java index 9cca2a470..c43c70c93 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/AntFarm.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/AntFarm.java @@ -52,9 +52,9 @@ public CharSequence nickName() { } public enum GameType { - starGame, jumpGame, flyGame; + starGame, jumpGame, flyGame, hitGame; - public static final CharSequence[] gameNames = { "星星球", "登山赛", "飞行赛" }; + public static final CharSequence[] gameNames = { "星星球", "登山赛", "飞行赛", "欢乐揍小鸡" }; public CharSequence gameName() { return gameNames[ordinal()]; @@ -140,9 +140,13 @@ public void run() { harvestBenevolenceScore = joFarmVO.getDouble("harvestBenevolenceScore"); parseSyncAnimalStatusResponse(joFarmVO.toString()); userId = joFarmVO.getJSONObject("masterUserInfoVO").getString("userId"); - JSONArray cuisineList = jo.getJSONArray("cuisineList"); - if (!AnimalFeedStatus.SLEEPY.name().equals(ownerAnimal.animalFeedStatus)) - useFarmFood(cuisineList); + + if (Config.useSpecialFood()) { + JSONArray cuisineList = jo.getJSONArray("cuisineList"); + if (!AnimalFeedStatus.SLEEPY.name().equals(ownerAnimal.animalFeedStatus)) + useFarmFood(cuisineList); + } + if (jo.has("lotteryPlusInfo")) { drawLotteryPlus(jo.getJSONObject("lotteryPlusInfo")); } @@ -234,6 +238,7 @@ public void run() { recordFarmGame(GameType.starGame); recordFarmGame(GameType.jumpGame); recordFarmGame(GameType.flyGame); + recordFarmGame(GameType.hitGame); } if (Config.kitchen()) { @@ -695,8 +700,8 @@ private static void recordFarmGame(GameType gameType) { JSONArray awardInfos = jo.getJSONArray("awardInfos"); StringBuilder award = new StringBuilder(); for (int i = 0; i < awardInfos.length(); i++) { - jo = awardInfos.getJSONObject(i); - award.append(jo.getString("awardName")).append("*").append(jo.getInt("awardCount")); + JSONObject awardInfo = awardInfos.getJSONObject(i); + award.append(awardInfo.getString("awardName")).append("*").append(awardInfo.getInt("awardCount")); } if (jo.has("receiveFoodCount")) { award.append(";肥料*").append(jo.getString("receiveFoodCount")); @@ -799,8 +804,10 @@ private static void receiveFarmTaskAward() { jo = new JSONObject(s); memo = jo.getString("memo"); if ("SUCCESS".equals(memo)) { - foodStock = jo.getInt("foodStock"); - Log.farm("领取奖励🎖️[" + taskTitle + "]#" + jo.getInt("haveAddFoodStock") + "g"); + if (jo.has("foodStock")) { + foodStock = jo.getInt("foodStock"); + Log.farm("领取奖励🎖️[" + taskTitle + "]#" + jo.getInt("haveAddFoodStock") + "g"); + } if (unreceiveTaskAward > 0) unreceiveTaskAward--; } else { diff --git a/app/src/main/java/pansong291/xposed/quickenergy/ConsumeGold.java b/app/src/main/java/pansong291/xposed/quickenergy/ConsumeGold.java index 02e64d796..0ff7efb71 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/ConsumeGold.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/ConsumeGold.java @@ -2,6 +2,7 @@ import org.json.JSONArray; import org.json.JSONObject; +import pansong291.xposed.quickenergy.data.RuntimeInfo; import pansong291.xposed.quickenergy.hook.ConsumeGoldRpcCall; import pansong291.xposed.quickenergy.util.Config; import pansong291.xposed.quickenergy.util.Log; @@ -16,6 +17,12 @@ public static void start() { if (!Config.consumeGold()) return; + long executeTime = RuntimeInfo.getInstance().getLong("consumeGold", 0); + if (System.currentTimeMillis() - executeTime < 21600000) { + return; + } + RuntimeInfo.getInstance().put("consumeGold", System.currentTimeMillis()); + new Thread() { @Override public void run() { diff --git a/app/src/main/java/pansong291/xposed/quickenergy/OmegakoiTown.java b/app/src/main/java/pansong291/xposed/quickenergy/OmegakoiTown.java index c5e6f6bcc..218bff9be 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/OmegakoiTown.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/OmegakoiTown.java @@ -2,6 +2,7 @@ import org.json.JSONArray; import org.json.JSONObject; +import pansong291.xposed.quickenergy.data.RuntimeInfo; import pansong291.xposed.quickenergy.hook.OmegakoiTownRpcCall; import pansong291.xposed.quickenergy.util.Config; import pansong291.xposed.quickenergy.util.Log; @@ -48,6 +49,12 @@ public static void start() { if (!Config.omegakoiTown()) return; + long executeTime = RuntimeInfo.getInstance().getLong("omegakoiTown", 0); + if (System.currentTimeMillis() - executeTime < 21600000) { + return; + } + RuntimeInfo.getInstance().put("omegakoiTown", System.currentTimeMillis()); + new Thread() { @Override public void run() { @@ -82,10 +89,14 @@ private static void getUserTasks() { continue; int amount = task.getJSONObject("reward").getInt("amount"); String itemId = task.getJSONObject("reward").getString("itemId"); - RewardType rewardType = RewardType.valueOf(itemId); - jo = new JSONObject(OmegakoiTownRpcCall.triggerTaskReward(taskId)); - if (jo.getBoolean("success")) { - Log.other("小镇任务🌇[" + name + "]#" + amount + "[" + rewardType.rewardName() + "]"); + try { + RewardType rewardType = RewardType.valueOf(itemId); + jo = new JSONObject(OmegakoiTownRpcCall.triggerTaskReward(taskId)); + if (jo.getBoolean("success")) { + Log.other("小镇任务🌇[" + name + "]#" + amount + "[" + rewardType.rewardName() + "]"); + } + } catch (Throwable th) { + Log.i(TAG, "spec RewardType:" + itemId + ";未知的类型"); } } } diff --git a/app/src/main/java/pansong291/xposed/quickenergy/hook/AntFarmRpcCall.java b/app/src/main/java/pansong291/xposed/quickenergy/hook/AntFarmRpcCall.java index bfc2a3f8e..e2dc41026 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/hook/AntFarmRpcCall.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/hook/AntFarmRpcCall.java @@ -198,6 +198,8 @@ public static int RandomScore(String str) { return RandomUtils.nextInt(150, 170) * 10; } else if ("flyGame".equals(str)) { return RandomUtils.nextInt(5000, 8000); + } else if ("hitGame".equals(str)) { + return RandomUtils.nextInt(60, 100); } else { return 210; } diff --git a/app/src/main/java/pansong291/xposed/quickenergy/hook/XposedHook.java b/app/src/main/java/pansong291/xposed/quickenergy/hook/XposedHook.java index eea863e90..a3c706e8d 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/hook/XposedHook.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/hook/XposedHook.java @@ -85,6 +85,7 @@ public void run() { String targetUid = RpcUtil.getUserId(XposedHook.classLoader); if (targetUid != null) { FriendIdMap.setCurrentUid(targetUid); + Config.shouldReload = true; Statistics.resetToday(); AntForest.checkEnergyRanking(XposedHook.classLoader); diff --git a/app/src/main/java/pansong291/xposed/quickenergy/ui/SettingsActivity.java b/app/src/main/java/pansong291/xposed/quickenergy/ui/SettingsActivity.java index e264a84e8..43a913ed3 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/ui/SettingsActivity.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/ui/SettingsActivity.java @@ -47,7 +47,7 @@ public class SettingsActivity extends Activity { sw_enableStall, sw_stallAutoClose, sw_stallAutoOpen, sw_stallAutoTask, sw_stallReceiveAward, sw_stallOpenType, sw_stallDonate, sw_chickenDiary, sw_collectGiftBox, sw_stallInviteRegister, sw_stallThrowManure, sw_greenFinance, sw_totalCertCount, sw_batchRobEnergy, sw_antBookRead, sw_consumeGold, - sw_omegakoiTown, sw_language_simplified_chinese; + sw_omegakoiTown, sw_language_simplified_chinese, sw_special_food; @Override protected void onCreate(Bundle savedInstanceState) { @@ -186,6 +186,7 @@ private void initSwitch() { sw_receiveFarmToolReward = findViewById(R.id.sw_receiveFarmToolReward); sw_recordFarmGame = findViewById(R.id.sw_recordFarmGame); sw_kitchen = findViewById(R.id.sw_kitchen); + sw_special_food = findViewById(R.id.sw_special_food); sw_useNewEggTool = findViewById(R.id.sw_useNewEggTool); sw_harvestProduce = findViewById(R.id.sw_harvestProduce); sw_donation = findViewById(R.id.sw_donation); @@ -265,6 +266,7 @@ protected void onResume() { sw_receiveFarmToolReward.setChecked(Config.receiveFarmToolReward()); sw_recordFarmGame.setChecked(Config.recordFarmGame()); sw_kitchen.setChecked(Config.kitchen()); + sw_special_food.setChecked(Config.useSpecialFood()); sw_useNewEggTool.setChecked(Config.useNewEggTool()); sw_harvestProduce.setChecked(Config.harvestProduce()); sw_donation.setChecked(Config.donation()); @@ -437,6 +439,10 @@ public void onClick(View v) { Config.setKitchen(sw.isChecked()); break; + case R.id.sw_special_food: + Config.setUseSpecialFood(sw.isChecked()); + break; + case R.id.sw_useNewEggTool: Config.setUseNewEggTool(sw.isChecked()); break; diff --git a/app/src/main/java/pansong291/xposed/quickenergy/util/Config.java b/app/src/main/java/pansong291/xposed/quickenergy/util/Config.java index 0ff5ddd9e..598da9144 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/util/Config.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/util/Config.java @@ -89,6 +89,8 @@ public CharSequence nickName() { public static final String jn_receiveFarmToolReward = "receiveFarmToolReward"; public static final String jn_recordFarmGame = "recordFarmGame"; public static final String jn_kitchen = "kitchen"; + + public static final String jn_useSpecialFood = "useSpecialFood"; public static final String jn_useNewEggTool = "useNewEggTool"; public static final String jn_harvestProduce = "harvestProduce"; public static final String jn_donation = "donation"; @@ -234,6 +236,7 @@ public CharSequence nickName() { private boolean receiveFarmToolReward; private boolean recordFarmGame; private boolean kitchen; + private boolean useSpecialFood; private boolean useNewEggTool; private boolean harvestProduce; private boolean donation; @@ -869,6 +872,15 @@ public static boolean kitchen() { return getConfig().kitchen; } + public static void setUseSpecialFood(boolean b) { + getConfig().useSpecialFood = b; + hasChanged = true; + } + + public static boolean useSpecialFood() { + return getConfig().useSpecialFood; + } + public static void setUseNewEggTool(boolean b) { getConfig().useNewEggTool = b; hasChanged = true; @@ -1451,6 +1463,7 @@ public static Config defInit() { c.receiveFarmToolReward = true; c.recordFarmGame = true; c.kitchen = true; + c.useSpecialFood = false; c.useNewEggTool = true; c.harvestProduce = true; c.donation = true; @@ -1807,6 +1820,8 @@ public static Config json2Config(String json) { config.kitchen = jo.optBoolean(jn_kitchen, true); //Log.i(TAG, jn_kitchen + ":" + config.kitchen); + config.useSpecialFood = jo.optBoolean(jn_useSpecialFood, false); + config.useNewEggTool = jo.optBoolean(jn_useNewEggTool, true); //Log.i(TAG, jn_useNewEggTool + ":" + config.useNewEggTool); @@ -2223,6 +2238,8 @@ public static String config2Json(Config config) { jo.put(jn_kitchen, config.kitchen); + jo.put(jn_useSpecialFood, config.useSpecialFood); + jo.put(jn_useNewEggTool, config.useNewEggTool); jo.put(jn_harvestProduce, config.harvestProduce); diff --git a/app/src/main/java/pansong291/xposed/quickenergy/util/FriendIdMap.java b/app/src/main/java/pansong291/xposed/quickenergy/util/FriendIdMap.java index b013df517..ee047facb 100644 --- a/app/src/main/java/pansong291/xposed/quickenergy/util/FriendIdMap.java +++ b/app/src/main/java/pansong291/xposed/quickenergy/util/FriendIdMap.java @@ -1,5 +1,6 @@ package pansong291.xposed.quickenergy.util; +import pansong291.xposed.quickenergy.AntFarm; import pansong291.xposed.quickenergy.hook.FriendManager; import pansong291.xposed.quickenergy.hook.XposedHook; @@ -23,6 +24,7 @@ public static void setCurrentUid(String uid) { if (currentUid == null || !currentUid.equals(uid)) { currentUid = uid; FriendManager.fillUser(XposedHook.classLoader); + PluginUtils.invoke(FriendIdMap.class, PluginUtils.PluginAction.INIT); } } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 5de75efc0..d2c9b09d8 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -837,6 +837,16 @@ android:minHeight="50dp" android:id="@+id/sw_kitchen" /> + + 读书听书 支小镇 支付宝消费金 + 使用特殊食品 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ff0de1daa..71abdbf4c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -161,5 +161,6 @@ Ant book Read Omegakoi Town Consume Gold + Use Special Food