aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md17
-rw-r--r--FEATURES.md9
-rw-r--r--build.gradle.kts2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java183
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/Features.java13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/core/GuiElementTextField.java6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java14
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Chat.java7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Hidden.java5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Minions.java15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Misc.java10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ApiDataLoader.kt (renamed from src/main/java/at/hannibal2/skyhanni/data/ApiKeyGrabber.kt)37
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/EntityMovementData.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/HyPixelData.kt (renamed from src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt)100
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/IslandType.kt22
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ItemRenderBackground.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ItemTipHelper.kt11
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/GuiContainerEvent.kt17
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/IslandChangeEvent.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/RenderInventoryItemTipEvent.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/anvil/AnvilCombineHelper.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarBestSellMethod.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarCancelledBuyOrderClipboard.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusUnopenedChestTracker.kt11
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonChatFilter.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonDeathCounter.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt14
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/diana/BurrowWarpHelper.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinBurrowParticleFinder.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fishing/SeaCreatureMessageShortener.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fishing/TrophyFishMessages.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/HideNotClickableItems.kt19
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/ItemDisplayOverlayFeatures.kt12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/ItemStars.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/RngMeterInventory.kt17
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/StatsTuning.kt22
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/itemabilities/FireVeilWandParticles.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/minion/MinionData.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/minion/MinionFeatures.kt123
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/BrewingStandOverlay.kt44
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/ButtonOnPause.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/ButtonOnPause.kt)6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/CollectionCounter.kt194
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/CompactBingoChat.kt112
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/CompactSplashPotionMessage.kt36
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/CorruptedMobHighlight.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/CorruptedMobHighlight.kt)9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/CurrentPetDisplay.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/CurrentPetDisplay.kt)8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/ExpBottleOnGroundHider.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/ExpBottleOnGroundHider.kt)4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/HideArmor.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/HideArmor.kt)6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/HideDamageSplash.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/HideDamageSplash.kt)4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/MarkedPlayerManager.kt)8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/NonGodPotEffectDisplay.kt)18
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/RealTime.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/RealTime.kt)6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/ThunderSparksHighlight.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/ThunderSparksHighlight.kt)4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/MilleniaAgedBlazeColor.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazes.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazingSouls.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangGravityOrbs.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideDamageIndicator.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangNextResetCooldown.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/EndermanSlayerBeacon.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/HideMobNames.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/HighlightSlayerMiniboss.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerQuestWarning.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerDaggerHelper.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerFirePitsWarning.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/HellionShieldHelper.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningSoulsName.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/gui/inventory/GuiEditSignMixin.java8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt22
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/command/CopyItemCommand.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt20
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt44
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt16
94 files changed, 1042 insertions, 436 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6ff538037..51270877e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,22 @@
# SkyHanni - Change Log
+## Version 0.14
+
+### Features
++ Added /shtrackcollection <item> - This tracks the number of items you collect, but it does not work with sacks.
++ Added Compact Bingo Chat Messages.
++ Added Compact Potion Effect Chat Messages.
++ Added Brewing Stand Overlay.
++ Added minion name display with minion tier.
+
+### Changes
++ Don't render overlays when tab list key is pressed.
++ Do no longer prevent the selling of bazaar items to NPC when on ironman, stranded or bingo mode.
+
+### Fixes
++ Fixed wrong dungeon level colors. (in Party Finder)
++ Fixed error in Sea Creature Guide inventory.
+
## Version 0.13
### Features
diff --git a/FEATURES.md b/FEATURES.md
index 552552f9c..0788dd7c8 100644
--- a/FEATURES.md
+++ b/FEATURES.md
@@ -19,6 +19,7 @@
- Option to hide the death messages of other players, except for players who are close to the player, inside the dungeon or during a Kuudra fight.
- Scan messages sent by players in all-chat for blacklisted words and greys out the message.
- Chat peeking (holding key to display chat without opening the chat gui)
+- Compact Potion Effect Messages
## Dungeon
- Clicked Blocks (Showing the block behind walls AFTER clicked on a chest, wither essence or a lever)
@@ -85,6 +86,7 @@
- A marker to the last opened minion for a couple of seconds (seen through walls)
- Option to hide mob nametags close to minions.
- Minion hopper coins per day display (Using the held coins in the hopper and the last time the hopper was collected to calculate the coins a hopper collects in a day)
+- Minion name display with minion tier.
## Bazaar
- Showing colors in the order inventory for outbid or fully bought/sold items.
@@ -137,9 +139,13 @@
+ Highlight marked player names in chat.
+ Mark the own player name.
+## Bingo
++ Shortens chat messages about skill level ups, collection gains, new area discoveries, and bestiarity upgrades while on bingo.
+
## Commands
- /wiki (using hypixel-skyblock.fandom.com instead of Hypixel wiki)
- /shmarkplayer <player> (marking a player with yellow color)
+- /shtrackcollection <item> - This tracks the number of items you collect, but it does not work with sacks.
-
## Misc
- Allow to copy, paste, and mark selected text in signs (not visual, but it's working still)
@@ -154,4 +160,5 @@
- Hide armor or just helmet of other player or yourself
- Display the active non-god potion effects.
- Option to hide blaze particles.
-- Wishing compass uses amount display. \ No newline at end of file
+- Wishing compass uses amount display.
+- Brewing Stand Overlay. \ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index ad8158481..9f6014f26 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -10,7 +10,7 @@ plugins {
}
group = "at.hannibal2.skyhanni"
-version = "0.13"
+version = "0.14"
// Toolchains:
java {
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
index eccfc78c9..f6190fb10 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
@@ -5,7 +5,6 @@ import at.hannibal2.skyhanni.config.Features;
import at.hannibal2.skyhanni.config.commands.Commands;
import at.hannibal2.skyhanni.data.*;
import at.hannibal2.skyhanni.data.repo.RepoManager;
-import at.hannibal2.skyhanni.features.*;
import at.hannibal2.skyhanni.features.anvil.AnvilCombineHelper;
import at.hannibal2.skyhanni.features.bazaar.BazaarApi;
import at.hannibal2.skyhanni.features.bazaar.BazaarBestSellMethod;
@@ -30,6 +29,7 @@ import at.hannibal2.skyhanni.features.inventory.*;
import at.hannibal2.skyhanni.features.itemabilities.FireVeilWandParticles;
import at.hannibal2.skyhanni.features.itemabilities.abilitycooldown.ItemAbilityCooldown;
import at.hannibal2.skyhanni.features.minion.MinionFeatures;
+import at.hannibal2.skyhanni.features.misc.*;
import at.hannibal2.skyhanni.features.nether.MilleniaAgedBlazeColor;
import at.hannibal2.skyhanni.features.nether.ashfang.*;
import at.hannibal2.skyhanni.features.slayer.EndermanSlayerBeacon;
@@ -62,7 +62,7 @@ import java.util.List;
public class SkyHanniMod {
public static final String MODID = "skyhanni";
- public static final String VERSION = "0.13";
+ public static final String VERSION = "0.14";
public static Features feature;
@@ -70,7 +70,7 @@ public class SkyHanniMod {
public static ConfigManager configManager;
private static Logger logger;
- public static List<Object> listenerClasses = new ArrayList<>();
+ public static List<Object> modules = new ArrayList<>();
public static Job globalJob = JobKt.Job(null);
public static CoroutineScope coroutineScope =
CoroutineScopeKt.CoroutineScope(
@@ -84,94 +84,98 @@ public class SkyHanniMod {
//API and utils
new BazaarApi();
- registerEvent(this);
- registerEvent(new ChatManager());
- registerEvent(new HypixelData());
- registerEvent(new DungeonData());
- registerEvent(new ScoreboardData());
- registerEvent(new ApiKeyGrabber());
- registerEvent(new SeaCreatureManager());
- registerEvent(new ItemRenderBackground());
- registerEvent(new EntityData());
- registerEvent(new EntityMovementData());
- registerEvent(new ItemClickData());
- registerEvent(new MinecraftData());
- registerEvent(new SendTitleHelper());
- registerEvent(new ItemTipHelper());
+ loadModule(this);
+ loadModule(new ChatManager());
+ loadModule(new HyPixelData());
+ loadModule(new DungeonData());
+ loadModule(new ScoreboardData());
+ loadModule(new ApiDataLoader());
+ loadModule(new SeaCreatureManager());
+ loadModule(new ItemRenderBackground());
+ loadModule(new EntityData());
+ loadModule(new EntityMovementData());
+ loadModule(new ItemClickData());
+ loadModule(new MinecraftData());
+ loadModule(new SendTitleHelper());
+ loadModule(new ItemTipHelper());
//features
- registerEvent(new BazaarOrderHelper());
- registerEvent(new ChatFilter());
- registerEvent(new PlayerChatModifier());
- registerEvent(new DungeonChatFilter());
- registerEvent(new HideNotClickableItems());
- registerEvent(new ItemDisplayOverlayFeatures());
- registerEvent(new CurrentPetDisplay());
- registerEvent(new ExpBottleOnGroundHider());
- registerEvent(new DamageIndicatorManager());
- registerEvent(new ItemAbilityCooldown());
- registerEvent(new DungeonHighlightClickedBlocks());
- registerEvent(new DungeonMilestonesDisplay());
- registerEvent(new DungeonDeathCounter());
- registerEvent(new DungeonCleanEnd());
- registerEvent(new DungeonBossMessages());
- registerEvent(new DungeonBossHideDamageSplash());
- registerEvent(new TrophyFishMessages());
- registerEvent(new BazaarBestSellMethod());
- registerEvent(new AnvilCombineHelper());
- registerEvent(new SeaCreatureMessageShortener());
+ loadModule(new BazaarOrderHelper());
+ loadModule(new ChatFilter());
+ loadModule(new PlayerChatModifier());
+ loadModule(new DungeonChatFilter());
+ loadModule(new HideNotClickableItems());
+ loadModule(new ItemDisplayOverlayFeatures());
+ loadModule(new CurrentPetDisplay());
+ loadModule(new ExpBottleOnGroundHider());
+ loadModule(new DamageIndicatorManager());
+ loadModule(new ItemAbilityCooldown());
+ loadModule(new DungeonHighlightClickedBlocks());
+ loadModule(new DungeonMilestonesDisplay());
+ loadModule(new DungeonDeathCounter());
+ loadModule(new DungeonCleanEnd());
+ loadModule(new DungeonBossMessages());
+ loadModule(new DungeonBossHideDamageSplash());
+ loadModule(new TrophyFishMessages());
+ loadModule(new BazaarBestSellMethod());
+ loadModule(new AnvilCombineHelper());
+ loadModule(new SeaCreatureMessageShortener());
// registerEvent(new GriffinBurrowFinder());
- registerEvent(new AshfangFreezeCooldown());
- registerEvent(new AshfangNextResetCooldown());
- registerEvent(new SummoningSoulsName());
- registerEvent(new AshfangGravityOrbs());
- registerEvent(new AshfangBlazingSouls());
- registerEvent(new AshfangBlazes());
- registerEvent(new AshfangHideParticles());
- registerEvent(new AshfangHideDamageIndicator());
- registerEvent(new ItemStars());
- registerEvent(new MinionFeatures());
- registerEvent(new RealTime());
- registerEvent(new RngMeterInventory());
- registerEvent(new WikiCommand());
- registerEvent(new SummoningMobManager());
- registerEvent(new VoidlingExtremistColor());
- registerEvent(new MilleniaAgedBlazeColor());
- registerEvent(new CorruptedMobHighlight());
- registerEvent(new MarkedPlayerManager());
- registerEvent(new HighlightSlayerMiniboss());
- registerEvent(new PlayerDeathMessages());
- registerEvent(new HighlightDungeonDeathmite());
- registerEvent(new DungeonHideItems());
- registerEvent(new DungeonCopilot());
- registerEvent(new EndermanSlayerBeacon());
- registerEvent(new FireVeilWandParticles());
- registerEvent(new HideMobNames());
- registerEvent(new HideDamageSplash());
- registerEvent(new ThunderSparksHighlight());
- registerEvent(new BlazeSlayerPillar());
- registerEvent(new BlazeSlayerDaggerHelper());
- registerEvent(new HellionShieldHelper());
- registerEvent(new BlazeSlayerFirePitsWarning());
- registerEvent(new BlazeSlayerClearView());
- registerEvent(new PlayerChatFilter());
- registerEvent(new HideArmor());
- registerEvent(new SlayerQuestWarning());
- registerEvent(new StatsTuning());
- registerEvent(new NonGodPotEffectDisplay());
- registerEvent(new SoopyGuessBurrow());
- registerEvent(new GriffinBurrowHelper());
- registerEvent(new GriffinBurrowParticleFinder());
- registerEvent(new BurrowWarpHelper());
- registerEvent(new HighlightBonzoMasks());
- registerEvent(new DungeonLevelColor());
- registerEvent(new BazaarCancelledBuyOrderClipboard());
- registerEvent(new CroesusUnopenedChestTracker());
+ loadModule(new AshfangFreezeCooldown());
+ loadModule(new AshfangNextResetCooldown());
+ loadModule(new SummoningSoulsName());
+ loadModule(new AshfangGravityOrbs());
+ loadModule(new AshfangBlazingSouls());
+ loadModule(new AshfangBlazes());
+ loadModule(new AshfangHideParticles());
+ loadModule(new AshfangHideDamageIndicator());
+ loadModule(new ItemStars());
+ loadModule(new MinionFeatures());
+ loadModule(new RealTime());
+ loadModule(new RngMeterInventory());
+ loadModule(new WikiCommand());
+ loadModule(new SummoningMobManager());
+ loadModule(new VoidlingExtremistColor());
+ loadModule(new MilleniaAgedBlazeColor());
+ loadModule(new CorruptedMobHighlight());
+ loadModule(new MarkedPlayerManager());
+ loadModule(new HighlightSlayerMiniboss());
+ loadModule(new PlayerDeathMessages());
+ loadModule(new HighlightDungeonDeathmite());
+ loadModule(new DungeonHideItems());
+ loadModule(new DungeonCopilot());
+ loadModule(new EndermanSlayerBeacon());
+ loadModule(new FireVeilWandParticles());
+ loadModule(new HideMobNames());
+ loadModule(new HideDamageSplash());
+ loadModule(new ThunderSparksHighlight());
+ loadModule(new BlazeSlayerPillar());
+ loadModule(new BlazeSlayerDaggerHelper());
+ loadModule(new HellionShieldHelper());
+ loadModule(new BlazeSlayerFirePitsWarning());
+ loadModule(new BlazeSlayerClearView());
+ loadModule(new PlayerChatFilter());
+ loadModule(new HideArmor());
+ loadModule(new SlayerQuestWarning());
+ loadModule(new StatsTuning());
+ loadModule(new NonGodPotEffectDisplay());
+ loadModule(new SoopyGuessBurrow());
+ loadModule(new GriffinBurrowHelper());
+ loadModule(new GriffinBurrowParticleFinder());
+ loadModule(new BurrowWarpHelper());
+ loadModule(new CollectionCounter());
+ loadModule(new HighlightBonzoMasks());
+ loadModule(new DungeonLevelColor());
+ loadModule(new BazaarCancelledBuyOrderClipboard());
+ loadModule(new CompactSplashPotionMessage());
+ loadModule(new CroesusUnopenedChestTracker());
+ loadModule(new CompactBingoChat());
+ loadModule(new BrewingStandOverlay());
Commands.INSTANCE.init();
- registerEvent(new LorenzTest());
- registerEvent(new ButtonOnPause());
+ loadModule(new LorenzTest());
+ loadModule(new ButtonOnPause());
configManager = new ConfigManager();
configManager.firstLoad();
@@ -183,14 +187,9 @@ public class SkyHanniMod {
repo.loadRepoInformation();
}
- private void registerEvent(Object object) {
- listenerClasses.add(object);
- String simpleName = object.getClass().getSimpleName();
- consoleLog("SkyHanni registering '" + simpleName + "'");
- long start = System.currentTimeMillis();
+ private void loadModule(Object object) {
+ modules.add(object);
MinecraftForge.EVENT_BUS.register(object);
- long duration = System.currentTimeMillis() - start;
- consoleLog("Done after " + duration + " ms!");
}
public static GuiScreen screenToOpen = null;
diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java
index 0f7f0fd6c..39d20d74b 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/Features.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java
@@ -8,8 +8,8 @@ import at.hannibal2.skyhanni.config.core.config.Position;
import at.hannibal2.skyhanni.config.core.config.annotations.Category;
import at.hannibal2.skyhanni.config.core.config.gui.GuiPositionEditor;
import at.hannibal2.skyhanni.config.features.*;
-import at.hannibal2.skyhanni.features.HideArmor;
-import at.hannibal2.skyhanni.features.MarkedPlayerManager;
+import at.hannibal2.skyhanni.features.misc.HideArmor;
+import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager;
import com.google.gson.annotations.Expose;
import net.minecraft.client.Minecraft;
@@ -37,6 +37,11 @@ public class Features extends Config {
return;
}
+ if (runnableId.equals("collectionCounter")) {
+ editOverlay(activeConfigCategory, 200, 16, misc.collectionCounterPos);
+ return;
+ }
+
if (runnableId.equals("debugPos")) {
editOverlay(activeConfigCategory, 200, 16, dev.debugPos);
return;
@@ -160,6 +165,10 @@ public class Features extends Config {
public MarkedPlayers markedPlayers = new MarkedPlayers();
@Expose
+ @Category(name = "Bingo", desc = "Features for the Bingo mode.")
+ public Bingo bingo = new Bingo();
+
+ @Expose
@Category(name = "Misc", desc = "Settings without a category.")
public Misc misc = new Misc();
diff --git a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
index 5d94d850c..9bda0fda1 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
+++ b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
@@ -4,8 +4,9 @@ import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigEditor
import at.hannibal2.skyhanni.config.commands.SimpleCommand.ProcessCommandRunnable
import at.hannibal2.skyhanni.config.core.GuiScreenElementWrapper
-import at.hannibal2.skyhanni.features.MarkedPlayerManager
import at.hannibal2.skyhanni.features.event.diana.BurrowWarpHelper
+import at.hannibal2.skyhanni.features.misc.CollectionCounter
+import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager
import at.hannibal2.skyhanni.test.LorenzTest
import at.hannibal2.skyhanni.test.command.CopyItemCommand
import at.hannibal2.skyhanni.test.command.CopyNearbyEntitiesCommand
@@ -37,6 +38,7 @@ object Commands {
registerCommand("togglepacketlog") { LorenzTest.togglePacketLog() }
registerCommand("shreloadlisteners") { LorenzTest.reloadListeners() }
registerCommand("shresetburrowwarps") { BurrowWarpHelper.resetDisabledWarps() }
+ registerCommand("shtrackcollection") { CollectionCounter.command(it) }
}
private fun registerCommand(name: String, function: (Array<String>) -> Unit) {
diff --git a/src/main/java/at/hannibal2/skyhanni/config/core/GuiElementTextField.java b/src/main/java/at/hannibal2/skyhanni/config/core/GuiElementTextField.java
index 3652f76f5..56114c161 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/core/GuiElementTextField.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/core/GuiElementTextField.java
@@ -566,9 +566,9 @@ public class GuiElementTextField {
);
GlScissorStack.pop(scaledresolution);
} else {
-// String toRender = Minecraft.getMinecraft().fontRendererObj.trimStringToWidth(ChromaUtils.INSTANCE.chromaStringByColourCode(
- String toRender = Minecraft.getMinecraft().fontRendererObj.trimStringToWidth(texts[yOffI], searchBarXSize - 10);
- Minecraft.getMinecraft().fontRendererObj.drawString(toRender, x + 5,
+// String display = Minecraft.getMinecraft().fontRendererObj.trimStringToWidth(ChromaUtils.INSTANCE.chromaStringByColourCode(
+ String display = Minecraft.getMinecraft().fontRendererObj.trimStringToWidth(texts[yOffI], searchBarXSize - 10);
+ Minecraft.getMinecraft().fontRendererObj.drawString(display, x + 5,
y + (searchBarYSize - 8) / 2 + yOff, customTextColour
);
}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java b/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java
new file mode 100644
index 000000000..002841d22
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java
@@ -0,0 +1,14 @@
+package at.hannibal2.skyhanni.config.features;
+
+import at.hannibal2.skyhanni.config.core.config.annotations.ConfigEditorBoolean;
+import at.hannibal2.skyhanni.config.core.config.annotations.ConfigOption;
+import com.google.gson.annotations.Expose;
+
+public class Bingo {
+
+ @Expose
+ @ConfigOption(name = "Compact Chat Messages", desc = "Shortens chat messages about skill level ups, collection gains, " +
+ "new area discoveries, and bestiarity upgrades while on bingo.")
+ @ConfigEditorBoolean
+ public boolean compactChatMessages = true;
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java b/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
index 029731f96..386a8fd4b 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
@@ -91,7 +91,7 @@ public class Chat {
@Expose
@ConfigOption(name = "Dungeon Filter", desc = "Hide annoying messages in the dungeon.")
@ConfigEditorBoolean
- public boolean dungeonMessages = false;
+ public boolean dungeonMessages = true;
@Expose
@ConfigOption(name = "Dungeon Boss Messages", desc = "Hide messages from watcher and bosses in the dungeon.")
@@ -103,4 +103,9 @@ public class Chat {
"except for players who are close to the player, inside dungeon or during a Kuudra fight.")
@ConfigEditorBoolean
public boolean hideFarDeathMessages = false;
+
+ @Expose
+ @ConfigOption(name = "Compact Potion Message", desc = "Shorten chat messages about player potion effects.")
+ @ConfigEditorBoolean
+ public boolean compactPotionMessage = true;
}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Hidden.java b/src/main/java/at/hannibal2/skyhanni/config/features/Hidden.java
index eef96aa56..b3d138269 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Hidden.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Hidden.java
@@ -14,5 +14,8 @@ public class Hidden {
public String currentPet = "";
@Expose
- public Map<String, Long> minions = new HashMap<>();
+ public Map<String, Long> minionLastClick = new HashMap<>();
+
+ @Expose
+ public Map<String, String> minionName = new HashMap<>();
}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Minions.java b/src/main/java/at/hannibal2/skyhanni/config/features/Minions.java
index 718c46576..d29eb45bd 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Minions.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Minions.java
@@ -6,6 +6,11 @@ import com.google.gson.annotations.Expose;
public class Minions {
+ @Expose
+ @ConfigOption(name = "Name Display", desc = "Show the minion name and tier over the minion.")
+ @ConfigEditorBoolean
+ public boolean nameDisplay = true;
+
@ConfigOption(name = "Last Clicked", desc = "")
@ConfigEditorAccordion(id = 0)
public boolean lastClickedMinion = false;
@@ -43,15 +48,15 @@ public class Minions {
public boolean emptiedTime = false;
@Expose
- @ConfigOption(name = "Emptied Time Display", desc = "Show the time when the hopper in the minion was last emptied")
+ @ConfigOption(name = "Emptied Time Display", desc = "Show the time when the hopper in the minion was last emptied.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 1)
public boolean emptiedTimeDisplay = false;
@Expose
@ConfigOption(
- name = "Emptied Time Distance",
- desc = "At what distance is this display shown"
+ name = "Distance",
+ desc = "At what distance is the minion display shown."
)
@ConfigEditorSlider(
minValue = 3,
@@ -59,7 +64,7 @@ public class Minions {
minStep = 1
)
@ConfigAccordionId(id = 1)
- public int emptiedTimeDistance = 10;
+ public int distance = 10;
@ConfigOption(name = "Hopper Profit", desc = "")
@ConfigEditorAccordion(id = 2)
@@ -69,7 +74,7 @@ public class Minions {
@ConfigOption(name = "Hopper Profit Display", desc = "Using the held coins and the last empty time to calculate the coins a hopper collects in a day")
@ConfigEditorBoolean
@ConfigAccordionId(id = 2)
- public boolean hopperProfitDisplay = false;
+ public boolean hopperProfitDisplay = true;
@Expose
@ConfigOption(name = "Best Sell Method Position", desc = "")
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java b/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
index 5420aec36..58186b08e 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
@@ -134,4 +134,14 @@ public class Misc {
@ConfigOption(name = "Config Button", desc = "Add a button to the pause menu to configure SkyHanni.")
@ConfigEditorBoolean
public boolean configButtonOnPause = true;
+
+ @Expose
+ @ConfigOption(name = "Collection Counter Position", desc = "Tracking the number of items you collect. §cDoes not work with sacks.")
+ @ConfigEditorButton(runnableId = "collectionCounter", buttonText = "Edit")
+ public Position collectionCounterPos = new Position(10, 10, false, true);
+
+ @Expose
+ @ConfigOption(name = "Brewing Stand Overlay", desc = "Display the Item names directly inside the Brewing Stand")
+ @ConfigEditorBoolean
+ public boolean brewingStandOverlay = true;
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ApiKeyGrabber.kt b/src/main/java/at/hannibal2/skyhanni/data/ApiDataLoader.kt
index 000d21805..bea039212 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ApiKeyGrabber.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ApiDataLoader.kt
@@ -12,13 +12,32 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import net.minecraft.client.Minecraft
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import net.minecraftforge.fml.common.gameevent.TickEvent
import java.io.File
import java.util.*
-class ApiKeyGrabber {
+class ApiDataLoader {
private var currentProfileName = ""
+ private var nextApiCallTime = -1L
+ private var currentProfileId = ""
+
+ @SubscribeEvent
+ fun onTick(event: TickEvent.ClientTickEvent) {
+ val thePlayer = Minecraft.getMinecraft().thePlayer ?: return
+ thePlayer.worldObj ?: return
+
+ if (nextApiCallTime != -1L && System.currentTimeMillis() > nextApiCallTime) {
+ nextApiCallTime = System.currentTimeMillis() + 60_000 * 5
+ SkyHanniMod.coroutineScope.launch {
+ val apiKey = SkyHanniMod.feature.hidden.apiKey
+ val uuid = Minecraft.getMinecraft().thePlayer.uniqueID.toDashlessUUID()
+ loadProfileData(apiKey, uuid, currentProfileId)
+ }
+ }
+ }
+
@SubscribeEvent
fun onStatusBar(event: LorenzChatEvent) {
val message = event.message
@@ -38,7 +57,6 @@ class ApiKeyGrabber {
updateApiData()
}
-
private suspend fun tryUpdateProfileDataAndVerifyKey(apiKey: String): Boolean {
val uuid = Minecraft.getMinecraft().thePlayer.uniqueID.toDashlessUUID()
val url = "https://api.hypixel.net/player?key=$apiKey&uuid=$uuid"
@@ -55,20 +73,21 @@ class ApiKeyGrabber {
}
val player = jsonObject["player"].asJsonObject
val stats = player["stats"].asJsonObject
- val skyblock = stats["SkyBlock"].asJsonObject
- val profiles = skyblock["profiles"].asJsonObject
+ val skyBlock = stats["SkyBlock"].asJsonObject
+ val profiles = skyBlock["profiles"].asJsonObject
for (entry in profiles.entrySet()) {
val asJsonObject = entry.value.asJsonObject
val name = asJsonObject["cute_name"].asString
if (currentProfileName == name.lowercase()) {
- val profileId = asJsonObject["profile_id"].asString
- loadProfile(apiKey, uuid, profileId)
+ currentProfileId = asJsonObject["profile_id"].asString
+ loadProfileData(apiKey, uuid, currentProfileId)
}
}
return true
}
private fun updateApiData() {
+ nextApiCallTime = -1
SkyHanniMod.coroutineScope.launch {
val oldApiKey = SkyHanniMod.feature.hidden.apiKey
if (oldApiKey.isNotEmpty() && tryUpdateProfileDataAndVerifyKey(oldApiKey)) {
@@ -110,18 +129,18 @@ class ApiKeyGrabber {
return candidates
}
- private suspend fun loadProfile(apiKey: String, playerUuid: String, profileId: String) {
+ private suspend fun loadProfileData(apiKey: String, playerUuid: String, profileId: String) {
val url = "https://api.hypixel.net/skyblock/profile?key=$apiKey&profile=$profileId"
val jsonObject = withContext(Dispatchers.IO) { APIUtil.getJSONResponse(url) }
-
val profile = jsonObject["profile"]?.asJsonObject ?: return
val members = profile["members"]?.asJsonObject ?: return
for (entry in members.entrySet()) {
if (entry.key == playerUuid) {
val profileData = entry.value.asJsonObject
ProfileApiDataLoadedEvent(profileData).postAndCatch()
+ nextApiCallTime = System.currentTimeMillis() + 60_000 * 3
}
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/data/EntityMovementData.kt b/src/main/java/at/hannibal2/skyhanni/data/EntityMovementData.kt
index 2e4d13da6..30f88f48e 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/EntityMovementData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/EntityMovementData.kt
@@ -25,7 +25,7 @@ class EntityMovementData {
@SubscribeEvent
fun onTick(event: TickEvent.ClientTickEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
for (entity in entityLocation.keys) {
if (entity.isDead) continue
diff --git a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt b/src/main/java/at/hannibal2/skyhanni/data/HyPixelData.kt
index 53a1286d3..2bb7c7678 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/HyPixelData.kt
@@ -12,26 +12,29 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import net.minecraftforge.fml.common.gameevent.TickEvent
import net.minecraftforge.fml.common.network.FMLNetworkEvent
-class HypixelData {
+class HyPixelData {
companion object {
var hypixel = false
- var skyblock = false
- var skyBlockIsland: String = ""
+ var skyBlock = false
+ var skyBlockIsland = IslandType.UNKNOWN
- fun readSkyBlockArea(): String {
- for (line in ScoreboardData.sidebarLinesFormatted()) {
- if (line.startsWith(" §7⏣ ")) {
- return line.substring(5).removeColor()
- }
- }
+ //Ironman, Stranded and Bingo
+ var noTrade = false
- return "invalid"
- }
+ var ironman = false
+ var stranded = false
+ var bingo = false
+ fun readSkyBlockArea(): String {
+ return ScoreboardData.sidebarLinesFormatted()
+ .firstOrNull { it.startsWith(" §7⏣ ") }
+ ?.substring(5)?.removeColor()
+ ?: "invalid"
+ }
}
- var loggerIslandChange = LorenzLogger("debug/island_change")
+ private var loggerIslandChange = LorenzLogger("debug/island_change")
@SubscribeEvent
fun onConnect(event: FMLNetworkEvent.ClientConnectedToServerEvent) {
@@ -43,13 +46,13 @@ class HypixelData {
@SubscribeEvent
fun onWorldChange(event: WorldEvent.Load) {
- skyblock = false
+ skyBlock = false
}
@SubscribeEvent
fun onDisconnect(event: FMLNetworkEvent.ClientDisconnectionFromServerEvent) {
hypixel = false
- skyblock = false
+ skyBlock = false
}
@SubscribeEvent
@@ -57,7 +60,6 @@ class HypixelData {
if (!hypixel) return
val message = event.message.removeColor().lowercase()
-
if (message.startsWith("your profile was changed to:")) {
val stripped = message.replace("your profile was changed to:", "").replace("(co-op)", "").trim()
ProfileJoinEvent(stripped).postAndCatch()
@@ -65,7 +67,6 @@ class HypixelData {
if (message.startsWith("you are playing on profile:")) {
val stripped = message.replace("you are playing on profile:", "").replace("(co-op)", "").trim()
ProfileJoinEvent(stripped).postAndCatch()
-
}
}
@@ -80,13 +81,42 @@ class HypixelData {
if (tick % 5 != 0) return
- val newState = checkScoreboard()
- if (newState) {
+ val inSkyBlock = checkScoreboard()
+ if (inSkyBlock) {
checkIsland()
+ checkSidebar()
+ }
+
+ if (inSkyBlock == skyBlock) return
+ skyBlock = inSkyBlock
+ }
+
+ private fun checkSidebar() {
+ ironman = false
+ stranded = false
+ bingo = false
+
+ for (line in ScoreboardData.sidebarLinesFormatted()) {
+ when (line) {
+ " §7Ⓑ §7Bingo", // No Rank
+ " §bⒷ §bBingo", // Rank 1
+ " §9Ⓑ §9Bingo", // Rank 2
+ " §5Ⓑ §5Bingo", // Rank 3
+ " §6Ⓑ §6Bingo", // Rank 4
+ -> {
+ bingo = true
+ }
+
+ // TODO implemennt stranded check
+
+ " §7♲ §7Ironman" -> {
+ ironman = true
+ }
+
+ }
}
- if (newState == skyblock) return
- skyblock = newState
+ noTrade = ironman || stranded || bingo
}
private fun checkIsland() {
@@ -100,14 +130,24 @@ class HypixelData {
guesting = true
}
}
- if (guesting) {
- newIsland = "$newIsland guesting"
+
+ var islandType = IslandType.getBySidebarName(newIsland)
+
+ if (islandType == IslandType.PRIVATE_ISLAND) {
+ if (guesting) {
+ islandType = IslandType.PRIVATE_ISLAND_GUEST
+ }
}
- if (skyBlockIsland != newIsland) {
- IslandChangeEvent(newIsland, skyBlockIsland).postAndCatch()
- loggerIslandChange.log(newIsland)
- skyBlockIsland = newIsland
+ if (skyBlockIsland != islandType) {
+ IslandChangeEvent(islandType, skyBlockIsland).postAndCatch()
+ if (islandType == IslandType.UNKNOWN) {
+ println("Unknown island detected: '$newIsland'")
+ loggerIslandChange.log("Unknown: '$newIsland'")
+ } else {
+ loggerIslandChange.log(islandType.name)
+ }
+ skyBlockIsland = islandType
}
}
@@ -115,12 +155,8 @@ class HypixelData {
val minecraft = Minecraft.getMinecraft()
val world = minecraft.theWorld ?: return false
- val sidebarObjective = world.scoreboard.getObjectiveInDisplaySlot(1) ?: return false
-
- val displayName = sidebarObjective.displayName
-
+ val objective = world.scoreboard.getObjectiveInDisplaySlot(1) ?: return false
+ val displayName = objective.displayName
return displayName.removeColor().contains("SKYBLOCK")
-
}
-
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/data/IslandType.kt b/src/main/java/at/hannibal2/skyhanni/data/IslandType.kt
new file mode 100644
index 000000000..527cce548
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/data/IslandType.kt
@@ -0,0 +1,22 @@
+package at.hannibal2.skyhanni.data
+
+enum class IslandType(val displayName: String) {
+ PRIVATE_ISLAND("Private Island"),
+ PRIVATE_ISLAND_GUEST("Private Island Guest"),
+ THE_END("The End"),
+ KUUDRA_ARENA("Instanced"),
+ CRIMSON_ISLE("Crimson Isle"),
+
+ HUB("Hub"),
+ THE_FARMING_ISLANDS("The Farming Islands"),
+
+ NONE(""),
+ UNKNOWN("???"),
+ ;
+
+ companion object {
+ fun getBySidebarName(name: String): IslandType {
+ return values().firstOrNull { it.displayName == name } ?: UNKNOWN
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ItemRenderBackground.kt b/src/main/java/at/hannibal2/skyhanni/data/ItemRenderBackground.kt
index 9b25933ea..1576ff4ca 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ItemRenderBackground.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ItemRenderBackground.kt
@@ -30,7 +30,7 @@ class ItemRenderBackground {
@SubscribeEvent
fun renderOverlayLol(event: RenderRealOverlayEvent) {
val stack = event.stack
- if (LorenzUtils.inSkyblock) {
+ if (LorenzUtils.inSkyBlock) {
if (stack != null) {
val color = stack.background
if (color != -1) {
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ItemTipHelper.kt b/src/main/java/at/hannibal2/skyhanni/data/ItemTipHelper.kt
index 69ae9fa2d..7937ab2ae 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ItemTipHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ItemTipHelper.kt
@@ -5,10 +5,12 @@ import at.hannibal2.skyhanni.events.GuiRenderItemEvent
import at.hannibal2.skyhanni.events.RenderInventoryItemTipEvent
import at.hannibal2.skyhanni.events.RenderItemTipEvent
import at.hannibal2.skyhanni.mixins.transformers.gui.AccessorGuiContainer
+import at.hannibal2.skyhanni.utils.InventoryUtils.getInventoryName
import at.hannibal2.skyhanni.utils.LorenzUtils
import net.minecraft.client.Minecraft
import net.minecraft.client.gui.inventory.GuiChest
import net.minecraft.client.renderer.GlStateManager
+import net.minecraft.inventory.ContainerChest
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -20,7 +22,7 @@ class ItemTipHelper {
@SubscribeEvent
fun onRenderItemOverlayPost(event: GuiRenderItemEvent.RenderOverlayEvent.GuiRenderItemPost) {
val stack = event.stack ?: return
- if (!LorenzUtils.inSkyblock || stack.stackSize != 1) return
+ if (!LorenzUtils.inSkyBlock || stack.stackSize != 1) return
// val uuid = stacremovek.getLore().joinToString { ", " }
val stackTip: String
@@ -51,10 +53,12 @@ class ItemTipHelper {
@SubscribeEvent(priority = EventPriority.HIGHEST)
fun onRenderInventoryItemOverlayPost(event: DrawScreenAfterEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val gui = Minecraft.getMinecraft().currentScreen
if (gui !is GuiChest) return
+ val chest = gui.inventorySlots as ContainerChest
+ var inventoryName = chest.getInventoryName()
val guiLeft = (gui as AccessorGuiContainer).guiLeft
val guiTop = (gui as AccessorGuiContainer).guiTop
@@ -65,9 +69,8 @@ class ItemTipHelper {
GlStateManager.disableBlend()
for (slot in gui.inventorySlots.inventorySlots) {
val stack = slot.stack ?: continue
- if (stack.stackSize != 1) continue
- val itemTipEvent = RenderInventoryItemTipEvent(stack)
+ val itemTipEvent = RenderInventoryItemTipEvent(inventoryName, slot, stack)
itemTipEvent.postAndCatch()
val stackTip = itemTipEvent.stackTip
if (stackTip.isEmpty()) continue
diff --git a/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt b/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt
index 16facaf90..f463391e3 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt
@@ -13,7 +13,7 @@ class MinecraftData {
@SubscribeEvent(receiveCanceled = true)
fun onSoundPacket(event: PacketEvent.ReceiveEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val packet = event.packet
if (packet !is S29PacketSoundEffect) return
@@ -31,7 +31,7 @@ class MinecraftData {
@SubscribeEvent(receiveCanceled = true)
fun onParticlePacketReceive(event: PacketEvent.ReceiveEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val packet = event.packet
if (packet !is S2APacketParticles) return
diff --git a/src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt b/src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt
index eda151f97..f0abb1427 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt
@@ -10,17 +10,17 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class SendTitleHelper {
companion object {
- private var textToRender = ""
+ private var display = ""
private var endTime = 0L
fun sendTitle(text: String, duration: Int) {
- textToRender = text
+ display = text
endTime = System.currentTimeMillis() + duration
}
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (System.currentTimeMillis() > endTime) return
@@ -36,7 +36,7 @@ class SendTitleHelper {
GlStateManager.pushMatrix()
GlStateManager.translate((width / 2).toFloat(), (height / 1.8).toFloat(), 0.0f)
GlStateManager.scale(4.0f, 4.0f, 4.0f)
- TextRenderUtils.drawStringCenteredScaledMaxWidth(textToRender, renderer, 0f, 0f, false, 75, 0)
+ TextRenderUtils.drawStringCenteredScaledMaxWidth(display, renderer, 0f, 0f, false, 75, 0)
GlStateManager.popMatrix()
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/events/GuiContainerEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/GuiContainerEvent.kt
index 9a993cb77..437130bdd 100644
--- a/src/main/java/at/hannibal2/skyhanni/events/GuiContainerEvent.kt
+++ b/src/main/java/at/hannibal2/skyhanni/events/GuiContainerEvent.kt
@@ -2,15 +2,10 @@ package at.hannibal2.skyhanni.events
import net.minecraft.client.gui.inventory.GuiContainer
import net.minecraft.inventory.Container
-import net.minecraft.inventory.ContainerChest
import net.minecraft.inventory.Slot
import net.minecraftforge.fml.common.eventhandler.Cancelable
abstract class GuiContainerEvent(open val gui: GuiContainer, open val container: Container) : LorenzEvent() {
- val chestName: String by lazy {
- if (container !is ContainerChest) error("Container is not a chest")
- return@lazy (container as ContainerChest).lowerChestInventory.displayName.unformattedText.trim()
- }
data class BackgroundDrawnEvent(
override val gui: GuiContainer,
@@ -27,10 +22,18 @@ abstract class GuiContainerEvent(open val gui: GuiContainer, open val container:
abstract class DrawSlotEvent(gui: GuiContainer, container: Container, open val slot: Slot) :
GuiContainerEvent(gui, container) {
@Cancelable
- data class GuiContainerDrawSlotPre(override val gui: GuiContainer, override val container: Container, override val slot: Slot) :
+ data class GuiContainerDrawSlotPre(
+ override val gui: GuiContainer,
+ override val container: Container,
+ override val slot: Slot
+ ) :
DrawSlotEvent(gui, container, slot)
- data class GuiContainerDrawSlotPost(override val gui: GuiContainer, override val container: Container, override val slot: Slot) :
+ data class GuiContainerDrawSlotPost(
+ override val gui: GuiContainer,
+ override val container: Container,
+ override val slot: Slot
+ ) :
DrawSlotEvent(gui, container, slot)
}
diff --git a/src/main/java/at/hannibal2/skyhanni/events/IslandChangeEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/IslandChangeEvent.kt
index 2dec9acad..291ccd995 100644
--- a/src/main/java/at/hannibal2/skyhanni/events/IslandChangeEvent.kt
+++ b/src/main/java/at/hannibal2/skyhanni/events/IslandChangeEvent.kt
@@ -1,3 +1,5 @@
package at.hannibal2.skyhanni.events
-class IslandChangeEvent(val newIsland: String, val oldIsland: String?) : LorenzEvent() \ No newline at end of file
+import at.hannibal2.skyhanni.data.IslandType
+
+class IslandChangeEvent(val newIsland: IslandType, val oldIsland: IslandType) : LorenzEvent() \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/events/RenderInventoryItemTipEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/RenderInventoryItemTipEvent.kt
index 4576576bd..7bb4692ec 100644
--- a/src/main/java/at/hannibal2/skyhanni/events/RenderInventoryItemTipEvent.kt
+++ b/src/main/java/at/hannibal2/skyhanni/events/RenderInventoryItemTipEvent.kt
@@ -1,8 +1,11 @@
package at.hannibal2.skyhanni.events
+import net.minecraft.inventory.Slot
import net.minecraft.item.ItemStack
class RenderInventoryItemTipEvent(
+ val inventoryName: String,
+ val slot: Slot,
val stack: ItemStack,
var stackTip: String = "",
var offsetX: Int = 0,
diff --git a/src/main/java/at/hannibal2/skyhanni/features/anvil/AnvilCombineHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/anvil/AnvilCombineHelper.kt
index b2d397714..e03126fde 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/anvil/AnvilCombineHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/anvil/AnvilCombineHelper.kt
@@ -2,6 +2,7 @@ package at.hannibal2.skyhanni.features.anvil
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.GuiContainerEvent
+import at.hannibal2.skyhanni.utils.InventoryUtils.getInventoryName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzUtils
@@ -14,13 +15,12 @@ class AnvilCombineHelper {
@SubscribeEvent
fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.inventory.anvilCombineHelper) return
if (event.gui !is GuiChest) return
- val guiChest = event.gui
- val chest = guiChest.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ val chest = event.gui.inventorySlots as ContainerChest
+ val chestName = chest.getInventoryName()
if (chestName != "Anvil") return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt
index c2c8bcb18..857305c27 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt
@@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack
class BazaarApi {
companion object {
- private val bazaarMap = mutableMapOf<String, BazaarData>()
+ val bazaarMap = mutableMapOf<String, BazaarData>()
fun isBazaarInventory(inventoryName: String): Boolean {
if (inventoryName.contains(" ➜ ") && !inventoryName.contains("Museum")) return true
diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarBestSellMethod.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarBestSellMethod.kt
index c5d8c10a1..200c3e69e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarBestSellMethod.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarBestSellMethod.kt
@@ -15,18 +15,18 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class BazaarBestSellMethod {
companion object {
- private var textToRender = ""
+ private var display = ""
}
@SubscribeEvent
fun onBackgroundDrawn(event: GuiContainerEvent.CloseWindowEvent) {
- textToRender = ""
+ display = ""
}
@SubscribeEvent
fun onGuiDraw(event: GuiScreenEvent.DrawScreenEvent.Post) {
if (!isEnabled()) return
- textToRender = getNewText(event)
+ display = getNewText(event)
}
private fun getNewText(event: GuiScreenEvent.DrawScreenEvent.Post): String {
@@ -74,10 +74,10 @@ class BazaarBestSellMethod {
fun renderOverlay(event: GuiScreenEvent.BackgroundDrawnEvent) {
if (!isEnabled()) return
- SkyHanniMod.feature.bazaar.bestSellMethodPos.renderString(textToRender)
+ SkyHanniMod.feature.bazaar.bestSellMethodPos.renderString(display)
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.bazaar.bestSellMethod
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.bazaar.bestSellMethod
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarCancelledBuyOrderClipboard.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarCancelledBuyOrderClipboard.kt
index 3943e7d44..9ee430050 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarCancelledBuyOrderClipboard.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarCancelledBuyOrderClipboard.kt
@@ -53,6 +53,6 @@ class BazaarCancelledBuyOrderClipboard {
}
fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.bazaar.cancelledBuyOrderClipboard
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.bazaar.cancelledBuyOrderClipboard
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt
index 25abe82e1..bcf1b3e48 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt
@@ -40,7 +40,7 @@ internal class BazaarDataGrabber(private var bazaarMap: MutableMap<String, Bazaa
fun start() {
fixedRateTimer(name = "skyhanni-bazaar-update", period = 1000L) {
- if (!LorenzUtils.inSkyblock) {
+ if (!LorenzUtils.inSkyBlock) {
return@fixedRateTimer
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt
index 31bc1e978..fb4c3079b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt
@@ -2,6 +2,7 @@ package at.hannibal2.skyhanni.features.bazaar
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.GuiContainerEvent
+import at.hannibal2.skyhanni.utils.InventoryUtils.getInventoryName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzColor
@@ -26,7 +27,7 @@ class BazaarOrderHelper {
if (event.gui !is GuiChest) return
val guiChest = event.gui
val chest = guiChest.inventorySlots as ContainerChest
- val inventoryName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ val inventoryName = chest.getInventoryName()
if (!isBazaarOrderInventory(inventoryName)) return
out@ for (slot in chest.inventorySlots) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt
index f1334cee1..545c5c17a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt
@@ -10,7 +10,7 @@ class ChatFilter {
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
- if (!LorenzUtils.isOnHypixel) return
+ if (!LorenzUtils.isHyPixel) return
val blockReason = block(event.message)
if (blockReason != "") {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt
index 891249c23..8e6cd4d4a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt
@@ -1,16 +1,14 @@
package at.hannibal2.skyhanni.features.chat
import at.hannibal2.skyhanni.SkyHanniMod
-import at.hannibal2.skyhanni.data.HypixelData
import at.hannibal2.skyhanni.events.LorenzChatEvent
-import at.hannibal2.skyhanni.features.MarkedPlayerManager
+import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager
import at.hannibal2.skyhanni.utils.LocationUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.getLorenzVec
import net.minecraft.client.Minecraft
import net.minecraft.client.entity.EntityOtherPlayerMP
-import net.minecraftforge.event.world.WorldEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import net.minecraftforge.fml.common.gameevent.TickEvent
import java.util.regex.Pattern
@@ -34,7 +32,7 @@ class PlayerDeathMessages {
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val message = event.message
val matcher = pattern.matcher(message)
@@ -62,11 +60,6 @@ class PlayerDeathMessages {
}
}
- @SubscribeEvent
- fun onWorldChange(event: WorldEvent.Load) {
- HypixelData.skyblock = false
- }
-
private fun checkOtherPlayers() {
val location = LocationUtils.playerLocation()
for (otherPlayer in Minecraft.getMinecraft().theWorld.loadedEntityList
@@ -77,6 +70,6 @@ class PlayerDeathMessages {
}
private fun isHideFarDeathsEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.chat.hideFarDeathMessages && !LorenzUtils.inDungeons && !LorenzUtils.inKuudraFight
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.chat.hideFarDeathMessages && !LorenzUtils.inDungeons && !LorenzUtils.inKuudraFight
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt
index 5072152a7..7967fddba 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt
@@ -2,7 +2,7 @@ package at.hannibal2.skyhanni.features.chat.playerchat
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.LorenzChatEvent
-import at.hannibal2.skyhanni.features.MarkedPlayerManager
+import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager
import net.minecraft.util.ChatComponentText
import net.minecraft.util.IChatComponent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt b/src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt
index 762c75a01..3affefaf4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt
@@ -268,7 +268,7 @@ class DamageIndicatorManager {
@SubscribeEvent
fun onTick(event: TickEvent.ClientTickEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
for (entity in Minecraft.getMinecraft().theWorld.loadedEntityList) {
if (entity is EntityLivingBase) {
checkEntity(entity)
@@ -752,6 +752,6 @@ class DamageIndicatorManager {
}
fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.damageIndicator.enabled
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.damageIndicator.enabled
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusUnopenedChestTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusUnopenedChestTracker.kt
index ae5d5511d..20d7207f0 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusUnopenedChestTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusUnopenedChestTracker.kt
@@ -7,8 +7,6 @@ import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.RenderUtils.highlight
-import net.minecraft.client.gui.inventory.GuiChest
-import net.minecraft.inventory.ContainerChest
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -16,13 +14,10 @@ class CroesusUnopenedChestTracker {
@SubscribeEvent(priority = EventPriority.LOW)
fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.dungeon.croesusUnopenedChestTracker) return
- if (event.gui !is GuiChest) return
- val guiChest = event.gui
- val chest = guiChest.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ val chestName = InventoryUtils.openInventoryName()
if (chestName == "Croesus") {
for (slot in InventoryUtils.getItemsInOpenChest()) {
@@ -30,7 +25,7 @@ class CroesusUnopenedChestTracker {
val lore = stack.getLore()
if (lore.any { it.contains("Click to view") }) {
if (!lore.any { it.contains("Chests have been opened!") }) {
- slot highlight LorenzColor.GREEN
+ slot highlight LorenzColor.DARK_PURPLE
}
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonChatFilter.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonChatFilter.kt
index 1724c074e..9f4e12897 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonChatFilter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonChatFilter.kt
@@ -10,10 +10,10 @@ class DungeonChatFilter {
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
- if (!LorenzUtils.isOnHypixel) return
+ if (!LorenzUtils.isHyPixel) return
// Workaround since the potion message gets always sent in that moment when skyblock is set as false
- if (!LorenzUtils.inSkyblock && !event.message.startsWith("§aYour active Potion Effects")) return
+ if (!LorenzUtils.inSkyBlock && !event.message.startsWith("§aYour active Potion Effects")) return
if (!SkyHanniMod.feature.chat.dungeonMessages) return
val blockReason = block(event.message)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt
index ef19d53ec..15d1475f6 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt
@@ -126,7 +126,7 @@ class DungeonCopilot {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonDeathCounter.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonDeathCounter.kt
index a65ee67c1..e40b66968 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonDeathCounter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonDeathCounter.kt
@@ -12,7 +12,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class DungeonDeathCounter {
- private var textToRender = ""
+ private var display = ""
private var deaths = 0
private fun isDeathMessage(message: String): Boolean = when {
@@ -60,7 +60,7 @@ class DungeonDeathCounter {
private fun update() {
if (deaths == 0) {
- textToRender = ""
+ display = ""
return
}
@@ -69,7 +69,7 @@ class DungeonDeathCounter {
3 -> "§c"
else -> "§4"
}
- textToRender = color + "Deaths: $deaths"
+ display = color + "Deaths: $deaths"
}
@SubscribeEvent
@@ -85,11 +85,11 @@ class DungeonDeathCounter {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
- SkyHanniMod.feature.dungeon.deathCounterPos.renderString(DungeonMilestonesDisplay.color + textToRender)
+ SkyHanniMod.feature.dungeon.deathCounterPos.renderString(DungeonMilestonesDisplay.color + display)
}
private fun isEnabled(): Boolean {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt
index 796f93ef4..ff334737b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt
@@ -1,11 +1,9 @@
package at.hannibal2.skyhanni.features.dungeon
import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzUtils
-import net.minecraft.client.Minecraft
-import net.minecraft.client.gui.inventory.GuiChest
-import net.minecraft.inventory.ContainerChest
import net.minecraftforge.event.entity.player.ItemTooltipEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import java.util.regex.Pattern
@@ -16,14 +14,11 @@ class DungeonLevelColor {
@SubscribeEvent
fun onItemTooltip(event: ItemTooltipEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.dungeon.partyFinderColoredClassLevel) return
if (event.toolTip == null) return
- val guiChest = Minecraft.getMinecraft().currentScreen
- if (guiChest !is GuiChest) return
- val chest = guiChest.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ val chestName = InventoryUtils.openInventoryName()
if (chestName != "Party Finder") return
val stack = event.itemStack
@@ -45,7 +40,7 @@ class DungeonLevelColor {
if (level >= 50) return "§c§l"
if (level >= 45) return "§c"
if (level >= 40) return "§d"
- if (level >= 35) return "§b"
+ if (level >= 35) return "§6"
if (level >= 30) return "§5"
if (level >= 25) return "§9"
if (level >= 20) return "§a"
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt
index 97798b04b..692a077de 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt
@@ -15,7 +15,7 @@ class DungeonMilestonesDisplay {
companion object {
- private var textToRender = ""
+ private var display = ""
var color = ""
var currentMilestone = 0
var timeReached = 0L
@@ -40,8 +40,8 @@ class DungeonMilestonesDisplay {
private fun checkVisibility() {
if (currentMilestone >= 3) {
if (System.currentTimeMillis() > timeReached + 3_000)
- if (textToRender != "") {
- textToRender = textToRender.substring(1)
+ if (display != "") {
+ display = display.substring(1)
}
}
}
@@ -68,12 +68,12 @@ class DungeonMilestonesDisplay {
2 -> "§e"
else -> "§a"
}
- textToRender = "Current Milestone: $currentMilestone"
+ display = "Current Milestone: $currentMilestone"
}
@SubscribeEvent
fun onWorldChange(event: WorldEvent.Load) {
- textToRender = ""
+ display = ""
currentMilestone = 0
}
@@ -84,11 +84,11 @@ class DungeonMilestonesDisplay {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
- SkyHanniMod.feature.dungeon.showMileStonesDisplayPos.renderString(color + textToRender)
+ SkyHanniMod.feature.dungeon.showMileStonesDisplayPos.renderString(color + display)
}
private fun isEnabled(): Boolean {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt b/src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt
index b91d45dd8..c9b02bf5d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt
@@ -1,6 +1,7 @@
package at.hannibal2.skyhanni.features.end
import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.events.RenderMobColoredEvent
import at.hannibal2.skyhanni.events.ResetEntityHurtEvent
import at.hannibal2.skyhanni.events.withAlpha
@@ -54,5 +55,5 @@ class VoidlingExtremistColor {
}
private fun isEnabled(): Boolean =
- LorenzUtils.inSkyblock && LorenzUtils.skyBlockIsland == "The End" && SkyHanniMod.feature.misc.voidlingExtremistColor
+ LorenzUtils.inSkyBlock && LorenzUtils.skyBlockIsland == IslandType.THE_END && SkyHanniMod.feature.misc.voidlingExtremistColor
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/BurrowWarpHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/BurrowWarpHelper.kt
index 742fdfe36..245fa85af 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/BurrowWarpHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/BurrowWarpHelper.kt
@@ -1,6 +1,5 @@
package at.hannibal2.skyhanni.features.event.diana
-import at.hannibal2.skyhanni.data.HypixelData
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.utils.LocationUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
@@ -44,7 +43,7 @@ class BurrowWarpHelper {
@SubscribeEvent
fun onStatusBar(event: LorenzChatEvent) {
- if (!HypixelData.skyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (event.message == "§cYou haven't unlocked this fast travel destination!") {
val time = System.currentTimeMillis() - lastWarpTime
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinBurrowParticleFinder.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinBurrowParticleFinder.kt
index 72862c7e2..f32210f45 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinBurrowParticleFinder.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinBurrowParticleFinder.kt
@@ -82,7 +82,7 @@ class GriffinBurrowParticleFinder {
@SubscribeEvent(priority = EventPriority.LOW, receiveCanceled = true)
fun onChatPacket(event: PacketEvent.ReceiveEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val packet = event.packet
if (packet is S2APacketParticles) {
@@ -171,7 +171,7 @@ class GriffinBurrowParticleFinder {
@SubscribeEvent
fun onSendPacket(event: PacketEvent.SendEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val packet = event.packet
val pos = when {
packet is C07PacketPlayerDigging && packet.status == C07PacketPlayerDigging.Action.START_DESTROY_BLOCK -> {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/SeaCreatureMessageShortener.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/SeaCreatureMessageShortener.kt
index 21703d227..6670a4a3e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fishing/SeaCreatureMessageShortener.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/SeaCreatureMessageShortener.kt
@@ -9,7 +9,7 @@ class SeaCreatureMessageShortener {
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.fishing.shortenFishingMessage) return
val seaCreature = SeaCreatureManager.getSeaCreature(event.message)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/TrophyFishMessages.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/TrophyFishMessages.kt
index 99c8b7063..2db229525 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fishing/TrophyFishMessages.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/TrophyFishMessages.kt
@@ -40,7 +40,7 @@ class TrophyFishMessages {
@SubscribeEvent
fun onStatusBar(event: LorenzChatEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.fishing.trophyCounter) return
val message = event.message
diff --git a/src/main/java/at/hannibal2/skyhanni/features/inventory/HideNotClickableItems.kt b/src/main/java/at/hannibal2/skyhanni/features/inventory/HideNotClickableItems.kt
index 78735b5f9..afdc446f9 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/inventory/HideNotClickableItems.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/inventory/HideNotClickableItems.kt
@@ -7,6 +7,7 @@ import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.features.bazaar.BazaarApi
import at.hannibal2.skyhanni.utils.*
+import at.hannibal2.skyhanni.utils.InventoryUtils.getInventoryName
import at.hannibal2.skyhanni.utils.ItemUtils.cleanName
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
@@ -65,12 +66,12 @@ class HideNotClickableItems {
@SubscribeEvent
fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (isDisabled()) return
if (event.gui !is GuiChest) return
val guiChest = event.gui
val chest = guiChest.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ val chestName = chest.getInventoryName()
for (slot in chest.inventorySlots) {
if (slot == null) continue
@@ -92,10 +93,10 @@ class HideNotClickableItems {
fun onTooltip(event: ItemTooltipEvent) {
if (isDisabled()) return
if (event.toolTip == null) return
+
val guiChest = Minecraft.getMinecraft().currentScreen
if (guiChest !is GuiChest) return
- val chest = guiChest.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ val chestName = (guiChest.inventorySlots as ContainerChest).getInventoryName()
val stack = event.itemStack
if (InventoryUtils.getItemsInOpenChest().map { it.stack }.contains(stack)) return
@@ -119,9 +120,7 @@ class HideNotClickableItems {
fun onSlotClick(event: GuiContainerEvent.SlotClickEvent) {
if (isDisabled()) return
if (event.gui !is GuiChest) return
- val guiChest = event.gui
- val chest = guiChest.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ val chestName = InventoryUtils.openInventoryName()
val slot = event.slot ?: return
@@ -306,6 +305,12 @@ class HideNotClickableItems {
}
if (!ItemUtils.isRecombobulated(stack)) {
+ if (LorenzUtils.noTradeMode) {
+ if (BazaarApi.isBazaarItem(stack)) {
+ return false
+ }
+ }
+
if (hideNpcSellFilter.match(name)) return false
val id = stack.getInternalName()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/inventory/ItemDisplayOverlayFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/inventory/ItemDisplayOverlayFeatures.kt
index 4e25e3c83..bc79fdbc5 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/inventory/ItemDisplayOverlayFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/inventory/ItemDisplayOverlayFeatures.kt
@@ -2,6 +2,7 @@ package at.hannibal2.skyhanni.features.inventory
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.RenderItemTipEvent
+import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils
import at.hannibal2.skyhanni.utils.ItemUtils.cleanName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
@@ -61,10 +62,13 @@ class ItemDisplayOverlayFeatures {
}
if (SkyHanniMod.feature.inventory.itemNumberAsStackSize.contains(4)) {
- if (ItemUtils.isPet(name)) {
- val level = name.between("Lvl ", "] ").toInt()
- if (level != ItemUtils.maxPetLevel(name)) {
- return "$level"
+ val chestName = InventoryUtils.openInventoryName()
+ if (!chestName.endsWith("Sea Creature Guide")) {
+ if (ItemUtils.isPet(name)) {
+ val level = name.between("Lvl ", "] ").toInt()
+ if (level != ItemUtils.maxPetLevel(name)) {
+ return "$level"
+ }
}
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/inventory/ItemStars.kt b/src/main/java/at/hannibal2/skyhanni/features/inventory/ItemStars.kt
index 4573ffa70..af27b8f45 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/inventory/ItemStars.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/inventory/ItemStars.kt
@@ -19,7 +19,7 @@ class ItemStars {
@SubscribeEvent(priority = EventPriority.LOW)
fun onTooltip(event: ItemTooltipEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val stack = event.itemStack ?: return
if (stack.stackSize != 1) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/inventory/RngMeterInventory.kt b/src/main/java/at/hannibal2/skyhanni/features/inventory/RngMeterInventory.kt
index feb489349..eb2ead1fb 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/inventory/RngMeterInventory.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/inventory/RngMeterInventory.kt
@@ -11,9 +11,6 @@ import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.between
import at.hannibal2.skyhanni.utils.RenderUtils.highlight
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
-import net.minecraft.client.Minecraft
-import net.minecraft.client.gui.inventory.GuiChest
-import net.minecraft.inventory.ContainerChest
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -21,11 +18,7 @@ class RngMeterInventory {
@SubscribeEvent
fun onRenderItemTip(event: RenderItemTipEvent) {
- val screen = Minecraft.getMinecraft().currentScreen
- if (screen !is GuiChest) return
- val chest = screen.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
-
+ val chestName = InventoryUtils.openInventoryName()
val stack = event.stack
if (SkyHanniMod.feature.inventory.rngMeterFloorName) {
@@ -40,13 +33,9 @@ class RngMeterInventory {
@SubscribeEvent(priority = EventPriority.LOW)
fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) {
- if (!LorenzUtils.inSkyblock) return
-
- if (event.gui !is GuiChest) return
- val guiChest = event.gui
- val chest = guiChest.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ if (!LorenzUtils.inSkyBlock) return
+ val chestName = InventoryUtils.openInventoryName()
if (SkyHanniMod.feature.inventory.rngMeterNoDrop) {
if (chestName == "Catacombs RNG Meter") {
for (slot in InventoryUtils.getItemsInOpenChest()) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/inventory/StatsTuning.kt b/src/main/java/at/hannibal2/skyhanni/features/inventory/StatsTuning.kt
index bc1a5c9fd..dd17caf48 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/inventory/StatsTuning.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/inventory/StatsTuning.kt
@@ -9,9 +9,6 @@ import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.RenderUtils.highlight
-import net.minecraft.client.Minecraft
-import net.minecraft.client.gui.inventory.GuiChest
-import net.minecraft.inventory.ContainerChest
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import java.util.regex.Pattern
@@ -22,15 +19,12 @@ class StatsTuning {
@SubscribeEvent
fun onRenderItemTip(event: RenderInventoryItemTipEvent) {
- val screen = Minecraft.getMinecraft().currentScreen
- if (screen !is GuiChest) return
- val chest = screen.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ val inventoryName = event.inventoryName
val stack = event.stack
if (SkyHanniMod.feature.inventory.statsTuningTemplateStats) {
- if (chestName == "Stats Tuning") {
+ if (inventoryName == "Stats Tuning") {
val name = stack.name ?: return
if (name == "§aLoad") {
var grab = false
@@ -60,7 +54,7 @@ class StatsTuning {
}
}
if (SkyHanniMod.feature.inventory.statsTuningSelectedStats) {
- if (chestName == "Accessory Bag Thaumaturgy") {
+ if (inventoryName == "Accessory Bag Thaumaturgy") {
val name = stack.name ?: return
if (name == "§aStats Tuning") {
var grab = false
@@ -90,7 +84,7 @@ class StatsTuning {
}
}
if (SkyHanniMod.feature.inventory.statsTuningPoints) {
- if (chestName == "Stats Tuning") {
+ if (inventoryName == "Stats Tuning") {
for (line in stack.getLore()) {
val matcher = patternStatPoints.matcher(line)
if (matcher.matches()) {
@@ -105,13 +99,9 @@ class StatsTuning {
@SubscribeEvent(priority = EventPriority.LOW)
fun onDrawSelectedTemplate(event: GuiContainerEvent.BackgroundDrawnEvent) {
- if (!LorenzUtils.inSkyblock) return
-
- if (event.gui !is GuiChest) return
- val guiChest = event.gui
- val chest = guiChest.inventorySlots as ContainerChest
- val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ if (!LorenzUtils.inSkyBlock) return
+ val chestName = InventoryUtils.openInventoryName()
if (SkyHanniMod.feature.inventory.statsTuningSelectedTemplate) {
if (chestName == "Stats Tuning") {
for (slot in InventoryUtils.getItemsInOpenChest()) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/FireVeilWandParticles.kt b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/FireVeilWandParticles.kt
index 93da7dc7a..c301070af 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/FireVeilWandParticles.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/FireVeilWandParticles.kt
@@ -19,7 +19,7 @@ class FireVeilWandParticles {
@SubscribeEvent
fun onChatPacket(event: ReceiveParticleEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (SkyHanniMod.feature.itemAbilities.fireVeilWandDisplay == 0) return
if (System.currentTimeMillis() > lastClick + 5_500) return
@@ -30,7 +30,7 @@ class FireVeilWandParticles {
@SubscribeEvent
fun onItemClick(event: ItemClickInHandEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (event.clickType != ItemClickInHandEvent.ClickType.RIGHT_CLICK) return
val itemInHand = event.itemInHand ?: return
@@ -43,7 +43,7 @@ class FireVeilWandParticles {
@SubscribeEvent
fun onRenderWorld(event: RenderWorldLastEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (SkyHanniMod.feature.itemAbilities.fireVeilWandDisplay != 1) return
if (System.currentTimeMillis() > lastClick + 5_500) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt
index cbd75608a..152acf692 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt
@@ -56,7 +56,7 @@ class ItemAbilityCooldown {
@SubscribeEvent
fun onItemClickSend(event: PacketEvent.SendEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val packet = event.packet
if (packet is C07PacketPlayerDigging) {
@@ -97,7 +97,7 @@ class ItemAbilityCooldown {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.itemAbilities.itemAbilityCooldown
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.itemAbilities.itemAbilityCooldown
}
private fun click(ability: ItemAbility) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/minion/MinionData.kt b/src/main/java/at/hannibal2/skyhanni/features/minion/MinionData.kt
new file mode 100644
index 000000000..02ee25b51
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/minion/MinionData.kt
@@ -0,0 +1,5 @@
+package at.hannibal2.skyhanni.features.minion
+
+import scala.Serializable
+
+class MinionData(var name: String,var lastClicked: Long) : Serializable \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/minion/MinionFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/minion/MinionFeatures.kt
index 12ddf6f78..5751fefd7 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/minion/MinionFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/minion/MinionFeatures.kt
@@ -1,6 +1,7 @@
package at.hannibal2.skyhanni.features.minion
import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.events.ConfigLoadEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled
@@ -9,6 +10,7 @@ import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzUtils.formatInteger
import at.hannibal2.skyhanni.utils.LorenzUtils.matchRegex
+import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimal
import at.hannibal2.skyhanni.utils.RenderUtils.drawString
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
import net.minecraft.client.Minecraft
@@ -27,28 +29,31 @@ import java.awt.Color
class MinionFeatures {
- var lastClickedEntity: LorenzVec? = null
- var lastMinion: LorenzVec? = null
- var lastMinionOpened = 0L
- var minionInventoryOpen = false
+ private var lastClickedEntity: LorenzVec? = null
+ private var lastMinion: LorenzVec? = null
+ private var lastMinionOpened = 0L
+ private var minionInventoryOpen = false
- var lastCoinsRecived = 0L
- var lastMinionPickedUp = 0L
- val minions = mutableMapOf<LorenzVec, Long>()
- var coinsPerDay = ""
+ private var lastCoinsRecived = 0L
+ private var lastMinionPickedUp = 0L
+ private val minions = mutableMapOf<LorenzVec, MinionData>()
+ private var coinsPerDay = ""
@SubscribeEvent
fun onConfigLoad(event: ConfigLoadEvent) {
- for (minion in SkyHanniMod.feature.hidden.minions) {
- val vec = LorenzVec.decodeFromString(minion.key)
- minions[vec] = minion.value
+ for (minion in SkyHanniMod.feature.hidden.minionLastClick) {
+ val key = minion.key
+ val vec = LorenzVec.decodeFromString(key)
+ val name = SkyHanniMod.feature.hidden.minionName[key] ?: "§cNo name saved!"
+ val data = MinionData(name, minion.value)
+ minions[vec] = data
}
}
@SubscribeEvent
fun onClick(event: InputEvent.MouseInputEvent) {
- if (!LorenzUtils.inSkyblock) return
- if (LorenzUtils.skyBlockIsland != "Private Island") return
+ if (!LorenzUtils.inSkyBlock) return
+ if (LorenzUtils.skyBlockIsland != IslandType.PRIVATE_ISLAND) return
if (!Mouse.getEventButtonState()) return
if (Mouse.getEventButton() != 1) return
@@ -62,8 +67,8 @@ class MinionFeatures {
@SubscribeEvent
fun onRenderLastClickedMinion(event: RenderWorldLastEvent) {
- if (!LorenzUtils.inSkyblock) return
- if (LorenzUtils.skyBlockIsland != "Private Island") return
+ if (!LorenzUtils.inSkyBlock) return
+ if (LorenzUtils.skyBlockIsland != IslandType.PRIVATE_ISLAND) return
if (!SkyHanniMod.feature.minions.lastClickedMinionDisplay) return
val special = SkyHanniMod.feature.minions.lastOpenedMinionColor
@@ -87,11 +92,22 @@ class MinionFeatures {
@SubscribeEvent
fun onTick(event: TickEvent.ClientTickEvent) {
- if (LorenzUtils.skyBlockIsland != "Private Island") return
-
- if (InventoryUtils.currentlyOpenInventory().contains("Minion")) {
- if (lastClickedEntity != null) {
- lastMinion = lastClickedEntity
+ if (LorenzUtils.skyBlockIsland != IslandType.PRIVATE_ISLAND) return
+
+ val openInventory = InventoryUtils.currentlyOpenInventory()
+ if (openInventory.contains("Minion")) {
+ lastClickedEntity?.let {
+ val name = getMinionName(openInventory)
+ if (!minions.contains(it)) {
+ minions[it] = MinionData(name, 0)
+ saveConfig()
+ } else {
+ if (minions[it]!!.name != name) {
+ minions[it]!!.name = name
+ saveConfig()
+ }
+ }
+ lastMinion = it
lastClickedEntity = null
minionInventoryOpen = true
lastMinionOpened = 0
@@ -105,11 +121,11 @@ class MinionFeatures {
if (location != null) {
if (System.currentTimeMillis() - lastCoinsRecived < 2_000) {
- minions[location] = System.currentTimeMillis()
+ minions[location]!!.lastClicked = System.currentTimeMillis()
saveConfig()
}
if (location !in minions) {
- minions[location] = 0
+ minions[location]!!.lastClicked = 0
}
if (System.currentTimeMillis() - lastMinionPickedUp < 2_000) {
@@ -129,6 +145,15 @@ class MinionFeatures {
}
}
+ private fun getMinionName(inventoryName: String): String {
+ var list = inventoryName.split(" ").toList()
+ val last = list.last()
+ val number = last.romanToDecimal()
+ list = list.dropLast(1)
+
+ return list.joinToString(" ") + " $number"
+ }
+
private fun updateCoinsPerDay(): String {
val loc = lastMinion!!
val slot = InventoryUtils.getItemsInOpenChest().find { it.slotNumber == 28 } ?: return ""
@@ -138,8 +163,8 @@ class MinionFeatures {
if (coinsPerDay != "") return coinsPerDay
- val lastClicked = minions.getOrDefault(loc, -1)
- if (lastClicked == -1L) {
+ val lastClicked = minions[loc]!!.lastClicked
+ if (lastClicked == 0L) {
return "Can't calculate coins/day: No time data available!"
}
val duration = System.currentTimeMillis() - lastClicked
@@ -155,13 +180,17 @@ class MinionFeatures {
}
private fun saveConfig() {
- val minionConfig = SkyHanniMod.feature.hidden.minions
+ val minionConfig = SkyHanniMod.feature.hidden.minionLastClick
+ val minionName = SkyHanniMod.feature.hidden.minionName
minionConfig.clear()
+ minionName.clear()
for (minion in minions) {
- minionConfig[minion.key.encodeToString()] = minion.value
+ val coordinates = minion.key.encodeToString()
+ val data = minion.value
+ minionConfig[coordinates] = data.lastClicked
+ minionName[coordinates] = data.name
}
-
}
@SubscribeEvent
@@ -174,8 +203,8 @@ class MinionFeatures {
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
- if (!LorenzUtils.inSkyblock) return
- if (LorenzUtils.skyBlockIsland != "Private Island") return
+ if (!LorenzUtils.inSkyBlock) return
+ if (LorenzUtils.skyBlockIsland != IslandType.PRIVATE_ISLAND) return
if (event.message.matchRegex("§aYou received §r§6(.*) coins§r§a!")) {
lastCoinsRecived = System.currentTimeMillis()
@@ -187,22 +216,30 @@ class MinionFeatures {
@SubscribeEvent
fun onRenderLastEmptied(event: RenderWorldLastEvent) {
- if (!LorenzUtils.inSkyblock) return
- if (!SkyHanniMod.feature.minions.emptiedTimeDisplay) return
- if (LorenzUtils.skyBlockIsland != "Private Island") return
+ if (!LorenzUtils.inSkyBlock) return
+ if (LorenzUtils.skyBlockIsland != IslandType.PRIVATE_ISLAND) return
val playerLocation = LocationUtils.playerLocation()
val playerEyeLocation = LocationUtils.playerEyeLocation()
for (minion in minions) {
- val location = minion.key
- if (playerLocation.distance(location) < SkyHanniMod.feature.minions.emptiedTimeDistance) {
- val lastEmptied = minion.value
- if (lastEmptied == 0L) continue
- val duration = System.currentTimeMillis() - lastEmptied
- val format = StringUtils.formatDuration(duration / 1000) + " ago"
- if (LocationUtils.canSee(playerEyeLocation, location)) {
- val text = "§eHopper Emptied: $format"
- event.drawString(location.add(0.0, 2.0, 0.0), text, true)
+ val location = minion.key.add(0.0, 1.0, 0.0)
+ if (LocationUtils.canSee(playerEyeLocation, location)) {
+ val lastEmptied = minion.value.lastClicked
+ if (playerLocation.distance(location) < SkyHanniMod.feature.minions.distance) {
+
+ if (SkyHanniMod.feature.minions.nameDisplay) {
+ val name = "§9" + minion.value.name
+ event.drawString(location.add(0.0, 0.65, 0.0), name, true)
+ }
+
+ if (SkyHanniMod.feature.minions.emptiedTimeDisplay) {
+ if (lastEmptied != 0L) {
+ val duration = System.currentTimeMillis() - lastEmptied
+ val format = StringUtils.formatDuration(duration / 1000) + " ago"
+ val text = "§eHopper Emptied: $format"
+ event.drawString(location.add(0.0, 1.15, 0.0), text, true)
+ }
+ }
}
}
}
@@ -210,8 +247,8 @@ class MinionFeatures {
@SubscribeEvent(priority = EventPriority.HIGH)
fun onRenderLiving(event: RenderLivingEvent.Specials.Pre<EntityLivingBase>) {
- if (!LorenzUtils.inSkyblock) return
- if (LorenzUtils.skyBlockIsland != "Private Island") return
+ if (!LorenzUtils.inSkyBlock) return
+ if (LorenzUtils.skyBlockIsland != IslandType.PRIVATE_ISLAND) return
if (!SkyHanniMod.feature.minions.hideMobsNametagNearby) return
val entity = event.entity
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/BrewingStandOverlay.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/BrewingStandOverlay.kt
new file mode 100644
index 000000000..5557309a2
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/BrewingStandOverlay.kt
@@ -0,0 +1,44 @@
+package at.hannibal2.skyhanni.features.misc
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.RenderInventoryItemTipEvent
+import at.hannibal2.skyhanni.utils.ItemUtils.name
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class BrewingStandOverlay {
+
+ @SubscribeEvent
+ fun onRenderItemTip(event: RenderInventoryItemTipEvent) {
+ if (!LorenzUtils.inSkyBlock) return
+ if (!SkyHanniMod.feature.misc.brewingStandOverlay) return
+
+ if (event.inventoryName != "Brewing Stand") return
+
+ val stack = event.stack
+ val name = stack.name ?: return
+
+ val slotNumber = event.slot.slotNumber
+ when (slotNumber) {
+ 13, // Ingredient input
+ 21, // Progress
+ 42, // Output right side
+ -> {
+ }
+
+ else -> return
+ }
+
+ if (slotNumber == 21) {
+ event.offsetX = 55
+ }
+
+ // Hide the progress slot when not active
+ if (name.contains(" or ")) return
+
+ event.stackTip = name
+ event.offsetX = event.offsetX + 3
+ event.offsetY = -5
+ event.alignLeft = false
+ }
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/ButtonOnPause.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/ButtonOnPause.kt
index 9769f5196..d54cd7225 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/ButtonOnPause.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/ButtonOnPause.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigEditor
@@ -14,7 +14,7 @@ class ButtonOnPause {
@SubscribeEvent
fun onGuiAction(event: GuiScreenEvent.ActionPerformedEvent.Post) {
- if (!LorenzUtils.isOnHypixel) return
+ if (!LorenzUtils.isHyPixel) return
if (SkyHanniMod.feature.misc.configButtonOnPause && event.gui is GuiIngameMenu && event.button.id == buttonId) {
SkyHanniMod.screenToOpen = GuiScreenElementWrapper(
@@ -27,7 +27,7 @@ class ButtonOnPause {
@SubscribeEvent
fun onGuiInitPost(event: GuiScreenEvent.InitGuiEvent.Post) {
- if (!LorenzUtils.isOnHypixel) return
+ if (!LorenzUtils.isHyPixel) return
if (SkyHanniMod.feature.misc.configButtonOnPause && event.gui is GuiIngameMenu) {
val x = event.gui.width - 105
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/CollectionCounter.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/CollectionCounter.kt
new file mode 100644
index 000000000..e36b5001e
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/CollectionCounter.kt
@@ -0,0 +1,194 @@
+package at.hannibal2.skyhanni.features.misc
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.ProfileApiDataLoadedEvent
+import at.hannibal2.skyhanni.features.bazaar.BazaarApi
+import at.hannibal2.skyhanni.features.bazaar.BazaarData
+import at.hannibal2.skyhanni.test.GriffinJavaUtils
+import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.RenderUtils.renderString
+import net.minecraft.client.Minecraft
+import net.minecraftforge.client.event.RenderGameOverlayEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import net.minecraftforge.fml.common.gameevent.TickEvent
+
+class CollectionCounter {
+
+ private val RECENT_GAIN_TIME = 1_500
+
+ companion object {
+
+ private var display = ""
+
+ private var itemName = ""
+ private var itemApiName = ""
+ private var itemAmount = -1
+
+ private var lastAmountInInventory = -1
+
+ private var recentGain = 0
+ private var lastGainTime = -1L
+
+ private val apiCollectionData = mutableMapOf<String, Int>()
+
+ fun command(args: Array<String>) {
+ if (args.isEmpty()) {
+ if (itemName == "") {
+ LorenzUtils.chat("§c/shtrackcollection <item name>")
+ return
+ }
+ LorenzUtils.chat("§e[SkyHanni] Stopped collection tracker.")
+ apiCollectionData[itemApiName] = itemAmount
+ resetData()
+ return
+ }
+
+ var name = args.joinToString(" ")
+
+ var data: BazaarData? = null
+ for (bazaarData in BazaarApi.bazaarMap.values) {
+ if (bazaarData.itemName.equals(name, ignoreCase = true)) {
+ data = bazaarData
+ break
+ }
+ }
+
+ if (data == null) {
+ LorenzUtils.chat("§c[SkyHanni] Item '$name' not found!")
+ return
+ }
+ name = data.itemName
+
+ val apiName = data.apiName
+ if (!apiCollectionData.contains(apiName)) {
+ LorenzUtils.chat("§c[SkyHanni] Item $name is not in collection data!")
+ return
+ }
+
+ if (itemAmount != -1) {
+ resetData()
+ }
+
+ itemName = name
+ itemApiName = apiName
+ itemAmount = apiCollectionData[apiName]!!
+
+ lastAmountInInventory = countCurrentlyInInventory()
+ updateDisplay()
+ LorenzUtils.chat("§e[SkyHanni] Started tracking $itemName collection.")
+ }
+
+ private fun resetData() {
+ itemAmount = -1
+ itemName = ""
+ itemApiName = ""
+
+ lastAmountInInventory = -1
+ display = ""
+
+ recentGain = 0
+ }
+
+ private fun updateDisplay() {
+ val format = GriffinJavaUtils.formatInteger(itemAmount)
+
+ var gainText = ""
+ if (recentGain != 0) {
+ gainText = "§a+" + GriffinJavaUtils.formatInteger(recentGain)
+ }
+
+ display = "$itemName collection: §e$format $gainText"
+ }
+
+ private fun countCurrentlyInInventory(): Int {
+ var currentlyInInventory = 0
+ val player = Minecraft.getMinecraft().thePlayer
+ for (stack in player.inventory.mainInventory) {
+ if (stack == null) continue
+ val internalName = stack.getInternalName()
+ if (internalName == itemApiName) {
+ currentlyInInventory += stack.stackSize
+ }
+ }
+ return currentlyInInventory
+ }
+ }
+
+ @SubscribeEvent
+ fun onTick(event: TickEvent.ClientTickEvent) {
+ val thePlayer = Minecraft.getMinecraft().thePlayer ?: return
+ thePlayer.worldObj ?: return
+
+ compareInventory()
+ updateGain()
+ }
+
+ private fun compareInventory() {
+ if (lastAmountInInventory == -1) return
+ if (Minecraft.getMinecraft().currentScreen != null) return
+
+ val currentlyInInventory = countCurrentlyInInventory()
+ val diff = currentlyInInventory - lastAmountInInventory
+ if (diff != 0) {
+ if (diff > 0) {
+ gainItems(diff)
+ } else {
+ LorenzUtils.debug("Collection counter! Negative collection change: $diff")
+ }
+ }
+
+ lastAmountInInventory = currentlyInInventory
+ }
+
+ private fun updateGain() {
+ if (recentGain != 0) {
+ if (System.currentTimeMillis() > lastGainTime + RECENT_GAIN_TIME) {
+ recentGain = 0
+ updateDisplay()
+ }
+ }
+ }
+
+ private fun gainItems(amount: Int) {
+ itemAmount += amount
+
+ if (System.currentTimeMillis() > lastGainTime + RECENT_GAIN_TIME) {
+ recentGain = 0
+ }
+ lastGainTime = System.currentTimeMillis()
+ recentGain += amount
+
+ updateDisplay()
+ }
+
+ @SubscribeEvent
+ fun onProfileDataLoad(event: ProfileApiDataLoadedEvent) {
+ val profileData = event.profileData
+ val collection = profileData["collection"].asJsonObject
+
+ apiCollectionData.clear()
+ for (entry in collection.entrySet()) {
+ val name = entry.key
+ val value = entry.value.asInt
+ apiCollectionData[name] = value
+ if (name == itemApiName) {
+ val diff = value - itemAmount
+ if (diff != 0) {
+ LorenzUtils.debug("Collection counter was wrong by $diff items. (Compared against API data)")
+ }
+ itemAmount = value
+ recentGain = 0
+ updateDisplay()
+ }
+ }
+ }
+
+ @SubscribeEvent
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
+ if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
+ if (!LorenzUtils.inSkyBlock) return
+
+ SkyHanniMod.feature.misc.collectionCounterPos.renderString(display)
+ }
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/CompactBingoChat.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/CompactBingoChat.kt
new file mode 100644
index 000000000..a4becd8c4
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/CompactBingoChat.kt
@@ -0,0 +1,112 @@
+package at.hannibal2.skyhanni.features.misc
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.LorenzChatEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.StringUtils.removeColor
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class CompactBingoChat {
+
+ private var blockedSkillLevelUp = false
+ private var blockedCollectionLevelUp = false
+ private var collectionLevelUpLastLine: String? = null
+ private var newArea = 0//0 = nothing, 1 = after first message, 2 = after second message
+ private var blockedBestiarity = false
+
+ @SubscribeEvent
+ fun onChatMessage(event: LorenzChatEvent) {
+ if (!LorenzUtils.isBingoProfile) return
+ if (!SkyHanniMod.feature.bingo.compactChatMessages) return
+
+ onSkillLevelUp(event)
+ onCollectionLevelUp(event)
+ onNewAreaDiscovered(event)
+ onBestiarityUpgrade(event)
+ }
+
+ private fun onSkillLevelUp(event: LorenzChatEvent) {
+ val message = event.message
+ if (message.startsWith(" §r§b§lSKILL LEVEL UP ")) {
+ blockedSkillLevelUp = true
+ return
+ }
+ if (message == "§3§l▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬") {
+ blockedSkillLevelUp = false
+ return
+ }
+
+ if (blockedSkillLevelUp) {
+ if (!message.contains("Access to") && !message.endsWith(" Enchantment")) {
+ event.blockedReason = "compact skill level up"
+ }
+ }
+ }
+
+ private fun onCollectionLevelUp(event: LorenzChatEvent) {
+ val message = event.message
+ if (message.startsWith(" §r§6§lCOLLECTION LEVEL UP ")) {
+ blockedCollectionLevelUp = true
+ return
+ }
+ if (message == "§e§l▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬") {
+ blockedCollectionLevelUp = false
+ return
+ }
+
+ if (blockedCollectionLevelUp) {
+ if (message.contains("Trade") || message.contains("Recipe")) {
+ var text = message.removeColor().replace(" ", "")
+ if (text == "Trade" || text == "Recipe") {
+ collectionLevelUpLastLine?.let { LorenzUtils.chat(it) }
+ }
+ } else {
+ event.blockedReason = "compact collection level up"
+ collectionLevelUpLastLine = message
+ }
+ }
+ }
+
+ private fun onNewAreaDiscovered(event: LorenzChatEvent) {
+ var message = event.message
+
+ if (message == " §r§6§lNEW AREA DISCOVERED!") {
+ newArea = 1
+ println("new area $newArea $message")
+ return
+ }
+
+ if (message != "") {
+ if (newArea == 1) {
+ newArea = 2
+ println("new area $newArea $message")
+ return
+ }
+
+ if (newArea == 2) {
+ if (message.startsWith("§7 ■ §r") || message.startsWith(" §r")) {
+ event.blockedReason = "compact new area discovered"
+ } else {
+ newArea = 0
+ println("new area $newArea $message")
+ }
+ }
+ }
+ }
+
+ private fun onBestiarityUpgrade(event: LorenzChatEvent) {
+ val message = event.message
+ if (message.startsWith(" §r§3§lBESTIARY §b§l")) {
+ blockedBestiarity = true
+ return
+ }
+ if (message == "§3§l▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬") {
+ blockedBestiarity = false
+ return
+ }
+
+ if (blockedBestiarity) {
+ event.blockedReason = "compact bestiarity upgrade"
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/CompactSplashPotionMessage.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/CompactSplashPotionMessage.kt
new file mode 100644
index 000000000..99e6395fd
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/CompactSplashPotionMessage.kt
@@ -0,0 +1,36 @@
+package at.hannibal2.skyhanni.features.misc
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.LorenzChatEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.StringUtils.removeColor
+import net.minecraft.util.ChatComponentText
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import java.util.regex.Pattern
+
+class CompactSplashPotionMessage {
+
+ private val POTION_EFFECT_PATTERN =
+ Pattern.compile("§a§lBUFF! §fYou have gained §r(.*)§r§f! Press TAB or type /effects to view your active effects!")
+
+ private val POTION_EFFECT_OTHERS_PATTERN =
+ Pattern.compile("§a§lBUFF! §fYou were splashed by (.*) §fwith §r(.*)§r§f! Press TAB or type /effects to view your active effects!")
+
+ @SubscribeEvent
+ fun onChatMessage(event: LorenzChatEvent) {
+ if (!LorenzUtils.inSkyBlock || !SkyHanniMod.feature.chat.compactPotionMessage) return
+
+ var matcher = POTION_EFFECT_PATTERN.matcher(event.message)
+ if (matcher.matches()) {
+ val name = matcher.group(1)
+ event.chatComponent = ChatComponentText("§a§lPotion Effect! §r$name")
+ }
+
+ matcher = POTION_EFFECT_OTHERS_PATTERN.matcher(event.message)
+ if (matcher.matches()) {
+ val playerName = matcher.group(1).removeColor()
+ val effectName = matcher.group(2)
+ event.chatComponent = ChatComponentText("§a§lPotion Effect! §r$effectName §7(by §b$playerName§7)")
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/CorruptedMobHighlight.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/CorruptedMobHighlight.kt
index c9d806fcc..0b4effca4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/CorruptedMobHighlight.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/CorruptedMobHighlight.kt
@@ -1,6 +1,7 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.events.EntityHealthUpdateEvent
import at.hannibal2.skyhanni.events.RenderMobColoredEvent
import at.hannibal2.skyhanni.events.ResetEntityHurtEvent
@@ -18,7 +19,7 @@ class CorruptedMobHighlight {
@SubscribeEvent
fun onEntityHealthUpdate(event: EntityHealthUpdateEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val entity = event.entity
if (entity in corruptedMobs) return
@@ -55,7 +56,7 @@ class CorruptedMobHighlight {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.misc.corruptedMobHighlight &&
- LorenzUtils.skyBlockIsland != "Private Island"
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.misc.corruptedMobHighlight &&
+ LorenzUtils.skyBlockIsland != IslandType.PRIVATE_ISLAND
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/CurrentPetDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/CurrentPetDisplay.kt
index 0048114a3..835b3ec06 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/CurrentPetDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/CurrentPetDisplay.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.LorenzChatEvent
@@ -13,7 +13,7 @@ class CurrentPetDisplay {
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
var blocked = false
@@ -37,9 +37,9 @@ class CurrentPetDisplay {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.misc.petDisplay) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/ExpBottleOnGroundHider.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/ExpBottleOnGroundHider.kt
index 1a1a0f6c7..b1f47f015 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/ExpBottleOnGroundHider.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/ExpBottleOnGroundHider.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.CheckRenderEntityEvent
@@ -10,7 +10,7 @@ class ExpBottleOnGroundHider {
@SubscribeEvent
fun onCheckRender(event: CheckRenderEntityEvent<*>) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.misc.hideExpBottles) return
if (event.entity is EntityXPOrb) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/HideArmor.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/HideArmor.kt
index e691f4812..146a11e3b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/HideArmor.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/HideArmor.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.PacketEvent
@@ -23,7 +23,7 @@ class HideArmor {
@SubscribeEvent
fun onGuiInventoryToggle(event: TickEvent.ClientTickEvent) {
- if (!LorenzUtils.inSkyblock) return // TODO test this
+ if (!LorenzUtils.inSkyBlock) return // TODO test this
fixOtherArmor()
@@ -182,7 +182,7 @@ class HideArmor {
}
private fun changeArmor(entity: EntityPlayer, new: Array<ItemStack?>?) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
val current = entity.inventory.armorInventory
if (new != null) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/HideDamageSplash.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/HideDamageSplash.kt
index 23146f5f6..97448c316 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/HideDamageSplash.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/HideDamageSplash.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.features.damageindicator.DamageIndicatorManager
@@ -12,7 +12,7 @@ class HideDamageSplash {
@SubscribeEvent(priority = EventPriority.HIGH)
fun onRenderDamage(event: RenderLivingEvent.Specials.Pre<EntityLivingBase>) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.misc.hideDamageSplash) return
if (DamageIndicatorManager.isDamageSplash(event.entity)) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/MarkedPlayerManager.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt
index 17ebec137..ec722eed4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/MarkedPlayerManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.RenderMobColoredEvent
@@ -76,7 +76,7 @@ class MarkedPlayerManager {
@SubscribeEvent
fun onTick(event: TickEvent.ClientTickEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (tick++ % 20 == 0) {
findPlayers()
@@ -85,7 +85,7 @@ class MarkedPlayerManager {
@SubscribeEvent
fun onRenderMobColored(event: RenderMobColoredEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.markedPlayers.highlightInWorld) return
val entity = event.entity
@@ -96,7 +96,7 @@ class MarkedPlayerManager {
@SubscribeEvent
fun onResetEntityHurtTime(event: ResetEntityHurtEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.markedPlayers.highlightInWorld) return
val entity = event.entity
diff --git a/src/main/java/at/hannibal2/skyhanni/features/NonGodPotEffectDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt
index 7f449b0ba..44e9332f4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/NonGodPotEffectDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.LorenzChatEvent
@@ -23,7 +23,7 @@ class NonGodPotEffectDisplay {
private var checkFooter = false
private val activeEffects = mutableMapOf<String, Long>()
- private val textToRender = mutableListOf<String>()
+ private val display = mutableListOf<String>()
private var lastTick = 0L
private var nonGodPotEffects = mapOf(
@@ -58,7 +58,7 @@ class NonGodPotEffectDisplay {
private fun format() {
val now = System.currentTimeMillis()
- textToRender.clear()
+ display.clear()
if (activeEffects.values.removeIf { now > it }) {
//to fetch the real amount of active pots
totalEffectsCount = 0
@@ -72,12 +72,12 @@ class NonGodPotEffectDisplay {
val color = colorForTime(seconds)
- textToRender.add("$label $color$format")
+ display.add("$label $color$format")
}
val diff = totalEffectsCount - activeEffects.size
if (diff > 0) {
- textToRender.add("§eOpen the /effects inventory")
- textToRender.add("§eto show the missing $diff effects!")
+ display.add("§eOpen the /effects inventory")
+ display.add("§eto show the missing $diff effects!")
checkFooter = true
}
}
@@ -178,11 +178,11 @@ class NonGodPotEffectDisplay {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
- SkyHanniMod.feature.misc.nonGodPotEffectPos.renderStrings(textToRender)
+ SkyHanniMod.feature.misc.nonGodPotEffectPos.renderStrings(display)
}
@SubscribeEvent
@@ -203,6 +203,6 @@ class NonGodPotEffectDisplay {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.misc.nonGodPotEffectDisplay && !LorenzUtils.inDungeons && !LorenzUtils.inKuudraFight
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.misc.nonGodPotEffectDisplay && !LorenzUtils.inDungeons && !LorenzUtils.inKuudraFight
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/RealTime.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/RealTime.kt
index de1d1b06e..c3a43853e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/RealTime.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/RealTime.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.utils.LorenzUtils
@@ -12,7 +12,7 @@ class RealTime {
private val format = SimpleDateFormat("HH:mm:ss")
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
@@ -20,6 +20,6 @@ class RealTime {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.misc.realTime
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.misc.realTime
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/ThunderSparksHighlight.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/ThunderSparksHighlight.kt
index 20fd10f6a..28f77626f 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/ThunderSparksHighlight.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/ThunderSparksHighlight.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features
+package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled
@@ -62,6 +62,6 @@ class ThunderSparksHighlight {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.fishing.thunderSparkHighlight
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.fishing.thunderSparkHighlight
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/MilleniaAgedBlazeColor.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/MilleniaAgedBlazeColor.kt
index 123e7a54b..8a9cad4fa 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/MilleniaAgedBlazeColor.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/MilleniaAgedBlazeColor.kt
@@ -1,6 +1,7 @@
package at.hannibal2.skyhanni.features.nether
import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.events.RenderMobColoredEvent
import at.hannibal2.skyhanni.events.ResetEntityHurtEvent
import at.hannibal2.skyhanni.events.withAlpha
@@ -54,5 +55,5 @@ class MilleniaAgedBlazeColor {
}
private fun isEnabled() =
- LorenzUtils.inSkyblock && LorenzUtils.skyBlockIsland == "Crimson Isle" && SkyHanniMod.feature.misc.milleniaAgedBlazeColor
+ LorenzUtils.inSkyBlock && LorenzUtils.skyBlockIsland == IslandType.CRIMSON_ISLE && SkyHanniMod.feature.misc.milleniaAgedBlazeColor
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazes.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazes.kt
index dfbe44ca2..ef3f965a1 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazes.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazes.kt
@@ -113,6 +113,6 @@ class AshfangBlazes {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
+ return LorenzUtils.inSkyBlock && DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazingSouls.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazingSouls.kt
index 9dba408bc..5649cc481 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazingSouls.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangBlazingSouls.kt
@@ -59,7 +59,7 @@ class AshfangBlazingSouls {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.ashfang.blazingSouls &&
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.ashfang.blazingSouls &&
DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt
index 3c6c6af88..760bfc36d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt
@@ -26,7 +26,7 @@ class AshfangFreezeCooldown {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
val duration = System.currentTimeMillis() - lastHit
@@ -41,7 +41,7 @@ class AshfangFreezeCooldown {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.ashfang.freezeCooldown &&
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.ashfang.freezeCooldown &&
DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangGravityOrbs.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangGravityOrbs.kt
index 4f54bbd5c..be68a1583 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangGravityOrbs.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangGravityOrbs.kt
@@ -55,7 +55,7 @@ class AshfangGravityOrbs {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.ashfang.gravityOrbs &&
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.ashfang.gravityOrbs &&
DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideDamageIndicator.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideDamageIndicator.kt
index 3785a3f76..0eb6ac920 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideDamageIndicator.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideDamageIndicator.kt
@@ -21,7 +21,7 @@ class AshfangHideDamageIndicator {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.ashfang.hideDamageSplash &&
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.ashfang.hideDamageSplash &&
DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt
index b99f0ff7b..df242b159 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt
@@ -19,7 +19,7 @@ class AshfangHideParticles {
@SubscribeEvent
fun onTick(event: TickEvent.ClientTickEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (tick++ % 60 == 0) {
val distance = DamageIndicatorManager.getDistanceTo(BossType.NETHER_ASHFANG)
@@ -51,5 +51,5 @@ class AshfangHideParticles {
}
}
- private fun isEnabled() = LorenzUtils.inSkyblock && SkyHanniMod.feature.ashfang.hideParticles && hideParticles
+ private fun isEnabled() = LorenzUtils.inSkyBlock && SkyHanniMod.feature.ashfang.hideParticles && hideParticles
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangNextResetCooldown.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangNextResetCooldown.kt
index ec171e2d8..5fe8c7d8a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangNextResetCooldown.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangNextResetCooldown.kt
@@ -30,7 +30,7 @@ class AshfangNextResetCooldown {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
if (spawnTime == -1L) return
@@ -51,7 +51,7 @@ class AshfangNextResetCooldown {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.ashfang.nextResetCooldown &&
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.ashfang.nextResetCooldown &&
DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/EndermanSlayerBeacon.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/EndermanSlayerBeacon.kt
index e79157ed9..a36db4820 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/EndermanSlayerBeacon.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/EndermanSlayerBeacon.kt
@@ -1,6 +1,7 @@
package at.hannibal2.skyhanni.features.slayer
import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.events.CheckRenderEntityEvent
import at.hannibal2.skyhanni.events.PacketEvent
import at.hannibal2.skyhanni.events.RenderMobColoredEvent
@@ -98,9 +99,9 @@ class EndermanSlayerBeacon {
}
}
- private fun isEnabled(): Boolean = LorenzUtils.inSkyblock &&
+ private fun isEnabled(): Boolean = LorenzUtils.inSkyBlock &&
SkyHanniMod.feature.slayer.slayerEndermanBeacon &&
- LorenzUtils.skyBlockIsland == "The End" &&
+ LorenzUtils.skyBlockIsland == IslandType.THE_END &&
DamageIndicatorManager.isBossSpawned(
BossType.SLAYER_ENDERMAN_2,
BossType.SLAYER_ENDERMAN_3,
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/HideMobNames.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/HideMobNames.kt
index 383419cda..2c0748962 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/HideMobNames.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/HideMobNames.kt
@@ -46,7 +46,7 @@ class HideMobNames {
@SubscribeEvent(priority = EventPriority.HIGH)
fun onRenderLiving(event: RenderLivingEvent.Specials.Pre<EntityLivingBase>) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.slayer.hideMobNames) return
val entity = event.entity
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/HighlightSlayerMiniboss.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/HighlightSlayerMiniboss.kt
index d52287250..abbb2a315 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/HighlightSlayerMiniboss.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/HighlightSlayerMiniboss.kt
@@ -87,6 +87,6 @@ class HighlightSlayerMiniboss {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.slayer.slayerMinibossHighlight && !LorenzUtils.inDungeons && !LorenzUtils.inKuudraFight
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.slayer.slayerMinibossHighlight && !LorenzUtils.inDungeons && !LorenzUtils.inKuudraFight
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerQuestWarning.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerQuestWarning.kt
index 22d9b9573..586911264 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerQuestWarning.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerQuestWarning.kt
@@ -170,6 +170,6 @@ class SlayerQuestWarning {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.slayer.questWarning
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.slayer.questWarning
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
index 3f0e8ad76..43c17ec5a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
@@ -19,7 +19,7 @@ class BlazeSlayerClearView {
@SubscribeEvent
fun onTick(event: TickEvent.ClientTickEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (tick++ % 60 == 0) {
hideParticles = DamageIndicatorManager.getDistanceTo(
BossType.SLAYER_BLAZE_1,
@@ -62,6 +62,6 @@ class BlazeSlayerClearView {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.slayer.blazeClearView && hideParticles
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.slayer.blazeClearView && hideParticles
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerDaggerHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerDaggerHelper.kt
index 793764000..be0dc6b78 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerDaggerHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerDaggerHelper.kt
@@ -36,7 +36,7 @@ class BlazeSlayerDaggerHelper {
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.slayer.blazeHideDaggerWarning) return
val message = event.message
@@ -199,7 +199,7 @@ class BlazeSlayerDaggerHelper {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.slayer.blazeDaggers
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.slayer.blazeDaggers
}
@SubscribeEvent
@@ -245,7 +245,7 @@ class BlazeSlayerDaggerHelper {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
if (textTopLeft.isEmpty()) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerFirePitsWarning.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerFirePitsWarning.kt
index 3c02ed472..f395793a1 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerFirePitsWarning.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerFirePitsWarning.kt
@@ -65,7 +65,7 @@ class BlazeSlayerFirePitsWarning {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && DamageIndicatorManager.isBossSpawned(
+ return LorenzUtils.inSkyBlock && DamageIndicatorManager.isBossSpawned(
BossType.SLAYER_BLAZE_3,
BossType.SLAYER_BLAZE_4,
BossType.SLAYER_BLAZE_QUAZII_3,
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt
index 214e25eb7..eea8414a9 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt
@@ -96,7 +96,7 @@ class BlazeSlayerPillar {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
if (!isEnabled()) return
if (lastPillarSpawnTime == -1L) return
@@ -147,7 +147,7 @@ class BlazeSlayerPillar {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && DamageIndicatorManager.isBossSpawned(
+ return LorenzUtils.inSkyBlock && DamageIndicatorManager.isBossSpawned(
BossType.SLAYER_BLAZE_2,
BossType.SLAYER_BLAZE_3,
BossType.SLAYER_BLAZE_4,
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/HellionShieldHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/HellionShieldHelper.kt
index c09419533..bddbc4e91 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/HellionShieldHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/HellionShieldHelper.kt
@@ -16,7 +16,7 @@ class HellionShieldHelper {
@SubscribeEvent
fun onRenderMobColored(event: RenderMobColoredEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.slayer.blazeColoredMobs) return
val shield = hellionShieldMobs.getOrDefault(event.entity, null) ?: return
@@ -25,7 +25,7 @@ class HellionShieldHelper {
@SubscribeEvent
fun onResetEntityHurtTime(event: ResetEntityHurtEvent) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.slayer.blazeColoredMobs) return
hellionShieldMobs.getOrDefault(event.entity, null) ?: return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt b/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt
index 41357fbb8..0e8fce8dc 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt
@@ -41,7 +41,7 @@ class SummoningMobManager {
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
- if (!LorenzUtils.isOnHypixel) return
+ if (!LorenzUtils.isHyPixel) return
val message = event.message
val matcher = spawnPatter.matcher(message)
@@ -137,9 +137,9 @@ class SummoningMobManager {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.summonings.summoningMobDisplay) return
if (summoningMobs.isEmpty()) return
@@ -162,7 +162,7 @@ class SummoningMobManager {
@SubscribeEvent(priority = EventPriority.HIGH)
fun onRenderLiving(event: RenderLivingEvent.Specials.Pre<EntityLivingBase>) {
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.summonings.summoningMobHideNametag) return
val entity = event.entity
@@ -200,7 +200,7 @@ class SummoningMobManager {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && (SkyHanniMod.feature.summonings.summoningMobDisplay || SkyHanniMod.feature.summonings.summoningMobHideNametag)
+ return LorenzUtils.inSkyBlock && (SkyHanniMod.feature.summonings.summoningMobDisplay || SkyHanniMod.feature.summonings.summoningMobHideNametag)
}
class SummoningMob(
diff --git a/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningSoulsName.kt b/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningSoulsName.kt
index 7c6c889b5..dc5ac9691 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningSoulsName.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningSoulsName.kt
@@ -112,6 +112,6 @@ class SummoningSoulsName {
}
private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyblock && SkyHanniMod.feature.summonings.summoningSoulDisplay
+ return LorenzUtils.inSkyBlock && SkyHanniMod.feature.summonings.summoningSoulDisplay
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/gui/inventory/GuiEditSignMixin.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/gui/inventory/GuiEditSignMixin.java
index 25e553c63..99c56d8be 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/gui/inventory/GuiEditSignMixin.java
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/gui/inventory/GuiEditSignMixin.java
@@ -44,7 +44,7 @@ public class GuiEditSignMixin extends GuiScreen implements IEditSign {
// this.textInputUtil = new TextInputUtil(this.fontRendererObj, () -> ((IModifiedSign) this.that.tileSign).getText(this.editLine).getUnformattedText(), text -> ((IModifiedSign) this.that.tileSign).setText(this.editLine, new ChatComponentText(text)), 90);
this.textInputUtil = new TextInputUtil(this.fontRendererObj, () -> ((IModifiedSign) getTileSign(this.that)).getText(this.editLine).getUnformattedText(), text -> ((IModifiedSign) getTileSign(this.that)).setText(this.editLine, new ChatComponentText(text)), 90);
- if (LorenzUtils.INSTANCE.getInSkyblock() && SkyBlockcatiaConfig.enableSignSelectionList) {
+ if (LorenzUtils.INSTANCE.getInSkyBlock() && SkyBlockcatiaConfig.enableSignSelectionList) {
List<SignSelectionList.Entry> list = null;
String title = null;
@@ -87,7 +87,7 @@ public class GuiEditSignMixin extends GuiScreen implements IEditSign {
if (SkyBlockcatiaConfig.enableSignSelectionList) {
Keyboard.enableRepeatEvents(false);
- if (LorenzUtils.INSTANCE.getInSkyblock()) {
+ if (LorenzUtils.INSTANCE.getInSkyBlock()) {
// String text = this.that.tileSign.signText[0].getUnformattedText();
String text = getTileSign(this.that).signText[0].getUnformattedText();
// if (!StringUtils.isNullOrEmpty(text))
@@ -196,7 +196,7 @@ public class GuiEditSignMixin extends GuiScreen implements IEditSign {
GlStateManager.popMatrix();
super.drawScreen(mouseX, mouseY, partialTicks);
- if (LorenzUtils.INSTANCE.getInSkyblock() && SkyBlockcatiaConfig.enableSignSelectionList && this.globalSelector != null) {
+ if (LorenzUtils.INSTANCE.getInSkyBlock() && SkyBlockcatiaConfig.enableSignSelectionList && this.globalSelector != null) {
this.globalSelector.drawScreen(mouseX, mouseY, partialTicks);
}
info.cancel();
@@ -205,7 +205,7 @@ public class GuiEditSignMixin extends GuiScreen implements IEditSign {
@Inject(method = "drawScreen(IIF)V", cancellable = true, at = @At("RETURN"))
private void drawScreenPost(int mouseX, int mouseY, float partialTicks, CallbackInfo info) {
- if (!SkyBlockcatiaConfig.enableOverwriteSignEditing && LorenzUtils.INSTANCE.getInSkyblock() && SkyBlockcatiaConfig.enableSignSelectionList && this.globalSelector != null) {
+ if (!SkyBlockcatiaConfig.enableOverwriteSignEditing && LorenzUtils.INSTANCE.getInSkyBlock() && SkyBlockcatiaConfig.enableSignSelectionList && this.globalSelector != null) {
this.globalSelector.drawScreen(mouseX, mouseY, partialTicks);
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt b/src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt
index 8f0c4cc2c..f7ab6a90b 100644
--- a/src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt
+++ b/src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt
@@ -83,25 +83,25 @@ class LorenzTest {
emptyList()
}
- val listeners = SkyHanniMod.listenerClasses
- for (oldListener in listeners.toMutableList()) {
- val javaClass = oldListener.javaClass
+ val modules = SkyHanniMod.modules
+ for (original in modules.toMutableList()) {
+ val javaClass = original.javaClass
val simpleName = javaClass.simpleName
- MinecraftForge.EVENT_BUS.unregister(oldListener)
+ MinecraftForge.EVENT_BUS.unregister(original)
println("Unregistered listener $simpleName")
if (simpleName !in blockedFeatures) {
- listeners.remove(oldListener)
- val newListener = javaClass.newInstance()
- listeners.add(newListener)
+ modules.remove(original)
+ val module = javaClass.newInstance()
+ modules.add(module)
- MinecraftForge.EVENT_BUS.register(newListener)
+ MinecraftForge.EVENT_BUS.register(module)
println("Registered listener $simpleName")
} else {
println("Skipped registering listener $simpleName")
}
}
- LorenzUtils.chat("§e[SkyHanni] reloaded ${listeners.size} listener classes.")
+ LorenzUtils.chat("§e[SkyHanni] reloaded ${modules.size} listener classes.")
}
}
@@ -120,9 +120,9 @@ class LorenzTest {
}
@SubscribeEvent
- fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ fun onRenderOverlay(event: RenderGameOverlayEvent.Post) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
- if (!LorenzUtils.inSkyblock) return
+ if (!LorenzUtils.inSkyBlock) return
if (!SkyHanniMod.feature.dev.debugEnabled) return
SkyHanniMod.feature.dev.debugPos.renderString(text)
diff --git a/src/main/java/at/hannibal2/skyhanni/test/command/CopyItemCommand.kt b/src/main/java/at/hannibal2/skyhanni/test/command/CopyItemCommand.kt
index 5395dbf36..92275ed69 100644
--- a/src/main/java/at/hannibal2/skyhanni/test/command/CopyItemCommand.kt
+++ b/src/main/java/at/hannibal2/skyhanni/test/command/CopyItemCommand.kt
@@ -38,7 +38,6 @@ object CopyItemCommand {
val string = resultList.joinToString("\n")
OSUtils.copyToClipboard(string)
- LorenzUtils.debug("item info printed!")
LorenzUtils.chat("§e[SkyHanni] item info copied into the clipboard!")
} catch (_: Throwable) {
LorenzUtils.chat("§c[SkyHanni] No item in hand!")
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt b/src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt
index 5584da0fe..908d8b810 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt
@@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.utils
import at.hannibal2.skyhanni.SkyHanniMod
import com.google.gson.JsonObject
import com.google.gson.JsonParser
+import com.google.gson.stream.MalformedJsonException
import org.apache.http.client.config.RequestConfig
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.HttpClientBuilder
@@ -40,7 +41,13 @@ object APIUtil {
val entity = response.entity
if (entity != null) {
val retSrc = EntityUtils.toString(entity)
- return parser.parse(retSrc) as JsonObject
+ try {
+ return parser.parse(retSrc) as JsonObject
+ } catch (e: MalformedJsonException) {
+ LorenzUtils.error("MalformedJsonException!")
+ println("MalformedJsonException at '$urlString'")
+ e.printStackTrace()
+ }
}
}
} catch (throwable: Throwable) {
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt
index 1d51d1be9..feaaaa481 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt
@@ -11,9 +11,10 @@ object InventoryUtils {
fun currentlyOpenInventory(): String {
val screen = Minecraft.getMinecraft().currentScreen
if (screen !is GuiChest) return ""
- val chest = screen.inventorySlots as ContainerChest
+ val inventorySlots = screen.inventorySlots
+ val chest = inventorySlots as ContainerChest
- return chest.lowerChestInventory.displayName.unformattedText.trim()
+ return chest.getInventoryName()
}
fun getItemsInOpenChest(): List<Slot> {
@@ -32,4 +33,19 @@ object InventoryUtils {
}
return list
}
+
+ fun openInventoryName(): String {
+ val guiChest = Minecraft.getMinecraft().currentScreen
+ val chestName = if (guiChest is GuiChest) {
+ val chest = guiChest.inventorySlots as ContainerChest
+ chest.getInventoryName()
+ } else {
+ ""
+ }
+ return chestName
+ }
+
+ fun ContainerChest.getInventoryName(): String {
+ return this.lowerChestInventory.displayName.unformattedText.trim()
+ }
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
index c4c9cedca..043978277 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
@@ -1,7 +1,8 @@
package at.hannibal2.skyhanni.utils
import at.hannibal2.skyhanni.SkyHanniMod
-import at.hannibal2.skyhanni.data.HypixelData
+import at.hannibal2.skyhanni.data.HyPixelData
+import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.features.dungeon.DungeonData
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import net.minecraft.client.Minecraft
@@ -14,30 +15,42 @@ import java.text.SimpleDateFormat
object LorenzUtils {
- val isOnHypixel: Boolean
- get() = HypixelData.hypixel && Minecraft.getMinecraft().thePlayer != null
+ val isHyPixel: Boolean
+ get() = HyPixelData.hypixel && Minecraft.getMinecraft().thePlayer != null
- val inSkyblock: Boolean
- get() = isOnHypixel && HypixelData.skyblock
+ val inSkyBlock: Boolean
+ get() = isHyPixel && HyPixelData.skyBlock
val inDungeons: Boolean
- get() = inSkyblock && DungeonData.inDungeon()
+ get() = inSkyBlock && DungeonData.inDungeon()
- val skyBlockIsland: String
- get() = HypixelData.skyBlockIsland
+ val skyBlockIsland: IslandType
+ get() = HyPixelData.skyBlockIsland
//TODO add cache
val skyBlockArea: String
- get() = HypixelData.readSkyBlockArea()
+ get() = HyPixelData.readSkyBlockArea()
val inKuudraFight: Boolean
- get() = skyBlockIsland == "Instanced"
+ get() = skyBlockIsland == IslandType.KUUDRA_ARENA
- const val DEBUG_PREFIX = "[Debug] §7"
+ val noTradeMode: Boolean
+ get() = HyPixelData.noTrade
+
+ val isBingoProfile: Boolean
+ get() = inSkyBlock && HyPixelData.bingo
+
+ const val DEBUG_PREFIX = "[SkyHanni Debug] §7"
private val log = LorenzLogger("chat/mod_sent")
fun debug(message: String) {
- internalChat(DEBUG_PREFIX + message)
+ if (SkyHanniMod.feature.dev.debugEnabled) {
+ if (internalChat(DEBUG_PREFIX + message)) {
+ consoleLog("[Debug] $message")
+ }
+ } else {
+ consoleLog("[Debug] $message")
+ }
}
fun warning(message: String) {
@@ -52,21 +65,22 @@ object LorenzUtils {
internalChat(message)
}
- private fun internalChat(message: String) {
+ private fun internalChat(message: String): Boolean {
log.log(message)
val minecraft = Minecraft.getMinecraft()
if (minecraft == null) {
consoleLog(message.removeColor())
- return
+ return false
}
val thePlayer = minecraft.thePlayer
if (thePlayer == null) {
consoleLog(message.removeColor())
- return
+ return false
}
thePlayer.addChatMessage(ChatComponentText(message))
+ return true
}
//TODO move into StringUtils
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt b/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt
index c0e64c7be..1036dab62 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt
@@ -130,15 +130,19 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
if (cause.stackTrace.isNotEmpty()) {
val first = cause.stackTrace[0]
if (SkyHanniMod.feature.dev.filterScoreboardErrors) {
- if (first.toString() == "net.minecraft.scoreboard.Scoreboard.removeTeam(Scoreboard.java:229)") {
+ val firstName = first.toString()
+ if (firstName == "net.minecraft.scoreboard.Scoreboard.removeTeam(Scoreboard.java:229)" ||
+ firstName == "net.minecraft.scoreboard.Scoreboard.removeTeam(Scoreboard.java:262)"
+ ) {
filterConsole("NullPointerException at Scoreboard.removeTeam")
return Filter.Result.DENY
}
- if (first.toString() == "net.minecraft.scoreboard.Scoreboard.createTeam(Scoreboard.java:218)") {
+ if (firstName == "net.minecraft.scoreboard.Scoreboard.createTeam(Scoreboard.java:218)") {
filterConsole("IllegalArgumentException at Scoreboard.createTeam")
return Filter.Result.DENY
}
- if (first.toString() == "net.minecraft.scoreboard.Scoreboard.removeObjective(Scoreboard.java:179)") {
+ if (firstName == "net.minecraft.scoreboard.Scoreboard.removeObjective(Scoreboard.java:179)" ||
+ firstName == "net.minecraft.scoreboard.Scoreboard.removeObjective(Scoreboard.java:198)") {
filterConsole("IllegalArgumentException at Scoreboard.removeObjective")
return Filter.Result.DENY
}
@@ -154,7 +158,7 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
}
if (!SkyHanniMod.feature.dev.printUnfilteredDebugs) return Filter.Result.ACCEPT
- if (!SkyHanniMod.feature.dev.printUnfilteredDebugsOutsideSkyBlock && !LorenzUtils.inSkyblock) return Filter.Result.ACCEPT
+ if (!SkyHanniMod.feature.dev.printUnfilteredDebugsOutsideSkyBlock && !LorenzUtils.inSkyBlock) return Filter.Result.ACCEPT
if (formattedMessage == "filtered console: ") return Filter.Result.ACCEPT
debug(" ")
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt
index 97bba3099..ff28c52ab 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt
@@ -424,22 +424,26 @@ object RenderUtils {
return lastValue + (currentValue - lastValue) * multiplier
}
- fun Position.renderString(string: String, offsetY: Int = 0) {
+ fun Position.renderString(string: String?, offsetY: Int = 0) {
+ val minecraft = Minecraft.getMinecraft()
+ if (minecraft.gameSettings.keyBindPlayerList.isKeyDown) return
+
+ if (string == null) return
if (string == "") return
- val textToRender = "§f$string"
+ val display = "§f$string"
GlStateManager.pushMatrix()
- val resolution = ScaledResolution(Minecraft.getMinecraft())
+ val resolution = ScaledResolution(minecraft)
- val renderer = Minecraft.getMinecraft().renderManager.fontRenderer ?: return
+ val renderer = minecraft.renderManager.fontRenderer ?: return
- val offsetX = (200 - renderer.getStringWidth(textToRender.removeColor())) / 2
+ val offsetX = (200 - renderer.getStringWidth(display.removeColor())) / 2
val x = getAbsX(resolution, 200) + offsetX
val y = getAbsY(resolution, 16) + offsetY
GlStateManager.translate(x + 1.0, y + 1.0, 0.0)
- renderer.drawStringWithShadow(textToRender, 0f, 0f, 0)
+ renderer.drawStringWithShadow(display, 0f, 0f, 0)
GlStateManager.popMatrix()
}