aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2023-10-17 19:53:55 -0400
committerGitHub <noreply@github.com>2023-10-17 19:53:55 -0400
commit00340f5d7df495f7351159e9da86e74b1b5fd2a9 (patch)
tree6911922ecc8bb6704f3eaa55bb7d44e329b38826 /src/main/java/de
parente5679e02586d591c4c059b80b749809b60efe843 (diff)
downloadSkyblocker-00340f5d7df495f7351159e9da86e74b1b5fd2a9.tar.gz
Skyblocker-00340f5d7df495f7351159e9da86e74b1b5fd2a9.tar.bz2
Skyblocker-00340f5d7df495f7351159e9da86e74b1b5fd2a9.zip
Refactor NEU Repo (#364)
Add RepoParser Fix Golden Dragon stats leveling Add wiki option Fix recipe output count
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockEmiRecipe.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockCraftingDisplayGenerator.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java231
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java22
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/FairySouls.java28
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/CompactorDeletorPreview.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java30
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRegistry.java129
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java136
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java94
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java28
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java51
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java (renamed from src/main/java/de/hysky/skyblocker/utils/NEURepo.java)30
18 files changed, 424 insertions, 399 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index bd1cd5bd..115f90ec 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -9,7 +9,7 @@ import de.hysky.skyblocker.skyblock.item.*;
import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.ScreenMaster;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.dwarven.DwarvenHud;
-import de.hysky.skyblocker.skyblock.itemlist.ItemRegistry;
+import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
import de.hysky.skyblocker.skyblock.quicknav.QuickNav;
import de.hysky.skyblocker.skyblock.rift.TheRift;
import de.hysky.skyblocker.skyblock.shortcut.Shortcuts;
@@ -17,7 +17,7 @@ import de.hysky.skyblocker.skyblock.special.SpecialEffects;
import de.hysky.skyblocker.skyblock.spidersden.Relics;
import de.hysky.skyblocker.skyblock.tabhud.TabHud;
import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr;
-import de.hysky.skyblocker.utils.NEURepo;
+import de.hysky.skyblocker.utils.NEURepoManager;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.chat.ChatMessageListener;
import de.hysky.skyblocker.utils.discord.DiscordRPCManager;
@@ -68,12 +68,12 @@ public class SkyblockerMod implements ClientModInitializer {
public void onInitializeClient() {
ClientTickEvents.END_CLIENT_TICK.register(this::tick);
Utils.init();
- HotbarSlotLock.init();
SkyblockerConfigManager.init();
+ NEURepoManager.init();
+ ItemRepository.init();
+ HotbarSlotLock.init();
PriceInfoTooltip.init();
WikiLookup.init();
- ItemRegistry.init();
- NEURepo.init();
FairySouls.init();
Relics.init();
BackpackPreview.init();
diff --git a/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockEmiRecipe.java b/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockEmiRecipe.java
index 191da283..b52d6ff5 100644
--- a/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockEmiRecipe.java
+++ b/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockEmiRecipe.java
@@ -16,7 +16,7 @@ public class SkyblockEmiRecipe extends EmiCraftingRecipe {
private final String craftText;
public SkyblockEmiRecipe(SkyblockCraftingRecipe recipe) {
- super(recipe.getGrid().stream().map(EmiStack::of).map(EmiIngredient.class::cast).toList(), EmiStack.of(recipe.getResult()).comparison(Comparison.compareNbt()), Identifier.of("skyblock", ItemUtils.getItemId(recipe.getResult()).toLowerCase().replace(';', '_')));
+ super(recipe.getGrid().stream().map(EmiStack::of).map(EmiIngredient.class::cast).toList(), EmiStack.of(recipe.getResult()).comparison(Comparison.compareNbt()), Identifier.of("skyblock", ItemUtils.getItemId(recipe.getResult()).toLowerCase().replace(';', '_') + "_" + recipe.getResult().getCount()));
this.craftText = recipe.getCraftText();
}
diff --git a/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java b/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java
index c6147016..6ed6a32a 100644
--- a/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java
+++ b/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java
@@ -1,7 +1,7 @@
package de.hysky.skyblocker.compatibility.emi;
import de.hysky.skyblocker.SkyblockerMod;
-import de.hysky.skyblocker.skyblock.itemlist.ItemRegistry;
+import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
import de.hysky.skyblocker.utils.ItemUtils;
import dev.emi.emi.api.EmiPlugin;
import dev.emi.emi.api.EmiRegistry;
@@ -21,9 +21,9 @@ public class SkyblockerEMIPlugin implements EmiPlugin {
@Override
public void register(EmiRegistry registry) {
- ItemRegistry.getItemsStream().map(EmiStack::of).forEach(registry::addEmiStack);
+ ItemRepository.getItemsStream().map(EmiStack::of).forEach(registry::addEmiStack);
registry.addCategory(SKYBLOCK);
registry.addWorkstation(SKYBLOCK, EmiStack.of(Items.CRAFTING_TABLE));
- ItemRegistry.getRecipesStream().map(SkyblockEmiRecipe::new).forEach(registry::addRecipe);
+ ItemRepository.getRecipesStream().map(SkyblockEmiRecipe::new).forEach(registry::addRecipe);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockCraftingDisplayGenerator.java b/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockCraftingDisplayGenerator.java
index 60e39b79..33cee20b 100644
--- a/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockCraftingDisplayGenerator.java
+++ b/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockCraftingDisplayGenerator.java
@@ -1,6 +1,6 @@
package de.hysky.skyblocker.compatibility.rei;
-import de.hysky.skyblocker.skyblock.itemlist.ItemRegistry;
+import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
import de.hysky.skyblocker.skyblock.itemlist.SkyblockCraftingRecipe;
import de.hysky.skyblocker.utils.ItemUtils;
import me.shedaniel.rei.api.client.registry.display.DynamicDisplayGenerator;
@@ -19,7 +19,7 @@ public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator
public Optional<List<SkyblockCraftingDisplay>> getRecipeFor(EntryStack<?> entry) {
if (!(entry.getValue() instanceof ItemStack)) return Optional.empty();
EntryStack<ItemStack> inputItem = EntryStacks.of((ItemStack) entry.getValue());
- List<SkyblockCraftingRecipe> filteredRecipes = ItemRegistry.getRecipesStream()
+ List<SkyblockCraftingRecipe> filteredRecipes = ItemRepository.getRecipesStream()
.filter(recipe -> {
ItemStack itemStack = inputItem.getValue();
ItemStack itemStack1 = recipe.getResult();
@@ -34,7 +34,7 @@ public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator
public Optional<List<SkyblockCraftingDisplay>> getUsageFor(EntryStack<?> entry) {
if (!(entry.getValue() instanceof ItemStack)) return Optional.empty();
EntryStack<ItemStack> inputItem = EntryStacks.of((ItemStack) entry.getValue());
- List<SkyblockCraftingRecipe> filteredRecipes = ItemRegistry.getRecipesStream()
+ List<SkyblockCraftingRecipe> filteredRecipes = ItemRepository.getRecipesStream()
.filter(recipe -> {
for (ItemStack item : recipe.getGrid()) {
if(!ItemUtils.getItemId(item).isEmpty()) {
diff --git a/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java b/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java
index 97651718..7ed322a0 100644
--- a/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java
+++ b/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java
@@ -1,7 +1,7 @@
package de.hysky.skyblocker.compatibility.rei;
import de.hysky.skyblocker.SkyblockerMod;
-import de.hysky.skyblocker.skyblock.itemlist.ItemRegistry;
+import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
import me.shedaniel.rei.api.client.registry.category.CategoryRegistry;
import me.shedaniel.rei.api.client.registry.display.DisplayRegistry;
@@ -29,6 +29,6 @@ public class SkyblockerREIClientPlugin implements REIClientPlugin {
@Override
public void registerEntries(EntryRegistry entryRegistry) {
- entryRegistry.addEntries(ItemRegistry.getItemsStream().map(EntryStacks::of).toList());
+ entryRegistry.addEntries(ItemRepository.getItemsStream().map(EntryStacks::of).toList());
}
}
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index 189c6af7..107fe26e 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -16,7 +16,7 @@ import java.util.List;
public class SkyblockerConfig {
@SerialEntry
public int version = 1;
-
+
@SerialEntry
public General general = new General();
@@ -117,7 +117,7 @@ public class SkyblockerConfig {
@SerialEntry
public String uiTitle;
-
+
@SerialEntry
public String clickEvent;
}
@@ -137,10 +137,10 @@ public class SkyblockerConfig {
@SerialEntry
public String itemName;
-
+
@SerialEntry
public int count;
-
+
@SerialEntry
public String nbt;
}
@@ -148,16 +148,16 @@ public class SkyblockerConfig {
public static class General {
@SerialEntry
public boolean acceptReparty = true;
-
+
@SerialEntry
public boolean backpackPreviewWithoutShift = false;
-
+
@SerialEntry
public boolean compactorDeletorPreview = true;
-
+
@SerialEntry
public boolean hideEmptyTooltips = true;
-
+
@SerialEntry
public boolean hideStatusEffectOverlay = false;
@@ -181,7 +181,7 @@ public class SkyblockerConfig {
@SerialEntry
public Shortcuts shortcuts = new Shortcuts();
-
+
@SerialEntry
public QuiverWarning quiverWarning = new QuiverWarning();
@@ -193,7 +193,10 @@ public class SkyblockerConfig {
@SerialEntry
public ItemInfoDisplay itemInfoDisplay = new ItemInfoDisplay();
-
+
+ @SerialEntry
+ public WikiLookup wikiLookup = new WikiLookup();
+
@SerialEntry
public SpecialEffects specialEffects = new SpecialEffects();
@@ -208,7 +211,7 @@ public class SkyblockerConfig {
@SerialEntry
public List<Integer> lockedSlots = new ArrayList<>();
-
+
@SerialEntry
public ObjectOpenHashSet<String> protectedItems = new ObjectOpenHashSet<>();
@@ -228,10 +231,10 @@ public class SkyblockerConfig {
@SerialEntry
public int tabHudScale = 100;
-
+
@SerialEntry
public boolean plainPlayerNames = false;
-
+
@SerialEntry
public NameSorting nameSorting = NameSorting.DEFAULT;
}
@@ -259,13 +262,13 @@ public class SkyblockerConfig {
public static class BarPositions {
@SerialEntry
public BarPosition healthBarPosition = BarPosition.LAYER1;
-
+
@SerialEntry
public BarPosition manaBarPosition = BarPosition.LAYER1;
-
+
@SerialEntry
public BarPosition defenceBarPosition = BarPosition.LAYER1;
-
+
@SerialEntry
public BarPosition experienceBarPosition = BarPosition.LAYER1;
@@ -292,10 +295,10 @@ public class SkyblockerConfig {
public static class Experiments {
@SerialEntry
public boolean enableChronomatronSolver = true;
-
+
@SerialEntry
public boolean enableSuperpairsSolver = true;
-
+
@SerialEntry
public boolean enableUltrasequencerSolver = true;
}
@@ -308,10 +311,10 @@ public class SkyblockerConfig {
public static class FairySouls {
@SerialEntry
public boolean enableFairySoulsHelper = false;
-
+
@SerialEntry
public boolean highlightFoundSouls = true;
-
+
@SerialEntry
public boolean highlightOnlyNearbySouls = false;
}
@@ -324,14 +327,14 @@ public class SkyblockerConfig {
public static class Shortcuts {
@SerialEntry
public boolean enableShortcuts = true;
-
+
@SerialEntry
public boolean enableCommandShortcuts = true;
-
+
@SerialEntry
public boolean enableCommandArgShortcuts = true;
}
-
+
public static class QuiverWarning {
@SerialEntry
public boolean enableQuiverWarning = true;
@@ -346,7 +349,7 @@ public class SkyblockerConfig {
public static class Hitbox {
@SerialEntry
public boolean oldFarmlandHitbox = true;
-
+
@SerialEntry
public boolean oldLeverHitbox = false;
}
@@ -354,16 +357,16 @@ public class SkyblockerConfig {
public static class TitleContainer {
@SerialEntry
public float titleContainerScale = 100;
-
+
@SerialEntry
public int x = 540;
-
+
@SerialEntry
public int y = 10;
-
+
@SerialEntry
public Direction direction = Direction.HORIZONTAL;
-
+
@SerialEntry
public Alignment alignment = Alignment.MIDDLE;
}
@@ -371,19 +374,19 @@ public class SkyblockerConfig {
public static class TeleportOverlay {
@SerialEntry
public boolean enableTeleportOverlays = true;
-
+
@SerialEntry
public boolean enableWeirdTransmission = true;
-
+
@SerialEntry
public boolean enableInstantTransmission = true;
-
+
@SerialEntry
public boolean enableEtherTransmission = true;
-
+
@SerialEntry
public boolean enableSinrecallTransmission = true;
-
+
@SerialEntry
public boolean enableWitherImpact = true;
}
@@ -419,10 +422,10 @@ public class SkyblockerConfig {
@SerialEntry
public Info info = Info.LOCATION;
-
+
@SerialEntry
public boolean cycleMode = false;
-
+
@SerialEntry
public String customMessage = "Playing Skyblock";
}
@@ -444,22 +447,22 @@ public class SkyblockerConfig {
public static class ItemTooltip {
@SerialEntry
public boolean enableNPCPrice = true;
-
+
@SerialEntry
public boolean enableMotesPrice = true;
-
+
@SerialEntry
public boolean enableAvgBIN = true;
-
+
@SerialEntry
public Average avg = Average.THREE_DAY;
-
+
@SerialEntry
public boolean enableLowestBIN = true;
-
+
@SerialEntry
public boolean enableBazaarPrice = true;
-
+
@SerialEntry
public boolean enableMuseumDate = true;
}
@@ -467,14 +470,22 @@ public class SkyblockerConfig {
public static class ItemInfoDisplay {
@SerialEntry
public boolean attributeShardInfo = true;
-
+
@SerialEntry
public boolean itemRarityBackgrounds = false;
@SerialEntry
public float itemRarityBackgroundsOpacity = 1f;
}
-
+
+ public static class WikiLookup {
+ @SerialEntry
+ public boolean enableWikiLookup = true;
+
+ @SerialEntry
+ public boolean officialWiki = false;
+ }
+
public static class SpecialEffects {
@SerialEntry
public boolean rareDungeonDropEffects = true;
@@ -492,7 +503,7 @@ public class SkyblockerConfig {
@SerialEntry
public Rift rift = new Rift();
-
+
@SerialEntry
public SpidersDen spidersDen = new SpidersDen();
}
@@ -500,46 +511,46 @@ public class SkyblockerConfig {
public static class Dungeons {
@SerialEntry
public SecretWaypoints secretWaypoints = new SecretWaypoints();
-
+
@SerialEntry
public DungeonChestProfit dungeonChestProfit = new DungeonChestProfit();
-
+
@SerialEntry
public boolean croesusHelper = true;
-
+
@SerialEntry
public boolean enableMap = true;
-
+
@SerialEntry
public float mapScaling = 1f;
-
+
@SerialEntry
public int mapX = 2;
-
+
@SerialEntry
public int mapY = 2;
-
+
@SerialEntry
public boolean starredMobGlow = true;
-
+
@SerialEntry
public boolean solveThreeWeirdos = true;
-
+
@SerialEntry
public boolean blazeSolver = true;
@SerialEntry
public boolean creeperSolver = true;
-
+
@SerialEntry
public boolean solveTrivia = true;
-
+
@SerialEntry
public boolean solveTicTacToe = true;
-
+
@SerialEntry
public LividColor lividColor = new LividColor();
-
+
@SerialEntry
public Terminals terminals = new Terminals();
}
@@ -547,72 +558,72 @@ public class SkyblockerConfig {
public static class SecretWaypoints {
@SerialEntry
public boolean enableSecretWaypoints = true;
-
+
@SerialEntry
public boolean noInitSecretWaypoints = false;
-
+
@SerialEntry
public boolean enableEntranceWaypoints = true;
-
+
@SerialEntry
public boolean enableSuperboomWaypoints = true;
-
+
@SerialEntry
public boolean enableChestWaypoints = true;
-
+
@SerialEntry
public boolean enableItemWaypoints = true;
-
+
@SerialEntry
public boolean enableBatWaypoints = true;
-
+
@SerialEntry
public boolean enableWitherWaypoints = true;
-
+
@SerialEntry
public boolean enableLeverWaypoints = true;
-
+
@SerialEntry
public boolean enableFairySoulWaypoints = true;
-
+
@SerialEntry
public boolean enableStonkWaypoints = true;
-
+
@SerialEntry
public boolean enableDefaultWaypoints = true;
}
-
+
public static class DungeonChestProfit {
@SerialEntry
public boolean enableProfitCalculator = true;
-
+
@SerialEntry
public boolean includeKismet = false;
-
+
@SerialEntry
public boolean includeEssence = true;
-
+
@SerialEntry
public int neutralThreshold = 1000;
-
+
@SerialEntry
public Formatting neutralColor = Formatting.DARK_GRAY;
-
+
@SerialEntry
public Formatting profitColor = Formatting.DARK_GREEN;
-
+
@SerialEntry
public Formatting lossColor = Formatting.RED;
-
+
@SerialEntry
public Formatting incompleteColor = Formatting.BLUE;
-
+
}
public static class LividColor {
@SerialEntry
public boolean enableLividColor = true;
-
+
@SerialEntry
public String lividColorText = "The livid color is [color]";
}
@@ -620,10 +631,10 @@ public class SkyblockerConfig {
public static class Terminals {
@SerialEntry
public boolean solveColor = true;
-
+
@SerialEntry
public boolean solveOrder = true;
-
+
@SerialEntry
public boolean solveStartsWith = true;
}
@@ -631,13 +642,13 @@ public class SkyblockerConfig {
public static class DwarvenMines {
@SerialEntry
public boolean enableDrillFuel = true;
-
+
@SerialEntry
public boolean solveFetchur = true;
-
+
@SerialEntry
public boolean solvePuzzler = true;
-
+
@SerialEntry
public DwarvenHud dwarvenHud = new DwarvenHud();
}
@@ -645,16 +656,16 @@ public class SkyblockerConfig {
public static class DwarvenHud {
@SerialEntry
public boolean enabled = true;
-
+
@SerialEntry
public DwarvenHudStyle style = DwarvenHudStyle.SIMPLE;
-
+
@SerialEntry
public boolean enableBackground = true;
-
+
@SerialEntry
public int x = 10;
-
+
@SerialEntry
public int y = 10;
}
@@ -675,7 +686,7 @@ public class SkyblockerConfig {
public static class Barn {
@SerialEntry
public boolean solveHungryHiker = true;
-
+
@SerialEntry
public boolean solveTreasureHunter = true;
}
@@ -683,20 +694,20 @@ public class SkyblockerConfig {
public static class Rift {
@SerialEntry
public boolean mirrorverseWaypoints = true;
-
+
@SerialEntry
public int mcGrubberStacks = 0;
}
-
+
public static class SpidersDen {
@SerialEntry
public Relics relics = new Relics();
}
-
+
public static class Relics {
@SerialEntry
public boolean enableRelicsHelper = false;
-
+
@SerialEntry
public boolean highlightFoundRelics = true;
}
@@ -709,34 +720,34 @@ public class SkyblockerConfig {
public static class VampireSlayer {
@SerialEntry
public boolean enableEffigyWaypoints = true;
-
+
@SerialEntry
public boolean compactEffigyWaypoints;
-
+
@SerialEntry
public int effigyUpdateFrequency = 5;
-
+
@SerialEntry
public boolean enableHolyIceIndicator = true;
-
+
@SerialEntry
public int holyIceIndicatorTickDelay = 10;
@SerialEntry
public int holyIceUpdateFrequency = 5;
-
+
@SerialEntry
public boolean enableHealingMelonIndicator = true;
-
+
@SerialEntry
public float healingMelonHealthThreshold = 4f;
-
+
@SerialEntry
public boolean enableSteakStakeIndicator = true;
@SerialEntry
public int steakStakeUpdateFrequency = 5;
-
+
@SerialEntry
public boolean enableManiaIndicator = true;
@@ -747,34 +758,34 @@ public class SkyblockerConfig {
public static class Messages {
@SerialEntry
public ChatFilterResult hideAbility = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideHeal = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideAOTE = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideImplosion = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideMoltenWave = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideAds = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideTeleportPad = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideCombo = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideAutopet = ChatFilterResult.PASS;
-
+
@SerialEntry
public ChatFilterResult hideShowOff = ChatFilterResult.PASS;
-
+
@SerialEntry
public boolean hideMana = false;
}
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
index 6a393868..80792ab9 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
@@ -375,6 +375,28 @@ public class GeneralCategory {
.build())
.build())
+ //Wiki Lookup
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.general.wikiLookup"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.general.wikiLookup.enableWikiLookup"))
+ .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.general.wikiLookup.enableWikiLookup.@Tooltip")))
+ .binding(defaults.general.wikiLookup.enableWikiLookup,
+ () -> config.general.wikiLookup.enableWikiLookup,
+ newValue -> config.general.wikiLookup.enableWikiLookup = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.general.wikiLookup.officialWiki"))
+ .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.general.wikiLookup.officialWiki.@Tooltip")))
+ .binding(defaults.general.wikiLookup.officialWiki,
+ () -> config.general.wikiLookup.officialWiki,
+ newValue -> config.general.wikiLookup.officialWiki = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
+
//Special Effects
.group(OptionGroup.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.specialEffects"))
diff --git a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java
index b037d45a..e65bc576 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java
@@ -61,7 +61,7 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen
@Inject(at = @At("HEAD"), method = "keyPressed")
public void skyblocker$keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) {
if (this.client != null && this.focusedSlot != null && keyCode != 256 && !this.client.options.inventoryKey.matchesKey(keyCode, scanCode) && WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) {
- WikiLookup.openWiki(this.focusedSlot);
+ WikiLookup.openWiki(this.focusedSlot, client.player);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/FairySouls.java b/src/main/java/de/hysky/skyblocker/skyblock/FairySouls.java
index 24465e06..b2ea2b16 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/FairySouls.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/FairySouls.java
@@ -1,6 +1,5 @@
package de.hysky.skyblocker.skyblock;
-import com.google.common.collect.ImmutableSet;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@@ -9,7 +8,7 @@ import com.mojang.brigadier.CommandDispatcher;
import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.config.SkyblockerConfig;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
-import de.hysky.skyblocker.utils.NEURepo;
+import de.hysky.skyblocker.utils.NEURepoManager;
import de.hysky.skyblocker.utils.PosUtils;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.render.RenderHelper;
@@ -32,6 +31,7 @@ import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.*;
import java.util.concurrent.CompletableFuture;
+import java.util.stream.Collectors;
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal;
@@ -64,25 +64,10 @@ public class FairySouls {
}
private static void loadFairySouls() {
- fairySoulsLoaded = NEURepo.runAsyncAfterLoad(() -> {
- try (BufferedReader reader = new BufferedReader(new FileReader(NEURepo.LOCAL_REPO_DIR.resolve("constants").resolve("fairy_souls.json").toFile()))) {
- for (Map.Entry<String, JsonElement> fairySoulJson : JsonParser.parseReader(reader).getAsJsonObject().asMap().entrySet()) {
- if (fairySoulJson.getKey().equals("//") || fairySoulJson.getKey().equals("Max Souls")) {
- if (fairySoulJson.getKey().equals("Max Souls")) {
- maxSouls = fairySoulJson.getValue().getAsInt();
- }
- continue;
- }
- ImmutableSet.Builder<BlockPos> fairySoulsForLocation = ImmutableSet.builder();
- for (JsonElement fairySoul : fairySoulJson.getValue().getAsJsonArray().asList()) {
- fairySoulsForLocation.add(PosUtils.parsePosString(fairySoul.getAsString()));
- }
- fairySouls.put(fairySoulJson.getKey(), fairySoulsForLocation.build());
- }
- LOGGER.debug("[Skyblocker] Loaded fairy soul locations");
- } catch (IOException e) {
- LOGGER.error("[Skyblocker] Failed to load fairy soul locations", e);
- }
+ fairySoulsLoaded = NEURepoManager.runAsyncAfterLoad(() -> {
+ maxSouls = NEURepoManager.NEU_REPO.getConstants().getFairySouls().getMaxSouls();
+ NEURepoManager.NEU_REPO.getConstants().getFairySouls().getSoulLocations().forEach((location, fairySoulsForLocation) -> fairySouls.put(location, fairySoulsForLocation.stream().map(coordinate -> new BlockPos(coordinate.getX(), coordinate.getY(), coordinate.getZ())).collect(Collectors.toUnmodifiableSet())));
+ LOGGER.debug("[Skyblocker] Loaded {} fairy souls across {} locations", fairySouls.values().stream().mapToInt(Set::size).sum(), fairySouls.size());
try (BufferedReader reader = new BufferedReader(new FileReader(SkyblockerMod.CONFIG_DIR.resolve("found_fairy_souls.json").toFile()))) {
for (Map.Entry<String, JsonElement> foundFairiesForProfileJson : JsonParser.parseReader(reader).getAsJsonObject().asMap().entrySet()) {
@@ -101,6 +86,7 @@ public class FairySouls {
} catch (IOException e) {
LOGGER.error("[Skyblocker] Failed to load found fairy souls", e);
}
+ LOGGER.info("[Skyblocker] Loaded {} fairy souls across {} locations and {} found fairy souls across {} locations in {} profiles", fairySouls.values().stream().mapToInt(Set::size).sum(), fairySouls.size(), foundFairies.values().stream().map(Map::values).flatMap(Collection::stream).mapToInt(Set::size).sum(), foundFairies.values().stream().mapToInt(Map::size).sum(), foundFairies.size());
});
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/CompactorDeletorPreview.java b/src/main/java/de/hysky/skyblocker/skyblock/item/CompactorDeletorPrevie