Skip to content

Commit

Permalink
v2.4.5-pre7
Browse files Browse the repository at this point in the history
+ Improved tool selection
+ AutoUpdater shows latest changelogs now
  • Loading branch information
onixiya1337 committed Feb 16, 2024
1 parent 1935880 commit bcabbb8
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 51 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ baseGroup=com.jelly.farmhelperv2
mcVersion=1.8.9
modid=farmhelperv2
modName=FarmHelper
version=2.4.5-pre6
version=2.4.5-pre7
shouldRelease=true
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
import com.google.gson.JsonObject;
import com.jelly.farmhelperv2.event.ClickedBlockEvent;
import com.jelly.farmhelperv2.event.ReceivePacketEvent;
import com.jelly.farmhelperv2.failsafe.Failsafe;
import com.jelly.farmhelperv2.failsafe.FailsafeManager;
import com.jelly.farmhelperv2.failsafe.impl.LowerAvgBpsFailsafe;
import com.jelly.farmhelperv2.feature.IFeature;
import com.jelly.farmhelperv2.handler.GameStateHandler;
Expand Down
104 changes: 57 additions & 47 deletions src/main/java/com/jelly/farmhelperv2/gui/AutoUpdaterGUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public class AutoUpdaterGUI extends GuiScreen {
private static boolean shownGui = false;
private static String latestVersion = "";
private static List<String> releaseMessage = new ArrayList<>();
private static List<String> previousReleasesMessage = new ArrayList<>();
private static List<String> splitReleaseMessage = new ArrayList<>();
private static String downloadURL = null;
private final ExecutorService executor = Executors.newSingleThreadExecutor();
Expand Down Expand Up @@ -74,63 +75,72 @@ public static void getLatestVersion() { // don't skid or i'll find you - yuro
connection.setRequestMethod("GET");

int responseCode = connection.getResponseCode();
if (responseCode != HttpURLConnection.HTTP_OK) {
System.out.println("Failed to fetch data from GitHub API. Response code: " + responseCode);
return;
}

JsonArray releasesArray = getJsonElements(connection);
JsonObject latestRelease = null;
int releaseCount = 0;
for (JsonElement release : releasesArray) {
JsonObject releaseObject = release.getAsJsonObject();
if (latestRelease == null || releaseObject.get("created_at").getAsString().compareTo(latestRelease.get("created_at").getAsString()) > 0) {
latestRelease = releaseObject;
}
if (releaseCount < 10) {
previousReleasesMessage.add("§3" + releaseObject.get("tag_name").getAsString() + "\n" + releaseObject.get("body").getAsString() + "\n");
releaseCount++;
}
}

if (responseCode == HttpURLConnection.HTTP_OK) {
JsonArray releasesArray = getJsonElements(connection);
if (latestRelease == null) {
System.out.println("No releases found for the repository.");
return;
}

JsonObject latestRelease = null;
boolean isPreRelease = latestRelease.get("prerelease").getAsBoolean();
String selectedReleaseMessage = "";
if (isPreRelease && !FarmHelperConfig.autoUpdaterDownloadBetaVersions) {
// If the latest version is pre-release and the user doesn't want to get pre-releases, find the latest release version
for (JsonElement release : releasesArray) {
JsonObject releaseObject = release.getAsJsonObject();
if (latestRelease == null || releaseObject.get("created_at").getAsString().compareTo(latestRelease.get("created_at").getAsString()) > 0) {
latestRelease = releaseObject;
if (!releaseObject.get("prerelease").getAsBoolean()) {
latestVersion = releaseObject.get("tag_name").getAsString();
System.out.println("Latest full release: " + latestVersion);
selectedReleaseMessage = releaseObject.get("body").getAsString();
downloadURL = releaseObject.get("assets").getAsJsonArray().get(0).getAsJsonObject().get("browser_download_url").getAsString();
break;
}
}
} else {
// If the latest version is release or the user wants to get pre-release, get the latest version
latestVersion = latestRelease.get("tag_name").getAsString();
System.out.println("Latest release: " + latestVersion);
selectedReleaseMessage = latestRelease.get("body").getAsString();
downloadURL = latestRelease.get("assets").getAsJsonArray().get(0).getAsJsonObject().get("browser_download_url").getAsString();
}

if (latestRelease != null) {
boolean isPreRelease = latestRelease.get("prerelease").getAsBoolean();
String message = "";
if (isPreRelease && !FarmHelperConfig.autoUpdaterDownloadBetaVersions) {
// If the latest version is pre-release and the user doesn't want to get pre-releases, find the latest release version
for (JsonElement release : releasesArray) {
JsonObject releaseObject = release.getAsJsonObject();
if (!releaseObject.get("prerelease").getAsBoolean()) {
latestVersion = releaseObject.get("tag_name").getAsString();
System.out.println("Latest full release: " + latestVersion);
message = releaseObject.get("body").getAsString();
downloadURL = releaseObject.get("assets").getAsJsonArray().get(0).getAsJsonObject().get("browser_download_url").getAsString();
break;
}
}
} else {
// If the latest version is release or the user wants to get pre-release, get the latest version
latestVersion = latestRelease.get("tag_name").getAsString();
System.out.println("Latest release: " + latestVersion);
message = latestRelease.get("body").getAsString();
downloadURL = latestRelease.get("assets").getAsJsonArray().get(0).getAsJsonObject().get("browser_download_url").getAsString();
}
isOutdated = isOutdated();

isOutdated = isOutdated();
if (!isOutdated) {
System.out.println("Farm Helper is up to date!");
return;
}

if (isOutdated) {
if (message.isEmpty()) {
releaseMessage = Arrays.asList("\nWell... We forgot to add something to the changelog. Oops. Just umm... update the mod I guess? \n \n".split("\n"));
return;
}
String cleanedMessage = "\n" + message
.replaceAll("\r", "")
.replace("+ ", "§a+ ")
.replace("= ", "§f= ")
.replace("- ", "§c- ") + " \n \n"; // fix for top and bottom padding
releaseMessage = Arrays.asList(cleanedMessage.split("\n"));
} else {
System.out.println("Farm Helper is up to date!");
}
} else {
System.out.println("No releases found for the repository.");
}
} else {
System.out.println("Failed to fetch data from GitHub API. Response code: " + responseCode);
if (selectedReleaseMessage.isEmpty()) {
releaseMessage = Arrays.asList("\nWell... We forgot to add something to the changelog. Oops. Just umm... update the mod I guess? \n \n".split("\n"));
return;
}
selectedReleaseMessage += "\n\n§6Latest changelogs: \n\n" + String.join("\n", previousReleasesMessage);
String cleanedMessage = "\n" + selectedReleaseMessage
.replaceAll("\r", "")
.replace("+ ", "§a+ ")
.replace("= ", "§7= ")
.replace("\n- ", "\n§c- ")
.replace("Changelog:", "")
+ " \n \n"; // fix for top and bottom padding
releaseMessage = Arrays.asList(cleanedMessage.split("\n"));
} catch (IOException e) {
e.printStackTrace();
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/com/jelly/farmhelperv2/util/PlayerUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,11 @@ public static void getTool() {
changeItemEveryClock.schedule(1_500L);
int id = PlayerUtils.getFarmingTool(MacroHandler.getInstance().getCrop(), true, false);
if (id == -1) {
LogUtils.sendDebug("No tool found!");
LogUtils.sendDebug("No tool found! Trying to find any tool.");
id = PlayerUtils.getFarmingTool(MacroHandler.getInstance().getCrop(), true, true);
}
if (id == -1) {
LogUtils.sendError("No tool found!");
return;
}
LogUtils.sendDebug("Tool id: " + id + " current item: " + mc.thePlayer.inventory.currentItem);
Expand Down

0 comments on commit bcabbb8

Please sign in to comment.