diff options
author | CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> | 2024-02-25 21:44:13 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-25 11:44:13 +0100 |
commit | 2a8edee6275a4abe3375351455c27d2ee56f9c36 (patch) | |
tree | c92a63bcd9e8c2614beef7cbeb83d97247a6d3c0 /src | |
parent | 190d97aeb18bbb02778b206404d7084c648038dd (diff) | |
download | skyhanni-2a8edee6275a4abe3375351455c27d2ee56f9c36.tar.gz skyhanni-2a8edee6275a4abe3375351455c27d2ee56f9c36.tar.bz2 skyhanni-2a8edee6275a4abe3375351455c27d2ee56f9c36.zip |
/gfs tab complete now uses NEU's Repo instead of SkyHanni Repo. #1053
Diffstat (limited to 'src')
8 files changed, 67 insertions, 27 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/api/GetFromSackAPI.kt b/src/main/java/at/hannibal2/skyhanni/api/GetFromSackAPI.kt index be1694a86..53cab5d02 100644 --- a/src/main/java/at/hannibal2/skyhanni/api/GetFromSackAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/api/GetFromSackAPI.kt @@ -1,20 +1,20 @@ package at.hannibal2.skyhanni.api import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.data.jsonobjects.repo.SacksJson +import at.hannibal2.skyhanni.config.ConfigManager +import at.hannibal2.skyhanni.data.jsonobjects.other.NeuSacksJson import at.hannibal2.skyhanni.events.GuiContainerEvent import at.hannibal2.skyhanni.events.InventoryCloseEvent import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzToolTipEvent import at.hannibal2.skyhanni.events.MessageSendToServerEvent -import at.hannibal2.skyhanni.events.RepositoryReloadEvent +import at.hannibal2.skyhanni.events.NeuRepositoryReloadEvent import at.hannibal2.skyhanni.features.commands.tabcomplete.GetFromSacksTabComplete import at.hannibal2.skyhanni.test.command.ErrorManager import at.hannibal2.skyhanni.utils.ChatUtils import at.hannibal2.skyhanni.utils.ChatUtils.isCommand import at.hannibal2.skyhanni.utils.ChatUtils.senderIsSkyhanni -import at.hannibal2.skyhanni.utils.DelayedRun import at.hannibal2.skyhanni.utils.ItemUtils.itemNameWithoutColor import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NEUInternalName @@ -25,7 +25,9 @@ import at.hannibal2.skyhanni.utils.PrimitiveItemStack.Companion.makePrimitiveSta import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.StringUtils.removeColor +import at.hannibal2.skyhanni.utils.fromJson import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern +import io.github.moulberry.notenoughupdates.util.Utils import net.minecraft.inventory.Slot import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import java.util.Deque @@ -222,12 +224,27 @@ object GetFromSackAPI { } @SubscribeEvent - fun onRepoReload(event: RepositoryReloadEvent) { - sackListInternalNames = event.getConstant<SacksJson>("Sacks").sackItems.toSet() + fun onNeuRepoReload(event: NeuRepositoryReloadEvent) { + val data = event.getConstant("sacks") ?: ErrorManager.skyHanniError("NEU sacks data is null.") + try { + val sacksData = ConfigManager.gson.fromJson<NeuSacksJson>(data).sacks + val uniqueSackItems = mutableSetOf<NEUInternalName>() + + sacksData.values.forEach { sackInfo -> + sackInfo.contents.forEach { content -> + uniqueSackItems.add(content) + } + } + + sackListInternalNames = uniqueSackItems.map { it.asString() }.toSet() + sackListNames = uniqueSackItems.map { it.itemNameWithoutColor.uppercase() }.toSet() - DelayedRun.runNextTick { - sackListNames = sackListInternalNames.map { it.asInternalName().itemNameWithoutColor.uppercase() }.toSet() + } catch (e: Exception) { + ErrorManager.logErrorWithData( + e, "Error getting NEU sacks data, make sure your neu repo is updated.", + "sacksJson" to data + ) + Utils.showOutdatedRepoNotification() } - //sackListNames = event.getConstant<SacksJson>("Sacks").sackList.map { it.uppercase() }.toSet() } } diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt new file mode 100644 index 000000000..c323211fb --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt @@ -0,0 +1,14 @@ +package at.hannibal2.skyhanni.data.jsonobjects.other + +import at.hannibal2.skyhanni.utils.NEUInternalName +import com.google.gson.annotations.Expose + + +data class NeuSacksJson( + @Expose val sacks: Map<String, SackInfo> +) + +data class SackInfo( + @Expose val item: NEUInternalName, + @Expose val contents: List<NEUInternalName> +) diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/SacksJson.java b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/SacksJson.java index a2c6dc66e..e8bb83a79 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/SacksJson.java +++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/SacksJson.java @@ -9,7 +9,4 @@ public class SacksJson { @Deprecated @Expose public List<String> sackList; - - @Expose - public List<String> sackItems; } diff --git a/src/main/java/at/hannibal2/skyhanni/data/repo/RepoManager.kt b/src/main/java/at/hannibal2/skyhanni/data/repo/RepoManager.kt index 021dd183b..19fba633b 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/repo/RepoManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/repo/RepoManager.kt @@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.data.repo import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.config.ConfigManager import at.hannibal2.skyhanni.events.DebugDataCollectEvent +import at.hannibal2.skyhanni.events.NeuRepositoryReloadEvent import at.hannibal2.skyhanni.events.RepositoryReloadEvent import at.hannibal2.skyhanni.test.command.ErrorManager import at.hannibal2.skyhanni.utils.ChatUtils @@ -279,4 +280,9 @@ class RepoManager(private val configLocation: File) { ) ).use { writer -> writer.write(gson.toJson(json)) } } + + @SubscribeEvent + fun onNeuRepoReload(event: io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent) { + NeuRepositoryReloadEvent().postAndCatch() + } } diff --git a/src/main/java/at/hannibal2/skyhanni/events/NeuRepositoryReloadEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/NeuRepositoryReloadEvent.kt new file mode 100644 index 000000000..a162a8973 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/events/NeuRepositoryReloadEvent.kt @@ -0,0 +1,11 @@ +package at.hannibal2.skyhanni.events + +import at.hannibal2.skyhanni.utils.NEUItems.manager +import com.google.gson.JsonObject +import java.io.File + +class NeuRepositoryReloadEvent : LorenzEvent() { + fun getConstant(file: String): JsonObject? { + return manager.getJsonFromFile(File(manager.repoLocation, "constants/$file.json")) + } +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt index 7c0987883..08e6382c1 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt @@ -13,6 +13,7 @@ import at.hannibal2.skyhanni.events.InventoryCloseEvent import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzToolTipEvent +import at.hannibal2.skyhanni.events.NeuRepositoryReloadEvent import at.hannibal2.skyhanni.events.RepositoryReloadEvent import at.hannibal2.skyhanni.events.TabListUpdateEvent import at.hannibal2.skyhanni.features.bazaar.BazaarApi @@ -533,7 +534,7 @@ object ComposterOverlay { } @SubscribeEvent - fun onRepoReload(event: io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent) { + fun onNeuRepoReload(event: NeuRepositoryReloadEvent) { updateOrganicMatterFactors() } diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt index 977d041fa..2d6c37469 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt @@ -8,6 +8,7 @@ import at.hannibal2.skyhanni.events.ConfigLoadEvent import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.InventoryCloseEvent import at.hannibal2.skyhanni.events.LorenzToolTipEvent +import at.hannibal2.skyhanni.events.NeuRepositoryReloadEvent import at.hannibal2.skyhanni.events.RenderItemTooltipEvent import at.hannibal2.skyhanni.events.RepositoryReloadEvent import at.hannibal2.skyhanni.test.command.ErrorManager @@ -25,7 +26,6 @@ import at.hannibal2.skyhanni.utils.KeyboardManager.isKeyHeld import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NEUInternalName import at.hannibal2.skyhanni.utils.NEUItems.getItemStackOrNull -import at.hannibal2.skyhanni.utils.NEUItems.manager import at.hannibal2.skyhanni.utils.NumberUtil import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems @@ -35,7 +35,6 @@ import net.minecraft.client.Minecraft import net.minecraft.init.Items import net.minecraft.item.ItemStack import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -import java.io.File import kotlin.math.roundToLong object EstimatedItemValue { @@ -51,18 +50,12 @@ object EstimatedItemValue { fun isCurrentlyShowing() = currentlyShowing && Minecraft.getMinecraft().currentScreen != null @SubscribeEvent - fun onRepoReload(event: io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent) { - val data = manager.getJsonFromFile(File(manager.repoLocation, "constants/gemstonecosts.json")) - - if (data != null) - // item_internal_names -> gemstone_slots -> ingredients_array - gemstoneUnlockCosts = - ConfigManager.gson.fromJson( - data, - object : TypeToken<HashMap<NEUInternalName, HashMap<String, List<String>>>>() {}.type - ) - else - ChatUtils.error("Gemstone Slot Unlock Costs failed to load!") + fun onNeuRepoReload(event: NeuRepositoryReloadEvent) { + val data = event.getConstant("gemstonecosts") ?: run { + ErrorManager.skyHanniError("Gemstone Slot Unlock Costs failed to load from neu repo!") + } + + gemstoneUnlockCosts = ConfigManager.gson.fromJson(data, object : TypeToken<HashMap<NEUInternalName, HashMap<String, List<String>>>>() {}.type) } @SubscribeEvent diff --git a/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt b/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt index 53a030f88..62bb84b94 100644 --- a/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt +++ b/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt @@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.test import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.GuiContainerEvent +import at.hannibal2.skyhanni.events.NeuRepositoryReloadEvent import at.hannibal2.skyhanni.utils.ItemUtils.getInternalNameOrNull import at.hannibal2.skyhanni.utils.LorenzColor import at.hannibal2.skyhanni.utils.LorenzUtils @@ -45,7 +46,7 @@ class HighlightMissingRepoItems { } @SubscribeEvent - fun onNeuRepoReload(event: io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent) { + fun onNeuRepoReload(event: NeuRepositoryReloadEvent) { NEUItems.allItemsCache = NEUItems.readAllNeuItems() } |