diff options
45 files changed, 321 insertions, 352 deletions
@@ -31,7 +31,7 @@ Installation guide is [here](https://github.com/SkyblockerMod/Skyblocker/wiki/in * Wiki Lookup: press f4 to open the wiki page about the held item * Discord Rich Presence: Allows user to show either their Piggy, Bits, or location. Along with a custom message * Quicknav: fast navigate between pets, armor, enderchest, skill, collection, crafting, enchant, envil, warp dungeon, warp hub -* Recipe book: in the vanilla recipe book all skyblock items are listed and you can see the recipe of the item +* Recipe book: in the vanilla recipe book all skyblock items are listed, and you can see the recipe of the item * Backpack preview: after you clicked your backpack or enderchest once you can hover over the backpack or enderchest and hold shift to preview * Update notification * Commission HUD: Dwarven Mines quests @@ -67,16 +67,16 @@ Everyone can contribute to Skyblocker, read [this](https://github.com/Skyblocker | [<img alt="Kraineff" src="https://github.com/Kraineff.png" width="100">](https://github.com/Kraineff) | [<img alt="d3dx9" src="https://github.com/d3dx9.png" width="100">](https://github.com/d3dx9) | [<img alt="LifeIsAParadox" src="https://github.com/LifeIsAParadox.png" width="100">](https://github.com/LifeIsAParadox) | [<img alt="ExternalTime" src="https://github.com/ExternalTime.png" width="100">](https://github.com/ExternalTime) | |:-------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------:| -| [Kraineff](https://github.com/Kraineff) | [d3dx9](https://github.com/d3dx9) | [LifeIsAParadox](https://github.com/LifeIsAParadox) | [ExternalTime](https://github.com/ExternalTime) | +| [Kraineff](https://github.com/Kraineff) | [d3dx9](https://github.com/d3dx9) | [LifeIsAParadox](https://github.com/LifeIsAParadox) | [ExternalTime](https://github.com/ExternalTime) | | [<img alt="Zailer43" src="https://github.com/Zailer43.png" width="100">](https://github.com/Zailer43) | [<img alt="TacoMonkey11" src="https://github.com/TacoMonkey11.png" width="100">](https://github.com/TacoMonkey11) | [<img alt="KonaeAkira" src="https://github.com/KonaeAkira.png" width="100">](https://github.com/KonaeAkira) | [<img alt="Fix3dll" src="https://github.com/Fix3dll.png" width="100">](https://github.com/Fix3dll) | |:-----------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------:| -| [Zailer43](https://github.com/Zailer43) | [TacoMonkey11](https://github.com/TacoMonkey11) | [KonaeAkira](https://github.com/KonaeAkira) | [Fix3dll](https://github.com/Fix3dll) | +| [Zailer43](https://github.com/Zailer43) | [TacoMonkey11](https://github.com/TacoMonkey11) | [KonaeAkira](https://github.com/KonaeAkira) | [Fix3dll](https://github.com/Fix3dll) | | [<img alt="Zailer43" src="https://github.com/ADON15c.png" width="100">](https://github.com/ADON15c) | |:---------------------------------------------------------------------------------------------------:| -| [ADON15c](https://github.com/ADON15c) | +| [ADON15c](https://github.com/ADON15c) | ### Translators German ([LifeIsAParadox](https://github.com/LifeIsAParadox)) \ Indonesian ([null2264](https://github.com/null2264)) \ diff --git a/build.gradle b/build.gradle index 3e80b24a..78e62bd9 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 archivesBaseName = project.archives_base_name -version = "${project.mod_version}+${project.suported_version}" +version = "${project.mod_version}+${project.minecraft_version}" group = project.maven_group repositories { @@ -55,7 +55,7 @@ dependencies { modImplementation "com.terraformersmc:modmenu:${project.mod_menu_version}" // Fabric API. This is technically optional, but you probably want it anyway. - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" // https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit used pull data from the NEU item repo include(implementation("org.eclipse.jgit:org.eclipse.jgit:6.4.0.202211300538-r")) @@ -103,7 +103,7 @@ modrinth { token = System.getenv('MODRINTH_TOKEN') projectId = project.modrinth_id versionNumber = "v${project.version}" - versionName = "Skyblocker ${project.mod_version} for ${project.suported_version}" + versionName = "Skyblocker ${project.mod_version} for ${project.minecraft_version}" uploadFile = remapJar gameVersions = ["1.19", "1.19.1", project.minecraft_version] loaders = ["fabric"] diff --git a/gradle.properties b/gradle.properties index f1ea4278..139c0e46 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,29 +1,23 @@ org.gradle.jvmargs=-Xmx1G -Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=US # Fabric Properties (https://fabricmc.net/versions.html) -## 1.19.3 -minecraft_version=1.19.3 -yarn_mappings=1.19.3+build.5 -## 1.19.2 -#minecraft_version=1.19.2 -#yarn_mappings=1.19.2+build.28 -loader_version=0.14.12 +## 1.19.4 +minecraft_version=1.19.4 +yarn_mappings=1.19.4+build.1 +loader_version=0.14.18 #Fabric api -## 1.19.3 -fabric_version=0.72.0+1.19.3 -## 1.19.2 -#fabric_version=0.72.0+1.19.2 +## 1.19.4 +fabric_api_version=0.76.0+1.19.4 # Dependencies ## Cloth Api (https://www.curseforge.com/minecraft/mc-mods/cloth-config/files) -clothconfig_version=9.0.94 +clothconfig_version=10.0.96 ## Mod Menu (https://www.curseforge.com/minecraft/mc-mods/modmenu/files) -mod_menu_version=5.0.2 +mod_menu_version=6.1.0-rc.4 # Mod Properties mod_version = 1.8.3-beta maven_group = me.xmrvizzy archives_base_name = skyblocker -modrinth_id=y6DuFGwJ -suported_version=1.19.3
\ No newline at end of file +modrinth_id=y6DuFGwJ
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java index e9af52f6..3d713727 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java @@ -2,6 +2,7 @@ package me.xmrvizzy.skyblocker; import me.xmrvizzy.skyblocker.chat.ChatMessageListener; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.discord.DiscordRPCManager; import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock; import me.xmrvizzy.skyblocker.skyblock.api.StatsCommand; import me.xmrvizzy.skyblocker.skyblock.dwarven.DwarvenHud; @@ -23,6 +24,6 @@ public class SkyblockerInitializer implements ClientModInitializer { DwarvenHud.init(); ChatMessageListener.init(); UpdateChecker.init(); - SkyblockerMod.getInstance().discordRPCManager.init(); + DiscordRPCManager.init(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatPatternListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatPatternListener.java index 19237de4..8a32715e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatPatternListener.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatPatternListener.java @@ -6,7 +6,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public abstract class ChatPatternListener implements ChatMessageListener { - protected static String NUMBER = "-?[0-9]{1,3}(?>,[0-9]{3})*(?:\\.[1-9])?"; + protected static final String NUMBER = "-?[0-9]{1,3}(?>,[0-9]{3})*(?:\\.[1-9])?"; public final Pattern pattern; public ChatPatternListener(String pattern) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AutopetFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AutopetFilter.java index f8af49ce..f1545db4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AutopetFilter.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AutopetFilter.java @@ -4,7 +4,6 @@ import me.xmrvizzy.skyblocker.chat.ChatFilterResult; import me.xmrvizzy.skyblocker.chat.ChatPatternListener; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.client.MinecraftClient; -import net.minecraft.text.LiteralTextContent; import net.minecraft.text.Text; import java.util.Objects; diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index e487c209..21322c81 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -15,74 +15,74 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Category("general") @ConfigEntry.Gui.TransitiveObject - public General general = new General(); + public final General general = new General(); @ConfigEntry.Category("locations") @ConfigEntry.Gui.TransitiveObject - public Locations locations = new Locations(); + public final Locations locations = new Locations(); @ConfigEntry.Category("messages") @ConfigEntry.Gui.TransitiveObject - public Messages messages = new Messages(); + public final Messages messages = new Messages(); @ConfigEntry.Category("richPresence") @ConfigEntry.Gui.TransitiveObject - public RichPresence richPresence = new RichPresence(); + public final RichPresence richPresence = new RichPresence(); @ConfigEntry.Category("quickNav") @ConfigEntry.Gui.TransitiveObject - public QuickNav quickNav = new QuickNav(); + public final QuickNav quickNav = new QuickNav(); public static class QuickNav { - public boolean enableQuickNav = true; + public final boolean enableQuickNav = true; @ConfigEntry.Category("button1") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button1 = new QuickNavItem(true, new ItemData("diamond_sword"), "Your Skills", "/skills"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button1 = new QuickNavItem(true, new ItemData("diamond_sword"), "Your Skills", "/skills"); @ConfigEntry.Category("button2") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button2 = new QuickNavItem(true, new ItemData("painting"), "Collection", "/collection"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button2 = new QuickNavItem(true, new ItemData("painting"), "Collection", "/collection"); @ConfigEntry.Category("button3") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button3 = new QuickNavItem(false, new ItemData("air"), "", ""); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button3 = new QuickNavItem(false, new ItemData("air"), "", ""); @ConfigEntry.Category("button4") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button4 = new QuickNavItem(true, new ItemData("bone"), "Pets", "/pets"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button4 = new QuickNavItem(true, new ItemData("bone"), "Pets", "/pets"); @ConfigEntry.Category("button5") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button5 = new QuickNavItem(true, new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe", "/wardrobe"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button5 = new QuickNavItem(true, new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe", "/wardrobe"); @ConfigEntry.Category("button6") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"), "Storage", "/storage"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"), "Storage", "/storage"); @ConfigEntry.Category("button7") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button7 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}"), "none", "/hub"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button7 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}"), "none", "/hub"); @ConfigEntry.Category("button8") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button8 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}"), "none", "/warp dungeon_hub"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button8 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}"), "none", "/warp dungeon_hub"); @ConfigEntry.Category("button9") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button9 = new QuickNavItem(false, new ItemData("air"), "", ""); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button9 = new QuickNavItem(false, new ItemData("air"), "", ""); @ConfigEntry.Category("button10") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant", "/etable"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant", "/etable"); @ConfigEntry.Category("button11") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil"); @ConfigEntry.Category("button12") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft"); + @ConfigEntry.Gui.CollapsibleObject() + public final QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft"); } public static class QuickNavItem { @@ -93,14 +93,14 @@ public class SkyblockerConfig implements ConfigData { this.uiTitle = uiTitle; } - public Boolean render; + public final Boolean render; @ConfigEntry.Category("item") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public ItemData item; + @ConfigEntry.Gui.CollapsibleObject() + public final ItemData item; - public String uiTitle; - public String clickEvent; + public final String uiTitle; + public final String clickEvent; } public static class ItemData { @@ -116,55 +116,55 @@ public class SkyblockerConfig implements ConfigData { this.nbt = ""; } - public String itemName; - public int count; - public String nbt; + public final String itemName; + public final int count; + public final String nbt; } public static class General { - public boolean enableUpdateNotification = true; - public boolean backpackPreviewWithoutShift = false; + public final boolean enableUpdateNotification = true; + public final boolean backpackPreviewWithoutShift = false; @ConfigEntry.Gui.Excluded public String apiKey; @ConfigEntry.Category("bars") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public Bars bars = new Bars(); + @ConfigEntry.Gui.CollapsibleObject() + public final Bars bars = new Bars(); @ConfigEntry.Category("itemList") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public ItemList itemList = new ItemList(); + @ConfigEntry.Gui.CollapsibleObject() + public final ItemList itemList = new ItemList(); @ConfigEntry.Category("itemTooltip") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public ItemTooltip itemTooltip = new ItemTooltip(); + @ConfigEntry.Gui.CollapsibleObject() + public final ItemTooltip itemTooltip = new ItemTooltip(); @ConfigEntry.Category("hitbox") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public Hitbox hitbox = new Hitbox(); + @ConfigEntry.Gui.CollapsibleObject() + public final Hitbox hitbox = new Hitbox(); @ConfigEntry.Gui.Excluded - public List<Integer> lockedSlots = new ArrayList<>(); + public final List<Integer> lockedSlots = new ArrayList<>(); } public static class Bars { - public boolean enableBars = true; + public final boolean enableBars = true; @ConfigEntry.Category("barpositions") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public BarPositions barpositions = new BarPositions(); + @ConfigEntry.Gui.CollapsibleObject() + public final BarPositions barpositions = new BarPositions(); } public static class BarPositions { @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public BarPosition healthBarPosition = BarPosition.LAYER1; + public final BarPosition healthBarPosition = BarPosition.LAYER1; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public BarPosition manaBarPosition = BarPosition.LAYER1; + public final BarPosition manaBarPosition = BarPosition.LAYER1; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public BarPosition defenceBarPosition = BarPosition.LAYER1; + public final BarPosition defenceBarPosition = BarPosition.LAYER1; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public BarPosition experienceBarPosition = BarPosition.LAYER1; + public final BarPosition experienceBarPosition = BarPosition.LAYER1; } @@ -195,21 +195,21 @@ public class SkyblockerConfig implements ConfigData { } public static class Hitbox { - public boolean oldFarmlandHitbox = true; - public boolean oldLeverHitbox = false; + public final boolean oldFarmlandHitbox = true; + public final boolean oldLeverHitbox = false; } public static class RichPresence { - public boolean enableRichPresence = false; + public final boolean enableRichPresence = false; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) @ConfigEntry.Gui.Tooltip() - public Info info = Info.LOCATION; - public boolean cycleMode = false; + public final Info info = Info.LOCATION; + public final boolean cycleMode = false; public String customMessage; } public static class ItemList { - public boolean enableItemList = true; + public final boolean enableItemList = true; } public enum Average { @@ -228,79 +228,79 @@ public class SkyblockerConfig implements ConfigData { } public static class ItemTooltip { - public boolean enableNPCPrice = true; - public boolean enableAvgBIN = true; + public final boolean enableNPCPrice = true; + public final boolean enableAvgBIN = true; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) @ConfigEntry.Gui.Tooltip() - public Average avg = Average.THREE_DAY; - public boolean enableLowestBIN = true; - public boolean enableBazaarPrice = true; - public boolean enableMuseumDate = true; + public final Average avg = Average.THREE_DAY; + public final boolean enableLowestBIN = true; + public final boolean enableBazaarPrice = true; + public final boolean enableMuseumDate = true; } public static class Locations { @ConfigEntry.Category("dungeons") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public Dungeons dungeons = new Dungeons(); + @ConfigEntry.Gui.CollapsibleObject() + public final Dungeons dungeons = new Dungeons(); @ConfigEntry.Category("dwarvenmines") - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public DwarvenMines dwarvenMines = new DwarvenMines(); + @ConfigEntry.Gui.CollapsibleObject() + public final DwarvenMines dwarvenMines = new DwarvenMines(); } public static class Dungeons { @ConfigEntry.Gui.Tooltip() - public boolean croesusHelper = true; - public boolean enableMap = true; - public boolean solveThreeWeirdos = true; - public boolean blazesolver = true; - public boolean solveTrivia = true; - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public Terminals terminals = new Terminals(); + public final boolean croesusHelper = true; + public final boolean enableMap = true; + public final boolean solveThreeWeirdos = true; + public final boolean blazesolver = true; + public final boolean solveTrivia = true; + @ConfigEntry.Gui.CollapsibleObject() + public final Terminals terminals = new Terminals(); } public static class Terminals { - public boolean solveColor = true; - public boolean solveOrder = true; - public boolean solveStartsWith = true; + public final boolean solveColor = true; + public final boolean solveOrder = true; + public final boolean solveStartsWith = true; } public static class DwarvenMines { - public boolean enableDrillFuel = true; - public boolean solveFetchur = true; - public boolean solvePuzzler = true; - @ConfigEntry.Gui.CollapsibleObject(startExpanded = false) - public DwarvenHud dwarvenHud = new DwarvenHud(); + public final boolean enableDrillFuel = true; + public final boolean solveFetchur = true; + public final boolean solvePuzzler = true; + @ConfigEntry.Gui.CollapsibleObject() + public final DwarvenHud dwarvenHud = new DwarvenHud(); } public static class DwarvenHud { - public boolean enabled = true; - public boolean enableBackground = true; + public final boolean enabled = true; + public final boolean enableBackground = true; public int x = 10; public int y = 10; } public static class Messages { @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideAbility = ChatFilterResult.PASS; + public final ChatFilterResult hideAbility = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideHeal = ChatFilterResult.PASS; + public final ChatFilterResult hideHeal = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideAOTE = ChatFilterResult.PASS; + public final ChatFilterResult hideAOTE = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideImplosion = ChatFilterResult.PASS; + public final ChatFilterResult hideImplosion = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideMoltenWave = ChatFilterResult.PASS; + public final ChatFilterResult hideMoltenWave = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideAds = ChatFilterResult.PASS; + public final ChatFilterResult hideAds = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideTeleportPad = ChatFilterResult.PASS; + public final ChatFilterResult hideTeleportPad = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideCombo = ChatFilterResult.PASS; + public final ChatFilterResult hideCombo = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public ChatFilterResult hideAutopet = ChatFilterResult.PASS; + public final ChatFilterResult hideAutopet = ChatFilterResult.PASS; @ConfigEntry.Gui.Tooltip() - public boolean hideMana = false; + public final boolean hideMana = false; } public enum Info { diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java index 02990ea9..e9067851 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java @@ -8,8 +8,6 @@ import net.minecraft.client.render.WorldRenderer; @Mixin(WorldRenderer.class) public interface AccessorWorldRenderer { - @Accessor Frustum getFrustum(); - }
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java index eabf0b53..8176a810 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java @@ -17,14 +17,13 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ChatHud.class) -public class ChatHudListenerMixin { - +public abstract class ChatHudListenerMixin { @Shadow @Final private MinecraftClient client; @Inject(method = "addMessage(Lnet/minecraft/text/Text;Lnet/minecraft/network/message/MessageSignatureData;ILnet/minecraft/client/gui/hud/MessageIndicator;Z)V", at = @At("HEAD"), cancellable = true) - public void onMessage(Text message, MessageSignatureData signature, int ticks, MessageIndicator indicator, boolean refresh, CallbackInfo ci) { + public void skyblocker$onMessage(Text message, MessageSignatureData signature, int ticks, MessageIndicator indicator, boolean refresh, CallbackInfo ci) { if (!Utils.isOnSkyblock) return; String asString = message.getString(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java index 033272db..237f6ba9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java @@ -22,7 +22,7 @@ public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity } @Inject(method = "dropSelectedItem", at = @At("HEAD"), cancellable = true) - public void dropSelectedItem(boolean dropEntireStack, CallbackInfoReturnable<Boolean> cir) { + public void skyblocker$dropSelectedItem(boolean dropEntireStack, CallbackInfoReturnable<Boolean> cir) { if (Utils.isOnSkyblock) HotbarSlotLock.handleDropSelectedItem(this.getInventory().selectedSlot, cir); } }
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java index d7ca3686..29da4bd6 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java @@ -21,7 +21,7 @@ public abstract class FarmlandBlockMixin extends Block { } @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true) - public void onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) { + public void skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) { if (Utils.isOnSkyblock && SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox) cir.setReturnValue(Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 16.0)); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java index 0cd82aad..44b1b5c8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -6,7 +6,6 @@ import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup; import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNav; import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNavButton; import me.xmrvizzy.skyblocker.utils.Utils; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.util.math.MatrixStack; @@ -24,17 +23,16 @@ import java.util.List; @Mixin(HandledScreen.class) public abstract class HandledScreenMixin extends Screen { - @Shadow protected int backgroundWidth; - @Shadow protected int backgroundHeight; - protected HandledScreenMixin(Text title) { super(title); } + @Shadow - @Nullable protected Slot focusedSlot; + @Nullable + protected Slot focusedSlot; @Inject(method = "init()V", at = @At("TAIL")) - private void init(CallbackInfo ci) { + private void skyblocker$init(CallbackInfo ci) { // quicknav if (Utils.isOnSkyblock && SkyblockerConfig.get().quickNav.enableQuickNav) { String screenTitle = super.getTitle().getString().trim(); @@ -42,21 +40,21 @@ public abstract class HandledScreenMixin extends Screen { for (QuickNavButton button : buttons) super.addDrawableChild(button); } // backpack preview - BackpackPreview.updateStorage((HandledScreen<?>)(Object)this); + BackpackPreview.updateStorage((HandledScreen<?>) (Object) this); } - @Inject(at = @At("HEAD"), method = "keyPressed", cancellable = true) - public void keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) { - if (this.focusedSlot != null){ - if (keyCode != 256 && !this.client.options.inventoryKey.matchesKey(keyCode, scanCode)){ + @Inject(at = @At("HEAD"), method = "keyPressed") + public void skyblocker$keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) { + if (this.focusedSlot != null) { + if (keyCode != 256 && !this.client.options.inventoryKey.matchesKey(keyCode, scanCode)) { if (WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) WikiLookup.openWiki(this.focusedSlot); } } } @Inject(at = @At("HEAD"), method = "drawMouseoverTooltip", cancellable = true) - public void drawMouseOverTooltip(MatrixStack matrices, int x, int y, CallbackInfo ci) { - String title = ((HandledScreen<?>)(Object)this).getTitle().getString(); + public void skyblocker$drawMouseOverTooltip(MatrixStack matrices, int x, int y, CallbackInfo ci) { + String title = this.getTitle().getString(); boolean shiftDown = SkyblockerConfig.get().general.backpackPreviewWithoutShift ^ Screen.hasShiftDown(); if (shiftDown && title.equals("Storage") && this.focusedSlot != null) { if (this.focusedSlot.inventory == this.client.player.getInventory()) return; diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index 7f25b339..c137e6c8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -10,7 +10,6 @@ import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonMap; import me.xmrvizzy.skyblocker.utils.Utils; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.util.math.MatrixStack; @@ -18,9 +17,9 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Identifier; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -28,17 +27,19 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Environment(EnvType.CLIENT) @Mixin(InGameHud.class) public abstract class InGameHudMixin extends DrawableHelper { + @Unique private static final Identifier SLOT_LOCK = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png"); + @Unique private final StatusBarTracker statusBarTracker = SkyblockerMod.getInstance().statusBarTracker; + @Unique private final FancyStatusBars statusBars = new FancyStatusBars(); + @Unique private MatrixStack hotbarMatrices; + @Unique private int hotbarSlotIndex; @Shadow - @Final - private MinecraftClient client; - @Shadow private int scaledHeight; @Shadow private int scaledWidth; @@ -48,12 +49,12 @@ public abstract class InGameHudMixin extends DrawableHelper { } @Inject(method = "setOverlayMessage(Lnet/minecraft/text/Text;Z)V", at = @At("HEAD"), cancellable = true) - private void onSetOverlayMessage(Text message, boolean tinted, CallbackInfo ci) { + private void skyblocker$onSetOverlayMessage(Text message, boolean tinted, CallbackInfo ci) { if (!Utils.isOnSkyblock || !SkyblockerConfig.get().general.bars.enableBars) return; String msg = message.getString(); String res = statusBarTracker.update(msg, SkyblockerConfig.get().messages.hideMana); - if (msg != res) { + if (!msg.equals(res)) { if (res != null) setOverlayMessage(Text.of(res), tinted); ci.cancel(); @@ -61,7 +62,7 @@ public abstract class InGameHudMixin extends DrawableHelper { } @Inject(method = "renderHotbar", at = @At("HEAD")) - public void renderHotbar(float f, MatrixStack matrices, CallbackInfo ci) { + public void skyblocker$renderHotbar(float f, MatrixStack matrices, CallbackInfo ci) { if (Utils.isOnSkyblock) { hotbarMatrices = matrices; hotbarSlotIndex = 0; @@ -69,27 +70,27 @@ public abstract class InGameHudMixin extends DrawableHelper { } @Inject(method = "renderHotbarItem", at = @At("HEAD")) - public void renderHotbarItem(int i, int j, float f, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) { + public void skyblocker$renderHotbarItem(MatrixStack matrices, int i, int j, float f, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) { if (Utils.isOnSkyblock) { if (HotbarSlotLock.isLocked(hotbarSlotIndex)) { - RenderSystem.setShaderTexture(0,SLOT_LOCK); - this.drawTexture(hotbarMatrices, i, j, 0, 0,16, 16); + RenderSystem.setShaderTexture(0, SLOT_LOCK); + DrawableHelper.drawTexture(hotbarMatrices, i, j, 0, 0, 16, 16); } hotbarSlotIndex++; } } @Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true) - private void renderExperienceBar(MatrixStack matrices, int x, CallbackInfo ci) { + private void skyblocker$renderExperienceBar(MatrixStack matrices, int x, CallbackInfo ci) { if (Utils.isOnSkyblock && SkyblockerConfig.get().general.bars.enableBars) ci.cancel(); } @Inject(method = "renderStatusBars", at = @At("HEAD"), cancellable = true) - private void renderStatusBars(MatrixStack matrices, CallbackInfo ci) { - if(!Utils.isOnSkyblock) + private void skyblocker$renderStatusBars(MatrixStack matrices, CallbackInfo ci) { + if (!Utils.isOnSkyblock) return; - if(statusBars.render(matrices, scaledWidth, scaledHeight)) + if (statusBars.render(matrices, scaledWidth, scaledHeight)) ci.cancel(); if (Utils.isInDungeons && SkyblockerConfig.get().locations.dungeons.enableMap) @@ -99,7 +100,7 @@ public abstract class InGameHudMixin extends DrawableHelper { } @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) - private void renderMountHealth(MatrixStack matrices, CallbackInfo ci) { + private void skyblocker$renderMountHealth(MatrixStack matrices, CallbackInfo ci) { if (Utils.isOnSkyblock && SkyblockerConfig.get().general.bars.enableBars) ci.cancel(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java index 4bff2779..8de390cc 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java @@ -10,15 +10,15 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(InventoryScreen.class) -public class InventoryScreenMixin { +public abstract class InventoryScreenMixin { @Redirect( - method = "", + method = "<init>", at = @At( value = "NEW", target = "net/minecraft/client/gui/screen/recipebook/RecipeBookWidget" ) ) - RecipeBookWidget constructor() { + RecipeBookWidget skyblocker$constructor() { if (Utils.isOnSkyblock && SkyblockerConfig.get().general.itemList.enableItemList) return new ItemListWidget(); else diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java index 395027bc..b9ddc156 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java @@ -1,32 +1,31 @@ package me.xmrvizzy.skyblocker.mixin; +import java.awt.Color; +import java.util.regex.Pattern; + +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + import com.mojang.blaze3d.systems.RenderSystem; + import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.ItemUtils; import me.xmrvizzy.skyblocker.utils.Utils; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.render.BufferBuilder; -import net.minecraft.client.render.Tessellator; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.render.item.ItemRenderer; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; -import net.minecraft.util.math.MathHelper; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import java.util.regex.Pattern; +import net.minecraft.util.math.ColorHelper; @Mixin(ItemRenderer.class) public abstract class ItemRendererMixin { - - @Shadow protected abstract void renderGuiQuad(BufferBuilder buffer, int x, int y, int width, int height, int red, int green, int blue, int alpha); - - @Inject(method = "renderGuiItemOverlay(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD")) - public void renderItemBar(TextRenderer renderer, ItemStack stack, int x, int y, @Nullable String countLabel, CallbackInfo ci) { + @Inject(method = "renderGuiItemOverlay(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD")) + public void skyblocker$renderItemBar(MatrixStack matrices, TextRenderer renderer, ItemStack stack, int x, int y, @Nullable String countLabel, CallbackInfo ci) { if (Utils.isOnSkyblock && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) { if (!stack.isEmpty()) { @@ -47,19 +46,11 @@ public abstract class ItemRendererMixin { } RenderSystem.disableDepthTest(); - RenderSystem.disableTexture(); -// RenderSystem.disableAlphaTest(); - RenderSystem.disableBlend(); - Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buffer = tessellator.getBuffer(); float hue = Math.max(0.0F, 1.0F - (max - current) / max); int width = Math.round(current / max * 13.0F); - int rgb = MathHelper.hsvToRgb(hue / 3.0F, 1.0F, 1.0F); - this.renderGuiQuad(buffer, x + 2, y + 13, 13, 2, 0,0,0,255); - this.renderGuiQuad(buffer, x + 2, y + 13, width, 1, rgb >> 16 & 255, rgb >> 8 & 255, rgb & 255, 255); - RenderSystem.enableBlend(); -// RenderSystem.enableAlphaTest(); - RenderSystem.enableTexture(); + Color color = Color.getHSBColor(hue / 3.0F, 1.0F, 1.0F); + DrawableHelper.fill(matrices, x + 2, y + 13, x + 15, y + 15, 0xFF000000); + DrawableHelper.fill(matrices, x + 2, y + 13, x + 2 + width, y + 14, ColorHelper.Argb.getArgb(color.getAlpha(), color.getRed(), color.getGreen(), color.getBlue())); RenderSystem.enableDepthTest(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java index c3ff287e..c28a7096 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java @@ -21,7 +21,7 @@ public abstract class LeverBlockMixin extends WallMountedBlock { } @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true) - public void onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) { + public void skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) { if (Utils.isOnSkyblock) { VoxelShape shape = OldLever.getShape(state.get(FACE), state.get(FACING)); if (shape != null) diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java index 6561eb5b..2bc47bba 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java @@ -16,24 +16,26 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(MinecraftClient.class) -public class MinecraftClientMixin { +public abstract class MinecraftClientMixin { - @Shadow @Nullable public ClientPlayerEntity player; + @Shadow + @Nullable + public ClientPlayerEntity player; @Inject(method = "tick", at = @At("HEAD")) - public void tick(CallbackInfo ci) { + public void skyblocker$tick(CallbackInfo ci) { SkyblockerMod.getInstance().onTick(); } @Inject(method = "handleInputEvents", at = @At("HEAD")) - public void handleInputEvents(CallbackInfo ci) { + public void skyblocker$handleInputEvents(CallbackInfo ci) { if (Utils.isOnSkyblock) HotbarSlotLock.handleInputEvents(player); } @Inject(method = "setScreen", at = @At("HEAD")) - public void onSetScreen(Screen screen, CallbackInfo ci) { + public void skyblocker$onSetScreen(Screen screen, CallbackInfo ci) { ContainerSolverManager manager = SkyblockerMod.getInstance().containerSolverManager; - if(Utils.isOnSkyblock && screen instanceof GenericContainerScreen) + if (Utils.isOnSkyblock && screen instanceof GenericContainerScreen) manager.onSetScreen((GenericContainerScreen) screen); else manager.clearScreen(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java index de4a25b6..d8cca051 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java @@ -48,7 +48,7 @@ public class BackpackPreview extends DrawableHelper { // update save dir based on uuid and sb profile String uuid = MinecraftClient.getInstance().getSession().getUuid().replaceAll("-", ""); String profile = getSkyblockProfile(); - if (uuid != null && profile != null) { + if (profile != null) { save_dir = FabricLoader.getInstance().getConfigDir().resolve("skyblocker/backpack-preview/" + uuid + "/" + profile); save_dir.toFile().mkdirs(); if (loaded.equals(uuid + "/" + profile)) { @@ -68,7 +68,7 @@ public class BackpackPreview extends DrawableHelper { } public static void loadStorage() { - assert(save_dir != null); + assert (save_dir != null); for (int index = 0; index < STORAGE_SIZE; ++index) { storage[index] = null; dirty[index] = false; @@ -85,7 +85,7 @@ public class BackpackPreview extends DrawableHelper { } private static void saveStorage() { - assert(save_dir != null); + assert (save_dir != null); for (int index = 0; index < STORAGE_SIZE; ++index) { if (dirty[index]) { if (storage[index] != null) { @@ -121,7 +121,7 @@ public class BackpackPreview extends DrawableHelper { String title = screen.getTitle().getString(); int index = getStorageIndexFromTitle(title); if (index != -1) { - storage[index] = ((HandledScreen<?>)screen).getScreenHandler().slots.get(0).inventory; + storage[index] = screen.getScreenHandler().slots.get(0).inventory; dirty[index] = true; } } @@ -140,10 +140,10 @@ public class BackpackPreview extends DrawableHelper { RenderSystem.disableDepthTest(); RenderSystem.setShaderTexture(0, TEXTURE); - instance.drawTexture(matrices, x, y, 0, 0, 176, 7); + BackpackPreview.drawTexture(matrices, x, y, 0, 0, 176, 7); for (int i = 0; i < rows; ++i) - instance.drawTexture(matrices, x, y + i * 18 + 7, 0, 7, 176, 18); - instance.drawTexture(matrices, x, y + rows * 18 + 7, 0, 25, 176, 7); + BackpackPreview.drawTexture(matrices, x, y + i * 18 + 7, 0, 7, 176, 18); + BackpackPreview.drawTexture(matrices, x, y + rows * 18 + 7, 0, 25, 176, 7); RenderSystem.enableDepthTest(); ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer(); @@ -151,10 +151,11 @@ public class BackpackPreview extends DrawableHelper { for (int i = 9; i < storage[index].size(); ++i) { int itemX = x + (i - 9) % 9 * 18 + 8; int itemY = y + (i - 9) / 9 * 18 + 8; - itemRenderer.zOffset = 200.0F; - itemRenderer.renderInGui(storage[index].getStack(i), itemX, itemY); - itemRenderer.renderGuiItemOverlay(textRenderer, storage[index].getStack(i), itemX, itemY); - itemRenderer.zOffset = 0.0F; + matrices.push(); + matrices.translate(0, 0, 200); + itemRenderer.renderInGui(matrices, storage[index].getStack(i), itemX, itemY); + itemRenderer.renderGuiItemOverlay(matrices, textRenderer, storage[index].getStack(i), itemX, itemY); + matrices.pop(); } return true; @@ -183,40 +184,56 @@ public class BackpackPreview extends DrawableHelper { } class DummyInventory implements Inventory { - private List<ItemStack> stacks; + private final List<ItemStack> stacks; public DummyInventory(NbtCompound root) { stacks = new ArrayList<>(root.getInt("size") + 9); for (int i = 0; i < 9; ++i) stacks.add(ItemStack.EMPTY); root.getList("list", NbtCompound.COMPOUND_TYPE).forEach(item -> - stacks.add(ItemStack.fromNbt((NbtCompound)item)) + stacks.add(ItemStack.fromNbt((NbtCompound) item)) ); } @Override - public int size() { return stacks.size(); } + public int size() { + return stacks.size(); + } @Override - public boolean isEmpty() { return false; } + public boolean isEmpty() { + return false; + } @Override - public ItemStack getStack(int slot) { return stacks.get(slot); } + public ItemStack getStack(int slot) { + return stacks.get(slot); + } @Override - public ItemStack removeStack(int slot, int amount) { return null; } + public ItemStack removeStack(int slot, int amount) { + return null; + } @Override - public ItemStack removeStack(int slot) { return null; } + public ItemStack removeStack(int slot) { + return null; + } @Override - public void setStack(int slot, ItemStack stack) { stacks.set(slot, stack); } + public void setStack(int slot, ItemStack stack) { + stacks.set(slot, stack); + } @Override - public void markDirty() {} + public void markDirty() { + } @Override - public boolean canPlayerUse(PlayerEntity player) { return false; } + public boolean canPlayerUse(PlayerEntity player) { + return false; + } @Override - public void clear() {} + public void clear() { + } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java index 15a45e2e..05b57410 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java @@ -6,7 +6,6 @@ import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ApiKeyListener.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ApiKeyListener.java index 679901cd..dec2835b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ApiKeyListener.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ApiKeyListener.java @@ -6,7 +6,7 @@ import me.xmrvizzy.skyblocker.chat.ChatPatternListener; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.client.MinecraftClient; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableTextContent; + import java.util.regex.Matcher; public class ApiKeyListener extends ChatPatternListener { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/StatsCommand.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/StatsCommand.java index 4cf6c84d..3e848925 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/StatsCommand.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/StatsCommand.java @@ -11,21 +11,19 @@ import net.minecraft.text.Text; public class StatsCommand { public static void init(){ - ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { - dispatcher.register(ClientCommandManager.literal("skyblocker") - .then(ClientCommandManager.literal("debug") - .then(ClientCommandManager.literal("stats").then(ClientCommandManager.argument("username", StringArgumentType.string()) - .executes(context -> { - new Thread(() -> { - PlayerProfiles playerProfiles = ProfileUtils.getProfiles(StringArgumentType.getString(context, "username")); - for (String profileId : playerProfiles.profiles().keySet()){ - MinecraftClient.getInstance().player.sendMessage(Text.literal(playerProfiles.profiles().get(profileId).cuteName()) - .styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, new GsonBuilder().serializeNulls().setPrettyPrinting().create().toJson(playerProfiles.profiles().get(profileId))))), false); - } - }).start(); - return 1; - }))))); - }); + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker") + .then(ClientCommandManager.literal("debug") + .then(ClientCommandManager.literal("stats").then(ClientCommandManager.argument("username", StringArgumentType.string()) + .executes(context -> { + new Thread(() -> { + PlayerProfiles playerProfiles = ProfileUtils.getProfiles(StringArgumentType.getString(context, "username")); + for (String profileId : playerProfiles.profiles().keySet()){ + MinecraftClient.getInstance().player.sendMessage(Text.literal(playerProfiles.profiles().get(profileId).cuteName()) + .styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, new GsonBuilder().serializeNulls().setPrettyPrinting().create().toJson(playerProfiles.profiles().get(profileId))))), false); + } + }).start(); + return 1; + })))))); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/records/mining/Mining.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/records/mining/Mining.java index d974f5c6..d6f52fe4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/records/mining/Mining.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/records/mining/Mining.java @@ -1,10 +1,5 @@ package me.xmrvizzy.skyblocker.skyblock.api.records.mining; -import com.google.gson.annotations.SerializedName; -import me.xmrvizzy.skyblocker.skyblock.api.records.PlayerProfiles; - -import java.util.HashMap; - public record Mining( Commissions commissions, Forge forge, diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java index c836e4f3..37320c92 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java @@ -21,14 +21,18 @@ public class OldLever { return FLOOR_SHAPE; } else if (wallMountLocation == WallMountLocation.WALL) { switch (direction) { - case EAST: + case EAST -> { return EAST_SHAPE; - case WEST: + } + case WEST -> { return WEST_SHAPE; - case SOUTH: + } + case SOUTH -> { return SOUTH_SHAPE; - case NORTH: + } + case NORTH -> { return NORTH_SHAPE; + } } } return null; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java index 19f13c32..42fcc36a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java @@ -1,8 +1,5 @@ package me.xmrvizzy.skyblocker.skyblock.dungeon; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.chat.ChatFilterResult; import me.xmrvizzy.skyblocker.chat.ChatPatternListener; @@ -13,6 +10,9 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.text.Text; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class Reparty extends ChatPatternListener { private static final MinecraftClient client = MinecraftClient.getInstance(); private static final SkyblockerMod skyblocker = SkyblockerMod.getInstance(); @@ -26,17 +26,12 @@ public class Reparty extends ChatPatternListener { public Reparty() { super("^(?:You are not currently in a party\\.|Party (?:Membe|Moderato)rs(?: \\(([0-9]+)\\)|:( .*)))$"); this.repartying = false; - ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { - dispatcher.register(ClientCommandManager.literal("rp").executes(context -> { - if (!Utils.isOnSkyblock || this.repartying || client.player == null) return 0; - this.repartying = true; - client.player.networkHandler.sendCommand("p list"); - return 0; - })); - }); - - - + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("rp").executes(context -> { + if (!Utils.isOnSkyblock || this.repartying || client.player == null) return 0; + this.repartying = true; + client.player.networkHandler.sendCommand("p list"); + return 0; + }))); } @Override diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java index 6d4bf812..86fe58fe 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java @@ -20,7 +20,7 @@ import java.util.stream.Stream; public class DwarvenHud { - public static MinecraftClient client = MinecraftClient.getInstance(); + public static final MinecraftClient client = MinecraftClient.getInstance(); public static List<Commission> commissionList = new ArrayList<>(); @@ -84,8 +84,8 @@ public class DwarvenHud { } public static class Commission{ - String commission; - String progression; + final String commission; + final String progression; public Commission(String commission, String progression){ this.commission = commission; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java index 7dcb2b3b..2d0ba892 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java @@ -23,7 +23,7 @@ public class DwarvenHudConfigScreen extends Screen { super.render(matrices, mouseX, mouseY, delta); renderBackground(matrices); DwarvenHud.render(matrices, hudX, hudY, List.of(new DwarvenHud.Commission("Test Commission 1", "1%"), new DwarvenHud.Commission("Test Commission 2", "2%"))); - drawCenteredText(matrices, textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); + drawCenteredTextWithShadow(matrices, textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); } @Override diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java index 6382fe9c..4c2ac002 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java @@ -5,7 +5,7 @@ import me.xmrvizzy.skyblocker.chat.ChatPatternListener; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.client.MinecraftClient; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableTextContent; + import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java index dfc498a1..8d8c86b4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java @@ -9,10 +9,8 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; -import net.minecraft.text.LiteralTextContent; import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableTextContent; import net.minecraft.util.Formatting; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java index afaf487f..82c9fdf4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java @@ -24,7 +24,7 @@ import java.net.URLConnection; public class WikiLookup { public static KeyBinding wikiLookup; - static MinecraftClient client = MinecraftClient.getInstance(); + static final MinecraftClient client = MinecraftClient.getInstance(); static String id; public static Gson gson = new Gson(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java index 249fba9f..d8ad3a89 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java @@ -3,7 +3,6 @@ package me.xmrvizzy.skyblocker.skyblock.itemlist; import net.minecraft.item.Items; // import net.minecraft.registry.Registry; import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; import java.util.Map; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java index ce567b67..99a06337 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java @@ -7,6 +7,7 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Drawable; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.Selectable; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; import net.minecraft.client.gui.widget.TextFieldWidget; @@ -54,7 +55,7 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select this.searchField = ((RecipeBookWidgetAccessor)this).getSearchField(); int i = (this.parentWidth - 147) / 2 - this.leftOffset; int j = (this.parentHeight - 166) / 2; - this.drawTexture(matrices, i, j, 1, 1, 147, 166); + DrawableHelper.drawTexture(matrices, i, j, 1, 1, 147, 166); this.searchField = ((RecipeBookWidgetAccessor)this).getSearchField(); if (!this.searchField.isFocused() && this.searchField.getText().isEmpty()) { Text hintText = (Text.translatable("gui.recipebook.search_hint")).formatted(Formatting.ITALIC).formatted(Formatting.GRAY); @@ -84,8 +85,6 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select this.results.closeRecipeView(); return true; } - if (this.results.mouseClicked(mouseX, mouseY, button)) - return true; - return false; + return this.results.mouseClicked(mouseX, mouseY, button); } }
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java index 17e9aebc..008ff191 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java @@ -21,9 +21,9 @@ public class ItemRegistry { private static final Path ITEM_LIST_DIR = LOCAL_ITEM_REPO_DIR.resolve("items"); - protected static List<ItemStack> items = new ArrayList<>(); - protected static Map<String, ItemStack> itemsMap = new HashMap<>(); - protected static List<Recipe> recipes = new ArrayList<>(); + protected static final List<ItemStack> items = new ArrayList<>(); + protected static final Map<String, ItemStack> itemsMap = new HashMap<>(); + protected static final List<Recipe> recipes = new ArrayList<>(); // TODO: make async public static void init() { @@ -113,7 +113,7 @@ public class ItemRegistry { class Recipe { private static final Logger LOGGER = LoggerFactory.getLogger(Recipe.class); String text = ""; - List<ItemStack> grid = new ArrayList<>(9); + final List<ItemStack> grid = new ArrayList<>(9); ItemStack result; public static Recipe fromJsonObject(JsonObject jsonObj) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java index fbbd49d7..b2d909a8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java @@ -30,8 +30,7 @@ public class ItemStackBuilder { public static ItemStack parseJsonObj(JsonObject obj) { String internalName = obj.get("internalname").getAsString(); - List<Pair<String, String>> injectors = new ArrayList<>(); - injectors.addAll(petData(internalName)); + List<Pair<String, String>> injectors = new ArrayList<>(petData(internalName)); NbtCompound root = new NbtCompound(); root.put("Count", NbtByte.of((byte)1)); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ResultButtonWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ResultButtonWidget.java index 6d0d89e1..41e5469d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ResultButtonWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ResultButtonWidget.java @@ -5,6 +5,7 @@ import java.util.List; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.client.render.GameRenderer; @@ -40,11 +41,11 @@ public class ResultButtonWidget extends ClickableWidget { RenderSystem.setShader(GameRenderer::getPositionTexProgram); RenderSystem.setShaderTexture(0, BACKGROUND_TEXTURE); // this.drawTexture(matrices, this.x, this.y, 29, 206, this.width, this.height); - this.drawTexture(matrices, this.getX(), this.getY(), 29, 206, this.getWidth(), this.getHeight()); + DrawableHelper.drawTexture(matrices, this.getX(), this.getY(), 29, 206, this.getWidth(), this.getHeight()); // client.getItemRenderer().renderInGui(this.itemStack, this.x + 4, this.y + 4); - client.getItemRenderer().renderInGui(this.itemStack, this.getX() + 4, this.getY() + 4); + client.getItemRenderer().renderInGui(matrices, this.itemStack, this.getX() + 4, this.getY() + 4); // client.getItemRenderer().renderGuiItemOverlay(client.textRenderer, itemStack, this.x + 4, this.y + 4); - client.getItemRenderer().renderGuiItemOverlay(client.textRenderer, itemStack, this.getX() + 4, this.getY() + 4); + client.getItemRenderer().renderGuiItemOverlay(matrices, client.textRenderer, itemStack, this.getX() + 4, this.getY() + 4); } public void renderTooltip(MatrixStack matrices, int mouseX, int mouseY) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java index d006649b..64ba237d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java @@ -15,19 +15,18 @@ import java.util.Locale; public class SearchResultsWidget implements Drawable { private static final Identifier TEXTURE = new Identifier("textures/gui/recipe_book.png"); + private static final int COLS = 5; private final MinecraftClient client; private final int parentX; private final int parentY; - private final int rows = 4; - private final int cols = 5; private final List<ItemStack> searchResults = new ArrayList<>(); private List<Recipe> recipeResults = new ArrayList<>(); private String searchText = null; - private List<ResultButtonWidget> resultButtons = new ArrayList<>(); - private ToggleButtonWidget nextPageButton; - private ToggleButtonWidget prevPageButton; + private final List<ResultButtonWidget> resultButtons = new ArrayList<>(); + private final ToggleButtonWidget nextPageButton; + private final ToggleButtonWidget prevPageButton; private int currentPage = 0; private int pageCount = 0; private boolean displayRecipes = false; @@ -38,8 +37,9 @@ public class SearchResultsWidget implements Drawable { this.parentY = parentY; int gridX = parentX + 11; int gridY = parentY + 31; - for (int i = 0; i < this.rows; ++i) - for (int j = 0; j < this.cols; ++j) { + int rows = 4; + for (int i = 0; i < rows; ++i) + for (int j = 0; j < COLS; ++j) { int x = gridX + j * 25; int y = gridY + i * 25; resultButtons.add(new ResultButtonWidget(x, y)); @@ -63,6 +63,9 @@ public class SearchResultsWidget implements Drawable { this.searchResults.clear(); for (ItemStack entry : ItemRegistry.items) { String name = entry.getName().toString().toLowerCase(Locale.ENGLISH); + if (entry.getNbt() == null) { + continue; + } String disp = entry.getNbt().getCompound("display").toString().toLowerCase(Locale.ENGLISH); if (name.contains(this.searchText) || disp.contains(this.searchText)) this.searchResults.add(entry); @@ -79,9 +82,9 @@ public class SearchResultsWidget implements Drawable { Recipe recipe = this.recipeResults.get(this.currentPage); for (ResultButtonWidget button : resultButtons) button.clearItemStack(); - resultButtons.get( 5).setItemStack(recipe.grid.get(0)); - resultButtons.get( 6).setItemStack(recipe.grid.get(1)); - resultButtons.get( 7).setItemStack(recipe.grid.get(2)); + resultButtons.get(5).setItemStack(recipe.grid.get(0)); + resultButtons.get(6).setItemStack(recipe.grid.get(1)); + resultButtons.get(7).setItemStack(recipe.grid.get(2)); resultButtons.get(10).setItemStack(recipe.grid.get(3)); resultButtons.get(11).setItemStack(recipe.grid.get(4)); resultButtons.get(12).setItemStack(recipe.grid.get(5)); @@ -135,6 +138,9 @@ public class SearchResultsWidget implements Drawable { public boolean mouseClicked(double mouseX, double mouseY, int mouseButton) { for (ResultButtonWidget button : resultButtons) if (button.mouseClicked(mouseX, mouseY, mouseButton)) { + if (button.itemStack.getNbt() == null) { + continue; + } String internalName = button.itemStack.getNbt().getCompound("ExtraAttributes").getString("id"); List<Recipe> recipes = ItemRegistry.getRecipes(internalName); if (!recipes.isEmpty()) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java index 85ebd3a6..8483f88b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java @@ -1,20 +1,15 @@ package me.xmrvizzy.skyblocker.skyblock.quicknav; -import java.util.ArrayList; -import java.util.List; - import com.mojang.brigadier.exceptions.CommandSyntaxException; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; import net.minecraft.nbt.StringNbtReader; import java.util.ArrayList; import java.util.List; import java.util.Locale; -import java.util.Objects; public class QuickNav { private static final String skyblockHubIconNbt = "{id:\"minecraft:player_head\",Count:1,tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}}"; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java index f35e60b2..e31827ab 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java @@ -6,6 +6,7 @@ import me.xmrvizzy.skyblocker.mixin.HandledScreenAccessor; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; @@ -20,7 +21,7 @@ public class QuickNavButton extends ClickableWidget { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); private static final Identifier BUTTON_TEXTURE = new Identifier("textures/gui/container/creative_inventory/tabs.png"); - private int index; + private final int index; private boolean toggled; private int u; private int v; @@ -37,8 +38,7 @@ public class QuickNavButton extends ClickableWidget { private void updateCoordinates() { Screen screen = MinecraftClient.getInstance().currentScreen; - if (screen instanceof HandledScreen<?>) { - HandledScreen<?> handledScreen = (HandledScreen<?>) screen; + if (screen instanceof HandledScreen<?> handledScreen) { int x = ((HandledScreenAccessor)handledScreen).getX(); int y = ((HandledScreenAccessor)handledScreen).getY(); int w = ((HandledScreenAccessor)handledScreen).getBackgroundWidth(); @@ -71,33 +71,33 @@ public class QuickNavButton extends ClickableWidget { if (!this.toggled) { if (this.index >= 6) // this.drawTexture(matrices, this.x, this.y + 4, this.u, this.v + 4, this.width, this.height - 4); - this.drawTexture(matrices, this.getX(), this.getY() + 4, this.u, this.v + 4, this.width, this.height - 4); + DrawableHelper.drawTexture(matrices, this.getX(), this.getY() + 4, this.u, this.v + 4, this.width, this.height - 4); else // this.drawTexture(matrices, this.x, this.y, this.u, this.v, this.width, this.height - 4); - this.drawTexture(matrices, this.getX(), this.getY() - 2, this.u, this.v, this.width, this.height - 4); + DrawableHelper.drawTexture(matrices, this.getX(), this.getY() - 2, this.u, this.v, this.width, this.height - 4); // } else this.drawTexture(matrices, this.x, this.y, this.u, this.v, this.width, this.height); } else { matrices.push(); //Move the top buttons 2 pixels up if they're selected if (this.index < 6) matrices.translate(0f, -2f, 0f); - this.drawTexture(matrices, this.getX(), this.getY(), this.u, this.v, this.width, this.height); + DrawableHelper.drawTexture(matrices, this.getX(), this.getY(), this.u, this.v, this.width, this.height); matrices.pop(); } // render button icon if (!this.toggled) { if (this.index >= 6) // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 6); - CLIENT.getItemRenderer().renderInGui(this.icon,this.getX() + 5, this.getY() + 6); + CLIENT.getItemRenderer().renderInGui(matrices, this.icon,this.getX() + 5, this.getY() + 6); else // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 9); - CLIENT.getItemRenderer().renderInGui(this.icon,this.getX() + 5, this.getY() + 7); + CLIENT.getItemRenderer().renderInGui(matrices, this.icon,this.getX() + 5, this.getY() + 7); } else { if (this.index >= 6) // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 9); - CLIENT.getItemRenderer().renderInGui(this.icon,this.getX() + 5, this.getY() + 9); + CLIENT.getItemRenderer().renderInGui(matrices, this.icon,this.getX() + 5, this.getY() + 9); else // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 6); - CLIENT.getItemRenderer().renderInGui(this.icon,this.getX() + 5, this.getY() + 6); + CLIENT.getItemRenderer().renderInGui(matrices, this.icon,this.getX() + 5, this.getY() + 6); } RenderSystem.enableDepthTest(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/RenderUtils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/RenderUtils.java index 0f2f3aef..73ad468f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/RenderUtils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/RenderUtils.java @@ -75,7 +75,7 @@ public class RenderUtils { return Vec3d.ZERO; } - double tickDelta = (double) MinecraftClient.getInstance().getTickDelta(); + double tickDelta = MinecraftClient.getInstance().getTickDelta(); return new Vec3d( e.getX() - MathHelper.lerp(tickDelta, e.lastRenderX, e.getX()), e.getY() - MathHelper.lerp(tickDelta, e.lastRenderY, e.getY()), @@ -89,11 +89,9 @@ public class RenderUtils { public static void setup() { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); - RenderSystem.disableTexture(); } public static void cleanup() { RenderSystem.disableBlend(); - RenderSystem.enableTexture(); } }
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/RenderUtilsLiving.java b/src/main/java/me/xmrvizzy/skyblocker/utils/RenderUtilsLiving.java index 651ef2bd..79ec18e9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/RenderUtilsLiving.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/RenderUtilsLiving.java @@ -19,26 +19,20 @@ package me.xmrvizzy.skyblocker.utils; */ -import java.lang.reflect.Field; - -import org.apache.commons.lang3.reflect.FieldUtils; - import com.mojang.blaze3d.systems.RenderSystem; - import net.minecraft.client.MinecraftClient; -import net.minecraft.client.render.Camera; -import net.minecraft.client.render.DiffuseLighting; -import net.minecraft.client.render.OverlayTexture; -import net.minecraft.client.render.Tessellator; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.render.*; +import net.minecraft.client.render.model.json.ModelTransformationMode; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -//import net.minecraft.util.math.Vec3f; import net.minecraft.util.math.RotationAxis; +import org.apache.commons.lang3.reflect.FieldUtils; import org.joml.Vector3f; +import java.lang.reflect.Field; + public class RenderUtilsLiving { private static final MinecraftClient mc = MinecraftClient.getInstance(); @@ -71,17 +65,17 @@ public class RenderUtilsLiving { if (fill) { int opacity = (int) (MinecraftClient.getInstance().options.getTextBackgroundOpacity(0.25F) * 255.0F) << 24; - mc.textRenderer.draw(text, -halfWidth, 0f, 553648127, false, matrices.peek().getPositionMatrix(), immediate, true, opacity, 0xf000f0); + mc.textRenderer.draw(text, -halfWidth, 0f, 553648127, false, matrices.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.NORMAL, opacity, 0xf000f0); immediate.draw(); } else { matrices.push(); matrices.translate(1, 1, 0); - mc.textRenderer.draw(text.copyContentOnly(), -halfWidth, 0f, 0x202020, false, matrices.peek().getPositionMatrix(), immediate, true, 0, 0xf000f0); + mc.textRenderer.draw(text.copyContentOnly(), -halfWidth, 0f, 0x202020, false, matrices.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.NORMAL, 0, 0xf000f0); immediate.draw(); matrices.pop(); } - mc.textRenderer.draw(text, -halfWidth, 0f, -1, false, matrices.peek().getPositionMatrix(), immediate, true, 0, 0xf000f0); + mc.textRenderer.draw(text, -halfWidth, 0f, -1, false, matrices.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.NORMAL, 0, 0xf000f0); immediate.draw(); RenderSystem.disableBlend(); @@ -118,8 +112,8 @@ public class RenderUtilsLiving { mc.getBufferBuilders().getEntityVertexConsumers().draw(); - mc.getItemRenderer().renderItem(item, ModelTransformation.Mode.GUI, 0xF000F0, - OverlayTexture.DEFAULT_UV, matrices, mc.getBufferBuilders().getEntityVertexConsumers(), 0); + mc.getItemRenderer().renderItem(item, ModelTransformationMode.GUI, 0xF000F0, + OverlayTexture.DEFAULT_UV, matrices, mc.getBufferBuilders().getEntityVertexConsumers(), mc.world, 0); mc.getBufferBuilders().getEntityVertexConsumers().draw(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java index ae490649..7a0ad754 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java @@ -3,7 +3,7 @@ package me.xmrvizzy.skyblocker.utils; import com.mojang.blaze3d.systems.RenderSystem; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.render.GameRenderer; import net.minecraft.client.toast.Toast; import net.minecraft.client.toast.ToastManager; @@ -26,7 +26,7 @@ public class ToastBuilder implements Toast { RenderSystem.setShaderTexture(0, TEXTURE); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - manager.drawTexture(matrices, 0, 0, 0, 0, this.getWidth(), this.getHeight()); + DrawableHelper.drawTexture(matrices, 0, 0, 0, 0, this.getWidth(), this.getHeight()); manager.getClient().textRenderer.draw(matrices, title, 7.0f, 7.0f, -11534256); manager.getClient().textRenderer.draw(matrices, description, 7.0f, 18.0f, -16777216); return startTime >= 3000L ? Toast.Visibility.HIDE : Toast.Visibility.SHOW; diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java index 3a8f85f2..9e4b609f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java @@ -16,8 +16,8 @@ import java.util.regex.Pattern; public class UpdateChecker { public static boolean shouldUpdate = false; - public static Pattern pattern = Pattern.compile("v(\\d+)\\.(\\d+)\\.(\\d+)"); - public static Pattern localPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); + public static final Pattern pattern = Pattern.compile("v(\\d+)\\.(\\d+)\\.(\\d+)"); + public static final Pattern localPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); public static Matcher matcher; public static VersionNumber localVersion = null; public static VersionNumber latestVersion = null; diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/color/LineColor.java b/src/main/java/me/xmrvizzy/skyblocker/utils/color/LineColor.java index b22a6602..42cf5926 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/color/LineColor.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/color/LineColor.java @@ -4,7 +4,7 @@ import com.mojang.datafixers.util.Function4; public class LineColor extends RenderColor { - private Function4<Float, Float, Float, Integer, int[]> getColorFunc; + private final Function4<Float, Float, Float, Integer, int[]> getColorFunc; public static LineColor single(float red, float green, float blue, float alpha) { return LineColor.single((int) (red * 255f), (int) (green * 255f), (int) (blue * 255f), (int) (alpha * 255f)); diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/color/QuadColor.java b/src/main/java/me/xmrvizzy/skyblocker/utils/color/QuadColor.java index 29a28cb5..cb1ce66e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/color/QuadColor.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/color/QuadColor.java @@ -42,17 +42,11 @@ public class QuadColor extends RenderColor { } public static QuadColor custom(int red1, int green1, int blue1, int alpha1, int red2, int green2, int blue2, int alpha2, int red3, int green3, int blue3, int alpha3, int red4, int green4, int blue4, int alpha4) { - return new QuadColor(curVertex -> { - switch (curVertex) { - case 0: - return new int[]{red1, green1, blue1, alpha1}; - case 1: - return new int[]{red2, green2, blue2, alpha2}; - case 2: - return new int[]{red3, green3, blue3, alpha3}; - default: - return new int[]{red4, green4, blue4, alpha4}; - } + return new QuadColor(curVertex -> switch (curVertex) { + case 0 -> new int[]{red1, green1, blue1, alpha1}; + case 1 -> new int[]{red2, green2, blue2, alpha2}; + case 2 -> new int[]{red3, green3, blue3, alpha3}; + default -> new int[]{red4, green4, blue4, alpha4}; }); } @@ -78,9 +72,7 @@ public class QuadColor extends RenderColor { for (int i = 0; i < 4; i++) { int[] curColor = getColor(i); - for (int j = 0; j < 4; j++) { - outColor[i * 4 + j] = curColor[j]; - } + System.arraycopy(curColor, 0, outColor, i * 4, 4); } return outColor; diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 95426c72..dd94270d 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -26,10 +26,10 @@ "skyblocker.mixins.json" ], "depends": { - "fabricloader": ">=0.14.6", - "fabric": "*", - "cloth-config2": "*", - "minecraft": ["1.19.3"] + "fabricloader": ">=0.14.17", + "fabric-api": ">=0.76.0+1.19.4", + "cloth-config2": "*", + "minecraft": "~1.19.4" }, "custom": { "modmenu": { diff --git a/src/test/java/me/xmrvizzy/skyblocker/chat/filters/ChatFilterTest.java b/src/test/java/me/xmrvizzy/skyblocker/chat/filters/ChatFilterTest.java index 6b356e5c..867386b3 100644 --- a/src/test/java/me/xmrvizzy/skyblocker/chat/filters/ChatFilterTest.java +++ b/src/test/java/me/xmrvizzy/skyblocker/chat/filters/ChatFilterTest.java @@ -3,9 +3,6 @@ package me.xmrvizzy.skyblocker.chat.filters; import me.xmrvizzy.skyblocker.chat.ChatPatternListener; import me.xmrvizzy.skyblocker.chat.ChatPatternListenerTest; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.assertFalse; - public class ChatFilterTest<T extends ChatPatternListener> extends ChatPatternListenerTest<T> { public ChatFilterTest(T listener) { super(listener); |