aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker
diff options
context:
space:
mode:
authorbowser0000 <bowser0000@gmail.com>2022-04-18 19:13:55 -0400
committerbowser0000 <bowser0000@gmail.com>2022-04-18 19:13:55 -0400
commit9b65362e8e85a8fc783fdb2a1c94f6df51f9450f (patch)
tree929f416461b7df7dcc95246dc5422789008a8bb9 /src/main/java/me/Danker
parent637d39e2dad83b29503a1b12fc8e2f7f9e1489fa (diff)
downloadSkyblockMod-9b65362e8e85a8fc783fdb2a1c94f6df51f9450f.tar.gz
SkyblockMod-9b65362e8e85a8fc783fdb2a1c94f6df51f9450f.tar.bz2
SkyblockMod-9b65362e8e85a8fc783fdb2a1c94f6df51f9450f.zip
Add farming weight to /weight
Also add /we alias
Diffstat (limited to 'src/main/java/me/Danker')
-rw-r--r--src/main/java/me/Danker/commands/WeightCommand.java131
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/SameColourSolver.java1
-rw-r--r--src/main/java/me/Danker/gui/DankerGui.java1
-rw-r--r--src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java1
4 files changed, 128 insertions, 6 deletions
diff --git a/src/main/java/me/Danker/commands/WeightCommand.java b/src/main/java/me/Danker/commands/WeightCommand.java
index 7593f65..b00d881 100644
--- a/src/main/java/me/Danker/commands/WeightCommand.java
+++ b/src/main/java/me/Danker/commands/WeightCommand.java
@@ -1,5 +1,7 @@
package me.Danker.commands;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import me.Danker.DankersSkyblockMod;
import me.Danker.handlers.APIHandler;
@@ -12,21 +14,40 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.MathHelper;
import java.text.NumberFormat;
-import java.util.List;
-import java.util.Locale;
+import java.util.*;
+import java.util.stream.Collectors;
public class WeightCommand extends CommandBase {
+ ArrayList<String> t12Minions = new ArrayList<>(Arrays.asList(
+ "WHEAT_12",
+ "CARROT_12",
+ "POTATO_12",
+ "PUMPKIN_12",
+ "MELON_12",
+ "MUSHROOM_12",
+ "COCOA_12",
+ "CACTUS_12",
+ "SUGAR_CANE_12",
+ "NETHER_WARTS_12"
+ ));
+
@Override
public String getCommandName() {
return "weight";
}
@Override
+ public List<String> getCommandAliases() {
+ return Collections.singletonList("we");
+ }
+
+ @Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " [name] [lily]";
+ return "/" + getCommandName() + " [name] [lily/farming]";
}
public static String usage(ICommandSender arg0) {
@@ -129,6 +150,110 @@ public class WeightCommand extends CommandBase {
DankersSkyblockMod.TYPE_COLOUR + " Catacombs Completion Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(catacombsBaseWeight) + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Catacombs Master Completion Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(catacombsMasterWeight) + "\n" +
DankersSkyblockMod.DELIMITER_COLOUR + " " + EnumChatFormatting.BOLD + "-------------------"));
+ } else if (arg1[1].equalsIgnoreCase("farming")) {
+ String latestProfile = APIHandler.getLatestProfileID(uuid, key);
+ if (latestProfile == null) return;
+
+ String profileURL = "https://api.hypixel.net/skyblock/profile?profile=" + latestProfile + "&key=" + key;
+ System.out.println("Fetching profile...");
+ JsonObject profileResponse = APIHandler.getResponse(profileURL, true);
+ if (!profileResponse.get("success").getAsBoolean()) {
+ String reason = profileResponse.get("cause").getAsString();
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Failed with reason: " + reason));
+ return;
+ }
+
+ JsonObject userObject = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject();
+
+ if (!userObject.has("collection")) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + username + " does not have collection API on."));
+ return;
+ }
+
+ JsonObject multipliers = DankersSkyblockMod.data.get("farmingWeight").getAsJsonObject();
+ JsonObject collections = userObject.get("collection").getAsJsonObject();
+ JsonObject jacob = userObject.has("jacob2") ? userObject.get("jacob2").getAsJsonObject() : null;
+ JsonArray minions = userObject.get("crafted_generators").getAsJsonArray();
+
+ // main weight
+ long wheatColl = collections.has("WHEAT") ? collections.get("WHEAT").getAsLong() < 0 ? collections.get("WHEAT").getAsLong() + 4294967294L : collections.get("WHEAT").getAsLong() : 0;
+ long carrotColl = collections.has("CARROT_ITEM") ? collections.get("CARROT_ITEM").getAsLong() < 0 ? collections.get("CARROT_ITEM").getAsLong() + 4294967294L : collections.get("CARROT_ITEM").getAsLong() : 0;
+ long potatoColl = collections.has("POTATO_ITEM") ? collections.get("POTATO_ITEM").getAsLong() < 0 ? collections.get("POTATO_ITEM").getAsLong() + 4294967294L : collections.get("POTATO_ITEM").getAsLong() : 0;
+ long pumpkinColl = collections.has("PUMPKIN") ? collections.get("PUMPKIN").getAsLong() < 0 ? collections.get("PUMPKIN").getAsLong() + 4294967294L : collections.get("PUMPKIN").getAsLong() : 0;
+ long melonColl = collections.has("MELON") ? collections.get("MELON").getAsLong() < 0 ? collections.get("MELON").getAsLong() + 4294967294L : collections.get("MELON").getAsLong() : 0;
+ long mushroomColl = collections.has("MUSHROOM_COLLECTION") ? collections.get("MUSHROOM_COLLECTION").getAsLong() < 0 ? collections.get("MUSHROOM_COLLECTION").getAsLong() + 4294967294L : collections.get("MUSHROOM_COLLECTION").getAsLong() : 0;
+ long cocoaColl = collections.has("INK_SACK:3") ? collections.get("INK_SACK:3").getAsLong() < 0 ? collections.get("INK_SACK:3").getAsLong() + 4294967294L : collections.get("INK_SACK:3").getAsLong() : 0;
+ long cactusColl = collections.has("CACTUS") ? collections.get("CACTUS").getAsLong() < 0 ? collections.get("CACTUS").getAsLong() + 4294967294L : collections.get("CACTUS").getAsLong() : 0;
+ long caneColl = collections.has("SUGAR_CANE") ? collections.get("SUGAR_CANE").getAsLong() < 0 ? collections.get("SUGAR_CANE").getAsLong() + 4294967294L : collections.get("SUGAR_CANE").getAsLong() : 0;
+ long wartColl = collections.has("NETHER_STALK") ? collections.get("NETHER_STALK").getAsLong() < 0 ? collections.get("NETHER_STALK").getAsLong() + 4294967294L : collections.get("NETHER_STALK").getAsLong() : 0;
+
+ double wheatWeight = Math.round(wheatColl / multipliers.get("wheat").getAsDouble()) / 100D;
+ double carrotWeight = Math.round(carrotColl / multipliers.get("carrot").getAsDouble()) / 100D;
+ double potatoWeight = Math.round(potatoColl / multipliers.get("potato").getAsDouble()) / 100D;
+ double pumpkinWeight = Math.round(pumpkinColl / multipliers.get("pumpkin").getAsDouble()) / 100D;
+ double melonWeight = Math.round(melonColl / multipliers.get("melon").getAsDouble()) / 100D;
+ double mushroomWeight = Math.round(mushroomColl / multipliers.get("mushroom").getAsDouble()) / 100D;
+ double cocoaWeight = Math.round(cocoaColl / multipliers.get("cocoa").getAsDouble()) / 100D;
+ double cactusWeight = Math.round(cactusColl / multipliers.get("cactus").getAsDouble()) / 100D;
+ double caneWeight = Math.round(caneColl / multipliers.get("cane").getAsDouble()) / 100D;
+ double wartWeight = Math.round(wartColl / multipliers.get("wart").getAsDouble()) / 100D;
+
+ // bonus weight
+ double farmingBonus = 0;
+ double anitaBonus = 0;
+ double medalBonus = 0;
+ double minionBonus = 0;
+ if (jacob != null) {
+ // farming cap
+ double farmingXP = userObject.get("experience_skill_farming").getAsDouble();
+ int cap = jacob.get("perks").getAsJsonObject().has("farming_level_cap") ? jacob.get("perks").getAsJsonObject().get("farming_level_cap").getAsInt() : 0;
+ if (farmingXP > 111672425D && cap == 10) {
+ farmingBonus = 250D;
+ } else if (farmingXP > 55172425) {
+ farmingBonus = 100D;
+ }
+
+ // anita bonus
+ anitaBonus = jacob.get("perks").getAsJsonObject().has("double_drops") ? jacob.get("perks").getAsJsonObject().get("double_drops").getAsInt() * 2D : 0;
+
+ // gold medals
+ int totalGolds = 0;
+ List<String> contests = jacob.get("contests").getAsJsonObject().entrySet().stream()
+ .map(Map.Entry::getKey)
+ .collect(Collectors.toCollection(ArrayList::new));
+
+ // get total golds
+ for (String contest : contests) {
+ JsonObject contestData = jacob.get("contests").getAsJsonObject().get(contest).getAsJsonObject();
+ if (contestData.has("claimed_position")) {
+ if (contestData.get("claimed_position").getAsInt() <= contestData.get("claimed_participants").getAsInt() * 0.05 + 1) totalGolds++;
+ }
+ }
+
+ medalBonus = Math.floor(totalGolds / 50D) * 50D / 2D;
+ medalBonus = MathHelper.clamp_double(medalBonus, 0D, 500D);
+ }
+
+ // t12 minions
+ for (JsonElement minion : minions) {
+ String minionName = minion.getAsString();
+ if (t12Minions.contains(minionName)) minionBonus += 5;
+ }
+
+ double mainWeight = Math.floor((wheatWeight + carrotWeight + potatoWeight + pumpkinWeight + melonWeight + mushroomWeight + cocoaWeight + cactusWeight + caneWeight + wartWeight) * 100D) / 100D;
+ double bonusWeight = farmingBonus + anitaBonus + medalBonus + minionBonus;
+
+ NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.DELIMITER_COLOUR + EnumChatFormatting.BOLD + "-------------------\n" +
+ EnumChatFormatting.AQUA + username + "'s Weight (Farming):\n" +
+ DankersSkyblockMod.TYPE_COLOUR + "Total Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(mainWeight + bonusWeight) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + "Collection Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(mainWeight) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + "Bonus Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(bonusWeight) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + "Farming XP Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(farmingBonus) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + "Anita Bonus Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(anitaBonus) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + "Gold Medal Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(medalBonus) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + "Minion Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(minionBonus) + "\n" +
+ DankersSkyblockMod.DELIMITER_COLOUR + EnumChatFormatting.BOLD + "-------------------"));
} else {
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
}
diff --git a/src/main/java/me/Danker/features/puzzlesolvers/SameColourSolver.java b/src/main/java/me/Danker/features/puzzlesolvers/SameColourSolver.java
index 986e138..a3c1bc1 100644
--- a/src/main/java/me/Danker/features/puzzlesolvers/SameColourSolver.java
+++ b/src/main/java/me/Danker/features/puzzlesolvers/SameColourSolver.java
@@ -8,7 +8,6 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.inventory.GuiChest;
import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
import net.minecraft.inventory.ContainerChest;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
diff --git a/src/main/java/me/Danker/gui/DankerGui.java b/src/main/java/me/Danker/gui/DankerGui.java
index 2900489..4285d16 100644
--- a/src/main/java/me/Danker/gui/DankerGui.java
+++ b/src/main/java/me/Danker/gui/DankerGui.java
@@ -1,6 +1,5 @@
package me.Danker.gui;
-import jdk.nashorn.internal.runtime.regexp.joni.Config;
import me.Danker.commands.ToggleCommand;
import me.Danker.gui.alerts.AlertsGui;
import me.Danker.gui.buttons.FeatureButton;
diff --git a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java
index 7c54c98..6780542 100644
--- a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java
+++ b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java
@@ -1,6 +1,5 @@
package me.Danker.gui.crystalhollowwaypoints;
-import javafx.scene.control.Toggle;
import me.Danker.commands.ToggleCommand;
import me.Danker.features.CrystalHollowWaypoints;
import me.Danker.gui.DankerGui;