diff --git a/build.gradle.kts b/build.gradle.kts index 3f31158e6a..d7846e8b41 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -74,7 +74,7 @@ dependencies { modInclude(fabricApi.module("fabric-resource-loader-v1", fapiVersion)) // Compat fixes - compileOnly(fabricApi.module("fabric-renderer-indigo", fapiVersion)) +// compileOnly(fabricApi.module("fabric-renderer-indigo", fapiVersion)) TODO: re-enable once available compileOnly(libs.sodium) { isTransitive = false } compileOnly(libs.lithium) { isTransitive = false } compileOnly(libs.iris) { isTransitive = false } @@ -140,7 +140,7 @@ loom { } fun toMinecraftCompat(version: String): String { - val match = Regex("""^(\d{2})\.([1-9]\d*)(?:\.([1-9]\d*))?$""") + val match = Regex("""^(\d{2})\.([1-9]\d*)(?:\.([1-9]\d*))?.*$""") .matchEntire(version) ?: error("Invalid Minecraft version format: $version. Expected YY.D or YY.D.H") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2925bc8c12..399178c542 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] # Fabric (https://fabricmc.net/develop) jdk = "25" -minecraft = "26.1.2" +minecraft = "26.2-pre-1" fabric-loader = "0.19.2" -fabric-api = "0.146.1+26.1.2" +fabric-api = "0.149.2+26.2" # Plugins # Loom (https://github.com/FabricMC/fabric-loom) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d997cfc60f..b1b8ef56b4 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c61a118f7d..b52fb7e713 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,9 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip networkTimeout=10000 +retries=0 +retryBackOffMs=500 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 739907dfd1..b9bb139f79 100755 --- a/gradlew +++ b/gradlew @@ -57,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. diff --git a/gradlew.bat b/gradlew.bat index e509b2dd8f..aa5f10b069 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -23,8 +23,8 @@ @rem @rem ########################################################################## -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. @@ -51,7 +51,7 @@ echo. 1>&2 echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo location of your Java installation. 1>&2 -goto fail +"%COMSPEC%" /c exit 1 :findJavaFromJavaHome set JAVA_HOME=%JAVA_HOME:"=% @@ -65,7 +65,7 @@ echo. 1>&2 echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo location of your Java installation. 1>&2 -goto fail +"%COMSPEC%" /c exit 1 :execute @rem Setup the command line @@ -73,21 +73,10 @@ goto fail @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java index 3a398c48ae..23576c0338 100644 --- a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java +++ b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java @@ -151,8 +151,8 @@ public void onInitializeClient() { @EventHandler private void onTick(TickEvent.Post event) { - if (mc.screen == null && mc.getOverlay() == null && KeyBinds.OPEN_COMMANDS.consumeClick()) { - mc.setScreen(new ChatScreen(Config.get().prefix.get(), true)); + if (mc.gui.screen() == null && mc.gui.overlay() == null && KeyBinds.OPEN_COMMANDS.consumeClick()) { + mc.gui.setScreen(new ChatScreen(Config.get().prefix.get(), true)); } } @@ -171,7 +171,7 @@ private void onMouseClick(MouseClickEvent event) { } private void toggleGui() { - if (Utils.canCloseGui()) mc.screen.onClose(); + if (Utils.canCloseGui()) mc.gui.screen().onClose(); else if (Utils.canOpenGui()) Tabs.get().getFirst().openScreen(GuiThemes.get()); } @@ -182,17 +182,17 @@ private void toggleGui() { @EventHandler(priority = EventPriority.LOWEST) private void onOpenScreen(OpenScreenEvent event) { if (event.screen instanceof WidgetScreen) { - if (!wasWidgetScreen) wasHudHiddenRoot = mc.options.hideGui; + if (!wasWidgetScreen) wasHudHiddenRoot = mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden; if (GuiThemes.get().hideHUD() || wasHudHiddenRoot) { // Always show the MC HUD in the HUD editor screen since people like // to align some items with the hotbar or chat - mc.options.hideGui = !(event.screen instanceof HudEditorScreen) + mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden = !(event.screen instanceof HudEditorScreen) && !(event.screen instanceof AddHudElementScreen) && !(event.screen instanceof HudElementScreen); } } else { - if (wasWidgetScreen) mc.options.hideGui = wasHudHiddenRoot; - wasHudHiddenRoot = mc.options.hideGui; + if (wasWidgetScreen) mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden = wasHudHiddenRoot; + wasHudHiddenRoot = mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden; } wasWidgetScreen = event.screen instanceof WidgetScreen; diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/EnchantCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/EnchantCommand.java index c119fe3316..e1d9ef81f5 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/EnchantCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/EnchantCommand.java @@ -108,8 +108,8 @@ private void all(boolean onlyPossible, ToIntFunction level) throws } private void syncItem() { - mc.setScreen(new InventoryScreen(mc.player)); - mc.setScreen(null); + mc.gui.setScreen(new InventoryScreen(mc.player)); + mc.gui.setScreen(null); } private ItemStack tryGetItemStack() throws CommandSyntaxException { diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java index a2a25e1c3c..6cbcbeeea8 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java @@ -24,20 +24,20 @@ public class InputCommand extends Command { private static final List activeHandlers = new ArrayList<>(); private static final List> holdKeys = List.of( - new Pair<>(mc.options.keyUp, "forwards"), - new Pair<>(mc.options.keyDown, "backwards"), - new Pair<>(mc.options.keyLeft, "left"), - new Pair<>(mc.options.keyRight, "right"), - new Pair<>(mc.options.keyJump, "jump"), - new Pair<>(mc.options.keyShift, "sneak"), - new Pair<>(mc.options.keySprint, "sprint"), - new Pair<>(mc.options.keyUse, "use"), - new Pair<>(mc.options.keyAttack, "attack") + Pair.of(mc.options.keyUp, "forwards"), + Pair.of(mc.options.keyDown, "backwards"), + Pair.of(mc.options.keyLeft, "left"), + Pair.of(mc.options.keyRight, "right"), + Pair.of(mc.options.keyJump, "jump"), + Pair.of(mc.options.keyShift, "sneak"), + Pair.of(mc.options.keySprint, "sprint"), + Pair.of(mc.options.keyUse, "use"), + Pair.of(mc.options.keyAttack, "attack") ); private static final List> pressKeys = List.of( - new Pair<>(mc.options.keySwapOffhand, "swap"), - new Pair<>(mc.options.keyDrop, "drop") + Pair.of(mc.options.keySwapOffhand, "swap"), + Pair.of(mc.options.keyDrop, "drop") ); public InputCommand() { diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/LocateCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/LocateCommand.java index fa9617ba62..ad99676829 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/LocateCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/LocateCommand.java @@ -23,7 +23,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.protocol.game.ClientboundAddEntityPacket; -import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -313,7 +313,7 @@ private void cancel() { @EventHandler private void onReadPacket(PacketEvent.Receive event) { - if (event.packet instanceof ClientboundAddEntityPacket packet && packet.getType() == EntityType.EYE_OF_ENDER) { + if (event.packet instanceof ClientboundAddEntityPacket packet && packet.getType() == EntityTypes.EYE_OF_ENDER) { firstPosition(packet.getX(), packet.getY(), packet.getZ()); } } diff --git a/src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java b/src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java index 7afa2162be..6980637e06 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java @@ -221,7 +221,7 @@ private void providedStringW(WTable table, ProvidedStringSetting setting) { private void genericW(WTable table, GenericSetting setting) { WButton edit = table.add(theme.button(GuiRenderer.EDIT)).widget(); - edit.action = () -> mc.setScreen(setting.createScreen(theme)); + edit.action = () -> mc.gui.setScreen(setting.createScreen(theme)); reset(table, setting, null); } @@ -232,7 +232,7 @@ private void colorW(WTable table, ColorSetting setting) { WQuad quad = list.add(theme.quad(setting.get())).widget(); WButton edit = list.add(theme.button(GuiRenderer.EDIT)).widget(); - edit.action = () -> mc.setScreen(new ColorSettingScreen(theme, setting)); + edit.action = () -> mc.gui.setScreen(new ColorSettingScreen(theme, setting)); reset(table, setting, () -> quad.color = setting.get()); } @@ -259,7 +259,7 @@ private void blockW(WTable table, BlockSetting setting) { BlockSettingScreen screen = new BlockSettingScreen(theme, setting); screen.onClosed(() -> item.set(DisplayItemUtils.toStack(setting.get().asItem()))); - mc.setScreen(screen); + mc.gui.setScreen(screen); }; reset(table, setting, () -> item.set(DisplayItemUtils.toStack(setting.get().asItem()))); @@ -276,7 +276,7 @@ private void blockPosW(WTable table, BlockPosSetting setting) { } private void blockListW(WTable table, BlockListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new BlockListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new BlockListSettingScreen(theme, setting))); } private void itemW(WTable table, ItemSetting setting) { @@ -289,59 +289,59 @@ private void itemW(WTable table, ItemSetting setting) { ItemSettingScreen screen = new ItemSettingScreen(theme, setting); screen.onClosed(() -> item.set(DisplayItemUtils.toStack(setting.get()))); - mc.setScreen(screen); + mc.gui.setScreen(screen); }; reset(table, setting, () -> item.set(DisplayItemUtils.toStack(setting.get()))); } private void itemListW(WTable table, ItemListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new ItemListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new ItemListSettingScreen(theme, setting))); } private void entityTypeListW(WTable table, EntityTypeListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new EntityTypeListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new EntityTypeListSettingScreen(theme, setting))); } private void enchantmentListW(WTable table, EnchantmentListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new EnchantmentListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new EnchantmentListSettingScreen(theme, setting))); } private void moduleListW(WTable table, ModuleListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new ModuleListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new ModuleListSettingScreen(theme, setting))); } private void packetListW(WTable table, PacketListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new PacketBoolSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new PacketBoolSettingScreen(theme, setting))); } private void particleTypeListW(WTable table, ParticleTypeListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new ParticleTypeListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new ParticleTypeListSettingScreen(theme, setting))); } private void soundEventListW(WTable table, SoundEventListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new SoundEventListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new SoundEventListSettingScreen(theme, setting))); } private void statusEffectAmplifierMapW(WTable table, StatusEffectAmplifierMapSetting setting) { - selectW(table, setting, () -> mc.setScreen(new StatusEffectAmplifierMapSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new StatusEffectAmplifierMapSettingScreen(theme, setting))); } private void statusEffectListW(WTable table, StatusEffectListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new StatusEffectListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new StatusEffectListSettingScreen(theme, setting))); } private void storageBlockListW(WTable table, StorageBlockListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new StorageBlockListSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new StorageBlockListSettingScreen(theme, setting))); } private void screenHandlerListW(WTable table, ScreenHandlerListSetting setting) { - selectW(table, setting, () -> mc.setScreen(new ScreenHandlerSettingScreen(theme, setting))); + selectW(table, setting, () -> mc.gui.setScreen(new ScreenHandlerSettingScreen(theme, setting))); } private void blockDataW(WTable table, BlockDataSetting setting) { WButton button = table.add(theme.button(GuiRenderer.EDIT)).expandCellX().widget(); - button.action = () -> mc.setScreen(new BlockDataSettingScreen<>(theme, setting)); + button.action = () -> mc.gui.setScreen(new BlockDataSettingScreen<>(theme, setting)); reset(table, setting, null); } @@ -357,7 +357,7 @@ private void potionW(WTable table, PotionSetting setting) { WidgetScreen screen = new PotionSettingScreen(theme, setting); screen.onClosed(() -> item.set(potion)); - mc.setScreen(screen); + mc.gui.setScreen(screen); }; reset(list, setting, () -> item.set(potion)); @@ -372,7 +372,7 @@ private void fontW(WTable table, FontFaceSetting setting) { WidgetScreen screen = new FontFaceSettingScreen(theme, setting); screen.onClosed(() -> label.set(setting.get().info.family())); - mc.setScreen(screen); + mc.gui.setScreen(screen); }; reset(list, setting, () -> label.set(Fonts.DEFAULT_FONT.info.family())); @@ -419,7 +419,7 @@ private void colorListWFill(WTable t, ColorListSetting setting) { setting.onChanged(); }, null, null); set.set(setting.get().get(_i)); - mc.setScreen(new ColorSettingScreen(theme, set)); + mc.gui.setScreen(new ColorSettingScreen(theme, set)); }; WMinus remove = t.add(theme.minus()).expandCellX().right().widget(); diff --git a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java index 3dd5b09357..bcaa1e883e 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java @@ -67,7 +67,7 @@ public abstract class WidgetScreen extends Screen { public WidgetScreen(GuiTheme theme, String title) { super(Component.literal(title)); - this.parent = mc.screen; + this.parent = mc.gui.screen(); this.root = new WFullScreenRoot(); this.theme = theme; @@ -339,7 +339,7 @@ public void removed() { if (onClose) { taskAfterRender = () -> { locked = true; - mc.setScreen(parent); + mc.gui.setScreen(parent); }; } } diff --git a/src/main/java/meteordevelopment/meteorclient/gui/renderer/GuiDebugRenderer.java b/src/main/java/meteordevelopment/meteorclient/gui/renderer/GuiDebugRenderer.java index a778e7bee3..c1c26894c7 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/renderer/GuiDebugRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/renderer/GuiDebugRenderer.java @@ -30,7 +30,7 @@ public void render(WWidget widget) { mesh.end(); MeshRenderer.begin() - .attachments(Minecraft.getInstance().getMainRenderTarget()) + .attachments(Minecraft.getInstance().gameRenderer.mainRenderTarget()) .pipeline(MeteorRenderPipelines.WORLD_COLORED_LINES) .mesh(mesh) .end(); diff --git a/src/main/java/meteordevelopment/meteorclient/gui/renderer/packer/TexturePacker.java b/src/main/java/meteordevelopment/meteorclient/gui/renderer/packer/TexturePacker.java index f55047617f..7e3d4f196a 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/renderer/packer/TexturePacker.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/renderer/packer/TexturePacker.java @@ -5,9 +5,9 @@ package meteordevelopment.meteorclient.gui.renderer.packer; +import com.mojang.blaze3d.GpuFormat; import com.mojang.blaze3d.platform.TextureUtil; import com.mojang.blaze3d.textures.FilterMode; -import com.mojang.blaze3d.textures.TextureFormat; import meteordevelopment.meteorclient.renderer.Texture; import net.minecraft.resources.Identifier; import org.lwjgl.BufferUtils; @@ -142,7 +142,7 @@ public Texture pack() { ((Buffer) buffer).rewind(); - Texture texture = new Texture(width, height, TextureFormat.RGBA8, FilterMode.LINEAR, FilterMode.LINEAR); + Texture texture = new Texture(width, height, GpuFormat.RGBA8_UNORM, FilterMode.LINEAR, FilterMode.LINEAR); texture.upload(buffer); return texture; diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java index 00bea0e10b..b02f42e619 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java @@ -6,6 +6,7 @@ package meteordevelopment.meteorclient.gui.screens; import com.mojang.blaze3d.platform.MacosUtil; +import com.mojang.datafixers.util.Pair; import meteordevelopment.meteorclient.gui.GuiTheme; import meteordevelopment.meteorclient.gui.tabs.TabScreen; import meteordevelopment.meteorclient.gui.tabs.Tabs; @@ -22,7 +23,6 @@ import meteordevelopment.meteorclient.utils.misc.NbtUtils; import meteordevelopment.meteorclient.utils.render.DisplayItemUtils; import net.minecraft.client.input.KeyEvent; -import net.minecraft.util.Tuple; import net.minecraft.world.item.Items; import java.util.ArrayList; @@ -87,16 +87,16 @@ protected WWindow createCategory(WContainer c, Category category, List m protected void createSearchW(WContainer w, String text) { if (!text.isEmpty()) { // Titles - List> modules = Modules.get().searchTitles(text); + List> modules = Modules.get().searchTitles(text); if (!modules.isEmpty()) { WSection section = w.add(theme.section("Modules")).expandX().widget(); section.spacing = 0; int count = 0; - for (Tuple p : modules) { + for (Pair p : modules) { if (count >= Config.get().moduleSearchCount.get() || count >= modules.size()) break; - section.add(theme.module(p.getA(), p.getB())).expandX(); + section.add(theme.module(p.getFirst(), p.getSecond())).expandX(); count++; } } diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/ProxiesScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/ProxiesScreen.java index 1812d47292..0c8087a4f8 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/ProxiesScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/ProxiesScreen.java @@ -57,7 +57,7 @@ public void initWidgets() { // New WButton newBtn = l.add(theme.button("New")).expandX().widget(); - newBtn.action = () -> mc.setScreen(new EditProxyScreen(theme, null, this::reload)); + newBtn.action = () -> mc.gui.setScreen(new EditProxyScreen(theme, null, this::reload)); // Import PointerBuffer filters = BufferUtils.createPointerBuffer(1); @@ -72,7 +72,7 @@ public void initWidgets() { String selectedFile = TinyFileDialogs.tinyfd_openFileDialog("Import Proxies", null, filters, null, false); if (selectedFile != null) { File file = new File(selectedFile); - mc.setScreen(new ProxiesImportScreen(theme, file)); + mc.gui.setScreen(new ProxiesImportScreen(theme, file)); } }; @@ -87,7 +87,7 @@ public void initWidgets() { }; WButton configButton = l.add(theme.button(GuiRenderer.EDIT)).widget(); - configButton.action = () -> mc.setScreen(new ConfigScreen(theme)); + configButton.action = () -> mc.gui.setScreen(new ConfigScreen(theme)); configButton.tooltip = "Proxies Config"; } @@ -130,7 +130,7 @@ private void initTable(WTable table) { refresh.tooltip = "Refresh"; WButton edit = table.add(theme.button(GuiRenderer.EDIT)).widget(); - edit.action = () -> mc.setScreen(new EditProxyScreen(theme, proxy, this::reload)); + edit.action = () -> mc.gui.setScreen(new EditProxyScreen(theme, proxy, this::reload)); WMinus remove = table.add(theme.minus()).widget(); remove.action = () -> { diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/accounts/AccountsScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/accounts/AccountsScreen.java index 6468df6501..7c162398e9 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/accounts/AccountsScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/accounts/AccountsScreen.java @@ -36,10 +36,10 @@ public void initWidgets() { // Add account WHorizontalList l = add(theme.horizontalList()).expandX().widget(); - addButton(l, "Cracked", () -> mc.setScreen(new AddCrackedAccountScreen(theme, this))); - addButton(l, "Altening", () -> mc.setScreen(new AddAlteningAccountScreen(theme, this))); - addButton(l, "Session", () -> mc.setScreen(new AddSessionAccountScreen(theme, this))); - addButton(l, "Microsoft", () -> mc.setScreen(new AddMicrosoftAccountScreen(theme, this))); + addButton(l, "Cracked", () -> mc.gui.setScreen(new AddCrackedAccountScreen(theme, this))); + addButton(l, "Altening", () -> mc.gui.setScreen(new AddAlteningAccountScreen(theme, this))); + addButton(l, "Session", () -> mc.gui.setScreen(new AddSessionAccountScreen(theme, this))); + addButton(l, "Microsoft", () -> mc.gui.setScreen(new AddMicrosoftAccountScreen(theme, this))); } private void addButton(WContainer c, String text, Runnable action) { diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/BlockDataSettingScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/BlockDataSettingScreen.java index 917fb4b1d4..712bd50a54 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/BlockDataSettingScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/BlockDataSettingScreen.java @@ -52,7 +52,7 @@ protected WWidget getDataWidget(Block block, @Nullable T blockData) { T data = blockData; if (data == null) data = setting.defaultData.get().copy(); - mc.setScreen(data.createScreen(theme, block, setting)); + mc.gui.setScreen(data.createScreen(theme, block, setting)); invalidate = true; }; return edit; diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/EntityTypeListSettingScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/EntityTypeListSettingScreen.java index e399138ad0..cb3b2c0c11 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/EntityTypeListSettingScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/EntityTypeListSettingScreen.java @@ -6,6 +6,7 @@ package meteordevelopment.meteorclient.gui.screens.settings; import com.mojang.blaze3d.textures.FilterMode; +import com.mojang.datafixers.util.Pair; import meteordevelopment.meteorclient.gui.GuiTheme; import meteordevelopment.meteorclient.gui.WindowScreen; import meteordevelopment.meteorclient.gui.utils.Cell; @@ -22,7 +23,6 @@ import meteordevelopment.meteorclient.utils.render.DisplayItemUtils; import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.util.Tuple; import net.minecraft.world.entity.EntityType; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -172,15 +172,15 @@ public void initWidgets() { if (filterText.isEmpty()) { BuiltInRegistries.ENTITY_TYPE.forEach(entityTypeForEach); } else { - List, Integer>> entities = new ArrayList<>(); + List, Integer>> entities = new ArrayList<>(); BuiltInRegistries.ENTITY_TYPE.forEach(entity -> { int words = Utils.searchInWords(Names.get(entity), filterText); int diff = Utils.searchLevenshteinDefault(Names.get(entity), filterText, false); - if (words > 0 || diff < Names.get(entity).length() / 2) entities.add(new Tuple<>(entity, -diff)); + if (words > 0 || diff < Names.get(entity).length() / 2) entities.add(Pair.of(entity, -diff)); }); - entities.sort(Comparator.comparingInt(value -> -value.getB())); - for (Tuple, Integer> pair : entities) entityTypeForEach.accept(pair.getA()); + entities.sort(Comparator.comparingInt(value -> -value.getSecond())); + for (Pair, Integer> pair : entities) entityTypeForEach.accept(pair.getFirst()); } if (animalsT.cells.isEmpty()) list.cells.remove(animalsCell); diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/StorageBlockListSettingScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/StorageBlockListSettingScreen.java index 1c51b92f0a..3b9b2c5ddd 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/StorageBlockListSettingScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/StorageBlockListSettingScreen.java @@ -16,6 +16,7 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.BlockEntityTypes; import java.util.List; import java.util.Map; @@ -26,22 +27,22 @@ public class StorageBlockListSettingScreen extends CollectionListSettingScreen>> setting) { diff --git a/src/main/java/meteordevelopment/meteorclient/gui/tabs/Tab.java b/src/main/java/meteordevelopment/meteorclient/gui/tabs/Tab.java index ba30716052..8536770d17 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/tabs/Tab.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/tabs/Tab.java @@ -20,7 +20,7 @@ public Tab(String name) { public void openScreen(GuiTheme theme) { TabScreen screen = this.createScreen(theme); screen.addDirect(theme.topBar()).top().centerX(); - mc.setScreen(screen); + mc.gui.setScreen(screen); } public abstract TabScreen createScreen(GuiTheme theme); diff --git a/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/GuiTab.java b/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/GuiTab.java index cfcefcb3a0..300c26e9b0 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/GuiTab.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/GuiTab.java @@ -50,7 +50,7 @@ public void initWidgets() { themeW.action = () -> { GuiThemes.select(themeW.get()); - mc.setScreen(null); + mc.gui.setScreen(null); tab.openScreen(GuiThemes.get()); }; @@ -60,7 +60,7 @@ public void initWidgets() { WButton reset = opts.add(theme.button("Reset Colors")).right().widget(); reset.action = () -> { theme.settings.reset(); - mc.setScreen(null); + mc.gui.setScreen(null); tab.openScreen(GuiThemes.get()); }; diff --git a/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/HudTab.java b/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/HudTab.java index 6ff60794e9..0053828861 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/HudTab.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/HudTab.java @@ -55,7 +55,7 @@ public void initWidgets() { add(theme.horizontalSeparator()).expandX(); WButton openEditor = add(theme.button("Edit")).expandX().widget(); - openEditor.action = () -> mc.setScreen(new HudEditorScreen(theme)); + openEditor.action = () -> mc.gui.setScreen(new HudEditorScreen(theme)); WHorizontalList buttons = add(theme.horizontalList()).expandX().widget(); buttons.add(theme.confirmedButton("Clear", "Confirm")).expandX().widget().action = hud::clear; diff --git a/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/MacrosTab.java b/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/MacrosTab.java index 670fc385c8..d6597808f3 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/MacrosTab.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/MacrosTab.java @@ -50,7 +50,7 @@ public void initWidgets() { add(theme.horizontalSeparator()).expandX(); WButton create = add(theme.button("Create")).expandX().widget(); - create.action = () -> mc.setScreen(new EditMacroScreen(theme, null, this::reload)); + create.action = () -> mc.gui.setScreen(new EditMacroScreen(theme, null, this::reload)); } private void initTable(WTable table) { @@ -61,7 +61,7 @@ private void initTable(WTable table) { table.add(theme.label(macro.name.get() + " (" + macro.keybind.get() + ")")); WButton edit = table.add(theme.button(GuiRenderer.EDIT)).expandCellX().right().widget(); - edit.action = () -> mc.setScreen(new EditMacroScreen(theme, macro, this::reload)); + edit.action = () -> mc.gui.setScreen(new EditMacroScreen(theme, macro, this::reload)); WConfirmedMinus remove = table.add(theme.confirmedMinus()).widget(); remove.action = () -> { diff --git a/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/ProfilesTab.java b/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/ProfilesTab.java index e4651b5637..c2bf1d9615 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/ProfilesTab.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/ProfilesTab.java @@ -87,7 +87,7 @@ public void initWidgets() { // Create WButton create = l.add(theme.button("Create")).expandX().widget(); create.tooltip = "Create new profile"; - create.action = () -> mc.setScreen(new EditProfileScreen(theme, null, this::reload)); + create.action = () -> mc.gui.setScreen(new EditProfileScreen(theme, null, this::reload)); // Import WButton importBtn = l.add(theme.button("Import")).expandX().widget(); @@ -125,10 +125,10 @@ private void initTable(WTable table) { load.action = profile::load; WButton export = table.add(theme.button("Export")).widget(); - export.action = () -> mc.setScreen(new ExportProfileScreen(theme, profile)); + export.action = () -> mc.gui.setScreen(new ExportProfileScreen(theme, profile)); WButton edit = table.add(theme.button(GuiRenderer.EDIT)).widget(); - edit.action = () -> mc.setScreen(new EditProfileScreen(theme, profile, this::reload)); + edit.action = () -> mc.gui.setScreen(new EditProfileScreen(theme, profile, this::reload)); WConfirmedMinus remove = table.add(theme.confirmedMinus()).widget(); remove.action = () -> { diff --git a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java index b71695891c..2d2123db98 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java @@ -55,7 +55,7 @@ public class MeteorGuiTheme extends GuiTheme { .sliderRange(0.75, 4) .onSliderRelease() .onChanged(_ -> { - if (mc.screen instanceof WidgetScreen widgetScreen) widgetScreen.invalidate(); + if (mc.gui.screen() instanceof WidgetScreen widgetScreen) widgetScreen.invalidate(); }) .build() ); @@ -79,7 +79,9 @@ public class MeteorGuiTheme extends GuiTheme { .description("Hide HUD when in GUI.") .defaultValue(false) .onChanged(v -> { - if (mc.screen instanceof WidgetScreen) mc.options.hideGui = v; + if (mc.gui.screen() instanceof WidgetScreen) { + mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden = v; + } }) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java index 1bf15b22e7..52381815b6 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java @@ -59,7 +59,7 @@ protected void onCalculateSize() { @Override protected void onPressed(int button) { if (button == GLFW_MOUSE_BUTTON_LEFT) module.toggle(); - else if (button == GLFW_MOUSE_BUTTON_RIGHT) mc.setScreen(theme.moduleScreen(module)); + else if (button == GLFW_MOUSE_BUTTON_RIGHT) mc.gui.setScreen(theme.moduleScreen(module)); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/gui/widgets/WAccount.java b/src/main/java/meteordevelopment/meteorclient/gui/widgets/WAccount.java index 00cfab4a30..b34ee625b0 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/widgets/WAccount.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/widgets/WAccount.java @@ -48,7 +48,7 @@ public void init() { // Info if (account instanceof TokenAccount) { WButton info = add(theme.button("Info")).widget(); - info.action = () -> mc.setScreen(new AccountInfoScreen(theme, account)); + info.action = () -> mc.gui.setScreen(new AccountInfoScreen(theme, account)); } // Login diff --git a/src/main/java/meteordevelopment/meteorclient/gui/widgets/WTopBar.java b/src/main/java/meteordevelopment/meteorclient/gui/widgets/WTopBar.java index d4d96ba456..13e908a763 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/widgets/WTopBar.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/widgets/WTopBar.java @@ -50,7 +50,7 @@ protected void onCalculateSize() { @Override protected void onPressed(int button) { - Screen screen = mc.screen; + Screen screen = mc.gui.screen(); if (!(screen instanceof TabScreen tabScreen) || tabScreen.tab != tab) { double mouseX = mc.mouseHandler.xpos(); @@ -64,7 +64,7 @@ protected void onPressed(int button) { @Override protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) { double pad = pad(); - Color color = getButtonColor(pressed || (mc.screen instanceof TabScreen tabScreen && tabScreen.tab == tab), mouseOver); + Color color = getButtonColor(pressed || (mc.gui.screen() instanceof TabScreen tabScreen && tabScreen.tab == tab), mouseOver); renderer.quad(x, y, width, height, color); renderer.text(tab.name, x + pad, y + pad, getNameColor(), false); diff --git a/src/main/java/meteordevelopment/meteorclient/gui/widgets/input/WBlockPosEdit.java b/src/main/java/meteordevelopment/meteorclient/gui/widgets/input/WBlockPosEdit.java index e0ccee9d0f..6f4b60061a 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/widgets/input/WBlockPosEdit.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/widgets/input/WBlockPosEdit.java @@ -49,8 +49,8 @@ public void init() { clicking = true; MeteorClient.EVENT_BUS.subscribe(this); - previousScreen = mc.screen; - mc.setScreen(null); + previousScreen = mc.gui.screen(); + mc.gui.setScreen(null); }; WButton here = add(theme.button("Set Here")).expandX().widget(); @@ -71,7 +71,7 @@ private void onStartBreakingBlock(StartBreakingBlockEvent event) { clicking = false; event.cancel(); MeteorClient.EVENT_BUS.unsubscribe(this); - mc.setScreen(previousScreen); + mc.gui.setScreen(previousScreen); } } @@ -89,7 +89,7 @@ private void onInteractBlock(InteractBlockEvent event) { clicking = false; event.cancel(); MeteorClient.EVENT_BUS.unsubscribe(this); - mc.setScreen(previousScreen); + mc.gui.setScreen(previousScreen); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ArmorStandRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ArmorStandRendererMixin.java index 78d4f668d5..e38965cd73 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ArmorStandRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ArmorStandRendererMixin.java @@ -9,7 +9,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.ESP; import net.minecraft.client.renderer.entity.ArmorStandRenderer; -import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -24,6 +24,6 @@ public abstract class ArmorStandRendererMixin { private boolean modifyMarkerValue(boolean original) { if (esp == null) esp = Modules.get().get(ESP.class); - return original && !(esp.isActive() && !esp.shouldSkip(EntityType.ARMOR_STAND)); + return original && !(esp.isActive() && !esp.shouldSkip(EntityTypes.ARMOR_STAND)); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconScreenMixin.java index 3254990259..82f6c30164 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconScreenMixin.java @@ -40,7 +40,7 @@ public BeaconScreenMixin(BeaconMenu handler, Inventory inventory, Component titl private void changeButtons(CallbackInfo ci) { if (!Modules.get().get(BetterBeacons.class).isActive()) return; List> effects = BeaconBlockEntity.BEACON_EFFECTS.stream().flatMap(Collection::stream).toList(); - if (Minecraft.getInstance().screen instanceof BeaconScreen beaconScreen) { + if (Minecraft.getInstance().gui.screen() instanceof BeaconScreen beaconScreen) { addBeaconButton(beaconScreen.new BeaconConfirmButton(this.leftPos + 164, this.topPos + 107)); addBeaconButton(beaconScreen.new BeaconCancelButton(this.leftPos + 190, this.topPos + 107)); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BookViewScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BookViewScreenMixin.java index c653c47853..29ed5eeb2b 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BookViewScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BookViewScreenMixin.java @@ -106,7 +106,7 @@ private void onInit(CallbackInfo ci) { addRenderableWidget( new Button.Builder(Component.literal("Edit title & author"), _ -> { - mc.setScreen(new EditBookTitleAndAuthorScreen(GuiThemes.get(), book, hand2)); + mc.gui.setScreen(new EditBookTitleAndAuthorScreen(GuiThemes.get(), book, hand2)); }) .pos(4, 4 + 20 + 2) .size(120, 20) diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ChatComponentMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ChatComponentMixin.java index c5cfa1bf81..f9f5992608 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ChatComponentMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ChatComponentMixin.java @@ -75,8 +75,7 @@ private void onAddMessageAfterNewGuiMessage(GuiMessage message, CallbackInfo ci) @SuppressWarnings("DataFlowIssue") @ModifyExpressionValue(method = "addMessageToDisplayQueue", at = @At(value = "NEW", target = "(Lnet/minecraft/client/multiplayer/chat/GuiMessage;Lnet/minecraft/util/FormattedCharSequence;Z)Lnet/minecraft/client/multiplayer/chat/GuiMessage$Line;")) private GuiMessage.Line onAddMessage_modifyGuiMessageLine(GuiMessage.Line line, @Local(name = "i") int i) { - IChatListener handler = (IChatListener) minecraft.getChatListener(); - if (handler == null) return line; + IChatListener handler = (IChatListener) minecraft.gui.chatListener(); IGuiMessageVisible meteorLine = (IGuiMessageVisible) (Object) line; @@ -88,8 +87,7 @@ private GuiMessage.Line onAddMessage_modifyGuiMessageLine(GuiMessage.Line line, @ModifyExpressionValue(method = "addMessage", at = @At(value = "NEW", target = "(ILnet/minecraft/network/chat/Component;Lnet/minecraft/network/chat/MessageSignature;Lnet/minecraft/client/multiplayer/chat/GuiMessageSource;Lnet/minecraft/client/multiplayer/chat/GuiMessageTag;)Lnet/minecraft/client/multiplayer/chat/GuiMessage;")) private GuiMessage onAddMessage_modifyGuiMessage(GuiMessage line) { - IChatListener handler = (IChatListener) minecraft.getChatListener(); - if (handler == null) return line; + IChatListener handler = (IChatListener) minecraft.gui.chatListener(); ((IGuiMessage) (Object) line).meteor$setSender(handler.meteor$getSender()); return line; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ClientPacketListenerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ClientPacketListenerMixin.java index 5e3fea72fc..1e4f8f9bda 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ClientPacketListenerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ClientPacketListenerMixin.java @@ -179,7 +179,7 @@ private void onSendChatMessage(String message, CallbackInfo ci, @Local(argsOnly ChatUtils.error(e.getMessage()); } - minecraft.gui.getChat().addRecentChat(message); + minecraft.gui.hud.getChat().addRecentChat(message); ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CompassAngleStateMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CompassAngleStateMixin.java index ae6b70823c..2710b94a83 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CompassAngleStateMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CompassAngleStateMixin.java @@ -23,7 +23,7 @@ public abstract class CompassAngleStateMixin { @ModifyExpressionValue(method = "getWrappedVisualRotationY", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/ItemOwner;getVisualRotationYInDegrees()F")) private static float callLivingEntityGetYaw(float original) { - if (Modules.get().isActive(Freecam.class)) return mc.gameRenderer.getMainCamera().yRot(); + if (Modules.get().isActive(Freecam.class)) return mc.gameRenderer.mainCamera().yRot(); return original; } @@ -31,7 +31,7 @@ private static float callLivingEntityGetYaw(float original) { private static double modifyGetAngleTo(double original, ItemOwner owner, BlockPos position) { if (Modules.get().isActive(Freecam.class)) { Vec3 vec3d = Vec3.atCenterOf(position); - Camera camera = mc.gameRenderer.getMainCamera(); + Camera camera = mc.gameRenderer.mainCamera(); return Math.atan2(vec3d.z() - camera.position().z, vec3d.x() - camera.position().x) / (float) (Math.PI * 2); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EntityMixin.java index dbba389eac..fc772cb46b 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EntityMixin.java @@ -175,7 +175,7 @@ private void updateTurn(double xo, double yo, CallbackInfo ci) { freecam.changeLookDirection(xo * 0.15, yo * 0.15); ci.cancel(); } else if (Modules.get().isActive(HighwayBuilder.class)) { - Camera camera = mc.gameRenderer.getMainCamera(); + Camera camera = mc.gameRenderer.mainCamera(); ((ICamera) camera).meteor$setRot(camera.yRot() + xo * 0.15, camera.xRot() + yo * 0.15); ci.cancel(); } else if (freeLook.cameraMode()) { diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java index 55185103c2..a72c3fe018 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java @@ -81,7 +81,7 @@ public abstract class GameRendererMixin { @Final private GameRenderState gameRenderState; - @ModifyArg(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/render/GuiRenderer;(Lnet/minecraft/client/renderer/state/gui/GuiRenderState;Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/feature/FeatureRenderDispatcher;Ljava/util/List;)V")) + @ModifyArg(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/render/GuiRenderer;(Lnet/minecraft/client/renderer/state/gui/GuiRenderState;Lnet/minecraft/client/renderer/feature/FeatureRenderDispatcher;Ljava/util/List;)V")) private List> meteor$addSpecialRenderers(List> list) { List> result = new ArrayList<>(list.size() + 1); result.addAll(list); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/GuiRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/GuiRendererMixin.java index 3a58f4ec40..ab5284d51c 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/GuiRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/GuiRendererMixin.java @@ -58,7 +58,7 @@ public abstract class GuiRendererMixin { if ((GuiRenderer) (Object) this instanceof MeteorMcGuiRenderer) return; var mc = Minecraft.getInstance(); - if (mc.screen == null || mc.screen instanceof WidgetScreen) return; + if (mc.gui.screen() == null || mc.gui.screen() instanceof WidgetScreen) return; meteor$render2D(mc); } @@ -67,9 +67,9 @@ public abstract class GuiRendererMixin { if ((GuiRenderer) (Object) this instanceof MeteorMcGuiRenderer) return; var mc = Minecraft.getInstance(); - RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(mc.getMainRenderTarget().getDepthTexture(), 1.0); + RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(mc.gameRenderer.mainRenderTarget().getDepthTexture(), 1.0); - if (mc.screen == null || mc.screen instanceof WidgetScreen) { + if (mc.gui.screen() == null || mc.gui.screen() instanceof WidgetScreen) { meteor$render2D(mc); } @@ -96,7 +96,7 @@ public abstract class GuiRendererMixin { Profiler.get().pop(); } - if (mc.screen instanceof WidgetScreen widgetScreen) { + if (mc.gui.screen() instanceof WidgetScreen widgetScreen) { var graphics = new GuiGraphicsExtractor(mc, renderState, mouseX, mouseY); var guiDelta = mc.getDeltaTracker().getGameTimeDeltaTicks(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/JoinMultiplayerScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/JoinMultiplayerScreenMixin.java index 830cb389c1..fa12d88ecc 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/JoinMultiplayerScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/JoinMultiplayerScreenMixin.java @@ -66,7 +66,7 @@ private void onInit(CallbackInfo ci) { if (accounts == null) { accounts = addRenderableWidget( - new Button.Builder(Component.literal("Accounts"), _ -> minecraft.setScreen(GuiThemes.get().accountsScreen())) + new Button.Builder(Component.literal("Accounts"), _ -> minecraft.gui.setScreen(GuiThemes.get().accountsScreen())) .size(BUTTON_WIDTH, BUTTON_HEIGHT) .build() ); @@ -74,7 +74,7 @@ private void onInit(CallbackInfo ci) { if (proxies == null) { proxies = addRenderableWidget( - new Button.Builder(Component.literal("Proxies"), _ -> minecraft.setScreen(GuiThemes.get().proxiesScreen())) + new Button.Builder(Component.literal("Proxies"), _ -> minecraft.gui.setScreen(GuiThemes.get().proxiesScreen())) .size(BUTTON_WIDTH, BUTTON_HEIGHT) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardHandlerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardHandlerMixin.java index 8909a91b4d..1af2e20723 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardHandlerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardHandlerMixin.java @@ -43,7 +43,7 @@ public void onKey(long handle, int action, KeyEvent event, CallbackInfo ci) { modifiers &= ~Input.getModifier(event.key()); } - if (minecraft.screen instanceof WidgetScreen widgetScreen && action == GLFW.GLFW_REPEAT) { + if (minecraft.gui.screen() instanceof WidgetScreen widgetScreen && action == GLFW.GLFW_REPEAT) { widgetScreen.keyRepeated(new KeyEvent(event.key(), event.scancode(), modifiers)); } @@ -57,7 +57,7 @@ public void onKey(long handle, int action, KeyEvent event, CallbackInfo ci) { @Inject(method = "charTyped", at = @At("HEAD"), cancellable = true) private void onChar(long handle, CharacterEvent event, CallbackInfo ci) { - if (Utils.canUpdate() && !minecraft.isPaused() && (minecraft.screen == null || minecraft.screen instanceof WidgetScreen)) { + if (Utils.canUpdate() && !minecraft.isPaused() && (minecraft.gui.screen() == null || minecraft.gui.screen() instanceof WidgetScreen)) { if (MeteorClient.EVENT_BUS.post(CharTypedEvent.get((char) event.codepoint())).isCancelled()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LightmapMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LightmapMixin.java index 23ffbdc72d..5b37998096 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/LightmapMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LightmapMixin.java @@ -12,8 +12,8 @@ import meteordevelopment.meteorclient.systems.modules.render.Xray; import net.minecraft.client.renderer.Lightmap; import net.minecraft.client.renderer.state.LightmapRenderState; -import net.minecraft.util.ARGB; import net.minecraft.util.profiling.Profiler; +import org.joml.Vector4f; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -33,7 +33,7 @@ public abstract class LightmapMixin { var profile = Profiler.get(); profile.push("lightmap"); - RenderSystem.getDevice().createCommandEncoder().clearColorTexture(texture, ARGB.color(255, 255, 255, 255)); + RenderSystem.getDevice().createCommandEncoder().clearColorTexture(texture, new Vector4f(1)); profile.pop(); ci.cancel(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftMixin.java index 0367a8467a..f1b6381435 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftMixin.java @@ -373,8 +373,8 @@ private void updateTargetedEntityInvoke(float partialTicks, CallbackInfo ci) { float lastPitch = cameraE.xRotO; if (highwayBuilder) { - cameraE.setYRot(this.gameRenderer.getMainCamera().yRot()); - cameraE.setXRot(this.gameRenderer.getMainCamera().xRot()); + cameraE.setYRot(this.gameRenderer.mainCamera().yRot()); + cameraE.setXRot(this.gameRenderer.mainCamera().xRot()); } else { ((IVec3) cameraE.position()).meteor$set(freecam.pos.x, freecam.pos.y - cameraE.getEyeHeight(cameraE.getPose()), freecam.pos.z); cameraE.xo = freecam.prevPos.x; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ScreenEffectRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ScreenEffectRendererMixin.java index c0760ff3a7..13596ea5a3 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ScreenEffectRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ScreenEffectRendererMixin.java @@ -9,8 +9,8 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.ScreenEffectRenderer; +import net.minecraft.client.renderer.SubmitNodeCollector; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -19,18 +19,18 @@ @Mixin(ScreenEffectRenderer.class) public abstract class ScreenEffectRendererMixin { - @Inject(method = "renderFire", at = @At("HEAD"), cancellable = true) - private static void onRenderFireOverlay(PoseStack poseStack, MultiBufferSource bufferSource, TextureAtlasSprite sprite, CallbackInfo ci) { + @Inject(method = "submitFire", at = @At("HEAD"), cancellable = true) + private static void onRenderFireOverlay(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, TextureAtlasSprite sprite, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noFireOverlay()) ci.cancel(); } - @Inject(method = "renderWater", at = @At("HEAD"), cancellable = true) - private static void onRenderUnderwaterOverlay(Minecraft minecraft, PoseStack poseStack, MultiBufferSource bufferSource, CallbackInfo ci) { + @Inject(method = "submitWater", at = @At("HEAD"), cancellable = true) + private static void onRenderUnderwaterOverlay(Minecraft minecraft, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noLiquidOverlay()) ci.cancel(); } - @Inject(method = "renderTex", at = @At("HEAD"), cancellable = true) - private static void render(TextureAtlasSprite sprite, PoseStack poseStack, MultiBufferSource bufferSource, CallbackInfo ci) { + @Inject(method = "submitBlockSprite", at = @At("HEAD"), cancellable = true) + private static void render(TextureAtlasSprite sprite, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int color, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noInWallOverlay()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/FixedUniformStorage.java b/src/main/java/meteordevelopment/meteorclient/renderer/FixedUniformStorage.java index dffcc9d1f5..9c92355ca0 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/FixedUniformStorage.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/FixedUniformStorage.java @@ -29,7 +29,8 @@ public class FixedUniformStorage public FixedUniformStorage(String name, int blockSize, int capacity) { GpuDevice gpuDevice = RenderSystem.getDevice(); - this.blockSize = Mth.roundToward(blockSize, gpuDevice.getUniformOffsetAlignment()); + int uniformAlignment = gpuDevice.getDeviceInfo().limits().minUniformOffsetAlignment(); + this.blockSize = Mth.roundToward(blockSize, uniformAlignment); this.capacity = capacity; int alignedCapacity = Mth.smallestEncompassingPowerOfTwo(capacity); this.size = 0; @@ -43,9 +44,7 @@ public GpuBufferSlice write(T value) { int i = this.size * this.blockSize; GpuBufferSlice slice = this.buffer.currentBuffer().slice(i, this.blockSize); - try (GpuBuffer.MappedView mappedView = RenderSystem.getDevice() - .createCommandEncoder() - .mapBuffer(slice, false, true)) { + try (GpuBufferSlice.MappedView mappedView = slice.map(false, true)) { value.write(mappedView.data()); } @@ -63,10 +62,9 @@ public GpuBufferSlice[] writeAll(T[] values) { int i = this.size * this.blockSize; GpuBufferSlice[] gpuBufferSlices = new GpuBufferSlice[values.length]; GpuBuffer ubo = this.buffer.currentBuffer(); + GpuBufferSlice slice = ubo.slice(i, values.length * this.blockSize); - try (GpuBuffer.MappedView mappedView = RenderSystem.getDevice() - .createCommandEncoder() - .mapBuffer(ubo.slice(i, values.length * this.blockSize), false, true)) { + try (GpuBufferSlice.MappedView mappedView = slice.map(false, true)) { ByteBuffer byteBuffer = mappedView.data(); for (int j = 0; j < values.length; j++) { diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/Fonts.java b/src/main/java/meteordevelopment/meteorclient/renderer/Fonts.java index e67d60cd72..f86ed326cf 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/Fonts.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/Fonts.java @@ -76,7 +76,7 @@ public static void load(FontFace fontFace) { load(Fonts.DEFAULT_FONT); } - if (mc.screen instanceof WidgetScreen widgetScreen && Config.get().customFont.get()) { + if (mc.gui.screen() instanceof WidgetScreen widgetScreen && Config.get().customFont.get()) { widgetScreen.invalidate(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/MeshBuilder.java b/src/main/java/meteordevelopment/meteorclient/renderer/MeshBuilder.java index 1619c1cd41..be58bc9a86 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/MeshBuilder.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/MeshBuilder.java @@ -64,7 +64,7 @@ public void begin() { building = true; if (Utils.rendering3D) { - Vec3 camera = mc.gameRenderer.getMainCamera().position(); + Vec3 camera = mc.gameRenderer.mainCamera().position(); cameraX = camera.x; cameraZ = camera.z; diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/MeshRenderer.java b/src/main/java/meteordevelopment/meteorclient/renderer/MeshRenderer.java index 5961c5e4ac..f0ba4a9f87 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/MeshRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/MeshRenderer.java @@ -15,18 +15,19 @@ import com.mojang.blaze3d.textures.GpuTextureView; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.datafixers.util.Pair; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.render.RenderUtils; import meteordevelopment.meteorclient.utils.render.color.Color; -import net.minecraft.util.ARGB; -import net.minecraft.util.Tuple; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.Nullable; import org.joml.Matrix4f; +import org.joml.Vector4f; +import org.joml.Vector4fc; import java.util.HashMap; +import java.util.Optional; import java.util.OptionalDouble; -import java.util.OptionalInt; import static meteordevelopment.meteorclient.MeteorClient.mc; @@ -44,7 +45,7 @@ public class MeshRenderer { private @Nullable GpuBuffer indexBuffer; private Matrix4f matrix; private final HashMap uniforms = new HashMap<>(); - private final HashMap> samplers = new HashMap<>(); + private final HashMap> samplers = new HashMap<>(); private MeshRenderer() { } @@ -121,7 +122,7 @@ public MeshRenderer uniform(String name, GpuBufferSlice slice) { public MeshRenderer sampler(String name, GpuTextureView view, GpuSampler sampler) { if (name != null && view != null && sampler != null) { - samplers.put(name, new Tuple<>(view, sampler)); + samplers.put(name, Pair.of(view, sampler)); } return this; @@ -154,9 +155,9 @@ public void end() { GpuBuffer indexBuffer = mesh != null ? mesh.getIndexBuffer() : this.indexBuffer; { - OptionalInt clearColor = this.clearColor != null ? - OptionalInt.of(ARGB.color(this.clearColor.a, this.clearColor.r, this.clearColor.g, this.clearColor.b)) : - OptionalInt.empty(); + Optional clearColor = this.clearColor != null + ? Optional.of(new Vector4f(this.clearColor.r / 255.0f, this.clearColor.g / 255.0f, this.clearColor.b / 255.0f, this.clearColor.a / 255.0f)) + : Optional.empty(); GpuBufferSlice meshData = MeshUniforms.write(RenderUtils.projection, RenderSystem.getModelViewStack()); @@ -172,7 +173,7 @@ public void end() { } for (var entry : samplers.entrySet()) { - pass.bindTexture(entry.getKey(), entry.getValue().getA(), entry.getValue().getB()); + pass.bindTexture(entry.getKey(), entry.getValue().getFirst(), entry.getValue().getSecond()); } pass.setVertexBuffer(0, vertexBuffer); @@ -202,7 +203,7 @@ public void end() { } private static void applyCameraPos() { - Vec3 cameraPos = mc.gameRenderer.getMainCamera().position(); + Vec3 cameraPos = mc.gameRenderer.mainCamera().position(); RenderSystem.getModelViewStack().translate(0, (float) -cameraPos.y, 0); } } diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/MeteorVertexFormatElements.java b/src/main/java/meteordevelopment/meteorclient/renderer/MeteorVertexFormatElements.java deleted file mode 100644 index 025cd5219f..0000000000 --- a/src/main/java/meteordevelopment/meteorclient/renderer/MeteorVertexFormatElements.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). - * Copyright (c) Meteor Development. - */ - -package meteordevelopment.meteorclient.renderer; - -import com.mojang.blaze3d.vertex.VertexFormatElement; - -public abstract class MeteorVertexFormatElements { - public static final VertexFormatElement POS2 = VertexFormatElement.register(getNextVertexFormatElementId(), 0, VertexFormatElement.Type.FLOAT, false, 2); - - private MeteorVertexFormatElements() {} - - private static int getNextVertexFormatElementId() { - int id = 0; - - while (VertexFormatElement.byId(id) != null) { - id++; - - if (id >= 32) { - throw new RuntimeException("Too many mods registering VertexFormatElements"); - } - } - - return id; - } -} diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/MeteorVertexFormats.java b/src/main/java/meteordevelopment/meteorclient/renderer/MeteorVertexFormats.java index 1427624e5f..b1865d2d73 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/MeteorVertexFormats.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/MeteorVertexFormats.java @@ -5,23 +5,29 @@ package meteordevelopment.meteorclient.renderer; +import com.mojang.blaze3d.GpuFormat; import com.mojang.blaze3d.vertex.VertexFormat; -import com.mojang.blaze3d.vertex.VertexFormatElement; public abstract class MeteorVertexFormats { - public static final VertexFormat POS2 = VertexFormat.builder() - .add("Position", MeteorVertexFormatElements.POS2) + // Step rate = 0 means per-vertex (not instanced) + private static final int STEP_RATE = 0; + + // POS2: 2D position (x, y) + public static final VertexFormat POS2 = VertexFormat.builder(STEP_RATE) + .addAttribute("Position", GpuFormat.RG32_FLOAT) // 2 floats (x, y) .build(); - public static final VertexFormat POS2_COLOR = VertexFormat.builder() - .add("Position", MeteorVertexFormatElements.POS2) - .add("Color", VertexFormatElement.COLOR) + // POS2_COLOR: 2D position + RGBA color (4 bytes, normalized) + public static final VertexFormat POS2_COLOR = VertexFormat.builder(STEP_RATE) + .addAttribute("Position", GpuFormat.RG32_FLOAT) // 2 floats (x, y) + .addAttribute("Color", GpuFormat.RGBA8_UNORM) // 4 bytes (RGBA, 0-255) .build(); - public static final VertexFormat POS2_TEXTURE_COLOR = VertexFormat.builder() - .add("Position", MeteorVertexFormatElements.POS2) - .add("Texture", VertexFormatElement.UV) - .add("Color", VertexFormatElement.COLOR) + // POS2_TEXTURE_COLOR: 2D position + UV texture coords + RGBA color + public static final VertexFormat POS2_TEXTURE_COLOR = VertexFormat.builder(STEP_RATE) + .addAttribute("Position", GpuFormat.RG32_FLOAT) // 2 floats (x, y) + .addAttribute("Texture", GpuFormat.RG32_FLOAT) // 2 floats (u, v) + .addAttribute("Color", GpuFormat.RGBA8_UNORM) // 4 bytes (RGBA, 0-255) .build(); private MeteorVertexFormats() {} diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/Renderer2D.java b/src/main/java/meteordevelopment/meteorclient/renderer/Renderer2D.java index 2c94396574..ae11cd29e0 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/Renderer2D.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/Renderer2D.java @@ -64,13 +64,13 @@ public void render(String samplerName, GpuTextureView samplerView, GpuSampler sa if (triangles.isBuilding()) triangles.end(); MeshRenderer.begin() - .attachments(Minecraft.getInstance().getMainRenderTarget()) + .attachments(Minecraft.getInstance().gameRenderer.mainRenderTarget()) .pipeline(MeteorRenderPipelines.UI_COLORED_LINES) .mesh(lines) .end(); MeshRenderer.begin() - .attachments(Minecraft.getInstance().getMainRenderTarget()) + .attachments(Minecraft.getInstance().gameRenderer.mainRenderTarget()) .pipeline(textured ? MeteorRenderPipelines.UI_TEXTURED : MeteorRenderPipelines.UI_COLORED) .mesh(triangles) .sampler(samplerName, samplerView, sampler) diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/Renderer3D.java b/src/main/java/meteordevelopment/meteorclient/renderer/Renderer3D.java index 773e8f66c1..2cf69e3ec9 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/Renderer3D.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/Renderer3D.java @@ -33,13 +33,13 @@ public void begin() { public void render(PoseStack matrices) { MeshRenderer.begin() - .attachments(Minecraft.getInstance().getMainRenderTarget()) + .attachments(Minecraft.getInstance().gameRenderer.mainRenderTarget()) .pipeline(linesPipeline) .mesh(lines, matrices) .end(); MeshRenderer.begin() - .attachments(Minecraft.getInstance().getMainRenderTarget()) + .attachments(Minecraft.getInstance().gameRenderer.mainRenderTarget()) .pipeline(trianglesPipeline) .mesh(triangles, matrices) .end(); diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/Texture.java b/src/main/java/meteordevelopment/meteorclient/renderer/Texture.java index 02d0333785..dbe50027f5 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/Texture.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/Texture.java @@ -5,12 +5,12 @@ package meteordevelopment.meteorclient.renderer; +import com.mojang.blaze3d.GpuFormat; import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.platform.TextureUtil; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.AddressMode; import com.mojang.blaze3d.textures.FilterMode; -import com.mojang.blaze3d.textures.TextureFormat; import net.minecraft.client.renderer.texture.AbstractTexture; import org.jetbrains.annotations.NotNull; import org.lwjgl.BufferUtils; @@ -23,7 +23,7 @@ import java.nio.IntBuffer; public class Texture extends AbstractTexture { - public Texture(int width, int height, TextureFormat format, FilterMode min, FilterMode mag) { + public Texture(int width, int height, GpuFormat format, FilterMode min, FilterMode mag) { texture = RenderSystem.getDevice().createTexture("", 15, format, width, height, 1, 1); sampler = RenderSystem.getSamplerCache().getSampler(AddressMode.REPEAT, AddressMode.REPEAT, min, mag, false); @@ -55,9 +55,9 @@ public void upload(ByteBuffer buffer) { private @NotNull NativeImage getImage() { NativeImage.Format imageFormat = switch (texture.getFormat()) { - case RGBA8 -> NativeImage.Format.RGBA; - case RED8 -> NativeImage.Format.LUMINANCE; - default -> throw new IllegalArgumentException(); + case RGBA8_UNORM -> NativeImage.Format.RGBA; + case R8_UNORM -> NativeImage.Format.LUMINANCE; + default -> throw new IllegalArgumentException("Unsupported texture format: " + texture.getFormat()); }; // Workaround for writeToTexture(IntBuffer) overload comparing width * height to the size of the int buffer. @@ -79,7 +79,7 @@ public static Texture readResource(String path, boolean flipY, FilterMode filter STBImage.stbi_set_flip_vertically_on_load(flipY); ByteBuffer image = STBImage.stbi_load_from_memory(data, width, height, comp, 4); - var texture = new Texture(width.get(0), height.get(0), TextureFormat.RGBA8, filter, filter); + var texture = new Texture(width.get(0), height.get(0), GpuFormat.RGBA8_UNORM, filter, filter); texture.upload(image); STBImage.stbi_image_free(image); diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/text/CustomTextRenderer.java b/src/main/java/meteordevelopment/meteorclient/renderer/text/CustomTextRenderer.java index c2e3d307ba..cd90995e03 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/text/CustomTextRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/text/CustomTextRenderer.java @@ -122,7 +122,7 @@ public void end() { mesh.end(); MeshRenderer.begin() - .attachments(Minecraft.getInstance().getMainRenderTarget()) + .attachments(Minecraft.getInstance().gameRenderer.mainRenderTarget()) .pipeline(MeteorRenderPipelines.UI_TEXT) .mesh(mesh) .sampler("u_Texture", font.texture.getTextureView(), font.texture.getSampler()) diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/text/Font.java b/src/main/java/meteordevelopment/meteorclient/renderer/text/Font.java index 7886610014..dc13364ee4 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/text/Font.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/text/Font.java @@ -5,8 +5,8 @@ package meteordevelopment.meteorclient.renderer.text; +import com.mojang.blaze3d.GpuFormat; import com.mojang.blaze3d.textures.FilterMode; -import com.mojang.blaze3d.textures.TextureFormat; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import meteordevelopment.meteorclient.renderer.MeshBuilder; import meteordevelopment.meteorclient.renderer.Texture; @@ -63,7 +63,7 @@ public Font(ByteBuffer buffer, int height) { STBTruetype.stbtt_PackEnd(packContext); // Create texture object and get font scale - texture = new Texture(size, size, TextureFormat.RED8, FilterMode.LINEAR, FilterMode.LINEAR); + texture = new Texture(size, size, GpuFormat.R8_UNORM, FilterMode.LINEAR, FilterMode.LINEAR); texture.upload(bitmap); scale = STBTruetype.stbtt_ScaleForPixelHeight(fontInfo, height); diff --git a/src/main/java/meteordevelopment/meteorclient/settings/StorageBlockListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/StorageBlockListSetting.java index 35e6d5efba..e5127c3a1c 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/StorageBlockListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/StorageBlockListSetting.java @@ -21,6 +21,7 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.BlockEntityTypes; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -30,22 +31,22 @@ public class StorageBlockListSetting extends Setting>> { public static final BlockEntityType[] STORAGE_BLOCKS = new BlockEntityType[]{ - BlockEntityType.BARREL, - BlockEntityType.BLAST_FURNACE, - BlockEntityType.BREWING_STAND, - BlockEntityType.CAMPFIRE, - BlockEntityType.CHEST, - BlockEntityType.CHISELED_BOOKSHELF, - BlockEntityType.CRAFTER, - BlockEntityType.DISPENSER, - BlockEntityType.DECORATED_POT, - BlockEntityType.DROPPER, - BlockEntityType.ENDER_CHEST, - BlockEntityType.FURNACE, - BlockEntityType.HOPPER, - BlockEntityType.SHULKER_BOX, - BlockEntityType.SMOKER, - BlockEntityType.TRAPPED_CHEST, + BlockEntityTypes.BARREL, + BlockEntityTypes.BLAST_FURNACE, + BlockEntityTypes.BREWING_STAND, + BlockEntityTypes.CAMPFIRE, + BlockEntityTypes.CHEST, + BlockEntityTypes.CHISELED_BOOKSHELF, + BlockEntityTypes.CRAFTER, + BlockEntityTypes.DISPENSER, + BlockEntityTypes.DECORATED_POT, + BlockEntityTypes.DROPPER, + BlockEntityTypes.ENDER_CHEST, + BlockEntityTypes.FURNACE, + BlockEntityTypes.HOPPER, + BlockEntityTypes.SHULKER_BOX, + BlockEntityTypes.SMOKER, + BlockEntityTypes.TRAPPED_CHEST, }; public static final Registry> REGISTRY = new SRegistry(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java index 6ccd49a0ff..c6ae60c569 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java @@ -6,6 +6,7 @@ package meteordevelopment.meteorclient.systems.accounts; import com.mojang.authlib.minecraft.UserApiService; +import com.mojang.authlib.yggdrasil.FriendsService; import com.mojang.authlib.yggdrasil.ServicesKeyType; import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; import meteordevelopment.meteorclient.mixin.FileCacheAccessor; @@ -15,6 +16,7 @@ import meteordevelopment.meteorclient.utils.misc.NbtException; import net.minecraft.client.User; import net.minecraft.client.gui.screens.social.PlayerSocialManager; +import net.minecraft.client.gui.screens.social.RemoteFriendListUpdateHandler; import net.minecraft.client.multiplayer.ProfileKeyPairManager; import net.minecraft.client.multiplayer.chat.report.ReportEnvironment; import net.minecraft.client.multiplayer.chat.report.ReportingContext; @@ -71,8 +73,10 @@ public static void setSession(User session) { YggdrasilAuthenticationService yggdrasilAuthenticationService = new YggdrasilAuthenticationService(mc.getProxy()); UserApiService apiService = yggdrasilAuthenticationService.createUserApiService(session.getAccessToken()); + FriendsService friendsService = yggdrasilAuthenticationService.createFriendsService(session.getAccessToken()); + RemoteFriendListUpdateHandler remoteFriendListUpdateHandler = new RemoteFriendListUpdateHandler(friendsService, mc); mca.meteor$setUserApiService(apiService); - mca.meteor$setPlayerSocialManager(new PlayerSocialManager(mc, apiService)); + mca.meteor$setPlayerSocialManager(new PlayerSocialManager(mc, apiService, friendsService, remoteFriendListUpdateHandler)); mca.meteor$setProfileKeyPairManager(ProfileKeyPairManager.create(apiService, session, mc.gameDirectory.toPath())); mca.meteor$setReportingContext(ReportingContext.create(ReportEnvironment.local(), apiService)); mca.meteor$setProfileFuture(CompletableFuture.supplyAsync(() -> mc.services().sessionService().fetchProfile(mc.getUser().getProfileId(), true), Util.ioPool())); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/MicrosoftLogin.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/MicrosoftLogin.java index 9c4780fc68..8697b1eb29 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/MicrosoftLogin.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/MicrosoftLogin.java @@ -5,11 +5,11 @@ package meteordevelopment.meteorclient.systems.accounts; +import com.mojang.datafixers.util.Pair; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpServer; import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.utils.network.Http; -import net.minecraft.util.Tuple; import net.minecraft.util.Util; import java.io.IOException; @@ -139,12 +139,12 @@ public static void stopServer() { private static void handleRequest(HttpExchange req) throws IOException { if (req.getRequestMethod().equals("GET")) { // Login - List> query = parseURL(req.getRequestURI().getRawQuery()); + List> query = parseURL(req.getRequestURI().getRawQuery()); boolean ok = false; - for (Tuple pair : query) { - if (pair.getA().equals("code")) { - handleCode(pair.getB()); + for (Pair pair : query) { + if (pair.getFirst().equals("code")) { + handleCode(pair.getSecond()); ok = true; break; @@ -179,8 +179,8 @@ private static void writeText(HttpExchange req, String text) throws IOException } // reimplementation of apache https URLEncodedUtils#parse - private static List> parseURL(String string) { - List> query = new ArrayList<>(); + private static List> parseURL(String string) { + List> query = new ArrayList<>(); char[] buf = string.toCharArray(); int i = 0; while (i < buf.length) { @@ -207,7 +207,7 @@ private static List> parseURL(String string) { } if (!name.isEmpty()) { - query.add(new Tuple<>(urlDecode(name.toString()), urlDecode(value.toString()))); + query.add(Pair.of(urlDecode(name.toString()), urlDecode(value.toString()))); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java index 3135acfb22..e5db9fb3e6 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java @@ -231,7 +231,8 @@ private void onRender(Render2DEvent event) { if (Utils.isLoading()) return; if (!(active || HudEditorScreen.isOpen()) || shouldHideHud()) return; - if ((mc.options.hideGui || mc.debugEntries.isOverlayVisible()) && !HudEditorScreen.isOpen()) return; + if ((mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden || mc.debugEntries.isOverlayVisible()) && !HudEditorScreen.isOpen()) + return; HudRenderer.INSTANCE.begin(event.graphics); @@ -247,7 +248,7 @@ private void onRender(Render2DEvent event) { } private boolean shouldHideHud() { - return hideInMenus.get() && mc.screen != null && !(mc.screen instanceof WidgetScreen); + return hideInMenus.get() && mc.gui.screen() != null && !(mc.gui.screen() instanceof WidgetScreen); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/HudRenderer.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/HudRenderer.java index 4f13c5bcba..aba3ecc4c4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/HudRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/HudRenderer.java @@ -86,7 +86,7 @@ public void end() { if (fontHolder.visited) { MeshRenderer.begin() - .attachments(mc.getMainRenderTarget()) + .attachments(mc.gameRenderer.mainRenderTarget()) .pipeline(MeteorRenderPipelines.UI_TEXT) .mesh(fontHolder.getMesh()) .sampler("u_Texture", fontHolder.font.texture.getTextureView(), fontHolder.font.texture.getSampler()) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/keyboard/KeyboardHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/keyboard/KeyboardHud.java index ce948a4fc3..5c2a353d11 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/keyboard/KeyboardHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/keyboard/KeyboardHud.java @@ -1017,8 +1017,8 @@ public static void fillTable(GuiTheme theme, WTable table, CustomKeyListSetting WButton edit = table.add(theme.button(GuiRenderer.EDIT)).expandCellX().widget(); edit.action = () -> { - WidgetScreen screen = (WidgetScreen) mc.screen; - mc.setScreen(new CustomKeySettingScreen(theme, setting, key, screen)); + WidgetScreen screen = (WidgetScreen) mc.gui.screen(); + mc.gui.setScreen(new CustomKeySettingScreen(theme, setting, key, screen)); }; WMinus delete = table.add(theme.minus()).right().widget(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/AddHudElementScreen.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/AddHudElementScreen.java index 6dd1fb68aa..e8d2b1b0a5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/AddHudElementScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/AddHudElementScreen.java @@ -113,7 +113,7 @@ private void runObject(Object object) { HudElementPresetsScreen screen = new HudElementPresetsScreen(theme, info, x, y); screen.parent = parent; - mc.setScreen(screen); + mc.gui.setScreen(screen); } else { Hud.get().add(info, x, y); onClose(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java index 24a30999a4..9b6e03691c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java @@ -141,8 +141,8 @@ public boolean mouseReleased(MouseButtonEvent click) { } else if (click.button() == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { HudElement hovered = getHovered((int) mouseX, (int) mouseY); - if (hovered != null) mc.setScreen(new HudElementScreen(theme, hovered)); - else mc.setScreen(new AddHudElementScreen(theme, lastMouseX, lastMouseY)); + if (hovered != null) mc.gui.setScreen(new HudElementScreen(theme, hovered)); + else mc.gui.setScreen(new AddHudElementScreen(theme, lastMouseX, lastMouseY)); } } @@ -335,7 +335,7 @@ private void renderSplitLine(Renderer2D renderer, double x, double y, double des } public static boolean isOpen() { - Screen s = mc.screen; + Screen s = mc.gui.screen(); return s instanceof HudEditorScreen || s instanceof AddHudElementScreen || s instanceof HudElementPresetsScreen || s instanceof HudElementScreen || s instanceof HudTab.HudScreen; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/macros/Macro.java b/src/main/java/meteordevelopment/meteorclient/systems/macros/Macro.java index d5727a80f9..9739f0dda1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/macros/Macro.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/macros/Macro.java @@ -57,7 +57,7 @@ public Macro(Tag tag) { } public boolean onAction(boolean isKey, int value, int modifiers) { - if (!keybind.get().matches(isKey, value, modifiers) || mc.screen != null) return false; + if (!keybind.get().matches(isKey, value, modifiers) || mc.gui.screen() != null) return false; return onAction(); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java index e16022894b..ea164504e9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java @@ -5,6 +5,7 @@ package meteordevelopment.meteorclient.systems.modules; +import com.mojang.datafixers.util.Pair; import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap; import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.game.GameJoinedEvent; @@ -42,7 +43,6 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; -import net.minecraft.util.Tuple; import org.jetbrains.annotations.Nullable; import org.lwjgl.glfw.GLFW; @@ -150,8 +150,8 @@ public List getActive() { return active; } - public List> searchTitles(String text) { - Map, Integer> modules = new HashMap<>(); + public List> searchTitles(String text) { + Map, Integer> modules = new HashMap<>(); for (Module module : this.moduleInstances.values()) { String title = module.title; @@ -167,10 +167,10 @@ public List> searchTitles(String text) { } } - modules.put(new Tuple<>(module, title), score); + modules.put(Pair.of(module, title), score); } - List> l = new ArrayList<>(modules.keySet()); + List> l = new ArrayList<>(modules.keySet()); l.sort(Comparator.comparingInt(modules::get)); return l; @@ -275,7 +275,7 @@ private void onMouseClick(MouseClickEvent event) { } private void onAction(boolean isKey, int value, int modifiers, boolean isPress) { - if (mc.screen != null || Input.isKeyPressed(GLFW.GLFW_KEY_F3)) return; + if (mc.gui.screen() != null || Input.isKeyPressed(GLFW.GLFW_KEY_F3)) return; for (Module module : moduleInstances.values()) { if (module.keybind.matches(isKey, value, modifiers) && (isPress || (module.toggleOnBindRelease && module.isActive()))) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoLog.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoLog.java index 9307d310f0..082e9347e1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoLog.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoLog.java @@ -29,6 +29,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityEvent; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.player.Player; import java.util.Set; @@ -101,7 +102,7 @@ public class AutoLog extends Module { private final Setting>> entities = sgEntities.add(new EntityTypeListSetting.Builder() .name("entities") .description("Disconnects when a specified entity is present within a specified range.") - .defaultValue(EntityType.END_CRYSTAL) + .defaultValue(EntityTypes.END_CRYSTAL) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java index 0314d8a0aa..43f05d830f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java @@ -152,7 +152,7 @@ public class CrystalAura extends Module { .name("entities") .description("Entities to attack.") .onlyAttackable() - .defaultValue(EntityType.PLAYER, EntityType.WARDEN, EntityType.WITHER) + .defaultValue(EntityTypes.PLAYER, EntityTypes.WARDEN, EntityTypes.WITHER) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Hitboxes.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Hitboxes.java index 41b7a5238a..39ffa26feb 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Hitboxes.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Hitboxes.java @@ -13,6 +13,7 @@ import net.minecraft.tags.ItemTags; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.MaceItem; import net.minecraft.world.item.TridentItem; @@ -26,7 +27,7 @@ public class Hitboxes extends Module { private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") .description("Which entities to target.") - .defaultValue(EntityType.PLAYER) + .defaultValue(EntityTypes.PLAYER) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java index 0fad30188c..df99a6cf83 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java @@ -131,7 +131,7 @@ public class KillAura extends Module { .name("entities") .description("Entities to attack.") .onlyAttackable() - .defaultValue(EntityType.PLAYER) + .defaultValue(EntityTypes.PLAYER) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java index a78753722c..bb4b0d77c6 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java @@ -243,7 +243,7 @@ else if ((isClicking || !autoTotem.isLocked() && !item.isOffhand())) { @EventHandler private void onMouseClick(MouseClickEvent event) { // Detects if the User is right-clicking - isClicking = mc.screen == null && !Modules.get().get(AutoTotem.class).isLocked() && !usableItem() && !mc.player.isUsingItem() && event.action == KeyAction.Press && event.button() == GLFW_MOUSE_BUTTON_RIGHT; + isClicking = mc.gui.screen() == null && !Modules.get().get(AutoTotem.class).isLocked() && !usableItem() && !mc.player.isUsingItem() && event.action == KeyAction.Press && event.button() == GLFW_MOUSE_BUTTON_RIGHT; } private boolean usableItem() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java index 1c77e88557..4ff13b5161 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java @@ -332,7 +332,7 @@ private MutableComponent appendAntiSpam(@UnknownNullability Component text) { MutableComponent returnText = null; int messageIndex = -1; - List messages = ((ChatComponentAccessor) mc.gui.getChat()).meteor$getAllMessages(); + List messages = ((ChatComponentAccessor) mc.gui.hud.getChat()).meteor$getAllMessages(); if (messages.isEmpty()) return null; for (int i = 0; i < Math.min(antiSpamDepth.get(), messages.size()); i++) { @@ -363,7 +363,7 @@ private MutableComponent appendAntiSpam(@UnknownNullability Component text) { } if (returnText != null) { - List visible = ((ChatComponentAccessor) mc.gui.getChat()).meteor$getTrimmedMessages(); + List visible = ((ChatComponentAccessor) mc.gui.hud.getChat()).meteor$getTrimmedMessages(); int start = -1; for (int i = 0; i < messageIndex; i++) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/DiscordPresence.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/DiscordPresence.java index 604c0498d8..a8dda6dab0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/DiscordPresence.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/DiscordPresence.java @@ -7,6 +7,7 @@ //Created by squidoodly +import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; import meteordevelopment.discordipc.DiscordIPC; import meteordevelopment.discordipc.RichPresence; import meteordevelopment.meteorclient.MeteorClient; @@ -33,7 +34,6 @@ import net.minecraft.client.gui.screens.worldselection.EditWorldScreen; import net.minecraft.client.gui.screens.worldselection.SelectWorldScreen; import net.minecraft.realms.RealmsScreen; -import net.minecraft.util.Tuple; import net.minecraft.util.Util; import org.meteordev.starscript.Script; @@ -114,7 +114,7 @@ public enum SelectMode { private final List