aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java4754
1 files changed, 379 insertions, 4375 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
index a21145d1..0ab67595 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
@@ -19,99 +19,50 @@
package io.github.moulberry.notenoughupdates.profileviewer;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Lists;
import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
-import com.mojang.authlib.GameProfile;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.cosmetics.ShaderManager;
import io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField;
import io.github.moulberry.notenoughupdates.profileviewer.bestiary.BestiaryPage;
-import io.github.moulberry.notenoughupdates.profileviewer.trophy.TrophyFishingPage;
-import io.github.moulberry.notenoughupdates.profileviewer.weight.lily.LilyWeight;
-import io.github.moulberry.notenoughupdates.profileviewer.weight.senither.SenitherWeight;
+import io.github.moulberry.notenoughupdates.profileviewer.trophy.TrophyFishPage;
import io.github.moulberry.notenoughupdates.util.Constants;
-import io.github.moulberry.notenoughupdates.util.SBInfo;
import io.github.moulberry.notenoughupdates.util.Utils;
+import java.awt.*;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Optional;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityOtherPlayerMP;
-import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.OpenGlHelper;
-import net.minecraft.client.renderer.RenderHelper;
-import net.minecraft.client.renderer.entity.RenderManager;
-import net.minecraft.client.resources.DefaultPlayerSkin;
import net.minecraft.client.shader.Framebuffer;
import net.minecraft.client.shader.Shader;
-import net.minecraft.enchantment.Enchantment;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.player.EnumPlayerModelParts;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.JsonToNBT;
-import net.minecraft.nbt.NBTException;
-import net.minecraft.nbt.NBTTagByteArray;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.nbt.NBTTagList;
-import net.minecraft.nbt.NBTTagString;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.Matrix4f;
import net.minecraft.util.ResourceLocation;
-import org.apache.commons.lang3.text.WordUtils;
import org.lwjgl.input.Keyboard;
-import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL14;
import org.lwjgl.opengl.GL20;
-import java.awt.*;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.text.NumberFormat;
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Base64;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Set;
-import java.util.TimeZone;
-import java.util.TreeMap;
-import java.util.UUID;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.function.Supplier;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import static io.github.moulberry.notenoughupdates.util.Utils.roundToNearestInt;
-
public class GuiProfileViewer extends GuiScreen {
- public static final ResourceLocation pv_basic = new ResourceLocation("notenoughupdates:pv_basic.png");
- public static final ResourceLocation pv_dung = new ResourceLocation("notenoughupdates:pv_dung.png");
- public static final ResourceLocation pv_extra = new ResourceLocation("notenoughupdates:pv_extra.png");
- public static final ResourceLocation pv_mining = new ResourceLocation("notenoughupdates:pv_mining.png");
- public static final ResourceLocation pv_invs = new ResourceLocation("notenoughupdates:pv_invs.png");
- public static final ResourceLocation pv_pets = new ResourceLocation("notenoughupdates:pv_pets.png");
public static final ResourceLocation pv_dropdown = new ResourceLocation("notenoughupdates:pv_dropdown.png");
public static final ResourceLocation pv_bg = new ResourceLocation("notenoughupdates:pv_bg.png");
public static final ResourceLocation pv_elements = new ResourceLocation("notenoughupdates:pv_elements.png");
@@ -119,168 +70,100 @@ public class GuiProfileViewer extends GuiScreen {
public static final ResourceLocation pv_bingo = new ResourceLocation("notenoughupdates:pv_bingo.png");
public static final ResourceLocation pv_stranded = new ResourceLocation("notenoughupdates:pv_stranded.png");
public static final ResourceLocation pv_unknown = new ResourceLocation("notenoughupdates:pv_unknown.png");
- public static final ResourceLocation resource_packs =
- new ResourceLocation("minecraft:textures/gui/resource_packs.png");
+ public static final ResourceLocation resource_packs = new ResourceLocation("minecraft:textures/gui/resource_packs.png");
public static final ResourceLocation icons = new ResourceLocation("textures/gui/icons.png");
- public static final HashMap<String, HashMap<String, Float>> PET_STAT_BOOSTS =
- new HashMap<String, HashMap<String, Float>>() {{
- put("PET_ITEM_BIG_TEETH_COMMON", new HashMap<String, Float>() {{
- put("CRIT_CHANCE", 5f);
- }});
- put("PET_ITEM_HARDENED_SCALES_UNCOMMON", new HashMap<String, Float>() {{
- put("DEFENCE", 25f);
- }});
- put("PET_ITEM_LUCKY_CLOVER", new HashMap<String, Float>() {{
- put("MAGIC_FIND", 7f);
- }});
- put("PET_ITEM_SHARPENED_CLAWS_UNCOMMON", new HashMap<String, Float>() {{
- put("CRIT_DAMAGE", 15f);
- }});
- }};
- public static final HashMap<String, HashMap<String, Float>> PET_STAT_BOOSTS_MULT =
- new HashMap<String, HashMap<String, Float>>() {{
- put("PET_ITEM_IRON_CLAWS_COMMON", new HashMap<String, Float>() {{
- put("CRIT_DAMAGE", 1.4f);
- put("CRIT_CHANCE", 1.4f);
- }});
- put("PET_ITEM_TEXTBOOK", new HashMap<String, Float>() {{
- put("INTELLIGENCE", 2f);
- }});
- }};
- private static final ResourceLocation CHEST_GUI_TEXTURE =
- new ResourceLocation("textures/gui/container/generic_54.png");
- private static final NumberFormat numberFormat = NumberFormat.getInstance(Locale.US);
- private static final ItemStack DEADBUSH = new ItemStack(Item.getItemFromBlock(Blocks.deadbush));
- private static final ItemStack iron_pick = new ItemStack(Items.iron_pickaxe);
- private static final ItemStack[] BOSS_HEADS = new ItemStack[7];
- private static final String[] dungSkillsName = {"Healer", "Mage", "Berserk", "Archer", "Tank"};
- private static final ItemStack[] dungSkillsStack = {
- new ItemStack(Items.potionitem, 1, 16389),
- new ItemStack(Items.blaze_rod),
- new ItemStack(Items.iron_sword),
- new ItemStack(Items.bow),
- new ItemStack(Items.leather_chestplate)
+ public static final HashMap<String, HashMap<String, Float>> PET_STAT_BOOSTS = new HashMap<String, HashMap<String, Float>>() {
+ {
+ put(
+ "PET_ITEM_BIG_TEETH_COMMON",
+ new HashMap<String, Float>() {
+ {
+ put("CRIT_CHANCE", 5f);
+ }
+ }
+ );
+ put(
+ "PET_ITEM_HARDENED_SCALES_UNCOMMON",
+ new HashMap<String, Float>() {
+ {
+ put("DEFENCE", 25f);
+ }
+ }
+ );
+ put(
+ "PET_ITEM_LUCKY_CLOVER",
+ new HashMap<String, Float>() {
+ {
+ put("MAGIC_FIND", 7f);
+ }
+ }
+ );
+ put(
+ "PET_ITEM_SHARPENED_CLAWS_UNCOMMON",
+ new HashMap<String, Float>() {
+ {
+ put("CRIT_DAMAGE", 15f);
+ }
+ }
+ );
+ }
};
- private static final String[] bossFloorArr = {"Bonzo", "Scarf", "Professor", "Thorn", "Livid", "Sadan", "Necron"};
- private static final String[] bossFloorHeads = {
- "12716ecbf5b8da00b05f316ec6af61e8bd02805b21eb8e440151468dc656549c",
- "7de7bbbdf22bfe17980d4e20687e386f11d59ee1db6f8b4762391b79a5ac532d",
- "9971cee8b833a62fc2a612f3503437fdf93cad692d216b8cf90bbb0538c47dd8",
- "8b6a72138d69fbbd2fea3fa251cabd87152e4f1c97e5f986bf685571db3cc0",
- "c1007c5b7114abec734206d4fc613da4f3a0e99f71ff949cedadc99079135a0b",
- "fa06cb0c471c1c9bc169af270cd466ea701946776056e472ecdaeb49f0f4a4dc",
- "a435164c05cea299a3f016bbbed05706ebb720dac912ce4351c2296626aecd9a"
+ public static final HashMap<String, HashMap<String, Float>> PET_STAT_BOOSTS_MULT = new HashMap<String, HashMap<String, Float>>() {
+ {
+ put(
+ "PET_ITEM_IRON_CLAWS_COMMON",
+ new HashMap<String, Float>() {
+ {
+ put("CRIT_DAMAGE", 1.4f);
+ put("CRIT_CHANCE", 1.4f);
+ }
+ }
+ );
+ put(
+ "PET_ITEM_TEXTBOOK",
+ new HashMap<String, Float>() {
+ {
+ put("INTELLIGENCE", 2f);
+ }
+ }
+ );
+ }
};
- private static final LinkedHashMap<String, ItemStack> dungeonsModeIcons = new LinkedHashMap<String, ItemStack>() {{
- put(
- "catacombs",
- Utils.editItemStackInfo(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager
- .getItemInformation()
- .get("DUNGEON_STONE")), EnumChatFormatting.GRAY + "Normal Mode", true)
- );
- put(
- "master_catacombs",
- Utils.editItemStackInfo(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager
- .getItemInformation()
- .get("MASTER_SKULL_TIER_7")), EnumChatFormatting.GRAY + "Master Mode", true)
- );
- }};
- private static final LinkedHashMap<String, ItemStack> invNameToDisplayMap = new LinkedHashMap<String, ItemStack>() {{
- put(
- "inv_contents",
- Utils.createItemStack(Item.getItemFromBlock(Blocks.chest), EnumChatFormatting.GRAY + "Inventory")
- );
- put(
- "ender_chest_contents",
- Utils.createItemStack(Item.getItemFromBlock(Blocks.ender_chest), EnumChatFormatting.GRAY + "Ender Chest")
- );
- // put("backpack_contents", Utils.createItemStack(Item.getItemFromBlock(Blocks.dropper), EnumChatFormatting.GRAY+"Backpacks"));
- put(
- "backpack_contents",
- Utils.editItemStackInfo(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager
- .getItemInformation()
- .get("JUMBO_BACKPACK")), EnumChatFormatting.GRAY + "Backpacks", true)
- );
- put(
- "personal_vault_contents",
- Utils.editItemStackInfo(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager
- .getItemInformation()
- .get("IRON_CHEST")), EnumChatFormatting.GRAY + "Personal Vault", true)
- );
- put("talisman_bag", Utils.createItemStack(Items.golden_apple, EnumChatFormatting.GRAY + "Accessory Bag"));
- put("wardrobe_contents", Utils.createItemStack(Items.leather_chestplate, EnumChatFormatting.GRAY + "Wardrobe"));
- put("fishing_bag", Utils.createItemStack(Items.fish, EnumChatFormatting.GRAY + "Fishing Bag"));
- put("potion_bag", Utils.createItemStack(Items.potionitem, EnumChatFormatting.GRAY + "Potion Bag"));
- }};
- private static final Pattern DAMAGE_PATTERN = Pattern.compile("^Damage: \\+([0-9]+)");
- private static final Pattern STRENGTH_PATTERN = Pattern.compile("^Strength: \\+([0-9]+)");
- private static final Pattern FISHSPEED_PATTERN = Pattern.compile("^Increases fishing speed by \\+([0-9]+)");
- private static final char[] c = new char[]{'k', 'm', 'b', 't'};
- private static final ExecutorService profileLoader = Executors.newFixedThreadPool(1);
+
+ public static final NumberFormat numberFormat = NumberFormat.getInstance(Locale.US);
+
+ private static final char[] c = new char[] { 'k', 'm', 'b', 't' };
public static ProfileViewerPage currentPage = ProfileViewerPage.BASIC;
- public static HashMap<String, String> MINION_RARITY_TO_NUM = new HashMap<String, String>() {{
- put("COMMON", "0");
- put("UNCOMMON", "1");
- put("RARE", "2");
- put("EPIC", "3");
- put("LEGENDARY", "4");
- put("MYTHIC", "5");
- }};
- private static int floorTime = 7;
+ public static HashMap<String, String> MINION_RARITY_TO_NUM = new HashMap<String, String>() {
+ {
+ put("COMMON", "0");
+ put("UNCOMMON", "1");
+ put("RARE", "2");
+ put("EPIC", "3");
+ put("LEGENDARY", "4");
+ put("MYTHIC", "5");
+ }
+ };
private static int guiLeft;
private static int guiTop;
private static ProfileViewer.Profile profile;
- private final GuiElementTextField playerNameTextField;
- private final HashMap<String, ProfileViewer.Level> levelObjCatas = new HashMap<>();
- private final HashMap<String, ProfileViewer.Level> levelObjhotms = new HashMap<>();
- private final HashMap<String, HashMap<String, ProfileViewer.Level>> levelObjClasseses = new HashMap<>();
- private final GuiElementTextField dungeonLevelTextField = new GuiElementTextField("", GuiElementTextField.SCALE_TEXT);
-
- private final int COLLS_XCOUNT = 5;
- private final int COLLS_YCOUNT = 4;
- private final float COLLS_XPADDING = (190 - COLLS_XCOUNT * 20) / (float) (COLLS_XCOUNT + 1);
- private final float COLLS_YPADDING = (202 - COLLS_YCOUNT * 20) / (float) (COLLS_YCOUNT + 1);
- private final ItemStack fillerStack = new ItemStack(Item.getItemFromBlock(Blocks.stained_glass_pane), 1, 15);
- private final GuiElementTextField inventoryTextField = new GuiElementTextField("", GuiElementTextField.SCALE_TEXT);
- private final HashMap<String, ResourceLocation[]> panoramasMap = new HashMap<>();
+ private static String profileId = null;
+ public final GuiElementTextField playerNameTextField;
+ public final GuiElementTextField inventoryTextField = new GuiElementTextField("", GuiElementTextField.SCALE_TEXT);
+ private final Map<ProfileViewerPage, GuiProfileViewerPage> pages = new HashMap<>();
+ public int sizeX;
+ public int sizeY;
+ public float backgroundRotation = 0;
+ public long currentTime = 0;
+ public long lastTime = 0;
+ public long startTime = 0;
+ public List<String> tooltipToDisplay = null;
Shader blurShaderHorz = null;
Framebuffer blurOutputHorz = null;
Shader blurShaderVert = null;
Framebuffer blurOutputVert = null;
- private int sizeX;
- private int sizeY;
- private float backgroundRotation = 0;
- private long currentTime = 0;
- private long lastTime = 0;
- private long startTime = 0;
- private List<String> tooltipToDisplay = null;
- private static String profileId = null;
private boolean profileDropdownSelected = false;
- private int floorLevelTo = -1;
- private long floorLevelToXP = -1;
- private boolean onMasterMode = false;
- private int selectedPet = -1;
- private int petsPage = 0;
- private List<JsonObject> sortedPets = null;
- private List<ItemStack> sortedPetsStack = null;
- private ItemStack[] bestWeapons = null;
- private ItemStack[] bestRods = null;
- private ItemStack[] armorItems = null;
- private ItemStack[] equipmentItems = null;
- private HashMap<String, ItemStack[][][]> inventoryItems = new HashMap<>();
- private String selectedInventory = "inv_contents";
- private int currentInventoryIndex = 0;
- private int arrowCount = -1;
- private int greenCandyCount = -1;
- private int purpleCandyCount = -1;
- private EntityOtherPlayerMP entityPlayer = null;
- private ResourceLocation playerLocationSkin = null;
- private ResourceLocation playerLocationCape = null;
- private String skinType = null;
- private TreeMap<Integer, Set<String>> topKills = null;
- private TreeMap<Integer, Set<String>> topDeaths = null;
- private int backgroundClickedX = -1;
- private boolean loadingProfile = false;
+
private double lastBgBlurFactor = -1;
private boolean showBingoPage;
@@ -291,15 +174,23 @@ public class GuiProfileViewer extends GuiScreen {
if (profile.getHypixelProfile() != null) {
name = profile.getHypixelProfile().get("displayname").getAsString();
}
- playerNameTextField = new GuiElementTextField(
- name,
- GuiElementTextField.SCALE_TEXT
- );
+ playerNameTextField = new GuiElementTextField(name, GuiElementTextField.SCALE_TEXT);
playerNameTextField.setSize(100, 20);
if (currentPage == ProfileViewerPage.LOADING) {
currentPage = ProfileViewerPage.BASIC;
}
+
+ pages.put(ProfileViewerPage.BASIC, new BasicPage(this));
+ pages.put(ProfileViewerPage.DUNGEON, new DungeonPage(this));
+ pages.put(ProfileViewerPage.EXTRA, new ExtraPage(this));
+ pages.put(ProfileViewerPage.INVENTORIES, new InventoriesPage(this));
+ pages.put(ProfileViewerPage.COLLECTIONS, new CollectionsPage(this));
+ pages.put(ProfileViewerPage.PETS, new PetsPage(this));
+ pages.put(ProfileViewerPage.MINING, new MiningPage(this));
+ pages.put(ProfileViewerPage.BINGO, new BingoPage(this));
+ pages.put(ProfileViewerPage.TROPHY_FISH, new TrophyFishPage(this));
+ pages.put(ProfileViewerPage.BESTIARY, new BestiaryPage(this));
}
private static JsonObject getPetInfo(String pet_name, String rarity) {
@@ -310,8 +201,7 @@ public class GuiProfileViewer extends GuiScreen {
return null;
}
- if (Constants.PETS.has("custom_pet_leveling") &&
- Constants.PETS.getAsJsonObject("custom_pet_leveling").has(pet_name)) {
+ if (Constants.PETS.has("custom_pet_leveling") && Constants.PETS.getAsJsonObject("custom_pet_leveling").has(pet_name)) {
JsonObject pet = Constants.PETS.getAsJsonObject("custom_pet_leveling").getAsJsonObject(pet_name);
if (pet.has("type") && pet.has("pet_levels")) {
int type = pet.get("type").getAsInt();
@@ -342,7 +232,6 @@ public class GuiProfileViewer extends GuiScreen {
} else {
petInfo.add("offset", Constants.PETS.getAsJsonObject("pet_rarity_offset").get(rarity));
}
-
} else {
//System.out.println("Default Path");
petInfo.add("offset", Constants.PETS.getAsJsonObject("pet_rarity_offset").get(rarity));
@@ -351,7 +240,6 @@ public class GuiProfileViewer extends GuiScreen {
}
return petInfo;
-
}
public static PetLevel getPetLevel(String pet_name, String rarity, float exp) {
@@ -381,9 +269,7 @@ public class GuiProfileViewer extends GuiScreen {
level += 1;
}
} else {
-
xpTotal += levels.get(i).getAsFloat();
-
}
}
@@ -414,56 +300,7 @@ public class GuiProfileViewer extends GuiScreen {
double d = ((long) n / 100) / 10.0;
boolean isRound = (d * 10) % 10 == 0;
- return (d < 1000 ?
- ((d > 99.9 || isRound || (!isRound && d > 9.99) ?
- (int) d * 10 / 10 : d + ""
- ) + "" + c[iteration])
- : shortNumberFormat(d, iteration + 1));
- }
-
- public static void drawEntityOnScreen(
- int posX,
- int posY,
- int scale,
- float mouseX,
- float mouseY,
- EntityLivingBase ent
- ) {
- GlStateManager.enableColorMaterial();
- GlStateManager.pushMatrix();
- GlStateManager.translate((float) posX, (float) posY, 50.0F);
- GlStateManager.scale((float) (-scale), (float) scale, (float) scale);
- GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
- float renderYawOffset = ent.renderYawOffset;
- float f1 = ent.rotationYaw;
- float f2 = ent.rotationPitch;
- float f3 = ent.prevRotationYawHead;
- float f4 = ent.rotationYawHead;
- GlStateManager.rotate(135.0F, 0.0F, 1.0F, 0.0F);
- RenderHelper.enableStandardItemLighting();
- GlStateManager.rotate(-135.0F, 0.0F, 1.0F, 0.0F);
- GlStateManager.rotate(25, 1.0F, 0.0F, 0.0F);
- ent.renderYawOffset = (float) Math.atan(mouseX / 40.0F) * 20.0F;
- ent.rotationYaw = (float) Math.atan(mouseX / 40.0F) * 40.0F;
- ent.rotationPitch = -((float) Math.atan(mouseY / 40.0F)) * 20.0F;
- ent.rotationYawHead = ent.rotationYaw;
- ent.prevRotationYawHead = ent.rotationYaw;
- RenderManager rendermanager = Minecraft.getMinecraft().getRenderManager();
- rendermanager.setPlayerViewY(180.0F);
- rendermanager.setRenderShadow(false);
- rendermanager.renderEntityWithPosYaw(ent, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F);
-
- ent.renderYawOffset = renderYawOffset;
- ent.rotationYaw = f1;
- ent.rotationPitch = f2;
- ent.prevRotationYawHead = f3;
- ent.rotationYawHead = f4;
- GlStateManager.popMatrix();
- RenderHelper.disableStandardItemLighting();
- GlStateManager.disableRescaleNormal();
- GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit);
- GlStateManager.disableTexture2D();
- GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit);
+ return d < 1000 ? (isRound || d > 9.99 ? (int) d * 10 / 10 : d + "") + "" + c[iteration] : shortNumberFormat(d, iteration + 1);
}
public static int getGuiLeft() {
@@ -490,7 +327,7 @@ public class GuiProfileViewer extends GuiScreen {
ProfileViewerPage page = currentPage;
if (profile == null) {
page = ProfileViewerPage.INVALID_NAME;
- } else if (profile.getPlayerInformation(null) == null) {
+ } else if (profile.getSkyblockProfiles(null) == null) {
page = ProfileViewerPage.LOADING;
} else if (profile.getLatestProfile() == null) {
page = ProfileViewerPage.NO_SKYBLOCK;
@@ -502,30 +339,26 @@ public class GuiProfileViewer extends GuiScreen {
{
//this is just to cache the guild info
if (profile != null) {
- profile.getGuildInfo(null);
+ profile.getGuildInformation(null);
}
}
this.sizeX = 431;
this.sizeY = 202;
- this.guiLeft = (this.width - this.sizeX) / 2;
- this.guiTop = (this.height - this.sizeY) / 2;
+ guiLeft = (this.width - this.sizeX) / 2;
+ guiTop = (this.height - this.sizeY) / 2;
- boolean bingo = false;
JsonObject currProfileInfo = profile != null ? profile.getProfileInformation(profileId) : null;
if (NotEnoughUpdates.INSTANCE.config.profileViewer.alwaysShowBingoTab) {
showBingoPage = true;
} else {
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
- currProfileInfo.get("game_mode").getAsString().equals("bingo")) {
- showBingoPage = true;
- } else {
- showBingoPage = false;
- }
+ showBingoPage =
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
+ currProfileInfo.get("game_mode").getAsString().equals("bingo");
}
- if (!showBingoPage && currentPage == ProfileViewerPage.BINGO)
- currentPage = ProfileViewerPage.BASIC;
+ if (!showBingoPage && currentPage == ProfileViewerPage.BINGO) currentPage = ProfileViewerPage.BASIC;
super.drawScreen(mouseX, mouseY, partialTicks);
drawDefaultBackground();
@@ -561,38 +394,54 @@ public class GuiProfileViewer extends GuiScreen {
//Render Profile chooser button
renderBlurredBackground(width, height, guiLeft + 2, guiTop + sizeY + 3 + 2, 100 - 4, 20 - 4);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_dropdown);
- Utils.drawTexturedRect(guiLeft, guiTop + sizeY + 3, 100, 20,
- 0, 100 / 200f, 0, 20 / 185f, GL11.GL_NEAREST
- );
- Utils.drawStringCenteredScaledMaxWidth(profileId, Minecraft.getMinecraft().fontRendererObj, guiLeft + 50,
- guiTop + sizeY + 3 + 10, true, 90, new Color(63, 224, 208, 255).getRGB()
+ Utils.drawTexturedRect(guiLeft, guiTop + sizeY + 3, 100, 20, 0, 100 / 200f, 0, 20 / 185f, GL11.GL_NEAREST);
+ Utils.drawStringCenteredScaledMaxWidth(
+ profileId,
+ Minecraft.getMinecraft().fontRendererObj,
+ guiLeft + 50,
+ guiTop + sizeY + 3 + 10,
+ true,
+ 90,
+ new Color(63, 224, 208, 255).getRGB()
);
//ironman icon
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
- currProfileInfo.get("game_mode").getAsString().equals("ironman")) {
+ if (
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
+ currProfileInfo.get("game_mode").getAsString().equals("ironman")
+ ) {
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_ironman);
Utils.drawTexturedRect(guiLeft - 16 - 5, guiTop + sizeY + 5, 16, 16, GL11.GL_NEAREST);
}
//bingo! icon
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
- currProfileInfo.get("game_mode").getAsString().equals("bingo")) {
+ if (
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
+ currProfileInfo.get("game_mode").getAsString().equals("bingo")
+ ) {
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_bingo);
Utils.drawTexturedRect(guiLeft - 16 - 5, guiTop + sizeY + 5, 16, 16, GL11.GL_NEAREST);
}
//stranded icon
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
- currProfileInfo.get("game_mode").getAsString().equals("island")) {
+ if (
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
+ currProfileInfo.get("game_mode").getAsString().equals("island")
+ ) {
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_stranded);
Utils.drawTexturedRect(guiLeft - 16 - 5, guiTop + sizeY + 5, 16, 16, GL11.GL_NEAREST);
}
//icon if game mode is unknown
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
+ if (
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
!currProfileInfo.get("game_mode").getAsString().equals("island") &&
!currProfileInfo.get("game_mode").getAsString().equals("bingo") &&
- !currProfileInfo.get("game_mode").getAsString().equals("ironman")) {
+ !currProfileInfo.get("game_mode").getAsString().equals("ironman")
+ ) {
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_unknown);
Utils.drawTexturedRect(guiLeft - 16 - 5, guiTop + sizeY + 5, 16, 16, GL11.GL_NEAREST);
@@ -600,9 +449,7 @@ public class GuiProfileViewer extends GuiScreen {
//Render Open In Skycrypt button
renderBlurredBackground(width, height, guiLeft + 100 + 6 + 2, guiTop + sizeY + 3 + 2, 100 - 4, 20 - 4);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_dropdown);
- Utils.drawTexturedRect(guiLeft + 100 + 6, guiTop + sizeY + 3, 100, 20,
- 0, 100 / 200f, 0, 20 / 185f, GL11.GL_NEAREST
- );
+ Utils.drawTexturedRect(guiLeft + 100 + 6, guiTop + sizeY + 3, 100, 20, 0, 100 / 200f, 0, 20 / 185f, GL11.GL_NEAREST);
Utils.drawStringCenteredScaledMaxWidth(
"Open in Skycrypt",
Minecraft.getMinecraft().fontRendererObj,
@@ -613,25 +460,39 @@ public class GuiProfileViewer extends GuiScreen {
new Color(63, 224, 208, 255).getRGB()
);
- if (profileDropdownSelected && !profile.getProfileIds().isEmpty() && scaledResolution.getScaleFactor() != 4) {
+ if (profileDropdownSelected && !profile.getProfileNames().isEmpty() && scaledResolution.getScaleFactor() != 4) {
int dropdownOptionSize = scaledResolution.getScaleFactor() == 3 ? 10 : 20;
- int numProfiles = profile.getProfileIds().size();
+ int numProfiles = profile.getProfileNames().size();
int sizeYDropdown = numProfiles * dropdownOptionSize;
renderBlurredBackground(width, height, guiLeft + 2, guiTop + sizeY + 23, 100 - 4, sizeYDropdown - 2);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_dropdown);
- Utils.drawTexturedRect(guiLeft, guiTop + sizeY + 23 - 3, 100, 3,
- 100 / 200f, 1, 0, 3 / 185f, GL11.GL_NEAREST
- );
- Utils.drawTexturedRect(guiLeft, guiTop + sizeY + 23 + sizeYDropdown - 4, 100, 4,
- 100 / 200f, 1, 181 / 185f, 1, GL11.GL_NEAREST
+ Utils.drawTexturedRect(guiLeft, guiTop + sizeY + 23 - 3, 100, 3, 100 / 200f, 1, 0, 3 / 185f, GL11.GL_NEAREST);
+ Utils.drawTexturedRect(
+ guiLeft,
+ guiTop + sizeY + 23 + sizeYDropdown - 4,
+ 100,
+ 4,
+ 100 / 200f,
+ 1,
+ 181 / 185f,
+ 1,
+ GL11.GL_NEAREST
);
- Utils.drawTexturedRect(guiLeft, guiTop + sizeY + 23, 100, sizeYDropdown - 4,
- 100 / 200f, 1, (181 - sizeYDropdown) / 185f, 181 / 185f, GL11.GL_NEAREST
+ Utils.drawTexturedRect(
+ guiLeft,
+ guiTop + sizeY + 23,
+ 100,
+ sizeYDropdown - 4,
+ 100 / 200f,
+ 1,
+ (181 - sizeYDropdown) / 185f,
+ 181 / 185f,
+ GL11.GL_NEAREST
);
- for (int yIndex = 0; yIndex < profile.getProfileIds().size(); yIndex++) {
- String otherProfileId = profile.getProfileIds().get(yIndex);
+ for (int yIndex = 0; yIndex < profile.getProfileNames().size(); yIndex++) {
+ String otherProfileId = profile.getProfileNames().get(yIndex);
Utils.drawStringCenteredScaledMaxWidth(
otherProfileId,
Minecraft.getMinecraft().fontRendererObj,
@@ -642,8 +503,11 @@ public class GuiProfileViewer extends GuiScreen {
new Color(33, 112, 104, 255).getRGB()
);
currProfileInfo = profile.getProfileInformation(otherProfileId);
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
- currProfileInfo.get("game_mode").getAsString().equals("ironman")) {
+ if (
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
+ currProfileInfo.get("game_mode").getAsString().equals("ironman")
+ ) {
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_ironman);
Utils.drawTexturedRect(
@@ -654,8 +518,11 @@ public class GuiProfileViewer extends GuiScreen {
GL11.GL_NEAREST
);
}
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
- currProfileInfo.get("game_mode").getAsString().equals("bingo")) {
+ if (
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
+ currProfileInfo.get("game_mode").getAsString().equals("bingo")
+ ) {
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_bingo);
Utils.drawTexturedRect(
@@ -666,8 +533,11 @@ public class GuiProfileViewer extends GuiScreen {
GL11.GL_NEAREST
);
}
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
- currProfileInfo.get("game_mode").getAsString().equals("island")) {
+ if (
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
+ currProfileInfo.get("game_mode").getAsString().equals("island")
+ ) {
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_stranded);
Utils.drawTexturedRect(
@@ -678,10 +548,13 @@ public class GuiProfileViewer extends GuiScreen {
GL11.GL_NEAREST
);
}
- if (currProfileInfo != null && currProfileInfo.has("game_mode") &&
+ if (
+ currProfileInfo != null &&
+ currProfileInfo.has("game_mode") &&
!currProfileInfo.get("game_mode").getAsString().equals("island") &&
!currProfileInfo.get("game_mode").getAsString().equals("bingo") &&
- !currProfileInfo.get("game_mode").getAsString().equals("ironman")) {
+ !currProfileInfo.get("game_mode").getAsString().equals("ironman")
+ ) {
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().getTextureManager().bindTexture(pv_unknown);
Utils.drawTexturedRect(
@@ -693,172 +566,149 @@ public class GuiProfileViewer extends GuiScreen {
);
}
}
-
}
}
}
GlStateManager.color(1, 1, 1, 1);
- switch (page) {
- case BASIC:
- drawBasicPage(mouseX, mouseY, partialTicks);
- break;
- case DUNGEON:
- drawDungPage(mouseX, mouseY, partialTicks);
- break;
- case EXTRA:
- drawExtraPage(mouseX, mouseY, partialTicks);
- break;
- case INVENTORIES:
- drawInvsPage(mouseX, mouseY);
- break;
- case COLLECTIONS:
- CollectionPage.drawColsPage(mouseX, mouseY, width, height);
- break;
- case PETS:
- drawPetsPage(mouseX, mouseY, partialTicks);
- break;
- case MINING:
- drawMiningPage(mouseX, mouseY, partialTicks);
- break;
- case BINGO:
- BingoPage.renderPage(mouseX, mouseY);
- break;
- case TROPHY_FISH:
- TrophyFishingPage.renderPage(mouseX, mouseY);
- break;
- case BESTIARY:
- BestiaryPage.renderPage(mouseX, mouseY);
- break;
- case LOADING:
- String str = EnumChatFormatting.YELLOW + "Loading player profiles.";
- long currentTimeMod = System.currentTimeMillis() % 1000;
- if (currentTimeMod > 333) {
- if (currentTimeMod < 666) {
- str += ".";
- } else {
- str += "..";
+
+ if (pages.containsKey(page)) {
+ pages.get(page).drawPage(mouseX, mouseY, partialTicks);
+ } else {
+ switch (page) {
+ case LOADING:
+ String str = EnumChatFormatting.YELLOW + "Loading player profiles.";
+ long currentTimeMod = System.currentTimeMillis() % 1000;
+ if (currentTimeMod > 333) {
+ if (currentTimeMod < 666) {
+ str += ".";
+ } else {
+ str += "..";
+ }
}
- }
- Utils.drawStringCentered(str, Minecraft.getMinecraft().fontRendererObj,
- guiLeft + sizeX / 2f, guiTop + 101, true, 0
- );
+ Utils.drawStringCentered(str, Minecraft.getMinecraft().fontRendererObj, guiLeft + sizeX / 2f, guiTop + 101, true, 0);
- //This is just here to inform the player what to do
- //like typing /api new or telling them to go find a psychotherapist
- long timeDiff = System.currentTimeMillis() - startTime;
+ //This is just here to inform the player what to do
+ //like typing /api new or telling them to go find a psychotherapist
+ long timeDiff = System.currentTimeMillis() - startTime;
- if (timeDiff > 20000) {
- Utils.drawStringCentered(
- EnumChatFormatting.YELLOW + "Its taking a while...",
- Minecraft.getMinecraft().fontRendererObj,
- guiLeft + sizeX / 2f,
- guiTop + 111,
- true,
- 0
- );
- Utils.drawStringCentered(
- EnumChatFormatting.YELLOW + "Try \"/api new\".",
- Minecraft.getMinecraft().fontRendererObj,
- guiLeft + sizeX / 2f,
- guiTop + 121,
- true,
- 0
- );
- if (timeDiff > 60000) {
+ if (timeDiff > 20000) {
Utils.drawStringCentered(
- EnumChatFormatting.YELLOW + "Might be hypixel's fault.",
+ EnumChatFormatting.YELLOW + "Its taking a while...",
Minecraft.getMinecraft().fontRendererObj,
guiLeft + sizeX / 2f,
- guiTop + 131,
+ guiTop + 111,
true,
0
);
- if (timeDiff > 180000) {
+ Utils.drawStringCentered(
+ EnumChatFormatting.YELLOW + "Try \"/api new\".",
+ Minecraft.getMinecraft().fontRendererObj,
+ guiLeft + sizeX / 2f,
+ guiTop + 121,
+ true,
+ 0
+ );
+ if (timeDiff > 60000) {
Utils.drawStringCentered(
- EnumChatFormatting.YELLOW + "Wow you're still here?",
+ EnumChatFormatting.YELLOW + "Might be hypixel's fault.",
Minecraft.getMinecraft().fontRendererObj,
guiLeft + sizeX / 2f,
- guiTop + 141,
+ guiTop + 131,
true,
0
);
- if (timeDiff > 360000) {
- long second = (timeDiff / 1000) % 60;
- long minute = (timeDiff / (1000 * 60)) % 60;
- long hour = (timeDiff / (1000 * 60 * 60)) % 24;
-
- String time = String.format("%02d:%02d:%02d", hour, minute, second);
+ if (timeDiff > 180000) {
Utils.drawStringCentered(
- EnumChatFormatting.YELLOW + "You've wasted your time here for: " + time,
+ EnumChatFormatting.YELLOW + "Wow you're still here?",
Minecraft.getMinecraft().fontRendererObj,
guiLeft + sizeX / 2f,
- guiTop + 151,
+ guiTop + 141,
true,
0
);
- Utils.drawStringCentered(
- EnumChatFormatting.YELLOW + "" + EnumChatFormatting.BOLD + "What are you doing with your life?",
- Minecraft.getMinecraft().fontRendererObj,
- guiLeft + sizeX / 2f,
- guiTop + 161,
- true,
- 0
- );
- if (timeDiff > 600000) {
+ if (timeDiff > 360000) {
+ long second = (timeDiff / 1000) % 60;
+ long minute = (timeDiff / (1000 * 60)) % 60;
+ long hour = (timeDiff / (1000 * 60 * 60)) % 24;
+
+ String time = String.format("%02d:%02d:%02d", hour, minute, second);
Utils.drawStringCentered(
- EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "Maniac",
+ EnumChatFormatting.YELLOW + "You've wasted your time here for: " + time,
Minecraft.getMinecraft().fontRendererObj,
guiLeft + sizeX / 2f,
- guiTop + 171,
+ guiTop + 151,
true,
0
);
- if (timeDiff > 1200000) {
+ Utils.drawStringCentered(
+ EnumChatFormatting.YELLOW + "" + EnumChatFormatting.BOLD + "What are you doing with your life?",
+ Minecraft.getMinecraft().fontRendererObj,
+ guiLeft + sizeX / 2f,
+ guiTop + 161,
+ true,
+ 0
+ );
+ if (timeDiff > 600000) {
Utils.drawStringCentered(
- EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "You're a menace to society",
+ EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "Maniac",
Minecraft.getMinecraft().fontRendererObj,
guiLeft + sizeX / 2f,
- guiTop + 181,
+ guiT