aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLulonaut <67191924+Lulonaut@users.noreply.github.com>2022-06-22 14:41:15 +0200
committerGitHub <noreply@github.com>2022-06-22 14:41:15 +0200
commitf34220a92af85a33d979edb24ac5c3e698498fe3 (patch)
treed36bcc12b1fd4116003c1c36cb09666f0e3f36c1
parent439fc22ff04b0f5b0201c2d982bceb18d82fd553 (diff)
downloadNotEnoughUpdates-f34220a92af85a33d979edb24ac5c3e698498fe3.tar.gz
NotEnoughUpdates-f34220a92af85a33d979edb24ac5c3e698498fe3.tar.bz2
NotEnoughUpdates-f34220a92af85a33d979edb24ac5c3e698498fe3.zip
bug fixes (#172)
* yikes * cookie warning * better wording in docs * edit items in parent that are the bounds of the item list * totalCount not updating when not present * unplayable * comment? * outdated repo notification * more notification * crash * more crash * cookie bug
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java39
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java28
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java7
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java9
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java10
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java1
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java7
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java20
10 files changed, 70 insertions, 55 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java
index c4efeb15..18d756d8 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java
@@ -835,7 +835,7 @@ public class NEUManager {
case "viewrecipe":
displayGuiItemRecipe(internalName);
break;
- case "viewoption":
+ case "viewpotion":
neu.sendChatMessage("/viewpotion " + internalName.split(";")[0].toLowerCase(Locale.ROOT));
}
displayGuiItemRecipe(internalName);
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
index 8ed11dd8..e5a09f2c 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
@@ -1119,7 +1119,7 @@ public class NEUOverlay extends Gui {
internalname.set(manager.getInternalNameForItem(hover));
itemstack.set(hover);
}
- } else if (!hoverInv) {
+ } else {
Utils.pushGuiScale(NotEnoughUpdates.INSTANCE.config.itemlist.paneGuiScale);
int width = Utils.peekGuiScale().getScaledWidth();
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java
index ec459ad0..8b924d78 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java
@@ -19,12 +19,14 @@
package io.github.moulberry.notenoughupdates.listener;
+import com.google.common.collect.Lists;
import com.google.gson.JsonObject;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.core.BackgroundBlur;
import io.github.moulberry.notenoughupdates.cosmetics.CapeManager;
import io.github.moulberry.notenoughupdates.dungeons.DungeonBlocks;
import io.github.moulberry.notenoughupdates.dungeons.DungeonWin;
+import io.github.moulberry.notenoughupdates.miscfeatures.CookieWarning;
import io.github.moulberry.notenoughupdates.miscfeatures.CrystalMetalDetectorSolver;
import io.github.moulberry.notenoughupdates.miscfeatures.CrystalOverlay;
import io.github.moulberry.notenoughupdates.miscfeatures.FairySouls;
@@ -36,6 +38,7 @@ import io.github.moulberry.notenoughupdates.miscgui.StorageOverlay;
import io.github.moulberry.notenoughupdates.overlays.OverlayManager;
import io.github.moulberry.notenoughupdates.overlays.TextOverlay;
import io.github.moulberry.notenoughupdates.util.Constants;
+import io.github.moulberry.notenoughupdates.util.NotificationHandler;
import io.github.moulberry.notenoughupdates.util.ProfileApiSyncer;
import io.github.moulberry.notenoughupdates.util.SBInfo;
import io.github.moulberry.notenoughupdates.util.Utils;
@@ -60,19 +63,11 @@ import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import static io.github.moulberry.notenoughupdates.util.NotificationHandler.notificationLines;
-
public class NEUEventListener {
- private static long notificationDisplayMillis = 0;
private final NotEnoughUpdates neu;
private final ExecutorService itemPreloader = Executors.newFixedThreadPool(10);
private final List<ItemStack> toPreload = new ArrayList<>();
- /**
- * When opening a GuiContainer, will reset the overlay and load the config.
- * When closing a GuiContainer, will save the config.
- * Also includes a dev feature used for automatically acquiring crafting information from the "Crafting Table" GUI.
- */
private boolean joinedSB = false;
private boolean preloadedItems = false;
@@ -239,6 +234,7 @@ public class NEUEventListener {
BackgroundBlur.markDirty();
NPCRetexturing.getInstance().tick();
StorageOverlay.getInstance().markDirty();
+ CookieWarning.checkCookie();
if (neu.hasSkyblockScoreboard()) {
for (TextOverlay overlay : OverlayManager.textOverlays) {
@@ -278,8 +274,6 @@ public class NEUEventListener {
if (!joinedSB) {
joinedSB = true;
- //SBGamemodes.loadFromFile();
-
if (NotEnoughUpdates.INSTANCE.config.notifications.showUpdateMsg) {
displayUpdateMessageIfOutOfDate();
}
@@ -287,19 +281,18 @@ public class NEUEventListener {
if (NotEnoughUpdates.INSTANCE.config.notifications.doRamNotif) {
long maxMemoryMB = Runtime.getRuntime().maxMemory() / 1024L / 1024L;
if (maxMemoryMB > 4100) {
- notificationDisplayMillis = System.currentTimeMillis();
- notificationLines = new ArrayList<>();
- notificationLines.add(EnumChatFormatting.GRAY + "Too much memory allocated!");
- notificationLines.add(String.format(
- EnumChatFormatting.DARK_GRAY + "NEU has detected %03dMB of memory allocated to Minecraft!",
- maxMemoryMB
- ));
- notificationLines.add(EnumChatFormatting.GRAY + "It is recommended to allocated between 2-4GB of memory");
- notificationLines.add(
- EnumChatFormatting.GRAY + "More than 4GB MAY cause FPS issues, EVEN if you have 16GB+ available");
- notificationLines.add("");
- notificationLines.add(
- EnumChatFormatting.GRAY + "For more information, visit #ram-info in discord.gg/moulberry");
+ NotificationHandler.displayNotification(Lists.newArrayList(
+ EnumChatFormatting.GRAY + "Too much memory allocated!",
+ String.format(
+ EnumChatFormatting.DARK_GRAY + "NEU has detected %03dMB of memory allocated to Minecraft!",
+ maxMemoryMB
+ ),
+ EnumChatFormatting.GRAY + "It is recommended to allocated between 2-4GB of memory",
+ EnumChatFormatting.GRAY + "More than 4GB MAY cause FPS issues, EVEN if you have 16GB+ available",
+ EnumChatFormatting.GRAY + "For more information, visit #ram-info in discord.gg/moulberry",
+ "",
+ EnumChatFormatting.GRAY + "Press X on your keyboard to close this notification"
+ ), false);
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java
index 2aec0fbe..ca1865cd 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java
@@ -26,34 +26,23 @@ import io.github.moulberry.notenoughupdates.util.NotificationHandler;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
-import net.minecraftforge.event.entity.EntityJoinWorldEvent;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class CookieWarning {
private static boolean hasNotified;
- public CookieWarning() {
- hasNotified = false;
- }
-
- @SubscribeEvent
- public void onJoinWorld(EntityJoinWorldEvent e) {
- if (e.entity == Minecraft.getMinecraft().thePlayer) {
- this.checkCookie();
- }
- }
-
public static void resetNotification() {
hasNotified = false;
+ NotificationHandler.cancelNotification();
}
/**
- * Checks the tab list for a cookie timer, and sends a chat message if the timer is within the tolerance
+ * Checks the tab list for a cookie timer, and sends a notification if the timer is within the tolerance
*/
- private void checkCookie() {
- if (!hasNotified && NotEnoughUpdates.INSTANCE.config.notifications.doBoosterNotif) {
- String[] lines = {};
+ public static void checkCookie() {
+ if (NotEnoughUpdates.INSTANCE.config.notifications.doBoosterNotif &&
+ NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) {
+ String[] lines;
try {
lines = ((AccessorGuiPlayerTabOverlay) Minecraft.getMinecraft().ingameGUI.getTabList())
.getFooter()
@@ -106,6 +95,7 @@ public class CookieWarning {
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
EnumChatFormatting.RED +
"NEU ran into an issue when retrieving the Booster Cookie Timer. Check the logs for details."));
+ hasNotified = true;
}
if (minutes < NotEnoughUpdates.INSTANCE.config.notifications.boosterCookieWarningMins) {
NotificationHandler.displayNotification(Lists.newArrayList(
@@ -115,8 +105,12 @@ public class CookieWarning {
"\u00a77Press X on your keyboard to close this notification"
), true, true);
hasNotified = true;
+ } else if (hasNotified) {
+ NotificationHandler.cancelNotification();
+ hasNotified = false;
}
}
}
+
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java
index 4cf076d8..e910a802 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java
@@ -639,12 +639,7 @@ public class PetInfoOverlay extends TextOverlay {
public static Pet getPetFromStack(String name, String[] lore) {
if (Constants.PETS == null || Constants.PETS.get("pet_levels") == null ||
Constants.PETS.get("pet_levels") instanceof JsonNull) {
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
- "\u00a7cInvalid PET constants. Please run " + EnumChatFormatting.BOLD + "/neuresetrepo" +
- EnumChatFormatting.RESET + EnumChatFormatting.RED + " and " + EnumChatFormatting.BOLD + "restart your game" +
- EnumChatFormatting.RESET + EnumChatFormatting.RED + " in order to fix. " + EnumChatFormatting.DARK_RED +
- EnumChatFormatting.BOLD + "If that doesn't fix it" + EnumChatFormatting.RESET + EnumChatFormatting.RED +
- ", please join discord.gg/moulberry and post in #neu-support"));
+ Utils.showOutdatedRepoNotification();
return null;
}
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 40445298..b1e76dcc 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
@@ -958,6 +958,7 @@ public class GuiProfileViewer extends GuiScreen {
List<Integer> configList = NotEnoughUpdates.INSTANCE.config.profileViewer.pageLayout;
for (int i = 0; i < configList.size(); i++) {
ProfileViewerPage page = ProfileViewerPage.getById(configList.get(i));
+ if (page == null) continue;
if (page.stack == null || (page == ProfileViewerPage.BINGO && !showBingoPage)) {
ignoredTabs++;
continue;
@@ -1324,7 +1325,7 @@ public class GuiProfileViewer extends GuiScreen {
dungeonLevelTextField.setCustomBorderColour(0xffffffff);
floorLevelTo = Integer.parseInt(dungeonLevelTextField.getText());
- JsonArray levelingArray = Utils.getElement(leveling, "catacombs").getAsJsonArray();
+ JsonArray levelingArray = Utils.getElementOrDefault(leveling, "catacombs", new JsonArray()).getAsJsonArray();
float remaining = -((levelObjCata.level % 1) * levelObjCata.maxXpForLevel);
@@ -1373,7 +1374,7 @@ public class GuiProfileViewer extends GuiScreen {
profileInfo,
"dungeons.dungeon_types.catacombs.experience"
), 0);
- levelObjCata = ProfileViewer.getLevel(Utils.getElement(leveling, "catacombs").getAsJsonArray(),
+ levelObjCata = ProfileViewer.getLevel(Utils.getElementOrDefault(leveling, "catacombs", new JsonArray()).getAsJsonArray(),
cataXp, 99, false
);
levelObjCata.totalXp = cataXp;
@@ -1852,7 +1853,7 @@ public class GuiProfileViewer extends GuiScreen {
"dungeons.player_classes." + skillName.toLowerCase() + ".experience"
), 0);
ProfileViewer.Level levelObj =
- ProfileViewer.getLevel(Utils.getElement(leveling, "catacombs").getAsJsonArray(),
+ ProfileViewer.getLevel(Utils.getElementOrDefault(leveling, "catacombs", new JsonArray()).getAsJsonArray(),
cataXp, 50, false
);
levelObjClasses.put(skillName, levelObj);
@@ -3616,7 +3617,7 @@ public class GuiProfileViewer extends GuiScreen {
ProfileViewer.Level levelObjhotm = levelObjhotms.get(profileId);
if (levelObjhotm == null) {
float hotmXp = Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.experience"), 0);
- levelObjhotm = ProfileViewer.getLevel(Utils.getElement(leveling, "HOTM").getAsJsonArray(),
+ levelObjhotm = ProfileViewer.getLevel(Utils.getElementOrDefault(leveling, "HOTM", new JsonArray()).getAsJsonArray(),
hotmXp, 7, false
);
levelObjhotms.put(profileId, levelObjhotm);
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java
index 9da55d64..d8e47fa3 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java
@@ -862,8 +862,10 @@ public class ProfileViewer {
if (profileId == null) profileId = latestProfile;
if (skillInfoMap.containsKey(profileId)) return skillInfoMap.get(profileId);
JsonObject leveling = Constants.LEVELING;
- if (leveling == null) return null;
-
+ if (leveling == null || !leveling.has("social")) {
+ Utils.showOutdatedRepoNotification();
+ return null;
+ }
float experience_skill_taming =
Utils.getElementAsFloat(Utils.getElement(profileInfo, "experience_skill_taming"), 0);
float experience_skill_mining =
@@ -952,7 +954,9 @@ public class ProfileViewer {
Level level_skill_runecrafting = getLevel(Utils.getElement(leveling, "runecrafting_xp").getAsJsonArray(),
experience_skill_runecrafting, getCap(leveling, "runecrafting"), false
);
- Level level_skill_social = getLevel(Utils.getElement(leveling, "social").getAsJsonArray(),
+ Level level_skill_social = getLevel(Utils
+ .getElementOrDefault(leveling, "social", new JsonArray())
+ .getAsJsonArray(),
experience_skill_social, getCap(leveling, "social"), false
);
Level level_skill_catacombs = getLevel(Utils.getElement(leveling, "catacombs").getAsJsonArray(),
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java
index ece6f275..668cb8f2 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java
@@ -378,6 +378,7 @@ public class TrophyFishingPage {
}
JsonObject trophyObject = trophyFishInformation.get("trophy_fish").getAsJsonObject();
Map<String, List<Pair<TrophyFish.TrophyFishRarity, Integer>>> trophyFishRarityIntegerMap = new HashMap<>();
+ totalCount = 0;
for (Map.Entry<String, JsonElement> stringJsonElementEntry : trophyObject.entrySet()) {
String key = stringJsonElementEntry.getKey();
if (key.equalsIgnoreCase("rewards") || key.equalsIgnoreCase("total_caught")) {
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java b/src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java
index c64fdb56..d373ef2c 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java
@@ -49,6 +49,13 @@ public class NotificationHandler {
showNotificationOverInv = overInventory;
}
+ /**
+ * Stops rendering the notification, if one is displayed
+ */
+ public static void cancelNotification() {
+ notificationDisplayMillis = 0;
+ }
+
public static void renderNotification() {
long timeRemaining = 15000 - (System.currentTimeMillis() - notificationDisplayMillis);
boolean display = timeRemaining > 0 || notificationDisplayMillis == -420;
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
index b6447706..ce0ecc4a 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
@@ -1391,6 +1391,11 @@ public class Utils {
}
}
+ public static JsonElement getElementOrDefault(JsonElement element, String path, JsonElement def) {
+ JsonElement result = getElement(element, path);
+ return result != null ? result : def;
+ }
+
public static ChatStyle createClickStyle(ClickEvent.Action action, String value) {
ChatStyle style = new ChatStyle();
style.setChatClickEvent(new ClickEvent(action, value));
@@ -1927,4 +1932,19 @@ public class Utils {
}
return stringBuilder.toString();
}
+
+ public static void showOutdatedRepoNotification() {
+ NotificationHandler.displayNotification(Lists.newArrayList(
+ EnumChatFormatting.RED + EnumChatFormatting.BOLD.toString() + "Missing repo data",
+ EnumChatFormatting.RED + "Data used for many NEU features is not up to date, this should normally not be the case.",
+ EnumChatFormatting.RED + "You can try " + EnumChatFormatting.BOLD + "/neuresetrepo" + EnumChatFormatting.RESET +
+ EnumChatFormatting.RED + " to see if that fixes the issue.",
+ EnumChatFormatting.RED + "If the problem persists please join " + EnumChatFormatting.BOLD +
+ "discord.gg/moulberry" +
+ EnumChatFormatting.RESET + EnumChatFormatting.RED + " and message in " + EnumChatFormatting.BOLD +
+ "#neu-support" + EnumChatFormatting.RESET + EnumChatFormatting.RED + " to get support"
+ ),
+ true, true
+ );
+ }
}