diff --git a/.github/workflows/dev_build.yml b/.github/workflows/dev_build.yml index 01af0fd..b19cfff 100644 --- a/.github/workflows/dev_build.yml +++ b/.github/workflows/dev_build.yml @@ -8,8 +8,8 @@ jobs: - uses: actions/checkout@v6 - uses: actions/setup-java@v5 with: - java-version: 21 - distribution: adopt + java-version: 25 + distribution: temurin - name: Make gradlew executable run: chmod +x ./gradlew @@ -26,8 +26,8 @@ jobs: uses: marvinpinto/action-automatic-releases@latest with: repo_token: '${{ secrets.GITHUB_TOKEN }}' - automatic_release_tag: "1.21.11_1.0.9.5" + automatic_release_tag: "26.1.2_1.0.9.5" prerelease: true - title: "1.21.11 | 1.0.9.5" + title: "26.1.2 | 1.0.9.5" files: | ./build/libs/*.jar diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 46433df..187133b 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -8,8 +8,8 @@ jobs: - uses: actions/checkout@v6 - uses: actions/setup-java@v5 with: - java-version: 21 - distribution: adopt + java-version: 25 + distribution: temurin - name: Make gradlew executable run: chmod +x ./gradlew - name: Build diff --git a/README.md b/README.md index 74e1600..c8ff9a3 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Minecraft version
Verified Addon - Minecraft version + Minecraft version Downloads GitHub stars
@@ -30,7 +30,7 @@ | **Spider+** | **Spider for Anti-Cheats** | **Matrix, Vulcan** | | **Jesus+** | **Jesus for Anti-Cheats** | **Matrix, Vulcan** | | **No Slow+** | **No Slow for Anti-Cheats** | **Matrix, Vulcan, Grim, NCP** | -| **Fast Climb+** | **Fast Climb for Anti-Cheats** | **Spartan** | +| **Fast Climb+** | **Fast Climb for Anti-Cheats** | **Spartan** | | **Gui Move+** | **Gui Move for Anti-Cheats** | **Matrix, NCP** | | **Timer+** | **Timer for Anti-Cheats** | **NCP, Intave, Vulcan** | | **Safe mine** | **Prevents player from lava** | **Matrix** | @@ -46,10 +46,10 @@ | **Teams** | **Does not beat teammates on BedWars and other modes** | | ## Integrations -| Module | Description | -|---------------------------------------|---------------------------------------------------| -| **Chest Tracker (Unofficial Port)** | **Colors support, background disabler, y offset** | -| **Xaero's MiniMap** | **Support baritone control on context** | +| Module | Description | +|-------------------------------------|---------------------------------------------------| +| **Chest Tracker (Unofficial Port)** | **Colors support, background disabler, y offset** | +| **Xaero's MiniMap** | **Support baritone control on context** | ## Commands | Command | Description | Bypasses anti cheats | @@ -77,9 +77,9 @@ # Installation Guide 1. Install [Minecraft](https://www.minecraft.net) -2. Install [Fabric](https://fabricmc.net) and [Fabric API](https://www.curseforge.com/minecraft/mc-mods/fabric-api) for your version of minecraft -3. Download [Meteor Client](https://meteorclient.com) for your version of minecraft -4. Download [Meteor Plus](https://github.com/MeteorClientPlus/MeteorPlus/releases) for your version of minecraft +2. Install [Fabric](https://fabricmc.net) and [Fabric API](https://www.curseforge.com/minecraft/mc-mods/fabric-api) for your version of Minecraft +3. Download [Meteor Client](https://meteorclient.com) for your version of Minecraft +4. Download [Meteor Plus](https://github.com/MeteorClientPlus/MeteorPlus/releases) for your version of Minecraft 5. Place the Meteor Client and Meteor Plus in your mods folder A: Make Commit we welcome anyone who makes a useful contribution to our free open source product diff --git a/build.gradle.kts b/build.gradle.kts index 8a5d901..ef0368e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,37 +15,13 @@ configurations.all { } repositories { - maven { - url = uri("https://jm.gserv.me/repository/maven-public/") - content { - includeGroup("info.journeymap") - } - } + // Modrinth maven { url = uri("https://api.modrinth.com/maven/") content { includeGroup("maven.modrinth") } } - maven { - url = uri("https://www.cursemaven.com") - } - maven { - url = uri("https://masa.dy.fi/maven") - } - // YACL - maven { - url = uri("https://maven.isxander.dev/releases") - } - // YACL Snapshots - maven { - name = "Xander Snapshot Maven" - url = uri("https://maven.isxander.dev/snapshots") - } - // Where Is It, JackFredLib - maven { - url = uri("https://maven.jackf.red/releases/") - } // Meteor Client maven { name = "meteor-maven" @@ -55,6 +31,11 @@ repositories { name = "meteor-maven-snapshots" url = uri("https://maven.meteordev.org/snapshots") } + // XaeroLib + maven { + name = "Xaero's Maven" + url = uri("https://chocolateminecraft.com/maven") + } mavenCentral() gradlePluginPortal() } @@ -62,28 +43,40 @@ repositories { dependencies { // Fabric minecraft(libs.minecraft) - mappings(variantOf(libs.yarn) { classifier("v2") }) - modImplementation(libs.fabric.loader) + implementation(libs.fabric.loader) // Fabric API - modImplementation(libs.fabric.api) + implementation(libs.fabric.api) // Mixin extras annotationProcessor("io.github.llamalad7:mixinextras-fabric:0.5.3") // Meteor Client - modImplementation(files("libs\\baritone-unoptimized-fabric-1.15.0-2-gf7a53504.jar")) - modImplementation(libs.meteor.client) - implementation(libs.starscript) - implementation(libs.orbit) + implementation(libs.baritone) + implementation(libs.meteor.client) // Xaero's Mods - modCompileOnly(libs.xwm) // Xaero's World Map - modCompileOnly(libs.xmm) // Xaero's Minimap - modCompileOnly(files("libs\\xaerolib-fabric-1.21.11-1.0.38.jar")) + compileOnly(libs.xlib) // XaeroLib + compileOnly(libs.xwm) // Xaero's World Map + compileOnly(libs.xmm) // Xaero's Minimap // Chest Tracker - modImplementation(libs.whereisit) + implementation(libs.whereisit) +} + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(libs.versions.jdk.get().toInt())) + } +} + +fun toMinecraftCompat(version: String): String { + 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") + + val (year, drop, _) = match.destructured + return "~$year.$drop" } loom { @@ -94,10 +87,11 @@ tasks { processResources { val propertyMap = mapOf( "version" to project.version, - "mc_version" to libs.versions.minecraft.get(), + "minecraft_version" to libs.versions.minecraft.get(), + "jdk_version" to libs.versions.jdk.get(), "gh_hash" to (System.getenv("GITHUB_SHA") ?: ""), ) - + filesMatching("fabric.mod.json") { expand (propertyMap) } @@ -108,12 +102,4 @@ tasks { rename { "${it}_${licenseSuffix}" } } } - java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } - withType { - options.encoding = "UTF-8" - options.release = 21 - } -} \ No newline at end of file +} diff --git a/donations.md b/donations.md index b730c4d..443c08b 100644 --- a/donations.md +++ b/donations.md @@ -1,6 +1,6 @@ ## Donation addresses -| Cryptocurrency | Addresses | -|--------------------|-----------------------------------------------------------------------| -| **Bitcoin (BTC)** | **bc1qyg8u8r7z9235h7y9982kuz85wp582xdmkhm0hc** | -| **Ethereum (EHT)** | **0x70B44EEdf0614d9fAaa2BC74f342E056919cEA2E** | -| **Monero (XMR)** | **49UpmgkdVKfF8deRceETiShuvW8BLGA59RkTRKbiwnxD4RAPUFebaztFQH9AbQuFxi5NjKoAbFcXpVRUosnXhTJ3PXrKAqv** | +| Cryptocurrency | Addresses | +|--------------------|-----------------------------------------------------------------------------------------------------| +| **Bitcoin (BTC)** | **bc1qyg8u8r7z9235h7y9982kuz85wp582xdmkhm0hc** | +| **Ethereum (EHT)** | **0x70B44EEdf0614d9fAaa2BC74f342E056919cEA2E** | +| **Monero (XMR)** | **49UpmgkdVKfF8deRceETiShuvW8BLGA59RkTRKbiwnxD4RAPUFebaztFQH9AbQuFxi5NjKoAbFcXpVRUosnXhTJ3PXrKAqv** | diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d5937f9..7bd7747 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,41 +1,36 @@ [versions] -mod-version = "1.21.11_1.0.9.5" +mod-version = "26.1.2_1.0.9.5" # Fabric (https://fabricmc.net/develop) -minecraft = "1.21.11" -yarn-mappings = "1.21.11+build.3" -fabric-loader = "0.18.4" -fabric-api = "0.140.2+1.21.11" +jdk = "25" +minecraft = "26.1.2" +fabric-loader = "0.19.2" +fabric-api = "0.147.0+26.1.2" # Plugins # Loom (https://github.com/FabricMC/fabric-loom) -loom = "1.14-SNAPSHOT" +loom = "1.16-SNAPSHOT" # Meteor (https://github.com/MeteorDevelopment/meteor-client) -meteor = "1.21.11-SNAPSHOT" -# Starscript (https://github.com/MeteorDevelopment/starscript) -starscript = "0.2.5" -# Orbit (https://github.com/MeteorDevelopment/orbit) -orbit = "0.2.4" +meteor = "26.1.2-SNAPSHOT" +baritone = "26.1-SNAPSHOT" # Xaero's Mods +# XaeroLib +xlib = "1.1.13" # Xaero's World Map (https://modrinth.com/mod/xaeros-world-map/versions) -xwm = "1.40.2_Fabric_1.21.11" +xwm = "1.40.14" # Xaero's Minimap (https://modrinth.com/mod/xaeros-minimap/versions) -xmm = "25.3.2_Fabric_1.21.11" +xmm = "25.3.11" # Where Is It (https://modrinth.com/mod/where-is-it-port/versions) -whereisit = "2.7.3+" -# YetAnotherConfigLib (https://github.com/ponuing/WhereIsIt/blob/1.21.11/gradle.properties) -yacl = "3.8.1+1.21.11-fabric" - -# MaLiLib (https://www.curseforge.com/minecraft/mc-mods/malilib) -malilib = "7130809" +whereisit = "2.7.4+26.1" +# YetAnotherConfigLib (https://github.com/ponuing/WhereIsIt/blob/26.1/gradle.properties) +yacl = "3.9.0+26.1-fabric" [libraries] # Fabric base minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" } -yarn = { module = "net.fabricmc:yarn", version.ref = "yarn-mappings" } fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" } # Fabric API @@ -43,20 +38,17 @@ fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fab # Meteor Client meteor-client = { module = "meteordevelopment:meteor-client", version.ref = "meteor" } -starscript = { module = "org.meteordev:starscript", version.ref = "starscript" } -orbit = { module = "meteordevelopment:orbit", version.ref = "orbit" } +baritone = { module = "meteordevelopment:baritone", version.ref = "baritone" } # Xaero's Mods -xwm = { module = "maven.modrinth:xaeros-world-map", version.ref = "xwm" } -xmm = { module = "maven.modrinth:xaeros-minimap", version.ref = "xmm" } +xlib = { module = "xaero.lib:xaerolib-fabric-26.1.2", version.ref = "xlib" } +xwm = { module = "xaero.map:xaeroworldmap-fabric-26.1.2", version.ref = "xwm" } +xmm = { module = "xaero.minimap:xaerominimap-fabric-26.1.2", version.ref = "xmm" } # Where Is It whereisit = { module = "maven.modrinth:where-is-it-port", version.ref = "whereisit" } # YetAnotherConfigLib -yacl = { module = "dev.isxander.yacl:yet-another-config-lib-fabric", version.ref = "yacl" } - -# MaLiLib -malilib = { module = "curse.maven:malilib-303119", version.ref = "malilib" } +yacl = { module = "maven.modrinth:yacl", version.ref = "yacl" } [plugins] -fabric-loom = { id = "fabric-loom", version.ref = "loom" } \ No newline at end of file +fabric-loom = { id = "net.fabricmc.fabric-loom", version.ref = "loom" } diff --git a/libs/baritone-unoptimized-fabric-1.15.0-2-gf7a53504.jar b/libs/baritone-unoptimized-fabric-1.15.0-2-gf7a53504.jar deleted file mode 100644 index f857ee9..0000000 Binary files a/libs/baritone-unoptimized-fabric-1.15.0-2-gf7a53504.jar and /dev/null differ diff --git a/libs/xaerolib-fabric-1.21.11-1.0.38.jar b/libs/xaerolib-fabric-1.21.11-1.0.38.jar deleted file mode 100644 index b627635..0000000 Binary files a/libs/xaerolib-fabric-1.21.11-1.0.38.jar and /dev/null differ diff --git a/meteor-addon-list.json b/meteor-addon-list.json index f5ac010..9123a5d 100644 --- a/meteor-addon-list.json +++ b/meteor-addon-list.json @@ -16,7 +16,8 @@ "1.21.8", "1.21.9", "1.21.10", - "1.21.11" + "1.21.11", + "26.1.2" ], "icon": "https://github.com/MeteorClientPlus/MeteorPlus/blob/1.21.9/src/main/resources/assets/meteorplus/logo.png?raw=true", "discord": "https://discord.gg/N3gqYc7GRS", diff --git a/settings.gradle.kts b/settings.gradle.kts index 7eba49c..6010fd3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,4 +9,8 @@ pluginManagement { } } -rootProject.name = "meteor-plus" \ No newline at end of file +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" +} + +rootProject.name = "meteor-plus" diff --git a/src/main/java/nekiplay/MixinPlugin.java b/src/main/java/nekiplay/MixinPlugin.java index 31d9a3c..9437879 100644 --- a/src/main/java/nekiplay/MixinPlugin.java +++ b/src/main/java/nekiplay/MixinPlugin.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; + import java.util.List; import java.util.Set; @@ -25,11 +26,9 @@ public class MixinPlugin implements IMixinConfigPlugin { public static boolean isFutureClient = false; // Other cheat client public static boolean isBaritonePresent = false; // Baritone for auto walking - public static boolean isJourneyMapPresent = false; // Currently not used - public static boolean isXaeroWorldMapresent = false; // Extension for map and baritone - public static boolean isXaeroMiniMapresent = false; // Extension for map and baritone - public static boolean isXaeroPlusMapresent = false; // other extension for map and baritone - public static boolean isLitematicaMapresent = false; // Detect litematica mod + public static boolean isXaeroWorldMapPresent = false; // Extension for map and baritone + public static boolean isXaeroMiniMapPresent = false; // Extension for map and baritone + public static boolean isXaeroPlusMapPresent = false; // other extension for map and baritone public static boolean isWhereIsIt = false; // Utility for ChestTracker for render 3d text @Override @@ -45,11 +44,9 @@ public void onLoad(String mixinPackage) { isZewo2 = loader.isModLoaded("zewo2"); isBaritonePresent = loader.isModLoaded("baritone-meteor") || loader.isModLoaded("baritone"); - isJourneyMapPresent = loader.isModLoaded("journeymap"); - isXaeroWorldMapresent = loader.isModLoaded("xaeroworldmap"); - isXaeroMiniMapresent = loader.isModLoaded("xaerominimap"); - isXaeroPlusMapresent = loader.isModLoaded("xaeroplus"); - isLitematicaMapresent = loader.isModLoaded("litematica"); + isXaeroWorldMapPresent = loader.isModLoaded("xaeroworldmap"); + isXaeroMiniMapPresent = loader.isModLoaded("xaerominimap"); + isXaeroPlusMapPresent = loader.isModLoaded("xaeroplus"); isWhereIsIt = loader.isModLoaded("whereisit"); } @@ -62,30 +59,24 @@ public String getRefMapperConfig() { public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { if (!mixinClassName.startsWith(mixinPackageMeteorPlus)) { throw new RuntimeException(METEOR_LOGPREFIX_MIXIN + " " + mixinClassName + " is not in the mixin package"); - } - else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".meteorclient")) { + } else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".meteorclient")) { if (mixinClassName.contains("FreecamMixin") || mixinClassName.contains("WaypointsModuleMixin")) { return isBaritonePresent && isMeteorClient; } - return isMeteorClient; - } - else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".journeymap")) { - return isBaritonePresent && isJourneyMapPresent && isMeteorClient; - } - else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".xaero.worldmap")) { - return isBaritonePresent && isXaeroWorldMapresent && isMeteorClient; - } - else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".whereisit")) { - return isWhereIsIt && isMeteorClient; - } - else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".minecraft")) { + return isMeteorClient; + } else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".xaero.worldmap")) { + return isBaritonePresent && isXaeroWorldMapPresent && isMeteorClient; + } else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".whereisit")) { + return isWhereIsIt && isMeteorClient; + } else if (mixinClassName.startsWith(mixinPackageMeteorPlus + ".minecraft")) { return isMeteorClient; } return false; } @Override - public void acceptTargets(Set myTargets, Set otherTargets) {} + public void acceptTargets(Set myTargets, Set otherTargets) { + } @Override public List getMixins() { @@ -93,9 +84,11 @@ public List getMixins() { } @Override - public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {} + public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + } @Override - public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {} + public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + } } diff --git a/src/main/java/nekiplay/main/events/ClickWindowEvent.java b/src/main/java/nekiplay/main/events/ClickWindowEvent.java index 5b32ae1..f3aa5c7 100644 --- a/src/main/java/nekiplay/main/events/ClickWindowEvent.java +++ b/src/main/java/nekiplay/main/events/ClickWindowEvent.java @@ -1,6 +1,6 @@ package nekiplay.main.events; -import net.minecraft.screen.slot.SlotActionType; +import net.minecraft.world.inventory.ContainerInput; public class ClickWindowEvent extends Cancellable { private static final ClickWindowEvent INSTANCE = new ClickWindowEvent(); @@ -8,12 +8,13 @@ public class ClickWindowEvent extends Cancellable { public int windowId; public int slotId; public int mouseButtonClicked; - public SlotActionType mode; + public ContainerInput mode; - public static ClickWindowEvent get(int windowId, int slotId, int mouseButtonClicked, SlotActionType mode) { + public static ClickWindowEvent get(int windowId, int slotId, int mouseButtonClicked, ContainerInput mode) { INSTANCE.setCancelled(false); INSTANCE.windowId = windowId; - INSTANCE.mouseButtonClicked = mouseButtonClicked;; + INSTANCE.mouseButtonClicked = mouseButtonClicked; + ; INSTANCE.slotId = slotId; INSTANCE.mode = mode; return INSTANCE; diff --git a/src/main/java/nekiplay/main/events/PlayerUseMultiplierEvent.java b/src/main/java/nekiplay/main/events/PlayerUseMultiplierEvent.java index b7da138..54d7814 100644 --- a/src/main/java/nekiplay/main/events/PlayerUseMultiplierEvent.java +++ b/src/main/java/nekiplay/main/events/PlayerUseMultiplierEvent.java @@ -3,19 +3,24 @@ public class PlayerUseMultiplierEvent { private float _forward = 0.2f; private float _sideways = 0.2f; + public PlayerUseMultiplierEvent(float forward, float sideways) { this._forward = forward; this._sideways = sideways; } + public void setForward(float forward) { _forward = forward; } + public float getForward() { return _forward; } + public void setSideways(float sideways) { _sideways = sideways; } + public float getSideways() { return _sideways; } diff --git a/src/main/java/nekiplay/main/events/RenderSignTextEvent.java b/src/main/java/nekiplay/main/events/RenderSignTextEvent.java index ddb887e..17bc230 100644 --- a/src/main/java/nekiplay/main/events/RenderSignTextEvent.java +++ b/src/main/java/nekiplay/main/events/RenderSignTextEvent.java @@ -1,23 +1,23 @@ package nekiplay.main.events; -import net.minecraft.block.entity.SignText; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.BlockPos; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.SignText; public class RenderSignTextEvent { private static final RenderSignTextEvent INSTANCE = new RenderSignTextEvent(); public BlockPos pos; public SignText signText; - public MatrixStack matrices; - public VertexConsumerProvider vertexConsumers; + public PoseStack matrices; + public MultiBufferSource vertexConsumers; public int light; public int lineHeight; public int lineWidth; public boolean front; - public static RenderSignTextEvent get(BlockPos pos, SignText signText, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int lineHeight, int lineWidth, boolean front) { + public static RenderSignTextEvent get(BlockPos pos, SignText signText, PoseStack matrices, MultiBufferSource vertexConsumers, int light, int lineHeight, int lineWidth, boolean front) { INSTANCE.pos = pos; INSTANCE.signText = signText; INSTANCE.matrices = matrices; diff --git a/src/main/java/nekiplay/main/events/hud/DebugDrawTextEvent.java b/src/main/java/nekiplay/main/events/hud/DebugDrawTextEvent.java index e270af5..1344e03 100644 --- a/src/main/java/nekiplay/main/events/hud/DebugDrawTextEvent.java +++ b/src/main/java/nekiplay/main/events/hud/DebugDrawTextEvent.java @@ -1,7 +1,6 @@ package nekiplay.main.events.hud; import nekiplay.main.events.Cancellable; -import net.minecraft.util.hit.HitResult; import java.util.ArrayList; import java.util.List; @@ -11,9 +10,15 @@ public class DebugDrawTextEvent extends Cancellable { private static final DebugDrawTextEvent INSTANCE = new DebugDrawTextEvent(); private List lines = new ArrayList(); - public List getLines() { return lines; } + public List getLines() { + return lines; + } + private boolean isLeft = false; - public boolean isLeft() { return isLeft; } + + public boolean isLeft() { + return isLeft; + } public static DebugDrawTextEvent get(List lines, boolean isLeft) { diff --git a/src/main/java/nekiplay/main/events/hud/RenderArmorBarEvent.java b/src/main/java/nekiplay/main/events/hud/RenderArmorBarEvent.java index 11bec42..f2e1d4e 100644 --- a/src/main/java/nekiplay/main/events/hud/RenderArmorBarEvent.java +++ b/src/main/java/nekiplay/main/events/hud/RenderArmorBarEvent.java @@ -1,17 +1,19 @@ package nekiplay.main.events.hud; + import nekiplay.main.events.Cancellable; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.world.entity.player.Player; public class RenderArmorBarEvent extends Cancellable { private static final RenderArmorBarEvent INSTANCE = new RenderArmorBarEvent(); - private DrawContext context; - private PlayerEntity player; + private GuiGraphicsExtractor context; + private Player player; private int i; private int j; private int k; private int x; - public static RenderArmorBarEvent get(DrawContext context, PlayerEntity player, int i, int j, int k, int x) { + + public static RenderArmorBarEvent get(GuiGraphicsExtractor context, Player player, int i, int j, int k, int x) { INSTANCE.context = context; INSTANCE.player = player; INSTANCE.i = i; diff --git a/src/main/java/nekiplay/main/events/hud/RenderExperienceBarEvent.java b/src/main/java/nekiplay/main/events/hud/RenderExperienceBarEvent.java index 98d71db..470c9a1 100644 --- a/src/main/java/nekiplay/main/events/hud/RenderExperienceBarEvent.java +++ b/src/main/java/nekiplay/main/events/hud/RenderExperienceBarEvent.java @@ -1,12 +1,14 @@ package nekiplay.main.events.hud; + import nekiplay.main.events.Cancellable; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.GuiGraphicsExtractor; public class RenderExperienceBarEvent extends Cancellable { private static final RenderExperienceBarEvent INSTANCE = new RenderExperienceBarEvent(); - private DrawContext context; + private GuiGraphicsExtractor context; private int x; - public static RenderExperienceBarEvent get(DrawContext context, int x) { + + public static RenderExperienceBarEvent get(GuiGraphicsExtractor context, int x) { INSTANCE.context = context; INSTANCE.x = x; return INSTANCE; diff --git a/src/main/java/nekiplay/main/events/hud/RenderExperienceLevelEvent.java b/src/main/java/nekiplay/main/events/hud/RenderExperienceLevelEvent.java index a7a7705..c35d1fb 100644 --- a/src/main/java/nekiplay/main/events/hud/RenderExperienceLevelEvent.java +++ b/src/main/java/nekiplay/main/events/hud/RenderExperienceLevelEvent.java @@ -1,14 +1,15 @@ package nekiplay.main.events.hud; + import nekiplay.main.events.Cancellable; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderTickCounter; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.client.DeltaTracker; +import net.minecraft.client.gui.GuiGraphicsExtractor; public class RenderExperienceLevelEvent extends Cancellable { private static final RenderExperienceLevelEvent INSTANCE = new RenderExperienceLevelEvent(); - private DrawContext context; - private RenderTickCounter tickCounter; - public static RenderExperienceLevelEvent get(DrawContext context, RenderTickCounter tickCounter) { + private GuiGraphicsExtractor context; + private DeltaTracker tickCounter; + + public static RenderExperienceLevelEvent get(GuiGraphicsExtractor context, DeltaTracker tickCounter) { INSTANCE.context = context; INSTANCE.tickCounter = tickCounter; return INSTANCE; diff --git a/src/main/java/nekiplay/main/events/hud/RenderFoodBarEvent.java b/src/main/java/nekiplay/main/events/hud/RenderFoodBarEvent.java index 67d6f3f..771992d 100644 --- a/src/main/java/nekiplay/main/events/hud/RenderFoodBarEvent.java +++ b/src/main/java/nekiplay/main/events/hud/RenderFoodBarEvent.java @@ -1,16 +1,17 @@ package nekiplay.main.events.hud; + import nekiplay.main.events.Cancellable; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderTickCounter; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.world.entity.player.Player; public class RenderFoodBarEvent extends Cancellable { private static final RenderFoodBarEvent INSTANCE = new RenderFoodBarEvent(); - private DrawContext context; - private PlayerEntity player; + private GuiGraphicsExtractor context; + private Player player; private int top; private int right; - public static RenderFoodBarEvent get(DrawContext context, PlayerEntity player, int top, int right) { + + public static RenderFoodBarEvent get(GuiGraphicsExtractor context, Player player, int top, int right) { INSTANCE.context = context; INSTANCE.player = player; INSTANCE.top = top; diff --git a/src/main/java/nekiplay/main/events/hud/RenderHealthBarEvent.java b/src/main/java/nekiplay/main/events/hud/RenderHealthBarEvent.java index bd67a7c..7f522ac 100644 --- a/src/main/java/nekiplay/main/events/hud/RenderHealthBarEvent.java +++ b/src/main/java/nekiplay/main/events/hud/RenderHealthBarEvent.java @@ -1,12 +1,13 @@ package nekiplay.main.events.hud; + import nekiplay.main.events.Cancellable; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.world.entity.player.Player; public class RenderHealthBarEvent extends Cancellable { private static final RenderHealthBarEvent INSTANCE = new RenderHealthBarEvent(); - private DrawContext context; - private PlayerEntity player; + private GuiGraphicsExtractor context; + private Player player; private int x; private int y; private int lines; @@ -16,7 +17,8 @@ public class RenderHealthBarEvent extends Cancellable { private int health; private int absorption; private boolean blinking; - public static RenderHealthBarEvent get(DrawContext context, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking) { + + public static RenderHealthBarEvent get(GuiGraphicsExtractor context, Player player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking) { INSTANCE.context = context; INSTANCE.player = player; INSTANCE.x = x; diff --git a/src/main/java/nekiplay/main/events/hud/RenderMountHealthBarEvent.java b/src/main/java/nekiplay/main/events/hud/RenderMountHealthBarEvent.java index 3536b2b..31f2e91 100644 --- a/src/main/java/nekiplay/main/events/hud/RenderMountHealthBarEvent.java +++ b/src/main/java/nekiplay/main/events/hud/RenderMountHealthBarEvent.java @@ -1,12 +1,13 @@ package nekiplay.main.events.hud; + import nekiplay.main.events.Cancellable; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.client.gui.GuiGraphicsExtractor; public class RenderMountHealthBarEvent extends Cancellable { private static final RenderMountHealthBarEvent INSTANCE = new RenderMountHealthBarEvent(); - private DrawContext context; - public static RenderMountHealthBarEvent get(DrawContext context) { + private GuiGraphicsExtractor context; + + public static RenderMountHealthBarEvent get(GuiGraphicsExtractor context) { INSTANCE.context = context; return INSTANCE; } diff --git a/src/main/java/nekiplay/main/events/packets/PacketEvent.java b/src/main/java/nekiplay/main/events/packets/PacketEvent.java index ea659cf..8a25514 100644 --- a/src/main/java/nekiplay/main/events/packets/PacketEvent.java +++ b/src/main/java/nekiplay/main/events/packets/PacketEvent.java @@ -1,8 +1,8 @@ package nekiplay.main.events.packets; import nekiplay.main.events.Cancellable; -import net.minecraft.network.listener.PacketListener; -import net.minecraft.network.packet.Packet; +import net.minecraft.network.PacketListener; +import net.minecraft.network.protocol.Packet; public class PacketEvent { public static class Receive extends Cancellable { diff --git a/src/main/java/nekiplay/main/items/ModItems.java b/src/main/java/nekiplay/main/items/ModItems.java index ae8d4b7..6452901 100644 --- a/src/main/java/nekiplay/main/items/ModItems.java +++ b/src/main/java/nekiplay/main/items/ModItems.java @@ -1,19 +1,26 @@ package nekiplay.main.items; -import net.minecraft.item.Item; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Identifier; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.item.Item; import java.util.function.Function; public class ModItems { - public static Item register(String path, Function factory, Item.Settings settings) { - final RegistryKey registryKey = RegistryKey.of(RegistryKeys.ITEM, Identifier.of("meteorplus", path)); - return Items.register(registryKey, factory, settings); + public static Item register(String path, Function factory, Item.Properties settings) { + Identifier id = Identifier.fromNamespaceAndPath("meteorplus", path); + ResourceKey key = ResourceKey.create(Registries.ITEM, id); + return Registry.register( + BuiltInRegistries.ITEM, + key, + factory.apply(settings.setId(key)) + ); } + public static Item METEOR_PLUS_LOGO_ITEM = null; public static Item METEOR_PLUS_LOGO_MODS_ITEM = null; @@ -22,11 +29,11 @@ public static Item register(String path, Function factory, public static Item METEOR_PLUS_MONEY_ITEM = null; public static void initialize() { - METEOR_PLUS_LOGO_ITEM = register("logo", Item::new, new Item.Settings()); - METEOR_PLUS_LOGO_MODS_ITEM = register("logo_mods", Item::new, new Item.Settings()); + METEOR_PLUS_LOGO_ITEM = register("logo", Item::new, new Item.Properties()); + METEOR_PLUS_LOGO_MODS_ITEM = register("logo_mods", Item::new, new Item.Properties()); - METEOR_PLUS_STAR_ITEM = register("star", Item::new, new Item.Settings()); - METEOR_PLUS_DIAMOND_ITEM = register("diamond", Item::new, new Item.Settings()); - METEOR_PLUS_MONEY_ITEM = register("money", Item::new, new Item.Settings()); + METEOR_PLUS_STAR_ITEM = register("star", Item::new, new Item.Properties()); + METEOR_PLUS_DIAMOND_ITEM = register("diamond", Item::new, new Item.Properties()); + METEOR_PLUS_MONEY_ITEM = register("money", Item::new, new Item.Properties()); } } diff --git a/src/main/java/nekiplay/meteorplus/MeteorPlusAddon.java b/src/main/java/nekiplay/meteorplus/MeteorPlusAddon.java index 18aaa6f..dd74da4 100644 --- a/src/main/java/nekiplay/meteorplus/MeteorPlusAddon.java +++ b/src/main/java/nekiplay/meteorplus/MeteorPlusAddon.java @@ -2,49 +2,62 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.addons.GithubRepo; +import meteordevelopment.meteorclient.addons.MeteorAddon; import meteordevelopment.meteorclient.commands.Commands; +import meteordevelopment.meteorclient.systems.hud.HudGroup; +import meteordevelopment.meteorclient.systems.modules.Category; +import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.misc.BetterChat; import nekiplay.MixinPlugin; import nekiplay.main.items.ModItems; -import nekiplay.meteorplus.features.commands.*; +import nekiplay.meteorplus.features.commands.ClearInventoryCommand; +import nekiplay.meteorplus.features.commands.EclipCommand; +import nekiplay.meteorplus.features.commands.GotoPlusCommand; +import nekiplay.meteorplus.features.commands.ItemRawIdCommand; import nekiplay.meteorplus.features.modules.combat.*; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityPlus; +import nekiplay.meteorplus.features.modules.integrations.MapIntegration; import nekiplay.meteorplus.features.modules.integrations.WhereIsIt; -import nekiplay.meteorplus.features.modules.misc.*; -import nekiplay.meteorplus.features.modules.movement.*; +import nekiplay.meteorplus.features.modules.misc.AutoAccept; +import nekiplay.meteorplus.features.modules.misc.ChatPrefix; +import nekiplay.meteorplus.features.modules.misc.CoordinateProtector; +import nekiplay.meteorplus.features.modules.movement.Freeze; +import nekiplay.meteorplus.features.modules.movement.NoJumpDelay; import nekiplay.meteorplus.features.modules.movement.elytrafly.ElytraFlyPlus; -import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowPlus; -import nekiplay.meteorplus.features.modules.player.*; -import nekiplay.meteorplus.features.modules.render.*; -import nekiplay.meteorplus.features.modules.render.holograms.*; -import nekiplay.meteorplus.features.modules.world.*; -import nekiplay.meteorplus.features.modules.world.autoobsidianmine.AutoObsidianFarm; -import nekiplay.meteorplus.features.modules.world.customblocks.CustomBlocksModule; -import nekiplay.meteorplus.features.modules.integrations.MapIntegration; -import nekiplay.meteorplus.features.modules.world.timer.TimerPlus; -import nekiplay.meteorplus.settings.ConfigModifier; -import net.fabricmc.loader.api.FabricLoader; -import meteordevelopment.meteorclient.addons.MeteorAddon; -import meteordevelopment.meteorclient.systems.modules.Category; -import meteordevelopment.meteorclient.systems.modules.Modules; -import meteordevelopment.meteorclient.systems.hud.HudGroup; import nekiplay.meteorplus.features.modules.movement.fastladder.FastLadderPlus; import nekiplay.meteorplus.features.modules.movement.fly.FlyPlus; import nekiplay.meteorplus.features.modules.movement.jesus.JesusPlus; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallPlus; +import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowPlus; import nekiplay.meteorplus.features.modules.movement.speed.SpeedPlus; import nekiplay.meteorplus.features.modules.movement.spider.SpiderPlus; -import net.minecraft.util.Identifier; +import nekiplay.meteorplus.features.modules.player.AutoDropPlus; +import nekiplay.meteorplus.features.modules.render.EyeFinder; +import nekiplay.meteorplus.features.modules.render.ItemFrameEsp; +import nekiplay.meteorplus.features.modules.render.ItemHighlightPlus; +import nekiplay.meteorplus.features.modules.render.KillEffect; +import nekiplay.meteorplus.features.modules.render.holograms.HologramModule; +import nekiplay.meteorplus.features.modules.world.BedrockStorageBruteforce; +import nekiplay.meteorplus.features.modules.world.GhostBlockFixer; +import nekiplay.meteorplus.features.modules.world.SafeMine; +import nekiplay.meteorplus.features.modules.world.XrayBruteforce; +import nekiplay.meteorplus.features.modules.world.autoobsidianmine.AutoObsidianFarm; +import nekiplay.meteorplus.features.modules.world.customblocks.CustomBlocksModule; +import nekiplay.meteorplus.features.modules.world.timer.TimerPlus; +import nekiplay.meteorplus.settings.ConfigModifier; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.resources.Identifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; + import static nekiplay.MixinPlugin.*; public class MeteorPlusAddon extends MeteorAddon { public static final Logger LOG = LoggerFactory.getLogger(MeteorPlusAddon.class); - public static final Category CATEGORYMODS = new Category("Integrations", ModItems.METEOR_PLUS_LOGO_MODS_ITEM.getDefaultStack()); + public static final Category CATEGORYMODS = new Category("Integrations", () -> ModItems.METEOR_PLUS_LOGO_MODS_ITEM.getDefaultInstance()); public static final String HUD_TITLE = "Meteor+"; public static final HudGroup HUD_GROUP = new HudGroup(HUD_TITLE); @@ -66,33 +79,19 @@ public void onInitialize() { ArrayList notFoundBaritoneIntegrations = new ArrayList<>(); ArrayList enabledIntegrations = new ArrayList<>(); - if (isXaeroWorldMapresent) { + if (isXaeroWorldMapPresent) { if (!isBaritonePresent) { notFoundBaritoneIntegrations.add("Xaero's World Map"); - } - else { + } else { enabledIntegrations.add("Xaero's World Map"); } - } - else { + } else { notFoundIntegrations.add("Xaero's World Map"); } - if (isJourneyMapPresent) { - if (!isBaritonePresent) { - notFoundBaritoneIntegrations.add("Journey Map"); - } - else { - enabledIntegrations.add("Journey Map"); - } - } - else { - notFoundIntegrations.add("Journey Map"); - } if (!isWhereIsIt) { notFoundIntegrations.add("Where is it"); - } - else { + } else { enabledIntegrations.add("Where is it"); } @@ -101,8 +100,7 @@ public void onInitialize() { notFoundBaritoneIntegrations.add("Freecam"); notFoundBaritoneIntegrations.add("Waypoints"); notFoundBaritoneIntegrations.add("Goto+"); - } - else { + } else { enabledIntegrations.add("Hunt"); enabledIntegrations.add("Freecam"); enabledIntegrations.add("Waypoints"); @@ -119,7 +117,7 @@ public void onInitialize() { LOG.warn(METEOR_LOGPREFIX + " Not found mods for integrations: " + String.join(", ", notFoundIntegrations)); } - MeteorClient.EVENT_BUS.subscribe(new CordinateProtector()); + MeteorClient.EVENT_BUS.subscribe(new CoordinateProtector()); ConfigModifier.get(); //region Commands @@ -136,7 +134,7 @@ public void onInitialize() { //endregion LOG.info(METEOR_LOGPREFIX + " Initializing better chat custom head..."); - BetterChat.registerCustomHead("[Meteor+]", Identifier.of("meteorplus", "chat/icon.png")); + BetterChat.registerCustomHead("[Meteor+]", Identifier.fromNamespaceAndPath("meteorplus", "chat/icon.png")); LOG.info(METEOR_LOGPREFIX + " Loaded better chat"); @@ -179,13 +177,12 @@ public void onInitialize() { modules.add(new VelocityPlus()); if (!MixinPlugin.isMeteorRejects) { modules.add(new NoJumpDelay()); - } - else { + } else { LOG.warn(METEOR_LOGPREFIX + " Meteor Rejects detected, removing No Jump Delay"); } modules.add(new NoSlowPlus()); if (isBaritonePresent) { - if (isXaeroWorldMapresent || isJourneyMapPresent) { + if (isXaeroWorldMapPresent) { modules.add(new MapIntegration()); } } @@ -199,7 +196,6 @@ public void onInitialize() { LOG.info(METEOR_LOGPREFIX + " Initializing hud..."); - LOG.info(METEOR_LOGPREFIX + " Loaded hud"); //endregion @@ -209,9 +205,7 @@ public void onInitialize() { @Override public void onRegisterCategories() { LOG.info(METEOR_LOGPREFIX + " registering categories..."); - if (isXaeroWorldMapresent || - isJourneyMapPresent || - MixinPlugin.isLitematicaMapresent || + if (isXaeroWorldMapPresent || MixinPlugin.isWhereIsIt ) { Modules.registerCategory(CATEGORYMODS); @@ -227,7 +221,7 @@ public String getWebsite() { @Override public GithubRepo getRepo() { - return new GithubRepo("MeteorClientPlus", "MeteorPlus", "1.21.11", null); + return new GithubRepo("MeteorClientPlus", "MeteorPlus", "26.1.2", null); } @Override diff --git a/src/main/java/nekiplay/meteorplus/features/commands/BlockRawIdCommand.java b/src/main/java/nekiplay/meteorplus/features/commands/BlockRawIdCommand.java index bdf31f6..8149dbc 100644 --- a/src/main/java/nekiplay/meteorplus/features/commands/BlockRawIdCommand.java +++ b/src/main/java/nekiplay/meteorplus/features/commands/BlockRawIdCommand.java @@ -2,27 +2,24 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import meteordevelopment.meteorclient.commands.Command; -import meteordevelopment.meteorclient.utils.player.ChatUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.command.CommandSource; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; +import net.minecraft.client.multiplayer.ClientSuggestionProvider; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; public class BlockRawIdCommand extends Command { public BlockRawIdCommand() { super("rawblockid", "Get raw block id under mouse"); } - public void build(LiteralArgumentBuilder builder) { + + public void build(LiteralArgumentBuilder builder) { builder.executes(context -> { - if (mc.crosshairTarget != null && mc.crosshairTarget.getType() == HitResult.Type.BLOCK) { - BlockPos pos = ((BlockHitResult) mc.crosshairTarget).getBlockPos(); - BlockState state = mc.world.getBlockState(pos); - int raw_id = Block.getRawIdFromState(state); + if (mc.hitResult != null && mc.hitResult.getType() == HitResult.Type.BLOCK) { + BlockPos pos = ((BlockHitResult) mc.hitResult).getBlockPos(); + BlockState state = mc.level.getBlockState(pos); + int raw_id = Block.getId(state); info(String.valueOf(raw_id)); } return SINGLE_SUCCESS; diff --git a/src/main/java/nekiplay/meteorplus/features/commands/ClearInventoryCommand.java b/src/main/java/nekiplay/meteorplus/features/commands/ClearInventoryCommand.java index d458afa..8cbd961 100644 --- a/src/main/java/nekiplay/meteorplus/features/commands/ClearInventoryCommand.java +++ b/src/main/java/nekiplay/meteorplus/features/commands/ClearInventoryCommand.java @@ -2,24 +2,23 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import meteordevelopment.meteorclient.commands.Command; -import net.minecraft.command.CommandSource; -import net.minecraft.item.ItemStack; -import net.minecraft.screen.slot.SlotActionType; +import net.minecraft.client.multiplayer.ClientSuggestionProvider; +import net.minecraft.world.inventory.ContainerInput; +import net.minecraft.world.item.ItemStack; -import static com.mojang.brigadier.Command.SINGLE_SUCCESS; -import static meteordevelopment.meteorclient.MeteorClient.mc; import static nekiplay.meteorplus.features.modules.player.AutoDropPlus.invIndexToSlotId; public class ClearInventoryCommand extends Command { public ClearInventoryCommand() { super("clearinv", "Clear inventory"); } - public void build(LiteralArgumentBuilder builder) { + + public void build(LiteralArgumentBuilder builder) { builder.executes(context -> { - for (int i = 0; i < mc.player.getInventory().size(); i++) { - ItemStack itemStack = mc.player.getInventory().getStack(i); + for (int i = 0; i < mc.player.getInventory().getContainerSize(); i++) { + ItemStack itemStack = mc.player.getInventory().getItem(i); if (itemStack != null) { - mc.interactionManager.clickSlot(0, invIndexToSlotId(i), 300, SlotActionType.SWAP, mc.player); + mc.gameMode.handleContainerInput(0, invIndexToSlotId(i), 300, ContainerInput.SWAP, mc.player); } } return SINGLE_SUCCESS; diff --git a/src/main/java/nekiplay/meteorplus/features/commands/EclipCommand.java b/src/main/java/nekiplay/meteorplus/features/commands/EclipCommand.java index 72fdb4e..4c602ad 100644 --- a/src/main/java/nekiplay/meteorplus/features/commands/EclipCommand.java +++ b/src/main/java/nekiplay/meteorplus/features/commands/EclipCommand.java @@ -9,33 +9,29 @@ import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.orbit.EventHandler; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.command.CommandSource; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.math.BlockPos; import nekiplay.meteorplus.utils.ElytraUtils; - -import static com.mojang.brigadier.Command.SINGLE_SUCCESS; -import static meteordevelopment.meteorclient.MeteorClient.mc; +import net.minecraft.client.multiplayer.ClientSuggestionProvider; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; public class EclipCommand extends Command { public EclipCommand() { - super("eclip", "Elyta clip need elytra bypass most anticheats"); + super("eclip", "Elytra clip need elytra bypass most anticheats"); } - public void build(LiteralArgumentBuilder builder) { + public void build(LiteralArgumentBuilder builder) { builder.then(argument("blocks", DoubleArgumentType.doubleArg()).executes(context -> { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; double blocks2 = context.getArgument("blocks", Double.class); if (work()) { blocks = blocks2; MeteorClient.EVENT_BUS.subscribe(this); - } - else { + } else { ticks = 0; } return SINGLE_SUCCESS; @@ -44,8 +40,7 @@ public void build(LiteralArgumentBuilder builder) { if (work()) { blocks = findBlock(true, 15); MeteorClient.EVENT_BUS.subscribe(this); - } - else { + } else { ticks = 0; } return SINGLE_SUCCESS; @@ -54,49 +49,48 @@ public void build(LiteralArgumentBuilder builder) { if (work()) { blocks = findBlock(false, 15); MeteorClient.EVENT_BUS.subscribe(this); - } - else { + } else { ticks = 0; } return SINGLE_SUCCESS; })); } + private boolean work() { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; FindItemResult elytra = InvUtils.find(Items.ELYTRA); if (elytra.found()) { ticks = 0; return true; - } - else { + } else { error(Names.get(Items.ELYTRA) + " not found"); return false; } } + private Block getBlock(BlockPos pos) { - return mc.world.getBlockState(pos).getBlock(); + return mc.level.getBlockState(pos).getBlock(); } private double findBlock(boolean up, int maximum) { if (up) { - BlockPos pos = mc.player.getBlockPos(); + BlockPos pos = mc.player.blockPosition(); for (int i = maximum; i >= 0; i--) { - if (getBlock(pos.add(0, i, 0)) == Blocks.AIR - && getBlock(pos.add(0, i + 1, 0)) == Blocks.AIR - && getBlock(pos.add(0, i - 1, 0)) != Blocks.AIR + if (getBlock(pos.offset(0, i, 0)) == Blocks.AIR + && getBlock(pos.offset(0, i + 1, 0)) == Blocks.AIR + && getBlock(pos.offset(0, i - 1, 0)) != Blocks.AIR ) { return i; } } - } - else { - BlockPos pos = mc.player.getBlockPos(); + } else { + BlockPos pos = mc.player.blockPosition(); for (int i = -maximum; i <= 0; i++) { - if (getBlock(pos.add(0, i, 0)) == Blocks.AIR - && getBlock(pos.add(0, i + 1, 0)) == Blocks.AIR - && getBlock(pos.add(0, i - 1, 0)) != Blocks.AIR + if (getBlock(pos.offset(0, i, 0)) == Blocks.AIR + && getBlock(pos.offset(0, i + 1, 0)) == Blocks.AIR + && getBlock(pos.offset(0, i - 1, 0)) != Blocks.AIR ) { return i; } @@ -116,7 +110,7 @@ private void onTick(TickEvent.Pre event) { private void clip(double blocks) { if (blocks != 0) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; switch (ticks) { case 0: { @@ -126,11 +120,11 @@ private void clip(double blocks) { ticks++; } case 1: { - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 2: { - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 3: { @@ -138,8 +132,8 @@ private void clip(double blocks) { ticks++; } case 4: { - player.setPosition(player.getX(), player.getY() + blocks, player.getZ()); - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(player.getX(), player.getY() + blocks, player.getZ(), false, mc.player.horizontalCollision)); + player.setPos(player.getX(), player.getY() + blocks, player.getZ()); + mc.player.connection.send(new ServerboundMovePlayerPacket.Pos(player.getX(), player.getY() + blocks, player.getZ(), false, mc.player.horizontalCollision)); ticks++; } case 5: { @@ -152,8 +146,7 @@ private void clip(double blocks) { MeteorClient.EVENT_BUS.unsubscribe(this); } } - } - else { + } else { MeteorClient.EVENT_BUS.unsubscribe(this); } } diff --git a/src/main/java/nekiplay/meteorplus/features/commands/GotoPlusCommand.java b/src/main/java/nekiplay/meteorplus/features/commands/GotoPlusCommand.java index 6abba24..9b9c678 100644 --- a/src/main/java/nekiplay/meteorplus/features/commands/GotoPlusCommand.java +++ b/src/main/java/nekiplay/meteorplus/features/commands/GotoPlusCommand.java @@ -8,21 +8,18 @@ import meteordevelopment.meteorclient.utils.player.ChatUtils; import meteordevelopment.meteorclient.utils.world.BlockIterator; import meteordevelopment.meteorclient.utils.world.BlockUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.LeavesBlock; -import net.minecraft.command.CommandSource; -import net.minecraft.text.Text; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.client.multiplayer.ClientSuggestionProvider; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.LeavesBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; import java.util.ArrayList; import java.util.List; -import static com.mojang.brigadier.Command.SINGLE_SUCCESS; -import static meteordevelopment.meteorclient.MeteorClient.mc; - public class GotoPlusCommand extends Command { public GotoPlusCommand() { super("gotoplus", "Baritone goto to selected type"); @@ -31,22 +28,21 @@ public GotoPlusCommand() { private final Pool crossPool = new Pool<>(Cross::new); private final List crosses = new ArrayList<>(); - public void build(LiteralArgumentBuilder builder) { + public void build(LiteralArgumentBuilder builder) { builder.then(literal("nolight").executes(c -> { MeteorExecutor.execute(() -> { for (Cross cross : crosses) crossPool.free(cross); crosses.clear(); - - BlockIterator.register(64, mc.world.getHeight() / 2, (blockPos, blockState) -> { - switch (BlockUtils.isValidMobSpawn(blockPos, mc.world.getBlockState(blockPos), 0)) { + BlockIterator.register(64, mc.level.getHeight() / 2, (blockPos, blockState) -> { + switch (BlockUtils.isValidMobSpawn(blockPos, mc.level.getBlockState(blockPos), 0)) { case Never: break; case Potential, Always: crosses.add(crossPool.get().set(blockPos)); break; - } + } }); @@ -54,24 +50,25 @@ public void build(LiteralArgumentBuilder builder) { BlockPos near = null; double dst = Double.MAX_VALUE; for (Cross cross : crosses) { - BlockState ground = mc.world.getBlockState(new BlockPos(cross.x, cross.y - 1, cross.z)); + BlockState ground = mc.level.getBlockState(new BlockPos(cross.x, cross.y - 1, cross.z)); Block ground_block = ground.getBlock(); - if (!(ground_block instanceof LeavesBlock) && ground_block != Blocks.CHORUS_FLOWER) { - double dist = mc.player.squaredDistanceTo(new Vec3d(cross.x, cross.y, cross.z)); + if (!(ground_block instanceof LeavesBlock) && ground_block != Blocks.CHORUS_FLOWER) { + double dist = mc.player.distanceToSqr(new Vec3(cross.x, cross.y, cross.z)); if (dist < dst) { dst = dist; near = new BlockPos(cross.x, cross.y, cross.z); } } - } - for (Cross cross : crosses) { crossPool.free(cross); } + } + for (Cross cross : crosses) { + crossPool.free(cross); + } crosses.clear(); if (near != null) { BaritoneAPI.getProvider().getPrimaryBaritone().getCommandManager().execute("goto " + near.getX() + " " + near.getY() + " " + near.getZ()); - } - else { - ChatUtils.sendMsg(Text.of("Not founded near light")); + } else { + ChatUtils.sendMsg(Component.nullToEmpty("Not founded near light")); } }); }); diff --git a/src/main/java/nekiplay/meteorplus/features/commands/ItemRawIdCommand.java b/src/main/java/nekiplay/meteorplus/features/commands/ItemRawIdCommand.java index c7eba6f..cab1b29 100644 --- a/src/main/java/nekiplay/meteorplus/features/commands/ItemRawIdCommand.java +++ b/src/main/java/nekiplay/meteorplus/features/commands/ItemRawIdCommand.java @@ -3,25 +3,22 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.utils.player.ChatUtils; -import net.minecraft.command.CommandSource; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; - -import static com.mojang.brigadier.Command.SINGLE_SUCCESS; -import static meteordevelopment.meteorclient.MeteorClient.mc; +import net.minecraft.client.multiplayer.ClientSuggestionProvider; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; public class ItemRawIdCommand extends Command { public ItemRawIdCommand() { super("rawitemid", "Get raw item id"); } - public void build(LiteralArgumentBuilder builder) { + public void build(LiteralArgumentBuilder builder) { builder.executes(context -> { - ItemStack itemStack = mc.player.getMainHandStack(); + ItemStack itemStack = mc.player.getMainHandItem(); if (itemStack != null) { - int raw_id = Item.getRawId(itemStack.getItem()); - ChatUtils.sendMsg(Text.of("Raw Item ID: " + raw_id)); + int raw_id = Item.getId(itemStack.getItem()); + ChatUtils.sendMsg(Component.nullToEmpty("Raw Item ID: " + raw_id)); } return SINGLE_SUCCESS; }); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/AntiBotPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/AntiBotPlus.java index b5d77ef..9b2f713 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/AntiBotPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/AntiBotPlus.java @@ -4,18 +4,20 @@ import meteordevelopment.meteorclient.events.entity.EntityRemovedEvent; import meteordevelopment.meteorclient.events.game.GameLeftEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; -import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.settings.BoolSetting; +import meteordevelopment.meteorclient.settings.EnumSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.client.network.PlayerListEntry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.network.packet.s2c.play.EntityAnimationS2CPacket; -import net.minecraft.network.packet.s2c.play.EntityPositionS2CPacket; import nekiplay.meteorplus.utils.ColorRemover; +import net.minecraft.client.multiplayer.PlayerInfo; +import net.minecraft.network.protocol.game.ClientboundAnimatePacket; +import net.minecraft.network.protocol.game.ClientboundTeleportEntityPacket; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; import java.util.*; @@ -123,7 +125,7 @@ public String toString() { private ArrayList swings = new ArrayList(); private ArrayList grounds = new ArrayList(); private ArrayList airs = new ArrayList(); - private Map invalidGrounds = new HashMap<>(); + private Map invalidGrounds = new HashMap<>(); @Override public void onDeactivate() { @@ -138,53 +140,53 @@ public boolean isBot(Entity entity) { } public boolean isBot(LivingEntity entity) { - if (!(entity instanceof PlayerEntity)) + if (!(entity instanceof Player)) return false; if (!isActive()) return false; - if (useHash.get() && hash.contains(entity.getUuid())) { + if (useHash.get() && hash.contains(entity.getUUID())) { return true; } if (color.get() && entity.getDisplayName().getString().replace("§r", "").contains("§")) { if (useHash.get()) { - hash.add(entity.getUuid()); + hash.add(entity.getUUID()); } return true; } if (ground.get() && !grounds.contains(entity.getId())) { if (useHash.get()) { - hash.add(entity.getUuid()); + hash.add(entity.getUUID()); } return true; } if (InvalidGround.get() && invalidGrounds.getOrDefault(entity.getId(), 0) >= 10) { if (useHash.get()) { - hash.add(entity.getUuid()); + hash.add(entity.getUUID()); } return true; } if (entityID.get() && (entity.getId() >= 1000000000 || entity.getId() <= -1)) { if (useHash.get()) { - hash.add(entity.getUuid()); + hash.add(entity.getUUID()); } return true; } - if (derp.get() && (entity.getPitch() > 90f || entity.getPitch() < -90)) { + if (derp.get() && (entity.getXRot() > 90f || entity.getXRot() < -90)) { if (useHash.get()) { - hash.add(entity.getUuid()); + hash.add(entity.getUUID()); } return true; } if (swing.get() && !swings.contains(entity.getId())) { if (useHash.get()) { - hash.add(entity.getUuid()); + hash.add(entity.getUUID()); } return true; } @@ -192,22 +194,20 @@ public boolean isBot(LivingEntity entity) { if (tab.get()) { String targetname = ColorRemover.GetVerbatim(entity.getDisplayName().getString()); - if (mc != null && mc.getNetworkHandler() != null) { - Collection entryCollection = mc.getNetworkHandler().getPlayerList(); - for (PlayerListEntry info : entryCollection) { - if (info.getDisplayName() != null) { - String networkName = ColorRemover.GetVerbatim(info.getDisplayName().getString()); + if (mc != null && mc.getConnection() != null) { + Collection entryCollection = mc.getConnection().getOnlinePlayers(); + for (PlayerInfo info : entryCollection) { + if (info.getTabListDisplayName() != null) { + String networkName = ColorRemover.GetVerbatim(info.getTabListDisplayName().getString()); if (tabMode.get() == TabMode.Equals) { if (targetname.equals(networkName)) { return false; } - } - else if (tabMode.get() == TabMode.Contains_LowerCase) { + } else if (tabMode.get() == TabMode.Contains_LowerCase) { if (targetname.toLowerCase().contains(networkName.toLowerCase())) { return false; } - } - else { + } else { if (targetname.contains(networkName)) { return false; } @@ -215,7 +215,7 @@ else if (tabMode.get() == TabMode.Contains_LowerCase) { } } if (useHash.get()) { - hash.add(entity.getUuid()); + hash.add(entity.getUUID()); } return true; } @@ -231,10 +231,10 @@ private void onEntityAdd(EntityAddedEvent event) { @EventHandler private void onEntityRemove(EntityRemovedEvent event) { - if (hash.contains(event.entity.getUuid())) { + if (hash.contains(event.entity.getUUID())) { Iterator iterator = hash.iterator(); while (iterator.hasNext()) { - if (iterator.next() == event.entity.getUuid()) { + if (iterator.next() == event.entity.getUUID()) { iterator.remove(); return; } @@ -244,19 +244,19 @@ private void onEntityRemove(EntityRemovedEvent event) { @EventHandler private void livingEntityMove(PacketEvent.Receive event) { - if (event.packet instanceof EntityPositionS2CPacket packet) { - if (mc.world != null) { - Entity entity = mc.world.getEntityById(packet.entityId()); + if (event.packet instanceof ClientboundTeleportEntityPacket packet) { + if (mc.level != null) { + Entity entity = mc.level.getEntity(packet.id()); if (entity != null) { - if (entity.isOnGround()) { + if (entity.onGround()) { grounds.add(entity.getId()); } - if (!entity.isOnGround() && !airs.contains(entity.getId())) + if (!entity.onGround() && !airs.contains(entity.getId())) airs.add(entity.getId()); - if (entity.isOnGround()) { - if (entity.lastY != entity.getY()) + if (entity.onGround()) { + if (entity.yo != entity.getY()) invalidGrounds.put(entity.getId(), invalidGrounds.getOrDefault(entity.getId(), 0) + 1); } else { int currentVL = invalidGrounds.getOrDefault(entity.getId(), 0) / 2; @@ -268,12 +268,11 @@ private void livingEntityMove(PacketEvent.Receive event) { } } } - } - else if (event.packet instanceof EntityAnimationS2CPacket packet) { - if (mc.world != null) { - Entity entity = mc.world.getEntityById(packet.getEntityId()); + } else if (event.packet instanceof ClientboundAnimatePacket packet) { + if (mc.level != null) { + Entity entity = mc.level.getEntity(packet.getId()); if (entity != null) { - if (entity instanceof LivingEntity && packet.getAnimationId() == 0 && !swings.contains(entity.getId())) { + if (entity instanceof LivingEntity && packet.getAction() == 0 && !swings.contains(entity.getId())) { swings.add(entity.getId()); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/AutoLeave.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/AutoLeave.java index edaaac4..22b04cb 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/AutoLeave.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/AutoLeave.java @@ -1,5 +1,6 @@ package nekiplay.meteorplus.features.modules.combat; +import meteordevelopment.meteorclient.events.entity.EntityAddedEvent; import meteordevelopment.meteorclient.settings.BoolSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; @@ -8,17 +9,18 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.ChatUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.network.packet.s2c.common.DisconnectS2CPacket; -import net.minecraft.text.Text; -import meteordevelopment.meteorclient.events.entity.EntityAddedEvent; import meteordevelopment.orbit.EventHandler; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.common.ClientboundDisconnectPacket; +import net.minecraft.world.entity.player.Player; + import java.util.Objects; public class AutoLeave extends Module { public AutoLeave() { super(Categories.Combat, "auto-leave", "Automatically logs out from the server when someone enters your render distance."); } + private final SettingGroup ALSettings = settings.getDefaultGroup(); private final Setting visualRangeIgnoreFriends = ALSettings.add(new BoolSetting.Builder() .name("ignore-friends") @@ -53,21 +55,20 @@ public AutoLeave() { public void onEntityAdded(EntityAddedEvent event) { if (mc.player == null) return; if (visualRangeIgnoreFriends.get()) { - if (event.entity.isPlayer() && !Friends.get().isFriend((PlayerEntity) event.entity) && !Objects.equals(event.entity.getName(), mc.player.getName()) && !Objects.equals(event.entity.getName(), "FreeCamera")) { + if (event.entity.isAlwaysTicking() && !Friends.get().isFriend((Player) event.entity) && !Objects.equals(event.entity.getName(), mc.player.getName()) && !Objects.equals(event.entity.getName(), "FreeCamera")) { if (Command.get()) { ChatUtils.sendPlayerMsg(command_str.get()); info((String.format("player §c%s§r was detected", event.entity.getName()))); } else { - assert mc.world != null; - mc.world.disconnect(Text.of("")); - mc.player.networkHandler.onDisconnect(new DisconnectS2CPacket(Text.literal(String.format("[§dAuto Leaeve§r] player %s was detected", event.entity.getName())))); + assert mc.level != null; + mc.level.disconnect(Component.nullToEmpty("")); + mc.player.connection.handleDisconnect(new ClientboundDisconnectPacket(Component.literal(String.format("[§dAuto Leave§r] player %s was detected", event.entity.getName())))); } - if (AutoDisable.get()) this.toggle(); - } - } - else if (event.entity.isPlayer()){ - mc.player.networkHandler.onDisconnect(new DisconnectS2CPacket(Text.literal(String.format("[§dAuto Leaeve§r] player %s was detected", event.entity.getName())))); if (AutoDisable.get()) this.toggle(); + } + } else if (event.entity.isAlwaysTicking()) { + mc.player.connection.handleDisconnect(new ClientboundDisconnectPacket(Component.literal(String.format("[§dAuto Leave§r] player %s was detected", event.entity.getName())))); + if (AutoDisable.get()) this.toggle(); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/Hunt.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/Hunt.java index 689f9c0..395ccf0 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/Hunt.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/Hunt.java @@ -13,16 +13,16 @@ import meteordevelopment.meteorclient.utils.entity.SortPriority; import meteordevelopment.meteorclient.utils.entity.TargetUtils; import meteordevelopment.orbit.EventHandler; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.Tameable; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.OwnableEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.phys.Vec3; import java.util.ArrayList; import java.util.Set; @@ -57,12 +57,13 @@ public Hunt() { private boolean entityCheck(Entity entity) { if (entity.equals(mc.player) || entity.equals(mc.getCameraEntity())) return false; - if ((entity instanceof LivingEntity && ((LivingEntity) entity).isDead()) || !entity.isAlive()) return false; + if ((entity instanceof LivingEntity && ((LivingEntity) entity).isDeadOrDying()) || !entity.isAlive()) + return false; if (!entities.get().contains(entity.getType())) return false; - if (entity instanceof Tameable tameable - && tameable.getOwner().getUuid() != null - && tameable.getOwner().getUuid().equals(mc.player.getUuid())) return false; - if (entity instanceof PlayerEntity player) { + if (entity instanceof OwnableEntity tameable + && tameable.getOwner().getUUID() != null + && tameable.getOwner().getUUID().equals(mc.player.getUUID())) return false; + if (entity instanceof Player player) { if (player.isCreative()) return false; if (!Friends.get().shouldAttack(player)) return false; AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); @@ -76,19 +77,19 @@ private boolean entityCheck(Entity entity) { } if (onGround.get()) { if (customCheck.get()) { - World world = entity.getEntityWorld(); + Level world = entity.level(); - Vec3d entityPos = entity.getEntityPos(); + Vec3 entityPos = entity.position(); BlockPos posBelow = new BlockPos((int) entityPos.x, (int) (entityPos.y - 1), (int) entityPos.z); Block blockBelow = world.getBlockState(posBelow).getBlock(); return (blockBelow != Blocks.AIR && blockBelow != Blocks.WATER && blockBelow != Blocks.LAVA); - } - else return entity.isOnGround(); + } else return entity.onGround(); } return true; } + private final ArrayList targets = new ArrayList<>(); @Override @@ -99,12 +100,12 @@ public void onDeactivate() { @EventHandler private void onTickEvent(TickEvent.Pre event) { - if (mc.world != null) { + if (mc.level != null) { TargetUtils.getList(targets, this::entityCheck, SortPriority.LowestDistance, 25); for (Entity entity : targets) { - PathManagers.get().moveTo(entity.getBlockPos()); + PathManagers.get().moveTo(entity.blockPosition()); return; } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/Teams.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/Teams.java index b13baa7..dd8e755 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/Teams.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/Teams.java @@ -5,18 +5,16 @@ import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; -import meteordevelopment.meteorclient.utils.player.ChatUtils; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.text.Text; - -import java.nio.charset.CharsetEncoder; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; public class Teams extends Module { public Teams() { super(Categories.Combat, "teams", "Check if [entity] is in your own team using scoreboard, name color or team prefix."); } + private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final Setting scoreBoardTeam = sgGeneral.add(new BoolSetting.Builder() .name("Scoreboard-Team") @@ -35,23 +33,29 @@ public Teams() { .defaultValue(false) .build() ); + public boolean isInYourTeam(Entity entity) { if (entity instanceof LivingEntity) { return isInYourTeam((LivingEntity) entity); } return false; } + public boolean isInYourTeam(LivingEntity entity) { - ClientPlayerEntity player = mc.player; - if (player == null) { return false; } + LocalPlayer player = mc.player; + if (player == null) { + return false; + } - if (!isActive()) { return false; } + if (!isActive()) { + return false; + } - if (scoreBoardTeam.get() && player.getScoreboardTeam() != null && entity.getScoreboardTeam() != null && player.isTeamPlayer(entity.getScoreboardTeam())) { + if (scoreBoardTeam.get() && player.getTeam() != null && entity.getTeam() != null && player.isAlliedTo(entity.getTeam())) { return true; } - Text displayName = player.getDisplayName(); + Component displayName = player.getDisplayName(); if (gommeSkyWars.get() && displayName != null && entity.getDisplayName() != null) { String targetName = entity.getDisplayName().getString().replaceAll("§r", ""); String clientName = displayName.getString().replaceAll("§r", ""); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/TriggerBot.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/TriggerBot.java index 33c3d0e..91f6adf 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/TriggerBot.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/TriggerBot.java @@ -1,7 +1,6 @@ package nekiplay.meteorplus.features.modules.combat; import meteordevelopment.meteorclient.events.render.Render3DEvent; -import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.friends.Friends; import meteordevelopment.meteorclient.systems.modules.Categories; @@ -10,15 +9,15 @@ import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.features.modules.combat.criticals.CriticalsPlus; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.Tameable; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.passive.AnimalEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.Hand; -import net.minecraft.world.GameMode; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.OwnableEntity; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.GameType; import org.spongepowered.asm.mixin.Unique; import java.util.Objects; @@ -106,12 +105,13 @@ public void onDeactivate() { private boolean entityCheck(Entity entity) { if (entity.equals(mc.player) || entity.equals(mc.getCameraEntity())) return false; - if ((entity instanceof LivingEntity && ((LivingEntity) entity).isDead()) || !entity.isAlive()) return false; + if ((entity instanceof LivingEntity && ((LivingEntity) entity).isDeadOrDying()) || !entity.isAlive()) + return false; if (!entities.get().contains(entity.getType())) return false; - if (entity instanceof Tameable tameable - && tameable.getOwner().getUuid() != null - && tameable.getOwner().getUuid().equals(mc.player.getUuid())) return false; - if (entity instanceof PlayerEntity player) { + if (entity instanceof OwnableEntity tameable + && tameable.getOwner().getUUID() != null + && tameable.getOwner().getUUID().equals(mc.player.getUUID())) return false; + if (entity instanceof Player player) { if (player.isCreative()) return false; if (!Friends.get().shouldAttack(player)) return false; AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); @@ -124,20 +124,19 @@ private boolean entityCheck(Entity entity) { } } - return !(entity instanceof AnimalEntity) || babies.get() || !((AnimalEntity) entity).isBaby(); + return !(entity instanceof Animal) || babies.get() || !((Animal) entity).isBaby(); } private boolean delayCheck() { - if (onlyCrits.get() && !CriticalsPlus.allowCrit() && needCrit(mc.targetedEntity)) { - if (ignoreOnlyCritsOnLevitation.get() && !Objects.requireNonNull(mc.player).hasStatusEffect(StatusEffects.LEVITATION)) { + if (onlyCrits.get() && !CriticalsPlus.allowCrit() && needCrit(mc.crosshairPickEntity)) { + if (ignoreOnlyCritsOnLevitation.get() && !Objects.requireNonNull(mc.player).hasEffect(MobEffects.LEVITATION)) { return false; - } - else if (!ignoreOnlyCritsOnLevitation.get()) { + } else if (!ignoreOnlyCritsOnLevitation.get()) { return false; } } - if (smartDelay.get()) return mc.player.getAttackCooldownProgress(0.5f) >= 1; + if (smartDelay.get()) return mc.player.getAttackStrengthScale(0.5f) >= 1; if (hitDelayTimer > 0) { hitDelayTimer--; @@ -151,14 +150,14 @@ else if (!ignoreOnlyCritsOnLevitation.get()) { @EventHandler private void onTick(Render3DEvent event) { - if (!mc.player.isAlive() || PlayerUtils.getGameMode() == GameMode.SPECTATOR) return; - if (mc.targetedEntity == null) return; + if (!mc.player.isAlive() || PlayerUtils.getGameMode() == GameType.SPECTATOR) return; + if (mc.crosshairPickEntity == null) return; - if (delayCheck() && entityCheck(mc.targetedEntity)) hitEntity(mc.targetedEntity); + if (delayCheck() && entityCheck(mc.crosshairPickEntity)) hitEntity(mc.crosshairPickEntity); } private void hitEntity(Entity target) { - mc.interactionManager.attackEntity(mc.player, target); - mc.player.swingHand(Hand.MAIN_HAND); + mc.gameMode.attack(mc.player, target); + mc.player.swing(InteractionHand.MAIN_HAND); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/criticals/CriticalsPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/criticals/CriticalsPlus.java index 047865a..461626a 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/criticals/CriticalsPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/criticals/CriticalsPlus.java @@ -5,31 +5,30 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.combat.Criticals; import meteordevelopment.meteorclient.utils.entity.DamageUtils; -import net.minecraft.client.MinecraftClient; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; +import net.minecraft.client.Minecraft; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; public class CriticalsPlus extends Module { public CriticalsPlus() { super(Categories.Combat, "Criticals+", "Better criticals module"); } - private static MinecraftClient mc = MinecraftClient.getInstance(); + private static Minecraft mc = Minecraft.getInstance(); public static boolean canCrit() { - return !mc.player.isOnGround() && mc.player.fallDistance > 0; + return !mc.player.onGround() && mc.player.fallDistance > 0; } public static boolean skipCrit() { - return !mc.player.isOnGround() || mc.player.isSubmergedInWater() || mc.player.isInLava() || mc.player.isClimbing(); + return !mc.player.onGround() || mc.player.isUnderWater() || mc.player.isInLava() || mc.player.onClimbable(); } public static boolean allowCrit() { if (canCrit()) { return true; - } - else if (Modules.get().get(Criticals.class).isActive()) { - return !skipCrit(); + } else if (Modules.get().get(Criticals.class).isActive()) { + return !skipCrit(); } return false; } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/KillAuraPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/KillAuraPlus.java index de843fd..3a7bdcd 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/KillAuraPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/KillAuraPlus.java @@ -9,10 +9,9 @@ import meteordevelopment.meteorclient.utils.entity.SortPriority; import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.features.modules.combat.killaura.modes.Matrix; -import net.minecraft.entity.EntityType; +import net.minecraft.world.entity.EntityType; import org.spongepowered.asm.mixin.Unique; -import java.util.ArrayList; import java.util.Set; public class KillAuraPlus extends Module { @@ -128,7 +127,6 @@ public KillAuraPlus() { ); - private KillAuraPlusMode currentMode; private void onModeChanged(KillAuraPlusModes mode) { @@ -136,14 +134,17 @@ private void onModeChanged(KillAuraPlusModes mode) { case Matrix -> currentMode = new Matrix(); } } + @EventHandler private void onTickPre(TickEvent.Pre event) { currentMode.onTickPre(event); } + @EventHandler private void onTickPost(TickEvent.Post event) { currentMode.onTickPost(event); } + @EventHandler private void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/KillAuraPlusMode.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/KillAuraPlusMode.java index 33b9e59..92aaf76 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/KillAuraPlusMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/KillAuraPlusMode.java @@ -3,24 +3,35 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class KillAuraPlusMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final KillAuraPlus settings; private final KillAuraPlusModes type; public KillAuraPlusMode(KillAuraPlusModes type) { this.settings = Modules.get().get(KillAuraPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onActivate() { } - public void onDeactivate() { } - public void onTickPre(TickEvent.Pre event) { } - public void onTickPost(TickEvent.Post event) { } - public void onSendPacket(PacketEvent.Send event) { } + public void onActivate() { + } + + public void onDeactivate() { + } + + public void onTickPre(TickEvent.Pre event) { + } - public String getInfoString() { return ""; } + public void onTickPost(TickEvent.Post event) { + } + + public void onSendPacket(PacketEvent.Send event) { + } + + public String getInfoString() { + return ""; + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/modes/Matrix.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/modes/Matrix.java index 27f0573..e7921a5 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/modes/Matrix.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/killaura/modes/Matrix.java @@ -11,36 +11,33 @@ import nekiplay.meteorplus.features.modules.combat.killaura.KillAuraPlusModes; import nekiplay.meteorplus.utils.GameSensitivityUtils; import nekiplay.meteorplus.utils.math.StopWatch; -import net.minecraft.client.util.math.Vector2f; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.Tameable; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.mob.EndermanEntity; -import net.minecraft.entity.mob.ZombifiedPiglinEntity; -import net.minecraft.entity.passive.AnimalEntity; -import net.minecraft.entity.passive.WolfEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.EntityHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Vec3d; -import org.joml.Vector3d; +import net.minecraft.client.model.geom.builders.UVPair; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.OwnableEntity; +import net.minecraft.world.entity.animal.wolf.Wolf; +import net.minecraft.world.entity.monster.EnderMan; +import net.minecraft.world.entity.monster.zombie.ZombifiedPiglin; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.Vec3; import java.util.ArrayList; -import java.util.Objects; import static nekiplay.meteorplus.features.modules.combat.criticals.CriticalsPlus.allowCrit; import static nekiplay.meteorplus.features.modules.combat.criticals.CriticalsPlus.needCrit; import static nekiplay.meteorplus.utils.RaycastUtils.raycastEntity; -import static net.minecraft.util.math.MathHelper.*; +import static net.minecraft.util.Mth.*; public class Matrix extends KillAuraPlusMode { public Matrix() { super(KillAuraPlusModes.Matrix); } + private final ArrayList targets = new ArrayList<>(); + @Override public void onTickPre(TickEvent.Pre event) { if (target == null || !entityCheck(target)) { @@ -53,24 +50,22 @@ public void onTickPre(TickEvent.Pre event) { if (target != null && target.isAlive()) { isRotated = false; - EntityHitResult result = raycastEntity(settings.range.get(), rotateVector.x(), rotateVector.y(), 0f); + EntityHitResult result = raycastEntity(settings.range.get(), rotateVector.u(), rotateVector.v(), 0f); if (result != null) { ChatUtils.info(result.getType().name()); } if (settings.onlyCrits.get() && !allowCrit() && needCrit(target)) { - } - else if (delayCheck() && result != null && result.getType() == HitResult.Type.ENTITY) { + } else if (delayCheck() && result != null && result.getType() == net.minecraft.world.phys.HitResult.Type.ENTITY) { attack(target); ticks = 2; } - - if (settings.rotationType.get() == Type.Fast) { + if (settings.rotationType.get() == Type.Fast) { if (ticks > 0) { updateRotation(true, 180, 90); - Rotations.rotate(rotateVector.x(), rotateVector.y()); + Rotations.rotate(rotateVector.u(), rotateVector.v()); ticks--; } else { reset(); @@ -78,30 +73,30 @@ else if (delayCheck() && result != null && result.getType() == HitResult.Type.EN } else { if (!isRotated) { updateRotation(false, 80, 35); - Rotations.rotate(rotateVector.x(), rotateVector.y()); + Rotations.rotate(rotateVector.u(), rotateVector.v()); } } - } - else { + } else { reset(); } } private boolean delayCheck() { - return mc.player.getAttackCooldownProgress(0.5f) >= 1; + return mc.player.getAttackStrengthScale(0.5f) >= 1; } private void attack(Entity target) { - mc.interactionManager.attackEntity(mc.player, target); - mc.player.swingHand(Hand.MAIN_HAND); + mc.gameMode.attack(mc.player, target); + mc.player.swing(InteractionHand.MAIN_HAND); } - private boolean entityCheck(Entity entity) { + private boolean entityCheck(Entity entity) { if (entity.equals(mc.player) || entity.equals(mc.getCameraEntity())) return false; - if ((entity instanceof LivingEntity livingEntity && livingEntity.isDead()) || !entity.isAlive()) return false; + if ((entity instanceof LivingEntity livingEntity && livingEntity.isDeadOrDying()) || !entity.isAlive()) + return false; - Box hitbox = entity.getBoundingBox(); + AABB hitbox = entity.getBoundingBox(); if (!PlayerUtils.isWithin( clamp(mc.player.getX(), hitbox.minX, hitbox.maxX), clamp(mc.player.getY(), hitbox.minY, hitbox.maxY), @@ -112,17 +107,17 @@ private boolean entityCheck(Entity entity) { if (!settings.entities.get().contains(entity.getType())) return false; if (!PlayerUtils.canSeeEntity(entity) && !PlayerUtils.isWithin(entity, settings.wallsRange.get())) return false; if (settings.ignoreTamed.get()) { - if (entity instanceof Tameable tameable - && tameable.getOwner().getUuid() != null - && tameable.getOwner().getUuid().equals(mc.player.getUuid()) + if (entity instanceof OwnableEntity tameable + && tameable.getOwner().getUUID() != null + && tameable.getOwner().getUUID().equals(mc.player.getUUID()) ) return false; } if (settings.ignorePassive.get()) { - if (entity instanceof EndermanEntity enderman && !enderman.isAngry()) return false; - if (entity instanceof ZombifiedPiglinEntity piglin && !piglin.isAttacking()) return false; - if (entity instanceof WolfEntity wolf && !wolf.isAttacking()) return false; + if (entity instanceof EnderMan enderman && !enderman.isCreepy()) return false; + if (entity instanceof ZombifiedPiglin piglin && !piglin.isAggressive()) return false; + if (entity instanceof Wolf wolf && !wolf.isAggressive()) return false; } - if (entity instanceof PlayerEntity player) { + if (entity instanceof Player player) { if (player.isCreative()) return false; if (!Friends.get().shouldAttack(player)) return false; if (settings.shieldMode.get() == KillAura.ShieldMode.Ignore && player.isBlocking()) return false; @@ -131,7 +126,7 @@ private boolean entityCheck(Entity entity) { } private final StopWatch stopWatch = new StopWatch(); - private Vector2f rotateVector = new Vector2f(0, 0); + private UVPair rotateVector = new UVPair(0, 0); private LivingEntity target; private Entity selected; float lastYaw, lastPitch; @@ -144,19 +139,18 @@ public enum Type { } - private void updateRotation(boolean attack, float rotationYawSpeed, float rotationPitchSpeed) { - Vec3d vec = target.getEntityPos().add(0, clamp(mc.player.getEyeHeight(mc.player.getPose()) - target.getY(), - 0, target.getHeight() * (mc.player.distanceTo(target) / settings.range.get())), 0) - .subtract(mc.player.getEyePos()); + Vec3 vec = target.position().add(0, clamp(mc.player.getEyeHeight(mc.player.getPose()) - target.getY(), + 0, target.getBbHeight() * (mc.player.distanceTo(target) / settings.range.get())), 0) + .subtract(mc.player.getEyePosition()); isRotated = true; float yawToTarget = (float) wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90); - float pitchToTarget = (float) (-Math.toDegrees(Math.atan2(vec.y, hypot(vec.x, vec.z)))); + float pitchToTarget = (float) (-Math.toDegrees(Math.atan2(vec.y, length(vec.x, vec.z)))); - float yawDelta = (wrapDegrees(yawToTarget - rotateVector.x())); - float pitchDelta = (wrapDegrees(pitchToTarget - rotateVector.y())); + float yawDelta = (wrapDegrees(yawToTarget - rotateVector.u())); + float pitchDelta = (wrapDegrees(pitchToTarget - rotateVector.v())); int roundedYaw = (int) yawDelta; switch (settings.rotationType.get()) { @@ -175,31 +169,31 @@ private void updateRotation(boolean attack, float rotationYawSpeed, float rotati clampedYaw = this.lastYaw + 3.1f; } - float yaw = rotateVector.x() + (yawDelta > 0 ? clampedYaw : -clampedYaw); - float pitch = clamp(rotateVector.y() + (pitchDelta > 0 ? clampedPitch : -clampedPitch), -89.0F, 89.0F); + float yaw = rotateVector.u() + (yawDelta > 0 ? clampedYaw : -clampedYaw); + float pitch = clamp(rotateVector.v() + (pitchDelta > 0 ? clampedPitch : -clampedPitch), -89.0F, 89.0F); float gcd = GameSensitivityUtils.getGCDValue(); - yaw -= (yaw - rotateVector.x()) % gcd; - pitch -= (pitch - rotateVector.y()) % gcd; + yaw -= (yaw - rotateVector.u()) % gcd; + pitch -= (pitch - rotateVector.v()) % gcd; - rotateVector = new Vector2f(yaw, pitch); + rotateVector = new UVPair(yaw, pitch); lastYaw = clampedYaw; lastPitch = clampedPitch; //if (options.getValueByName("Коррекция движения").get()) { - //mc.player.rotationYawOffset = yaw; + //mc.player.rotationYawOffset = yaw; //} } case Fast -> { - float yaw = rotateVector.x() + roundedYaw; - float pitch = clamp(rotateVector.y() + pitchDelta, -90, 90); + float yaw = rotateVector.u() + roundedYaw; + float pitch = clamp(rotateVector.v() + pitchDelta, -90, 90); float gcd = GameSensitivityUtils.getGCDValue(); - yaw -= (yaw - rotateVector.x()) % gcd; - pitch -= (pitch - rotateVector.y()) % gcd; + yaw -= (yaw - rotateVector.u()) % gcd; + pitch -= (pitch - rotateVector.v()) % gcd; - rotateVector = new Vector2f(yaw, pitch); + rotateVector = new UVPair(yaw, pitch); //if (options.getValueByName("Коррекция движения").get()) { // mc.player.rotationYawOffset = yaw; @@ -209,6 +203,6 @@ private void updateRotation(boolean attack, float rotationYawSpeed, float rotati } private void reset() { - rotateVector = new Vector2f(mc.player.getYaw(), mc.player.getPitch()); + rotateVector = new UVPair(mc.player.getYRot(), mc.player.getXRot()); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityMode.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityMode.java index 837cce8..7e5661e 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityMode.java @@ -3,26 +3,38 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class VelocityMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final VelocityPlus settings; private final VelocityModes type; public VelocityMode(VelocityModes type) { - this.settings = Modules.get().get(VelocityPlus.class);; - this.mc = MinecraftClient.getInstance(); + this.settings = Modules.get().get(VelocityPlus.class); + ; + this.mc = Minecraft.getInstance(); this.type = type; } - public void onSendPacket(PacketEvent.Send event) {} - public void onSentPacket(PacketEvent.Sent event) {} - public void onReceivePacket(PacketEvent.Receive event) {} + public void onSendPacket(PacketEvent.Send event) { + } + + public void onSentPacket(PacketEvent.Sent event) { + } - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} + public void onReceivePacket(PacketEvent.Receive event) { + } + + public void onTickEventPre(TickEvent.Pre event) { + } - public void onActivate() {} - public void onDeactivate() {} + public void onTickEventPost(TickEvent.Post event) { + } + + public void onActivate() { + } + + public void onDeactivate() { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityPlus.java index d61ea1b..a3ebcc1 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityPlus.java @@ -2,7 +2,9 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.settings.EnumSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; @@ -14,6 +16,7 @@ public class VelocityPlus extends Module { public VelocityPlus() { super(Categories.Movement, "velocity+", "Bypass velocity."); } + private final SettingGroup settingsGroup = settings.getDefaultGroup(); private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -57,16 +60,19 @@ private void onPreTick(TickEvent.Pre event) { private void onPostTick(TickEvent.Post event) { currentMode.onTickEventPost(event); } + @EventHandler public void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); } + @EventHandler public void onSentPacket(PacketEvent.Sent event) { currentMode.onSentPacket(event); } + @EventHandler - private void onRecivePacket(PacketEvent.Receive event) { + private void onReceivePacket(PacketEvent.Receive event) { currentMode.onReceivePacket(event); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel.java index 97f9fd7..a2280b5 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel.java @@ -4,12 +4,8 @@ import meteordevelopment.meteorclient.utils.network.MeteorExecutor; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityMode; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityModes; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.network.packet.s2c.play.EntityDamageS2CPacket; -import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; -import net.minecraft.network.packet.s2c.play.ExplosionS2CPacket; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.*; public class GrimCancel extends VelocityMode { public GrimCancel() { @@ -32,19 +28,22 @@ public void onDeactivate() { public void onReceivePacket(PacketEvent.Receive event) { Packet packet = event.packet; - if (packet instanceof EntityDamageS2CPacket && ((EntityDamageS2CPacket) packet).entityId() == mc.player.getId()) { + if (packet instanceof ClientboundDamageEventPacket && ((ClientboundDamageEventPacket) packet).entityId() == mc.player.getId()) { canCancel = true; } - if (((packet instanceof EntityVelocityUpdateS2CPacket && ((EntityVelocityUpdateS2CPacket) packet).getEntityId() == mc.player.getId()) || packet instanceof ExplosionS2CPacket) && canCancel) { + if (((packet instanceof ClientboundSetEntityMotionPacket motionPacket && motionPacket.id() == mc.player.getId()) || packet instanceof ClientboundExplodePacket) && canCancel) { event.cancel(); MeteorExecutor.execute(() -> { - try { Thread.sleep(20); } catch (Exception ignore) { } + try { + Thread.sleep(20); + } catch (Exception ignore) { + } - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.Full(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.getYaw(), mc.player.getPitch(), mc.player.isOnGround(), mc.player.horizontalCollision)); - mc.getNetworkHandler().sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, mc.player.getBlockPos(), mc.player.getHorizontalFacing().getOpposite())); + mc.getConnection().send(new ServerboundMovePlayerPacket.PosRot(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.getYRot(), mc.player.getXRot(), mc.player.onGround(), mc.player.horizontalCollision)); + mc.getConnection().send(new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.STOP_DESTROY_BLOCK, mc.player.blockPosition(), mc.player.getDirection().getOpposite())); canCancel = false; - }); + }); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel_v2.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel_v2.java index c52ba82..0fb3dd5 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel_v2.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel_v2.java @@ -3,14 +3,9 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityMode; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityModes; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; -import net.minecraft.network.packet.s2c.play.ExplosionS2CPacket; -import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; +import net.minecraft.core.Direction; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.*; public class GrimCancel_v2 extends VelocityMode { public GrimCancel_v2() { @@ -37,11 +32,10 @@ public void onDeactivate() { public void onReceivePacket(PacketEvent.Receive event) { Packet packet = event.packet; - if (((packet instanceof EntityVelocityUpdateS2CPacket && ((EntityVelocityUpdateS2CPacket) packet).getEntityId() == mc.player.getId()) || packet instanceof ExplosionS2CPacket) && canCancel) { + if (((packet instanceof ClientboundSetEntityMotionPacket motionPacket && motionPacket.id() == mc.player.getId()) || packet instanceof ClientboundExplodePacket) && canCancel) { event.cancel(); canCancel = true; - } - else if (packet instanceof PlayerPositionLookS2CPacket) { + } else if (packet instanceof ClientboundPlayerPositionPacket) { skip = 3; } } @@ -50,12 +44,12 @@ else if (packet instanceof PlayerPositionLookS2CPacket) { public void onSendPacket(PacketEvent.Send event) { Packet packet = event.packet; - if (packet instanceof PlayerMoveC2SPacket) { + if (packet instanceof ServerboundMovePlayerPacket) { skip--; if (canCancel) { if (skip <= 0) { - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.Full(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.getYaw(), mc.player.getPitch(), mc.player.isOnGround(), mc.player.horizontalCollision)); - mc.getNetworkHandler().sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, mc.player.getBlockPos(), Direction.UP)); + mc.getConnection().send(new ServerboundMovePlayerPacket.PosRot(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.getYRot(), mc.player.getXRot(), mc.player.onGround(), mc.player.horizontalCollision)); + mc.getConnection().send(new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.STOP_DESTROY_BLOCK, mc.player.blockPosition(), Direction.UP)); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimSkip.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimSkip.java index 5a4915f..90c9fd8 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimSkip.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimSkip.java @@ -3,11 +3,11 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityMode; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityModes; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.network.packet.s2c.play.EntityDamageS2CPacket; -import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; -import net.minecraft.network.packet.s2c.play.ExplosionS2CPacket; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientboundDamageEventPacket; +import net.minecraft.network.protocol.game.ClientboundExplodePacket; +import net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; public class GrimSkip extends VelocityMode { public GrimSkip() { @@ -33,10 +33,10 @@ public void onDeactivate() { @Override public void onReceivePacket(PacketEvent.Receive event) { Packet packet = event.packet; - if (packet instanceof EntityDamageS2CPacket && ((EntityDamageS2CPacket) packet).entityId() == mc.player.getId()) { + if (packet instanceof ClientboundDamageEventPacket && ((ClientboundDamageEventPacket) packet).entityId() == mc.player.getId()) { canCancel = true; } - if (((packet instanceof EntityVelocityUpdateS2CPacket && ((EntityVelocityUpdateS2CPacket) packet).getEntityId() == mc.player.getId()) || packet instanceof ExplosionS2CPacket) && canCancel) { + if (((packet instanceof ClientboundSetEntityMotionPacket motionPacket && motionPacket.id() == mc.player.getId()) || packet instanceof ClientboundExplodePacket) && canCancel) { skip = 6; event.cancel(); } @@ -46,7 +46,7 @@ public void onReceivePacket(PacketEvent.Receive event) { public void onSendPacket(PacketEvent.Send event) { Packet packet = event.packet; - if (packet instanceof PlayerMoveC2SPacket) { + if (packet instanceof ServerboundMovePlayerPacket) { if (skip > 0) { skip--; event.cancel(); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/integrations/MapIntegration.java b/src/main/java/nekiplay/meteorplus/features/modules/integrations/MapIntegration.java index b684a1d..655ac52 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/integrations/MapIntegration.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/integrations/MapIntegration.java @@ -6,8 +6,8 @@ import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; -import nekiplay.meteorplus.MeteorPlusAddon; import nekiplay.MixinPlugin; +import nekiplay.meteorplus.MeteorPlusAddon; public class MapIntegration extends Module { public MapIntegration() { @@ -48,7 +48,7 @@ public MapIntegration() { public final Setting showBlock = fullMap.add(new BoolSetting.Builder() .name("Show block") .description("Shows the name of the block in the clicked position.") - .visible(() -> MixinPlugin.isXaeroWorldMapresent) + .visible(() -> MixinPlugin.isXaeroWorldMapPresent) .defaultValue(true) .build() ); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/integrations/WhereIsIt.java b/src/main/java/nekiplay/meteorplus/features/modules/integrations/WhereIsIt.java index 257a39c..b5c1e9a 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/integrations/WhereIsIt.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/integrations/WhereIsIt.java @@ -18,7 +18,7 @@ public WhereIsIt() { .build() ); - public final Setting suport_color_symbols = defaultGroup.add(new BoolSetting.Builder() + public final Setting support_color_symbols = defaultGroup.add(new BoolSetting.Builder() .name("use-color-symbols") .defaultValue(true) .build() @@ -26,7 +26,7 @@ public WhereIsIt() { public final Setting text_color = defaultGroup.add(new ColorSetting.Builder() .name("text-color") - .visible(() -> !suport_color_symbols.get()) + .visible(() -> !support_color_symbols.get()) .build() ); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/misc/AutoAccept.java b/src/main/java/nekiplay/meteorplus/features/modules/misc/AutoAccept.java index b7183b6..414d67a 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/misc/AutoAccept.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/misc/AutoAccept.java @@ -32,7 +32,7 @@ public AutoAccept() { .name("Pattern command") .description("Custom pattern.") .defaultValue(".*Игрок (.*) просит телепортироваться к вам!.*") - .visible(() -> mode.get() == Mode.Custom) + .visible(() -> mode.get() == Mode.Custom) .build() ); @@ -65,14 +65,14 @@ public AutoAccept() { .build() ); - private final Setting Debug = AASettings.add(new BoolSetting.Builder() + private final Setting Debug = AASettings.add(new BoolSetting.Builder() .name("Debug") .description("Prints all incoming messages in console (raw format).") .defaultValue(false) .build() ); - public enum Mode - { + + public enum Mode { Auto, Custom } @@ -94,6 +94,7 @@ public void onActivate() { patterns.add(DonutSMP); } + @Override public void onDeactivate() { patterns.clear(); @@ -119,18 +120,16 @@ private void Accept(String username, TPPattern pattern, String message) { info("Accepting request from " + "§c" + username); ChatUtils.sendPlayerMsg(accept_command.get().replace("{username}", username)); } - } - else { + } else { BetterAccept(username, pattern); } } @EventHandler() - public void onMessageRecieve(ReceiveMessageEvent event) { + public void onMessageReceive(ReceiveMessageEvent event) { if (event.getMessage() != null && mc.player != null) { String message = ColorRemover.GetVerbatim(event.getMessage().getString()); - if (Debug.get()) - { + if (Debug.get()) { MeteorPlusAddon.LOG.info(message); } Thread th = new Thread(() -> { @@ -144,8 +143,7 @@ public void onMessageRecieve(ReceiveMessageEvent event) { e.printStackTrace(); } Accept(nickname, pattern, message); - } - else { + } else { nickname = getName(custom, message); if (!nickname.equals("")) { try { @@ -172,8 +170,7 @@ private String getName(String message) { return nickname; } - private String getName(TPPattern tpPattern, String message) - { + private String getName(TPPattern tpPattern, String message) { String nickname = ""; Pattern pattern = Pattern.compile(tpPattern.pattern); Matcher matcher = pattern.matcher(message); @@ -186,8 +183,7 @@ private String getName(TPPattern tpPattern, String message) return nickname; } - private TPPattern getPattern(String message) - { + private TPPattern getPattern(String message) { for (TPPattern tpPattern : patterns) { Pattern pattern = Pattern.compile(tpPattern.pattern); Matcher matcher = pattern.matcher(message); @@ -201,8 +197,7 @@ private TPPattern getPattern(String message) return null; } - private boolean isFriend(String username) - { + private boolean isFriend(String username) { Friends friends = Friends.get(); var it = friends.iterator(); while (it.hasNext()) { @@ -213,14 +208,12 @@ private boolean isFriend(String username) return false; } - private static class TPPattern - { + private static class TPPattern { public String pattern; public int group; public String command; - public TPPattern(String pattern, int group, String command) - { + public TPPattern(String pattern, int group, String command) { this.pattern = pattern; this.group = group; this.command = command; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/misc/ChatPrefix.java b/src/main/java/nekiplay/meteorplus/features/modules/misc/ChatPrefix.java index edcbdec..61a9e0f 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/misc/ChatPrefix.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/misc/ChatPrefix.java @@ -8,16 +8,16 @@ import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.ChatUtils; import meteordevelopment.meteorclient.utils.render.color.SettingColor; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.text.MutableText; -import net.minecraft.text.Text; -import net.minecraft.text.TextColor; -import net.minecraft.util.Formatting; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.chat.TextColor; public class ChatPrefix extends Module { public ChatPrefix() { super(Categories.Misc, "meteor+-chat-prefix", "prefix for enabling and disabling Meteor+ modules."); } + private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final Setting prefix = sgGeneral.add(new StringSetting.Builder() .name("prefix") @@ -50,14 +50,14 @@ public void setPrefixes() { } } - public Text getPrefix() { - MutableText value = Text.literal(prefix.get()); - MutableText prefix = Text.literal(""); + public Component getPrefix() { + MutableComponent value = Component.literal(prefix.get()); + MutableComponent prefix = Component.literal(""); value.setStyle(value.getStyle().withColor(TextColor.fromRgb(prefixColor.get().getPacked()))); - prefix.setStyle(prefix.getStyle().withFormatting(Formatting.GRAY)) - .append(Text.literal("[")) + prefix.setStyle(prefix.getStyle().applyFormat(ChatFormatting.GRAY)) + .append(Component.literal("[")) .append(value) - .append(Text.literal("] ")); + .append(Component.literal("] ")); return prefix; } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/misc/CordinateProtector.java b/src/main/java/nekiplay/meteorplus/features/modules/misc/CoordinateProtector.java similarity index 69% rename from src/main/java/nekiplay/meteorplus/features/modules/misc/CordinateProtector.java rename to src/main/java/nekiplay/meteorplus/features/modules/misc/CoordinateProtector.java index ede523d..a53e37f 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/misc/CordinateProtector.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/misc/CoordinateProtector.java @@ -6,19 +6,19 @@ import nekiplay.main.events.hud.DebugDrawTextEvent; import nekiplay.meteorplus.mixinclasses.SpoofMode; import nekiplay.meteorplus.settings.ConfigModifier; -import net.minecraft.util.Formatting; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.util.math.ChunkSectionPos; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.SectionPos; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; import java.util.List; import java.util.Locale; import static meteordevelopment.meteorclient.MeteorClient.mc; -public class CordinateProtector { +public class CoordinateProtector { @EventHandler private void onDebugF3RenderText(DebugDrawTextEvent event) { List lines = event.getLines(); @@ -36,8 +36,8 @@ private void onDebugF3RenderText(DebugDrawTextEvent event) { lines.set(index, "XYZ: *** / *** / ***"); } } else if (str.startsWith("Block: ")) { - BlockPos blockPos = mc.getCameraEntity().getBlockPos(); - blockPos = blockPos.add(ConfigModifier.get().x_spoof.get(), 0, ConfigModifier.get().z_spoof.get()); + BlockPos blockPos = mc.getCameraEntity().blockPosition(); + blockPos = blockPos.offset(ConfigModifier.get().x_spoof.get(), 0, ConfigModifier.get().z_spoof.get()); String block = String.format(Locale.ROOT, "Block: %d %d %d", blockPos.getX(), blockPos.getY(), blockPos.getZ()); if (ConfigModifier.get().spoofMode.get() == SpoofMode.Fake) { @@ -46,23 +46,23 @@ private void onDebugF3RenderText(DebugDrawTextEvent event) { lines.set(index, "Block: *** *** ***"); } } else if (str.startsWith("Chunk:")) { - BlockPos blockPos = mc.getCameraEntity().getBlockPos(); - blockPos = blockPos.add(ConfigModifier.get().x_spoof.get(), 0, ConfigModifier.get().z_spoof.get()); - ChunkPos chunkPos = new ChunkPos(blockPos); + BlockPos blockPos = mc.getCameraEntity().blockPosition(); + blockPos = blockPos.offset(ConfigModifier.get().x_spoof.get(), 0, ConfigModifier.get().z_spoof.get()); + ChunkPos chunkPos = ChunkPos.containing(blockPos); if (ConfigModifier.get().spoofMode.get() == SpoofMode.Fake) { - String chunk = String.format(Locale.ROOT, "Chunk: %d %d %d [%d %d in r.%d.%d.mca]", chunkPos.x, ChunkSectionPos.getSectionCoord(blockPos.getY()), chunkPos.z, chunkPos.getRegionRelativeX(), chunkPos.getRegionRelativeZ(), chunkPos.getRegionX(), chunkPos.getRegionZ()); + String chunk = String.format(Locale.ROOT, "Chunk: %d %d %d [%d %d in r.%d.%d.mca]", chunkPos.x(), SectionPos.blockToSectionCoord(blockPos.getY()), chunkPos.z(), chunkPos.getRegionLocalX(), chunkPos.getRegionLocalZ(), chunkPos.getRegionX(), chunkPos.getRegionZ()); lines.set(index, chunk); } else if (ConfigModifier.get().spoofMode.get() == SpoofMode.Sensor) { lines.set(index, "Chunk: *** *** *** [*** *** in ***.***.mca]"); } } else if (str.contains("Targeted Block:")) { - HitResult blockHitResult = mc.player.raycast(Modules.get().get(Reach.class).blockReach(), 1f, false); + HitResult blockHitResult = mc.player.pick(Modules.get().get(Reach.class).blockReach(), 1f, false); if (blockHitResult != null && blockHitResult.getType() == HitResult.Type.BLOCK) { - Formatting var10001 = Formatting.UNDERLINE; + ChatFormatting var10001 = ChatFormatting.UNDERLINE; BlockPos blockPos = ((BlockHitResult) blockHitResult).getBlockPos(); - blockPos = blockPos.add(ConfigModifier.get().x_spoof.get(), 0, ConfigModifier.get().z_spoof.get()); + blockPos = blockPos.offset(ConfigModifier.get().x_spoof.get(), 0, ConfigModifier.get().z_spoof.get()); if (ConfigModifier.get().spoofMode.get() == SpoofMode.Fake) { lines.set(index, "" + var10001 + "Targeted Block: " + blockPos.getX() + ", " + blockPos.getY() + ", " + blockPos.getZ()); } else if (ConfigModifier.get().spoofMode.get() == SpoofMode.Sensor) { @@ -70,12 +70,12 @@ private void onDebugF3RenderText(DebugDrawTextEvent event) { } } } else if (str.contains("Targeted Fluid:")) { - HitResult blockHitResult = mc.player.raycast(Modules.get().get(Reach.class).blockReach(), 1f, true); + HitResult blockHitResult = mc.player.pick(Modules.get().get(Reach.class).blockReach(), 1f, true); if (blockHitResult != null && blockHitResult.getType() == HitResult.Type.BLOCK) { - Formatting var10001 = Formatting.UNDERLINE; + ChatFormatting var10001 = ChatFormatting.UNDERLINE; BlockPos blockPos = ((BlockHitResult) blockHitResult).getBlockPos(); - blockPos = blockPos.add(ConfigModifier.get().x_spoof.get(), 0, ConfigModifier.get().z_spoof.get()); + blockPos = blockPos.offset(ConfigModifier.get().x_spoof.get(), 0, ConfigModifier.get().z_spoof.get()); if (ConfigModifier.get().spoofMode.get() == SpoofMode.Fake) { lines.set(index, "" + var10001 + "Targeted Fluid: " + blockPos.getX() + ", " + blockPos.getY() + ", " + blockPos.getZ()); } else if (ConfigModifier.get().spoofMode.get() == SpoofMode.Sensor) { diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/Freeze.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/Freeze.java index 35f1542..35744c6 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/Freeze.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/Freeze.java @@ -12,14 +12,14 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.math.Vec3d; -import nekiplay.meteorplus.MeteorPlusAddon; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.phys.Vec3; public class Freeze extends Module { public Freeze() { super(Categories.Movement, "Freeze", "Freezes your position for server."); } + private final SettingGroup FSettings = settings.getDefaultGroup(); private final Setting FreezeLook = FSettings.add(new BoolSetting.Builder() @@ -46,7 +46,7 @@ public Freeze() { private final Setting FreezeLookPlace = FSettings.add(new BoolSetting.Builder() .name("Freeze look place support") - .description("Unfreez you yaw and pitch on place") + .description("Unfreeze you yaw and pitch on place") .defaultValue(false) .visible(FreezeLookSilent::get) .build() @@ -54,50 +54,47 @@ public Freeze() { private float yaw = 0; private float pitch = 0; - private Vec3d position = Vec3d.ZERO; + private Vec3 position = Vec3.ZERO; @Override() public void onActivate() { - if (mc.player != null){ - yaw = mc.player.getYaw(); - pitch = mc.player.getPitch(); - position = mc.player.getEntityPos(); + if (mc.player != null) { + yaw = mc.player.getYRot(); + pitch = mc.player.getXRot(); + position = mc.player.position(); } } private boolean rotate = false; - private void setFreezeLook(PacketEvent.Send event, PlayerMoveC2SPacket playerMove) - { - if (playerMove.changesLook() && FreezeLook.get() && FreezeLookSilent.get() && !rotate) { + private void setFreezeLook(PacketEvent.Send event, ServerboundMovePlayerPacket playerMove) { + if (playerMove.hasRotation() && FreezeLook.get() && FreezeLookSilent.get() && !rotate) { event.setCancelled(true); - } - else if (mc.player != null && playerMove.changesLook() && FreezeLook.get() && !FreezeLookSilent.get()) { + } else if (mc.player != null && playerMove.hasRotation() && FreezeLook.get() && !FreezeLookSilent.get()) { event.setCancelled(true); - mc.player.setYaw(yaw); - mc.player.setPitch(pitch); + mc.player.setYRot(yaw); + mc.player.setXRot(pitch); } - if (mc.player != null && playerMove.changesPosition()) { - mc.player.setVelocity(0, 0, 0); - mc.player.setPos(position.x, position.y, position.z); + if (mc.player != null && playerMove.hasPosition()) { + mc.player.setDeltaMovement(0, 0, 0); + mc.player.setPosRaw(position.x, position.y, position.z); event.setCancelled(true); } } @EventHandler - private void InteractBlockEvent(InteractBlockEvent event) - { - if (mc.player != null && mc.getNetworkHandler() != null && FreezeLookPlace.get()) { - PlayerMoveC2SPacket.LookAndOnGround r = new PlayerMoveC2SPacket.LookAndOnGround(mc.player.getYaw(), mc.player.getPitch(), mc.player.isOnGround(), mc.player.horizontalCollision); + private void InteractBlockEvent(InteractBlockEvent event) { + if (mc.player != null && mc.getConnection() != null && FreezeLookPlace.get()) { + ServerboundMovePlayerPacket.Rot r = new ServerboundMovePlayerPacket.Rot(mc.player.getYRot(), mc.player.getXRot(), mc.player.onGround(), mc.player.horizontalCollision); rotate = true; - mc.getNetworkHandler().sendPacket(r); + mc.getConnection().send(r); rotate = false; } } @EventHandler private void onMovePacket(PacketEvent.Send event) { - if (event.packet instanceof PlayerMoveC2SPacket playerMove) { + if (event.packet instanceof ServerboundMovePlayerPacket playerMove) { if (Packet.get()) { setFreezeLook(event, playerMove); } @@ -112,19 +109,19 @@ private void connectToServerEvent(GameLeftEvent event) { @EventHandler private void onTick(TickEvent.Pre event) { if (mc.player != null) { - mc.player.setVelocity(0, 0, 0); - mc.player.setPos(position.x, position.y, position.z); + mc.player.setDeltaMovement(0, 0, 0); + mc.player.setPosRaw(position.x, position.y, position.z); } } + @EventHandler private void onPlayerMove(PlayerMoveEvent event) { - event.movement = new Vec3d(0, 0, 0); + event.movement = new Vec3(0, 0, 0); } + @EventHandler - private void remove(EntityRemovedEvent event) - { - if (event.entity == mc.player) - { + private void remove(EntityRemovedEvent event) { + if (event.entity == mc.player) { if (isActive()) { toggle(); } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/NoJumpDelay.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/NoJumpDelay.java index 3546f9f..962df89 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/NoJumpDelay.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/NoJumpDelay.java @@ -2,7 +2,6 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; -import nekiplay.meteorplus.MeteorPlusAddon; public class NoJumpDelay extends Module { public NoJumpDelay() { diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/ElytraFlyMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/ElytraFlyMode.java index 3be090d..1d052f7 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/ElytraFlyMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/ElytraFlyMode.java @@ -3,11 +3,11 @@ import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; -import net.minecraft.util.math.Vec3d; +import net.minecraft.client.Minecraft; +import net.minecraft.world.phys.Vec3; public class ElytraFlyMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final ElytraFlyPlus elytraFly; private final ElytraFlyModes type; @@ -17,12 +17,12 @@ public class ElytraFlyMode { protected int jumpTimer; protected double velX, velY, velZ; protected double ticksLeft; - protected Vec3d forward, right; + protected Vec3 forward, right; protected double acceleration; public ElytraFlyMode(ElytraFlyModes type) { this.elytraFly = Modules.get().get(ElytraFlyPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } @@ -53,8 +53,6 @@ public void onDeactivate() { } - - public String getHudString() { return type.name(); } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/ElytraFlyPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/ElytraFlyPlus.java index 1bd6380..1b045bc 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/ElytraFlyPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/ElytraFlyPlus.java @@ -3,17 +3,17 @@ import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.features.modules.movement.elytrafly.modes.Control; import nekiplay.meteorplus.features.modules.movement.elytrafly.modes.Wasp; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.RaycastContext; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; public class ElytraFlyPlus extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -164,12 +164,12 @@ public void onDeactivate() { private void onPlayerMove(PlayerMoveEvent event) { currentMode.onPlayerMove(event); - if (noCrash.get() && mc.player.isGliding()) { - Vec3d lookAheadPos = mc.player.getEntityPos().add(mc.player.getVelocity().normalize().multiply(crashLookAhead.get())); - RaycastContext raycastContext = new RaycastContext(mc.player.getEntityPos(), new Vec3d(lookAheadPos.getX(), mc.player.getY(), lookAheadPos.getZ()), RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, mc.player); - BlockHitResult hitResult = mc.world.raycast(raycastContext); + if (noCrash.get() && mc.player.isFallFlying()) { + Vec3 lookAheadPos = mc.player.position().add(mc.player.getDeltaMovement().normalize().scale(crashLookAhead.get())); + ClipContext raycastContext = new ClipContext(mc.player.position(), new Vec3(lookAheadPos.x(), mc.player.getY(), lookAheadPos.z()), ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, mc.player); + BlockHitResult hitResult = mc.level.clip(raycastContext); if (hitResult != null && hitResult.getType() == HitResult.Type.BLOCK) { - ((IVec3d) event.movement).meteor$set(0, currentMode.velY, 0); + ((IVec3) event.movement).meteor$set(0, currentMode.velY, 0); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/modes/Control.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/modes/Control.java index de25e1c..30fc6f4 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/modes/Control.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/modes/Control.java @@ -1,30 +1,33 @@ package nekiplay.meteorplus.features.modules.movement.elytrafly.modes; import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import nekiplay.meteorplus.features.modules.movement.elytrafly.ElytraFlyMode; import nekiplay.meteorplus.features.modules.movement.elytrafly.ElytraFlyModes; -import net.minecraft.entity.EntityPose; public class Control extends ElytraFlyMode { public Control() { super(ElytraFlyModes.Control); } + private boolean moving; private float yaw; private float pitch; private float p; private double velocity; + @Override public void onPlayerMove(PlayerMoveEvent event) { - if (!mc.player.isGliding()) {return;} + if (!mc.player.isFallFlying()) { + return; + } updateControlMovement(); pitch = 0; boolean movingUp = false; - if (!mc.options.sneakKey.isPressed() && mc.options.jumpKey.isPressed() && velocity > elytraFly.speed_control.get() * 0.4) { + if (!mc.options.keyShift.isDown() && mc.options.keyJump.isDown() && velocity > elytraFly.speed_control.get() * 0.4) { p = (float) Math.min(p + 0.1 * (1 - p) * (1 - p) * (1 - p), 1f); pitch = Math.max(Math.max(p, 0) * -90, -90); @@ -45,23 +48,23 @@ public void onPlayerMove(PlayerMoveEvent event) { double y = pitch < 0 ? velocity * elytraFly.upMultiplier_control.get() * -Math.sin(Math.toRadians(pitch)) * velocity : -elytraFly.fallSpeed_control.get(); double z = moving && !movingUp ? sin * elytraFly.speed_control.get() : movingUp ? velocity * Math.cos(Math.toRadians(pitch)) * sin : 0; - y *= Math.abs(Math.sin(Math.toRadians(movingUp ? pitch : mc.player.getPitch()))); + y *= Math.abs(Math.sin(Math.toRadians(movingUp ? pitch : mc.player.getXRot()))); - if (mc.options.sneakKey.isPressed() && !mc.options.jumpKey.isPressed()) { + if (mc.options.keyShift.isDown() && !mc.options.keyJump.isDown()) { y = -elytraFly.downSpeed_control.get(); } - ((IVec3d) event.movement).meteor$set(x, y, z); + ((IVec3) event.movement).meteor$set(x, y, z); if (elytraFly.resetSpeed.get()) { - mc.player.setVelocity(0, 0, 0); + mc.player.setDeltaMovement(0, 0, 0); } } private void updateControlMovement() { - float yaw = mc.player.getYaw(); + float yaw = mc.player.getYRot(); - float forward = mc.player.input.getMovementInput().y; - float sideways = mc.player.input.getMovementInput().x; + float forward = mc.player.input.getMoveVector().y; + float sideways = mc.player.input.getMoveVector().x; if (forward > 0) { moving = true; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/modes/Wasp.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/modes/Wasp.java index 10dd784..85cc5ac 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/modes/Wasp.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/elytrafly/modes/Wasp.java @@ -1,7 +1,7 @@ package nekiplay.meteorplus.features.modules.movement.elytrafly.modes; import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import nekiplay.meteorplus.features.modules.movement.elytrafly.ElytraFlyMode; import nekiplay.meteorplus.features.modules.movement.elytrafly.ElytraFlyModes; @@ -16,10 +16,12 @@ public Wasp() { @Override public void onPlayerMove(PlayerMoveEvent event) { - if (!mc.player.isGliding()) {return;} + if (!mc.player.isFallFlying()) { + return; + } updateWaspMovement(); - pitch = mc.player.getPitch(); + pitch = mc.player.getXRot(); double cos = Math.cos(Math.toRadians(yaw + 90)); double sin = Math.sin(Math.toRadians(yaw + 90)); @@ -32,25 +34,25 @@ public void onPlayerMove(PlayerMoveEvent event) { y *= Math.abs(Math.sin(Math.toRadians(pitch))); } - if (mc.options.sneakKey.isPressed() && !mc.options.jumpKey.isPressed()) { + if (mc.options.keyShift.isDown() && !mc.options.keyJump.isDown()) { y = -elytraFly.down_wasp.get(); } - if (!mc.options.sneakKey.isPressed() && mc.options.jumpKey.isPressed()) { + if (!mc.options.keyShift.isDown() && mc.options.keyJump.isDown()) { y = elytraFly.up_wasp.get(); } - ((IVec3d) event.movement).meteor$set(x, y, z); + ((IVec3) event.movement).meteor$set(x, y, z); if (elytraFly.resetSpeed.get()) { - mc.player.setVelocity(0, 0, 0); + mc.player.setDeltaMovement(0, 0, 0); } } private void updateWaspMovement() { - float yaw = mc.player.getYaw(); + float yaw = mc.player.getYRot(); - float forward = mc.player.input.getMovementInput().y; - float sideways = mc.player.input.getMovementInput().x; + float forward = mc.player.input.getMoveVector().y; + float sideways = mc.player.input.getMoveVector().x; if (forward > 0) { moving = true; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/FastLadderMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/FastLadderMode.java index c0a761a..1cd12ee 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/FastLadderMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/FastLadderMode.java @@ -3,25 +3,34 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class FastLadderMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final FastLadderPlus settings; private final FastLadderModes type; public FastLadderMode(FastLadderModes type) { this.settings = Modules.get().get(FastLadderPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onSendPacket(PacketEvent.Send event) {} - public void onSentPacket(PacketEvent.Sent event) {} + public void onSendPacket(PacketEvent.Send event) { + } - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} + public void onSentPacket(PacketEvent.Sent event) { + } - public void onActivate() {} - public void onDeactivate() {} + public void onTickEventPre(TickEvent.Pre event) { + } + + public void onTickEventPost(TickEvent.Post event) { + } + + public void onActivate() { + } + + public void onDeactivate() { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/FastLadderPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/FastLadderPlus.java index f61b591..cf4c8b7 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/FastLadderPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/FastLadderPlus.java @@ -15,6 +15,7 @@ public FastLadderPlus() { super(Categories.Movement, "fast-climb+", "Bypass fast-climb"); onSpiderModeChanged(spiderMode.get()); } + private final SettingGroup sgGeneral = settings.getDefaultGroup(); public final Setting spiderMode = sgGeneral.add(new EnumSetting.Builder() @@ -47,10 +48,12 @@ private void onPreTick(TickEvent.Pre event) { private void onPostTick(TickEvent.Post event) { currentMode.onTickEventPost(event); } + @EventHandler public void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); } + @EventHandler public void onSentPacket(PacketEvent.Sent event) { currentMode.onSentPacket(event); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/modes/Spartan.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/modes/Spartan.java index 60cd3f7..eabd391 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/modes/Spartan.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/fastladder/modes/Spartan.java @@ -2,16 +2,15 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.math.Vec3d; +import meteordevelopment.meteorclient.mixin.ServerboundMovePlayerPacketAccessor; import nekiplay.meteorplus.features.modules.movement.fastladder.FastLadderMode; import nekiplay.meteorplus.features.modules.movement.fastladder.FastLadderModes; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; public class Spartan extends FastLadderMode { public Spartan() { @@ -34,7 +33,7 @@ public void onActivate() { modify = false; assert mc.player != null; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; } private boolean YGround(double height, double min, double max) { @@ -62,25 +61,25 @@ public void onSentPacket(PacketEvent.Sent event) { private void work(Packet packet) { if (modify) { - if (packet instanceof PlayerMoveC2SPacket move) { + if (packet instanceof ServerboundMovePlayerPacket move) { assert mc.player != null; double y = mc.player.getY(); y = move.getY(y); if (YGround(y, RGround(startY) - 0.1, RGround(startY) + 0.1)) { - ((PlayerMoveC2SPacketAccessor) packet).meteor$setOnGround(true); + ((ServerboundMovePlayerPacketAccessor) packet).meteor$setOnGround(true); } - if (mc.player.isOnGround() && block) { + if (mc.player.onGround() && block) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; } } } else { assert mc.player != null; - if (mc.player.isOnGround() && block) { + if (mc.player.onGround() && block) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; } } @@ -91,8 +90,8 @@ private void work(Packet packet) { @Override public void onTickEventPre(TickEvent.Pre event) { if (modify) { - ClientPlayerEntity player = mc.player; - double y = player.getEntityPos().y; + LocalPlayer player = mc.player; + double y = player.position().y; if (lastY == y && tick > 1) { block = true; } else { @@ -104,35 +103,35 @@ public void onTickEventPre(TickEvent.Pre event) { @Override public void onTickEventPost(TickEvent.Post event) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; - Vec3d pl_velocity = player.getVelocity(); - Vec3d pos = player.getEntityPos(); - ClientPlayNetworkHandler h = mc.getNetworkHandler(); - BlockState state = mc.world.getBlockState(player.getBlockPos()); - BlockState state2 = mc.world.getBlockState(player.getBlockPos().add(0, 1, 0)); - if (mc.player.isClimbing()) { - modify = player.horizontalCollision && player.isHoldingOntoLadder(); - if (mc.player.isOnGround()) { + Vec3 pl_velocity = player.getDeltaMovement(); + Vec3 pos = player.position(); + ClientPacketListener h = mc.getConnection(); + BlockState state = mc.level.getBlockState(player.blockPosition()); + BlockState state2 = mc.level.getBlockState(player.blockPosition().offset(0, 1, 0)); + if (mc.player.onClimbable()) { + modify = player.horizontalCollision && player.isSuppressingSlidingDownLadder(); + if (mc.player.onGround()) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; } if (player.horizontalCollision) { if (!start) { start = true; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; lastY = mc.player.getY(); } if (!block) { if (tick == 0) { - mc.player.setVelocity(pl_velocity.x, 0.41999998688698, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.41999998688698, pl_velocity.z); tick = 1; } else if (tick == 1) { - mc.player.setVelocity(pl_velocity.x, 0.41999998688698 - 0.08679999325 - coff, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.41999998688698 - 0.08679999325 - coff, pl_velocity.z); tick = 2; } else if (tick == 2) { - mc.player.setVelocity(pl_velocity.x, 0.41999998688698 - 0.17186398826 - coff, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.41999998688698 - 0.17186398826 - coff, pl_velocity.z); tick = 0; } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/FlyMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/FlyMode.java index a0a90fd..55bbc44 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/FlyMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/FlyMode.java @@ -7,31 +7,49 @@ import meteordevelopment.meteorclient.events.world.CollisionShapeEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class FlyMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final FlyPlus settings; private final FlyModes type; public FlyMode(FlyModes type) { this.settings = Modules.get().get(FlyPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onSendPacket(PacketEvent.Send event) {} - public void onSentPacket(PacketEvent.Sent event) {} - public void onRecivePacket(PacketEvent.Receive event) {} - public void onPlayerMoveEvent(PlayerMoveEvent event) {} - public void onPlayerMoveSendPre(SendMovementPacketsEvent.Pre event) {} + public void onSendPacket(PacketEvent.Send event) { + } + + public void onSentPacket(PacketEvent.Sent event) { + } + + public void onReceivePacket(PacketEvent.Receive event) { + } + + public void onPlayerMoveEvent(PlayerMoveEvent event) { + } + + public void onPlayerMoveSendPre(SendMovementPacketsEvent.Pre event) { + } - public void onCanWalkOnFluid(CanWalkOnFluidEvent event) {} - public void onCollisionShape(CollisionShapeEvent event) {} + public void onCanWalkOnFluid(CanWalkOnFluidEvent event) { + } - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} + public void onCollisionShape(CollisionShapeEvent event) { + } - public void onActivate() {} - public void onDeactivate() {} + public void onTickEventPre(TickEvent.Pre event) { + } + + public void onTickEventPost(TickEvent.Post event) { + } + + public void onActivate() { + } + + public void onDeactivate() { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/FlyPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/FlyPlus.java index a013582..20122cf 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/FlyPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/FlyPlus.java @@ -12,7 +12,9 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.features.modules.movement.fly.modes.*; +import nekiplay.meteorplus.features.modules.movement.fly.modes.MatrixExploit; +import nekiplay.meteorplus.features.modules.movement.fly.modes.MatrixExploit2; +import nekiplay.meteorplus.features.modules.movement.fly.modes.VulcanClip; public class FlyPlus extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -96,24 +98,27 @@ private void onPreTick(TickEvent.Pre event) { private void onPostTick(TickEvent.Post event) { currentMode.onTickEventPost(event); } + @EventHandler public void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); } + @EventHandler public void onSentPacket(PacketEvent.Sent event) { currentMode.onSentPacket(event); } @EventHandler - public void onRecivePacket(PacketEvent.Receive event) { - currentMode.onRecivePacket(event); + public void onReceivePacket(PacketEvent.Receive event) { + currentMode.onReceivePacket(event); } @EventHandler public void onCanWalkOnFluid(CanWalkOnFluidEvent event) { currentMode.onCanWalkOnFluid(event); } + @EventHandler public void onCollisionShape(CollisionShapeEvent event) { currentMode.onCollisionShape(event); @@ -123,6 +128,7 @@ public void onCollisionShape(CollisionShapeEvent event) { private void onPlayerMoveEvent(PlayerMoveEvent event) { currentMode.onPlayerMoveEvent(event); } + @EventHandler private void onPlayerMoveSendPre(SendMovementPacketsEvent.Pre event) { currentMode.onPlayerMoveSendPre(event); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/MatrixExploit.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/MatrixExploit.java index 755f86c..9a882cf 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/MatrixExploit.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/MatrixExploit.java @@ -2,19 +2,19 @@ import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.movement.Anchor; import meteordevelopment.meteorclient.utils.misc.Names; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.player.PlayerUtils; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; -import net.minecraft.util.math.Vec3d; import nekiplay.meteorplus.features.modules.movement.fly.FlyMode; import nekiplay.meteorplus.features.modules.movement.fly.FlyModes; +import net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.item.Items; +import net.minecraft.world.phys.Vec3; public class MatrixExploit extends FlyMode { public MatrixExploit() { @@ -39,42 +39,42 @@ public void onActivate() { public void onDeactivate() { if (!mc.player.isSpectator()) { mc.player.getAbilities().flying = false; - mc.player.getAbilities().setFlySpeed(0.05f); - if (mc.player.getAbilities().creativeMode) return; - mc.player.getAbilities().allowFlying = false; + mc.player.getAbilities().setFlyingSpeed(0.05f); + if (mc.player.getAbilities().instabuild) return; + mc.player.getAbilities().mayfly = false; } } public void startFly() { - mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_FALL_FLYING)); + mc.player.connection.send(new ServerboundPlayerCommandPacket(mc.player, ServerboundPlayerCommandPacket.Action.START_FALL_FLYING)); } @Override public void onTickEventPre(TickEvent.Pre event) { FindItemResult r = InvUtils.find(Items.ELYTRA); - float yaw = mc.player.getYaw(); - Vec3d forward = Vec3d.fromPolar(0, yaw); - Vec3d right = Vec3d.fromPolar(0, yaw + 90); + float yaw = mc.player.getYRot(); + Vec3 forward = Vec3.directionFromRotation(0, yaw); + Vec3 right = Vec3.directionFromRotation(0, yaw + 90); double velX = 0; double velZ = 0; double s = settings.speed_1.get(); double speedValue = 0.01; - if (mc.options.forwardKey.isPressed()) { + if (mc.options.keyUp.isDown()) { velX += forward.x * s; velZ += forward.z * s; } - if (mc.options.backKey.isPressed()) { + if (mc.options.keyDown.isDown()) { velX -= forward.x * s; velZ -= forward.z * s; } - if (mc.options.rightKey.isPressed()) { + if (mc.options.keyRight.isDown()) { velX += right.x * s; velZ += right.z * s; } - if (mc.options.leftKey.isPressed()) { + if (mc.options.keyLeft.isDown()) { velX -= right.x * s; velZ -= right.z * s; } @@ -87,17 +87,16 @@ public void onTickEventPre(TickEvent.Pre event) { InvUtils.move().fromArmor(2).to(r.slot()); tick = 21; } - } - else { + } else { tick--; } if (tick2 >= 0) { - mc.player.setVelocity(mc.player.getVelocity().x, 0.100000001490116, mc.player.getVelocity().z); + mc.player.setDeltaMovement(mc.player.getDeltaMovement().x, 0.100000001490116, mc.player.getDeltaMovement().z); y = 0.100000001490116f; tick2++; if (tick2 >= 13) { y = -0.060000001490116f; - mc.player.setVelocity(mc.player.getVelocity().x, -0.060000001490116, mc.player.getVelocity().z); + mc.player.setDeltaMovement(mc.player.getDeltaMovement().x, -0.060000001490116, mc.player.getDeltaMovement().z); if (tick2 == 16) { tick2 = 0; } @@ -109,12 +108,12 @@ public void onTickEventPre(TickEvent.Pre event) { @Override public void onPlayerMoveEvent(PlayerMoveEvent event) { - Vec3d vel = PlayerUtils.getHorizontalVelocity(settings.speed_1.get()); - double velX = vel.getX(); - double velZ = vel.getZ(); + Vec3 vel = PlayerUtils.getHorizontalVelocity(settings.speed_1.get()); + double velX = vel.x(); + double velZ = vel.z(); - if (mc.player.hasStatusEffect(StatusEffects.SPEED)) { - double value = (mc.player.getStatusEffect(StatusEffects.SPEED).getAmplifier() + 1) * 0.205; + if (mc.player.hasEffect(MobEffects.SPEED)) { + double value = (mc.player.getEffect(MobEffects.SPEED).getAmplifier() + 1) * 0.205; velX += velX * value; velZ += velZ * value; } @@ -125,10 +124,10 @@ public void onPlayerMoveEvent(PlayerMoveEvent event) { velZ = anchor.deltaZ; } - ((IVec3d) event.movement).meteor$set(velX, event.movement.y, velZ); + ((IVec3) event.movement).meteor$set(velX, event.movement.y, velZ); } private void fly(double y) { - mc.player.setVelocity(0, y, 0); + mc.player.setDeltaMovement(0, y, 0); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/MatrixExploit2.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/MatrixExploit2.java index 6781053..2707c39 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/MatrixExploit2.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/MatrixExploit2.java @@ -4,12 +4,12 @@ import meteordevelopment.meteorclient.utils.misc.Names; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import nekiplay.meteorplus.features.modules.movement.fly.FlyMode; import nekiplay.meteorplus.features.modules.movement.fly.FlyModes; import nekiplay.meteorplus.utils.ElytraUtils; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.item.Items; public class MatrixExploit2 extends FlyMode { public MatrixExploit2() { @@ -18,6 +18,7 @@ public MatrixExploit2() { private int ticks = 0; private int slot = 0; + @Override public void onActivate() { ticks = 0; @@ -27,9 +28,10 @@ public void onActivate() { settings.toggle(); } } + @Override public void onTickEventPre(TickEvent.Pre event) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; switch (ticks) { case 0: { @@ -40,13 +42,13 @@ public void onTickEventPre(TickEvent.Pre event) { ticks++; } case 1: { - if (mc.player.isOnGround()) - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + if (mc.player.onGround()) + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 2: { - if (mc.player.isOnGround()) - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + if (mc.player.onGround()) + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 3: { @@ -54,33 +56,31 @@ public void onTickEventPre(TickEvent.Pre event) { ticks++; } case 4: { - player.getAbilities().setFlySpeed(settings.speed_1.get().floatValue()); - mc.player.setVelocity(mc.player.getVelocity().x, 0.100000001490116, mc.player.getVelocity().z); + player.getAbilities().setFlyingSpeed(settings.speed_1.get().floatValue()); + mc.player.setDeltaMovement(mc.player.getDeltaMovement().x, 0.100000001490116, mc.player.getDeltaMovement().z); ticks++; } case 5: { ElytraUtils.startFly(); - mc.player.setVelocity(mc.player.getVelocity().x, 0.100000001490116, mc.player.getVelocity().z); + mc.player.setDeltaMovement(mc.player.getDeltaMovement().x, 0.100000001490116, mc.player.getDeltaMovement().z); ticks++; } case 6: { InvUtils.move().fromArmor(2).to(slot); //InvUtils.quickMove().fromArmor(2).to(slot); - mc.player.setVelocity(mc.player.getVelocity().x, 0.100000001490116, mc.player.getVelocity().z); + mc.player.setDeltaMovement(mc.player.getDeltaMovement().x, 0.100000001490116, mc.player.getDeltaMovement().z); ticks++; } default: { if (ticks >= 13 && ticks <= 16) { ticks++; - mc.player.setVelocity(mc.player.getVelocity().x, -0.060000001490116, mc.player.getVelocity().z); - player.getAbilities().setFlySpeed(settings.speed2.get().floatValue() - 0.1f); - } - else if (ticks <= 16) { + mc.player.setDeltaMovement(mc.player.getDeltaMovement().x, -0.060000001490116, mc.player.getDeltaMovement().z); + player.getAbilities().setFlyingSpeed(settings.speed2.get().floatValue() - 0.1f); + } else if (ticks <= 16) { ticks++; - mc.player.setVelocity(mc.player.getVelocity().x, 0.100000001490116, mc.player.getVelocity().z); - player.getAbilities().setFlySpeed(settings.speed2.get().floatValue()); - } - else { + mc.player.setDeltaMovement(mc.player.getDeltaMovement().x, 0.100000001490116, mc.player.getDeltaMovement().z); + player.getAbilities().setFlyingSpeed(settings.speed2.get().floatValue()); + } else { ticks = 0; } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/VulcanClip.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/VulcanClip.java index 64dacb2..0b9b516 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/VulcanClip.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/fly/modes/VulcanClip.java @@ -6,9 +6,9 @@ import meteordevelopment.meteorclient.systems.modules.world.Timer; import nekiplay.meteorplus.features.modules.movement.fly.FlyMode; import nekiplay.meteorplus.features.modules.movement.fly.FlyModes; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; -import net.minecraft.util.math.Vec3d; +import net.minecraft.network.protocol.game.ClientboundPlayerPositionPacket; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.phys.Vec3; import static java.lang.Math.cos; import static java.lang.Math.sin; @@ -31,14 +31,13 @@ public void onDeactivate() { @Override public void onActivate() { timer = Modules.get().get(Timer.class); - if (mc.player.isOnGround() && settings.canClip.get()) { + if (mc.player.onGround() && settings.canClip.get()) { clip(0f, -0.1f); waitFlag = true; canGlide = false; ticks = 0; timer.setOverride(0.1f); - } - else { + } else { waitFlag = false; canGlide = true; } @@ -49,27 +48,27 @@ public void onPlayerMoveSendPre(SendMovementPacketsEvent.Pre event) { if (canGlide) { timer.setOverride(1f); - Vec3d velocity = mc.player.getVelocity(); + Vec3 velocity = mc.player.getDeltaMovement(); velocity.add(0, -(ticks % 2 == 0 ? 0.17 : 0.10), 0); - if(ticks == 0) { + if (ticks == 0) { velocity.add(0, -0.07, 0); } - mc.player.setVelocity(velocity); + mc.player.setDeltaMovement(velocity); ticks++; } } @Override - public void onRecivePacket(PacketEvent.Receive event) { - super.onRecivePacket(event); - if (event.packet instanceof PlayerPositionLookS2CPacket && waitFlag) { - PlayerPositionLookS2CPacket packet = (PlayerPositionLookS2CPacket)event.packet; - Vec3d playerPos = mc.player.getEntityPos(); + public void onReceivePacket(PacketEvent.Receive event) { + super.onReceivePacket(event); + if (event.packet instanceof ClientboundPlayerPositionPacket && waitFlag) { + ClientboundPlayerPositionPacket packet = (ClientboundPlayerPositionPacket) event.packet; + Vec3 playerPos = mc.player.position(); waitFlag = false; - mc.player.setPosition(packet.change().position().x, packet.change().position().y, packet.change().position().z); - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(playerPos.x, playerPos.y, playerPos.z, false, mc.player.horizontalCollision)); + mc.player.setPos(packet.change().position().x, packet.change().position().y, packet.change().position().z); + mc.player.connection.send(new ServerboundMovePlayerPacket.Pos(playerPos.x, playerPos.y, playerPos.z, false, mc.player.horizontalCollision)); event.cancel(); - mc.player.jump(); + mc.player.jumpFromGround(); clip(0.127318f, 0f); clip(3.425559f, 3.7f); clip(3.14285f, 3.54f); @@ -79,11 +78,11 @@ public void onRecivePacket(PacketEvent.Receive event) { } private void clip(float dist, float y) { - float tickDelta = mc.getRenderTickCounter().getTickProgress(true); - double yaw = Math.toRadians(mc.player.getYaw(tickDelta)); + float tickDelta = mc.getDeltaTracker().getGameTimeDeltaPartialTick(true); + double yaw = Math.toRadians(mc.player.getViewYRot(tickDelta)); double x = -sin(yaw) * dist; double z = cos(yaw) * dist; - mc.player.setPosition(mc.player.getEntityPos().x + x, mc.player.getEntityPos().y + y, mc.player.getEntityPos().z + z); - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), false, mc.player.horizontalCollision)); + mc.player.setPos(mc.player.position().x + x, mc.player.position().y + y, mc.player.position().z + z); + mc.player.connection.send(new ServerboundMovePlayerPacket.Pos(mc.player.getX(), mc.player.getY(), mc.player.getZ(), false, mc.player.horizontalCollision)); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/JesusMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/JesusMode.java index 192433e..df637e4 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/JesusMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/JesusMode.java @@ -6,29 +6,43 @@ import meteordevelopment.meteorclient.events.world.CollisionShapeEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class JesusMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final JesusPlus settings; private final JesusModes type; public JesusMode(JesusModes type) { this.settings = Modules.get().get(JesusPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onSendPacket(PacketEvent.Send event) {} - public void onSentPacket(PacketEvent.Sent event) {} - public void onPlayerMoveEvent(PlayerMoveEvent event) {} + public void onSendPacket(PacketEvent.Send event) { + } + + public void onSentPacket(PacketEvent.Sent event) { + } + + public void onPlayerMoveEvent(PlayerMoveEvent event) { + } + + public void onCanWalkOnFluid(CanWalkOnFluidEvent event) { + } - public void onCanWalkOnFluid(CanWalkOnFluidEvent event) {} - public void onCollisionShape(CollisionShapeEvent event) {} + public void onCollisionShape(CollisionShapeEvent event) { + } + + public void onTickEventPre(TickEvent.Pre event) { + } - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} + public void onTickEventPost(TickEvent.Post event) { + } - public void onActivate() {} - public void onDeactivate() {} + public void onActivate() { + } + + public void onDeactivate() { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/JesusPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/JesusPlus.java index d31ddd7..b48cd29 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/JesusPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/JesusPlus.java @@ -77,10 +77,12 @@ private void onPreTick(TickEvent.Pre event) { private void onPostTick(TickEvent.Post event) { currentMode.onTickEventPost(event); } + @EventHandler public void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); } + @EventHandler public void onSentPacket(PacketEvent.Sent event) { currentMode.onSentPacket(event); @@ -90,6 +92,7 @@ public void onSentPacket(PacketEvent.Sent event) { public void onCanWalkOnFluid(CanWalkOnFluidEvent event) { currentMode.onCanWalkOnFluid(event); } + @EventHandler public void onCollisionShape(CollisionShapeEvent event) { currentMode.onCollisionShape(event); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/MatrixZoom.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/MatrixZoom.java index b68f61a..e15d6ff 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/MatrixZoom.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/MatrixZoom.java @@ -1,12 +1,12 @@ package nekiplay.meteorplus.features.modules.movement.jesus.modes; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; -import net.minecraft.block.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import nekiplay.meteorplus.features.modules.movement.jesus.JesusMode; import nekiplay.meteorplus.features.modules.movement.jesus.JesusModes; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.phys.Vec3; public class MatrixZoom extends JesusMode { public MatrixZoom() { @@ -17,34 +17,34 @@ public MatrixZoom() { @Override public void onTickEventPre(TickEvent.Pre event) { - float yaw = mc.player.getYaw(); - Vec3d forward = Vec3d.fromPolar(0, yaw); - Vec3d right = Vec3d.fromPolar(0, yaw + 90); + float yaw = mc.player.getYRot(); + Vec3 forward = Vec3.directionFromRotation(0, yaw); + Vec3 right = Vec3.directionFromRotation(0, yaw + 90); double velX = 0; double velZ = 0; double s = 0.5; double speedValue = settings.speed.get(); - if (mc.options.forwardKey.isPressed()) { + if (mc.options.keyUp.isDown()) { velX += forward.x * s * speedValue; velZ += forward.z * s * speedValue; } - if (mc.options.backKey.isPressed()) { + if (mc.options.keyDown.isDown()) { velX -= forward.x * s * speedValue; velZ -= forward.z * s * speedValue; } - if (mc.options.rightKey.isPressed()) { + if (mc.options.keyRight.isDown()) { velX += right.x * s * speedValue; velZ += right.z * s * speedValue; } - if (mc.options.leftKey.isPressed()) { + if (mc.options.keyLeft.isDown()) { velX -= right.x * s * speedValue; velZ -= right.z * s * speedValue; } - if (mc.world.getBlockState(new BlockPos(mc.player.getBlockX(), (int) (mc.player.getBlockY() + range), mc.player.getBlockZ())).getBlock() == Blocks.WATER && !mc.player.horizontalCollision) { - ((IVec3d) mc.player.getVelocity()).meteor$set(velX, 0, velZ); + if (mc.level.getBlockState(new BlockPos(mc.player.getBlockX(), (int) (mc.player.getBlockY() + range), mc.player.getBlockZ())).getBlock() == Blocks.WATER && !mc.player.horizontalCollision) { + ((IVec3) mc.player.getDeltaMovement()).meteor$set(velX, 0, velZ); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/MatrixZoom2.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/MatrixZoom2.java index e6784dc..7210da2 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/MatrixZoom2.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/MatrixZoom2.java @@ -1,12 +1,12 @@ package nekiplay.meteorplus.features.modules.movement.jesus.modes; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; -import net.minecraft.block.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import nekiplay.meteorplus.features.modules.movement.jesus.JesusMode; import nekiplay.meteorplus.features.modules.movement.jesus.JesusModes; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.phys.Vec3; public class MatrixZoom2 extends JesusMode { public MatrixZoom2() { @@ -18,38 +18,37 @@ public MatrixZoom2() { @Override public void onTickEventPre(TickEvent.Pre event) { - float yaw = mc.player.getYaw(); - Vec3d forward = Vec3d.fromPolar(0, yaw); - Vec3d right = Vec3d.fromPolar(0, yaw + 90); + float yaw = mc.player.getYRot(); + Vec3 forward = Vec3.directionFromRotation(0, yaw); + Vec3 right = Vec3.directionFromRotation(0, yaw + 90); double velX = 0; double velZ = 0; double s = 0.5; double speedValue = settings.speed.get(); - if (mc.options.forwardKey.isPressed()) { + if (mc.options.keyUp.isDown()) { velX += forward.x * s * speedValue; velZ += forward.z * s * speedValue; } - if (mc.options.backKey.isPressed()) { + if (mc.options.keyDown.isDown()) { velX -= forward.x * s * speedValue; velZ -= forward.z * s * speedValue; } - if (mc.options.rightKey.isPressed()) { + if (mc.options.keyRight.isDown()) { velX += right.x * s * speedValue; velZ += right.z * s * speedValue; } - if (mc.options.leftKey.isPressed()) { + if (mc.options.keyLeft.isDown()) { velX -= right.x * s * speedValue; velZ -= right.z * s * speedValue; } - if (mc.world.getBlockState(new BlockPos((int) mc.player.getEntityPos().x, (int) (mc.player.getEntityPos().y + range), (int) mc.player.getEntityPos().z)).getBlock() == Blocks.WATER && !mc.player.horizontalCollision) { + if (mc.level.getBlockState(new BlockPos((int) mc.player.position().x, (int) (mc.player.position().y + range), (int) mc.player.position().z)).getBlock() == Blocks.WATER && !mc.player.horizontalCollision) { if (tick == 0) { - ((IVec3d) mc.player.getVelocity()).meteor$set(velX, 0.030091, velZ); - } - else if (tick == 1) { - ((IVec3d) mc.player.getVelocity()).meteor$set(velX, -0.030091, velZ); + ((IVec3) mc.player.getDeltaMovement()).meteor$set(velX, 0.030091, velZ); + } else if (tick == 1) { + ((IVec3) mc.player.getDeltaMovement()).meteor$set(velX, -0.030091, velZ); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/NCP.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/NCP.java index 5371610..c47e7ae 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/NCP.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/NCP.java @@ -1,61 +1,63 @@ package nekiplay.meteorplus.features.modules.movement.jesus.modes; import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import nekiplay.meteorplus.features.modules.movement.jesus.JesusMode; import nekiplay.meteorplus.features.modules.movement.jesus.JesusModes; -import net.minecraft.block.AirBlock; -import net.minecraft.util.math.Vec3d; +import net.minecraft.world.level.block.AirBlock; +import net.minecraft.world.phys.Vec3; public class NCP extends JesusMode { public NCP() { super(JesusModes.NCP); } + float newSpeed = 0; + @Override public void onPlayerMoveEvent(PlayerMoveEvent event) { mc.player.setSprinting(false); - if (!mc.player.isInFluid()) { + if (!mc.player.isInLiquid()) { return; } - Vec3d velocity = mc.player.getVelocity(); + Vec3 velocity = mc.player.getDeltaMovement(); - if (mc.options.jumpKey.isPressed() && !mc.player.isSneaking() && !(mc.world.getBlockState(mc.player.getBlockPos().add(0, 1, 0)).getBlock() instanceof AirBlock)) { - mc.player.setVelocity(velocity.x, 0.12, velocity.z); + if (mc.options.keyJump.isDown() && !mc.player.isShiftKeyDown() && !(mc.level.getBlockState(mc.player.blockPosition().offset(0, 1, 0)).getBlock() instanceof AirBlock)) { + mc.player.setDeltaMovement(velocity.x, 0.12, velocity.z); } - velocity = mc.player.getVelocity(); - if (mc.options.sneakKey.isPressed()) { - mc.player.setVelocity(velocity.x, -0.12, velocity.z); + velocity = mc.player.getDeltaMovement(); + if (mc.options.keyShift.isDown()) { + mc.player.setDeltaMovement(velocity.x, -0.12, velocity.z); } - velocity = mc.player.getVelocity(); - if (mc.world.getBlockState(mc.player.getBlockPos().add(0, 1, 0)).getBlock() instanceof AirBlock && mc.options.jumpKey.isPressed()) { - mc.player.setSneaking(true); - mc.player.setVelocity(velocity.x, 0.12, velocity.z); + velocity = mc.player.getDeltaMovement(); + if (mc.level.getBlockState(mc.player.blockPosition().offset(0, 1, 0)).getBlock() instanceof AirBlock && mc.options.keyJump.isDown()) { + mc.player.setShiftKeyDown(true); + mc.player.setDeltaMovement(velocity.x, 0.12, velocity.z); } - float yaw = mc.player.getYaw(); - Vec3d forward = Vec3d.fromPolar(0, yaw); - Vec3d right = Vec3d.fromPolar(0, yaw + 90); + float yaw = mc.player.getYRot(); + Vec3 forward = Vec3.directionFromRotation(0, yaw); + Vec3 right = Vec3.directionFromRotation(0, yaw + 90); double velX = 0; double velZ = 0; double s = 0.5; double speedValue = settings.speed.get(); - if (mc.options.forwardKey.isPressed()) { + if (mc.options.keyUp.isDown()) { velX += forward.x * s * speedValue; velZ += forward.z * s * speedValue; } - if (mc.options.backKey.isPressed()) { + if (mc.options.keyDown.isDown()) { velX -= forward.x * s * speedValue; velZ -= forward.z * s * speedValue; } - if (mc.options.rightKey.isPressed()) { + if (mc.options.keyRight.isDown()) { velX += right.x * s * speedValue; velZ += right.z * s * speedValue; } - if (mc.options.leftKey.isPressed()) { + if (mc.options.keyLeft.isDown()) { velX -= right.x * s * speedValue; velZ -= right.z * s * speedValue; } @@ -66,9 +68,10 @@ public void onPlayerMoveEvent(PlayerMoveEvent event) { if (velZ >= settings.limit_speed.get().floatValue()) { velZ = settings.limit_speed.get().floatValue(); } - ((IVec3d) mc.player.getVelocity()).meteor$set(velX, 0, velZ); - mc.player.setSneaking(true); + ((IVec3) mc.player.getDeltaMovement()).meteor$set(velX, 0, velZ); + mc.player.setShiftKeyDown(true); } + @Override public void onDeactivate() { newSpeed = 0.6f; @@ -83,15 +86,15 @@ public void onActivate() { } public void setMotion(double motion) { - float forward = mc.player.forwardSpeed; - float yaw = mc.player.getYaw(); + float forward = mc.player.zza; + float yaw = mc.player.getYRot(); if (forward == 0) { - ((IVec3d) mc.player.getVelocity()).meteor$set(0, mc.player.getVelocity().y, 0); + ((IVec3) mc.player.getDeltaMovement()).meteor$set(0, mc.player.getDeltaMovement().y, 0); } else { double x = forward * motion * Math.cos(Math.toRadians(yaw + 90.0f)) * motion * Math.sin(Math.toRadians(yaw + 90.0f)); double z = forward * motion * Math.sin(Math.toRadians(yaw + 90.0f)) * motion * Math.cos(Math.toRadians(yaw + 90.0f)); - ((IVec3d) mc.player.getVelocity()).meteor$set(x, mc.player.getVelocity().y, z); + ((IVec3) mc.player.getDeltaMovement()).meteor$set(x, mc.player.getDeltaMovement().y, z); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/VulcanExploit.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/VulcanExploit.java index 823051d..3bbbd69 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/VulcanExploit.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/jesus/modes/VulcanExploit.java @@ -3,7 +3,7 @@ import meteordevelopment.meteorclient.events.entity.player.CanWalkOnFluidEvent; import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; import meteordevelopment.meteorclient.events.world.CollisionShapeEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.movement.Anchor; import meteordevelopment.meteorclient.utils.misc.Names; @@ -11,16 +11,16 @@ import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.meteorclient.utils.player.SlotUtils; -import net.minecraft.block.Blocks; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.Item; -import net.minecraft.item.Items; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.shape.VoxelShapes; import nekiplay.meteorplus.features.modules.movement.jesus.JesusMode; import nekiplay.meteorplus.features.modules.movement.jesus.JesusModes; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.Shapes; public class VulcanExploit extends JesusMode { public VulcanExploit() { @@ -28,10 +28,11 @@ public VulcanExploit() { } public Item chestPlate; + @Override public void onDeactivate() { FindItemResult chest = InvUtils.find(chestPlate); - if (chest.found() && mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() == Items.ELYTRA && settings.autoSwapVulcan.get()) { + if (chest.found() && mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() == Items.ELYTRA && settings.autoSwapVulcan.get()) { InvUtils.move().from(chest.slot()).toArmor(2); } } @@ -42,11 +43,10 @@ public void onActivate() { if (!elytra.found()) { settings.error(Names.get(Items.ELYTRA) + " not found"); settings.toggle(); - } - else { + } else { if (!SlotUtils.isArmor(elytra.slot()) && settings.autoSwapVulcan.get()) { - if (mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { - chestPlate = mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem(); + if (mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { + chestPlate = mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem(); InvUtils.move().from(elytra.slot()).toArmor(2); } } @@ -55,31 +55,32 @@ public void onActivate() { @Override public void onCanWalkOnFluid(CanWalkOnFluidEvent event) { - if ((event.fluidState.getFluid() == Fluids.WATER || event.fluidState.getFluid() == Fluids.FLOWING_WATER)) { - if (mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { + if ((event.fluidState.getType() == Fluids.WATER || event.fluidState.getType() == Fluids.FLOWING_WATER)) { + if (mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { event.walkOnFluid = true; } } } + @Override public void onCollisionShape(CollisionShapeEvent event) { - if (!event.state.getFluidState().isEmpty() && mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { - if (mc.player != null && event.state != null && event.state.isOf(Blocks.WATER) && !mc.player.isTouchingWater()) { - event.shape = VoxelShapes.fullCube(); + if (!event.state.getFluidState().isEmpty() && mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { + if (mc.player != null && event.state != null && event.state.is(Blocks.WATER) && !mc.player.isInWater()) { + event.shape = Shapes.block(); } } } @Override public void onPlayerMoveEvent(PlayerMoveEvent event) { - if (mc.world.getBlockState(mc.player.getBlockPos().add(0, -1, 0)).getBlock() == Blocks.WATER || mc.world.getBlockState(mc.player.getBlockPos()).getBlock() == Blocks.WATER) { - if (mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { - Vec3d vel = PlayerUtils.getHorizontalVelocity(settings.speed.get()); - double velX = vel.getX(); - double velZ = vel.getZ(); + if (mc.level.getBlockState(mc.player.blockPosition().offset(0, -1, 0)).getBlock() == Blocks.WATER || mc.level.getBlockState(mc.player.blockPosition()).getBlock() == Blocks.WATER) { + if (mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { + Vec3 vel = PlayerUtils.getHorizontalVelocity(settings.speed.get()); + double velX = vel.x(); + double velZ = vel.z(); - if (mc.player.hasStatusEffect(StatusEffects.SPEED)) { - double value = (mc.player.getStatusEffect(StatusEffects.SPEED).getAmplifier() + 1) * 0.205; + if (mc.player.hasEffect(MobEffects.SPEED)) { + double value = (mc.player.getEffect(MobEffects.SPEED).getAmplifier() + 1) * 0.205; velX += velX * value; velZ += velZ * value; } @@ -90,7 +91,7 @@ public void onPlayerMoveEvent(PlayerMoveEvent event) { velZ = anchor.deltaZ; } - ((IVec3d) event.movement).meteor$set(velX, event.movement.y, velZ); + ((IVec3) event.movement).meteor$set(velX, event.movement.y, velZ); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallMode.java index f963343..88a85ac 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallMode.java @@ -3,26 +3,37 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class NoFallMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final NoFallPlus settings; private final NoFallModes type; public NoFallMode(NoFallModes type) { this.settings = Modules.get().get(NoFallPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onSendPacket(PacketEvent.Send event) {} - public void onSentPacket(PacketEvent.Sent event) {} - public void onReceivePacket(PacketEvent.Receive event) {} + public void onSendPacket(PacketEvent.Send event) { + } + + public void onSentPacket(PacketEvent.Sent event) { + } - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} + public void onReceivePacket(PacketEvent.Receive event) { + } + + public void onTickEventPre(TickEvent.Pre event) { + } - public void onActivate() {} - public void onDeactivate() {} + public void onTickEventPost(TickEvent.Post event) { + } + + public void onActivate() { + } + + public void onDeactivate() { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallModes.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallModes.java index 1c9d15d..f1556b2 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallModes.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallModes.java @@ -9,6 +9,7 @@ public enum NoFallModes { Elytra_Fly, No_Ground, No_Ground_Elytra; + @Override public String toString() { return super.toString().replace('_', ' ').replaceAll("dot", "."); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallPlus.java index 4d81b51..e440b4a 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/NoFallPlus.java @@ -47,10 +47,12 @@ private void onPreTick(TickEvent.Pre event) { private void onPostTick(TickEvent.Post event) { currentMode.onTickEventPost(event); } + @EventHandler public void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); } + @EventHandler public void onSentPacket(PacketEvent.Sent event) { currentMode.onSentPacket(event); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Eclip.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Eclip.java index 85a02ee..6bb6802 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Eclip.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Eclip.java @@ -2,20 +2,20 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; -import meteordevelopment.meteorclient.mixininterface.IPlayerMoveC2SPacket; +import meteordevelopment.meteorclient.mixin.ServerboundMovePlayerPacketAccessor; +import meteordevelopment.meteorclient.mixininterface.IServerboundMovePlayerPacket; import meteordevelopment.meteorclient.utils.player.ChatUtils; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallMode; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.world.RaycastContext; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; import nekiplay.meteorplus.utils.ElytraUtils; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; import static meteordevelopment.meteorclient.utils.player.ChatUtils.error; @@ -31,28 +31,28 @@ public Eclip() { private boolean groundcheck = false; private int timer = 0; private int teleports = 0; + @Override public void onTickEventPre(TickEvent.Pre event) { FindItemResult elytra = InvUtils.find(Items.ELYTRA); if (!elytra.found()) { error("Elytra not found"); settings.toggle(); - } - else { + } else { - if (mc.player.isOnGround() && groundcheck) { + if (mc.player.onGround() && groundcheck) { groundcheck = false; cliped = false; ChatUtils.infoPrefix("No Fall Plus", "Grounded in " + teleports + " teleports"); mc.player.fallDistance = 0; teleports = 0; } else if (mc.player.fallDistance > 3) { - BlockHitResult result = mc.world.raycast(new RaycastContext(mc.player.getEntityPos(), mc.player.getEntityPos().subtract(0, 10, 0), RaycastContext.ShapeType.OUTLINE, RaycastContext.FluidHandling.NONE, mc.player)); + BlockHitResult result = mc.level.clip(new ClipContext(mc.player.position(), mc.player.position().subtract(0, 10, 0), ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, mc.player)); if (result != null && result.getType() == HitResult.Type.BLOCK) { - blocks = result.getBlockPos().add(0, 1, 0).getY(); + blocks = result.getBlockPos().offset(0, 1, 0).getY(); cliped = true; } else if (result == null || result.getType() == HitResult.Type.MISS) { - blocks = (int) mc.player.getEntityPos().y - 10; + blocks = (int) mc.player.position().y - 10; cliped = true; } } @@ -65,14 +65,14 @@ public void onTickEventPre(TickEvent.Pre event) { @Override public void onSendPacket(PacketEvent.Send event) { if (!groundcheck) return; - if (!(event.packet instanceof PlayerMoveC2SPacket) - || ((IPlayerMoveC2SPacket) event.packet).meteor$getTag() == 1337) return; - ((PlayerMoveC2SPacketAccessor) event.packet).meteor$setOnGround(true); + if (!(event.packet instanceof ServerboundMovePlayerPacket) + || ((IServerboundMovePlayerPacket) event.packet).meteor$getTag() == 1337) return; + ((ServerboundMovePlayerPacketAccessor) event.packet).meteor$setOnGround(true); } private void clip() { if (blocks != 0) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; switch (ticks) { case 0: { @@ -83,11 +83,11 @@ private void clip() { } case 1: { groundcheck = true; - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 2: { - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 3: { @@ -95,8 +95,8 @@ private void clip() { ticks++; } case 4: { - player.setPosition(player.getX(), blocks, player.getZ()); - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(player.getX(), blocks, player.getZ(), true, mc.player.horizontalCollision)); + player.setPos(player.getX(), blocks, player.getZ()); + mc.player.connection.send(new ServerboundMovePlayerPacket.Pos(player.getX(), blocks, player.getZ(), true, mc.player.horizontalCollision)); teleports++; ticks++; } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/ElytraFly.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/ElytraFly.java index e7687e4..272f595 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/ElytraFly.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/ElytraFly.java @@ -3,17 +3,13 @@ import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; -import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallMode; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.RaycastContext; +import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.Items; +import net.minecraft.world.phys.Vec3; public class ElytraFly extends NoFallMode { public ElytraFly() { @@ -27,16 +23,16 @@ public void onTickEventPre(TickEvent.Pre event) { FindItemResult elytra = InvUtils.find(Items.ELYTRA); if (elytra.found()) { int slot = elytra.slot(); - if (mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { + if (mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { InvUtils.move().from(slot).toArmor(2); } } if (mc.player.fallDistance > 2.7) { - mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_FALL_FLYING)); - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(true, mc.player.horizontalCollision)); - Vec3d vel = mc.player.getVelocity(); - mc.player.setVelocity(vel.x, 0, vel.z); + mc.player.connection.send(new ServerboundPlayerCommandPacket(mc.player, ServerboundPlayerCommandPacket.Action.START_FALL_FLYING)); + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(true, mc.player.horizontalCollision)); + Vec3 vel = mc.player.getDeltaMovement(); + mc.player.setDeltaMovement(vel.x, 0, vel.z); mc.player.fallDistance = 0.0f; mc.player.setOnGround(true); } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/MatrixNew.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/MatrixNew.java index e4db85a..6555927 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/MatrixNew.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/MatrixNew.java @@ -1,13 +1,13 @@ package nekiplay.meteorplus.features.modules.movement.nofall.modes; import meteordevelopment.meteorclient.events.packets.PacketEvent; -import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; +import meteordevelopment.meteorclient.mixin.ServerboundMovePlayerPacketAccessor; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.world.Timer; -import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallMode; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.shape.VoxelShape; +import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.phys.shapes.VoxelShape; import java.util.Iterator; @@ -15,6 +15,7 @@ public class MatrixNew extends NoFallMode { public MatrixNew() { super(NoFallModes.Matrix_New); } + private Timer timer; @Override @@ -25,12 +26,12 @@ public void onDeactivate() { @Override public void onSendPacket(PacketEvent.Send event) { - if (event.packet instanceof PlayerMoveC2SPacket) { - PlayerMoveC2SPacket packet = (PlayerMoveC2SPacket)event.packet; - PlayerMoveC2SPacketAccessor accessor = (PlayerMoveC2SPacketAccessor)packet; + if (event.packet instanceof ServerboundMovePlayerPacket) { + ServerboundMovePlayerPacket packet = (ServerboundMovePlayerPacket) event.packet; + ServerboundMovePlayerPacketAccessor accessor = (ServerboundMovePlayerPacketAccessor) packet; timer = Modules.get().get(Timer.class); - if (!mc.player.isOnGround()) { + if (!mc.player.onGround()) { if (mc.player.fallDistance > 2.69) { timer.setOverride(0.3); accessor.meteor$setOnGround(true); @@ -38,19 +39,18 @@ public void onSendPacket(PacketEvent.Send event) { } if (mc.player.fallDistance > 3.5) { timer.setOverride(0.3); - } - else { + } else { timer.setOverride(Timer.OFF); } } - Iterator voxelShapeIterator = mc.world.getCollisions(mc.player, mc.player.getBoundingBox().offset(0.0, mc.player.getVelocity().y, 0.0)).iterator(); + Iterator voxelShapeIterator = mc.level.getCollisions(mc.player, mc.player.getBoundingBox().move(0.0, mc.player.getDeltaMovement().y, 0.0)).iterator(); boolean isEmpty = true; while (voxelShapeIterator.hasNext()) { VoxelShape shape = voxelShapeIterator.next(); isEmpty = shape.isEmpty(); } if (!isEmpty) { - if (!((PlayerMoveC2SPacket) event.packet).isOnGround() && mc.player.getVelocity().y < -0.6) { + if (!((ServerboundMovePlayerPacket) event.packet).isOnGround() && mc.player.getDeltaMovement().y < -0.6) { accessor.meteor$setOnGround(true); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/No_Ground.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/No_Ground.java index ea299ad..c5bc82e 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/No_Ground.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/No_Ground.java @@ -1,10 +1,10 @@ package nekiplay.meteorplus.features.modules.movement.nofall.modes; import meteordevelopment.meteorclient.events.packets.PacketEvent; -import meteordevelopment.meteorclient.mixininterface.IPlayerMoveC2SPacket; +import meteordevelopment.meteorclient.mixininterface.IServerboundMovePlayerPacket; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallMode; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; -import nekiplay.meteorplus.mixin.minecraft.entity.PlayerMoveC2SPacketAccessor; +import nekiplay.meteorplus.mixin.minecraft.entity.ServerboundMovePlayerPacketAccessor; public class No_Ground extends NoFallMode { /* @@ -16,8 +16,8 @@ public No_Ground() { @Override public void onSendPacket(PacketEvent.Send event) { - if (event.packet instanceof IPlayerMoveC2SPacket move) { - PlayerMoveC2SPacketAccessor move2 = (PlayerMoveC2SPacketAccessor) move; + if (event.packet instanceof IServerboundMovePlayerPacket move) { + ServerboundMovePlayerPacketAccessor move2 = (ServerboundMovePlayerPacketAccessor) move; if (move2.getOnGround()) { move2.setOnGround(false); } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/No_Ground_Elytra.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/No_Ground_Elytra.java index 5100cb0..3bee476 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/No_Ground_Elytra.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/No_Ground_Elytra.java @@ -2,16 +2,16 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixininterface.IPlayerMoveC2SPacket; +import meteordevelopment.meteorclient.mixininterface.IServerboundMovePlayerPacket; import meteordevelopment.meteorclient.utils.player.ChatUtils; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallMode; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; -import nekiplay.meteorplus.mixin.minecraft.entity.PlayerMoveC2SPacketAccessor; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; +import nekiplay.meteorplus.mixin.minecraft.entity.ServerboundMovePlayerPacketAccessor; +import net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.Items; public class No_Ground_Elytra extends NoFallMode { /* @@ -37,7 +37,7 @@ public void onTickEventPre(TickEvent.Pre event) { FindItemResult elytra = InvUtils.find(Items.ELYTRA); if (elytra.found()) { int slot = elytra.slot(); - if (mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { + if (mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { InvUtils.move().from(slot).toArmor(2); } } @@ -46,10 +46,10 @@ public void onTickEventPre(TickEvent.Pre event) { @Override public void onSendPacket(PacketEvent.Send event) { - if (event.packet instanceof IPlayerMoveC2SPacket move) { - PlayerMoveC2SPacketAccessor move2 = (PlayerMoveC2SPacketAccessor) move; + if (event.packet instanceof IServerboundMovePlayerPacket move) { + ServerboundMovePlayerPacketAccessor move2 = (ServerboundMovePlayerPacketAccessor) move; if (move2.getOnGround()) { - mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_FALL_FLYING)); + mc.player.connection.send(new ServerboundPlayerCommandPacket(mc.player, ServerboundPlayerCommandPacket.Action.START_FALL_FLYING)); move2.setOnGround(false); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Verus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Verus.java index 3c1fbce..dd8deec 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Verus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Verus.java @@ -1,10 +1,10 @@ package nekiplay.meteorplus.features.modules.movement.nofall.modes; import meteordevelopment.meteorclient.events.packets.PacketEvent; -import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; +import meteordevelopment.meteorclient.mixin.ServerboundMovePlayerPacketAccessor; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallMode; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; public class Verus extends NoFallMode { @@ -14,15 +14,15 @@ public Verus() { @Override public void onSendPacket(PacketEvent.Send event) { - if (event.packet instanceof PlayerMoveC2SPacket) { - PlayerMoveC2SPacket packet = (PlayerMoveC2SPacket)event.packet; - PlayerMoveC2SPacketAccessor accessor = (PlayerMoveC2SPacketAccessor)packet; + if (event.packet instanceof ServerboundMovePlayerPacket) { + ServerboundMovePlayerPacket packet = (ServerboundMovePlayerPacket) event.packet; + ServerboundMovePlayerPacketAccessor accessor = (ServerboundMovePlayerPacketAccessor) packet; if (mc.player.fallDistance > 3.35) { accessor.meteor$setOnGround(true); mc.player.fallDistance = 0f; - var vel = mc.player.getVelocity(); - mc.player.setVelocity(vel.x, 0, vel.z); + var vel = mc.player.getDeltaMovement(); + mc.player.setDeltaMovement(vel.x, 0, vel.z); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Vulcan.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Vulcan.java index 345168d..7e49601 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Vulcan.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Vulcan.java @@ -2,11 +2,11 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; -import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; +import meteordevelopment.meteorclient.mixin.ServerboundMovePlayerPacketAccessor; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallMode; +import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; import nekiplay.meteorplus.utils.MovementUtils; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; public class Vulcan extends NoFallMode { public Vulcan() { @@ -28,20 +28,20 @@ public void onActivate() { @Override public void onTickEventPre(TickEvent.Pre event) { - if(!vulCanNoFall && mc.player.fallDistance > 3.25) { + if (!vulCanNoFall && mc.player.fallDistance > 3.25) { vulCanNoFall = true; } - if(vulCanNoFall && mc.player.isOnGround() && vulCantNoFall) { + if (vulCanNoFall && mc.player.onGround() && vulCantNoFall) { vulCantNoFall = false; } - if(vulCantNoFall) return; - if(nextSpoof) { - mc.player.getVelocity().add(0, -0.1, 0); + if (vulCantNoFall) return; + if (nextSpoof) { + mc.player.getDeltaMovement().add(0, -0.1, 0); mc.player.fallDistance = -0.1f; MovementUtils.strafe(0.3f); nextSpoof = false; } - if(mc.player.fallDistance > 3.5625f) { + if (mc.player.fallDistance > 3.5625f) { mc.player.fallDistance = 0.0f; doSpoof = true; nextSpoof = true; @@ -50,15 +50,15 @@ public void onTickEventPre(TickEvent.Pre event) { @Override public void onSendPacket(PacketEvent.Send event) { - if (event.packet instanceof PlayerMoveC2SPacket) { - PlayerMoveC2SPacket packet = (PlayerMoveC2SPacket) event.packet; - PlayerMoveC2SPacketAccessor accessor = (PlayerMoveC2SPacketAccessor) packet; + if (event.packet instanceof ServerboundMovePlayerPacket) { + ServerboundMovePlayerPacket packet = (ServerboundMovePlayerPacket) event.packet; + ServerboundMovePlayerPacketAccessor accessor = (ServerboundMovePlayerPacketAccessor) packet; accessor.meteor$setOnGround(true); doSpoof = false; - accessor.meteor$setY((double) Math.round(mc.player.getEntityPos().y * 2) / 2); - mc.player.setPosition(mc.player.getEntityPos().x, ((PlayerMoveC2SPacket) event.packet).getY(mc.player.getEntityPos().y), mc.player.getEntityPos().z); + accessor.meteor$setY((double) Math.round(mc.player.position().y * 2) / 2); + mc.player.setPos(mc.player.position().x, ((ServerboundMovePlayerPacket) event.packet).getY(mc.player.position().y), mc.player.position().z); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Vulcan277.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Vulcan277.java index eca6fdf..aca6059 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Vulcan277.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/nofall/modes/Vulcan277.java @@ -1,10 +1,10 @@ package nekiplay.meteorplus.features.modules.movement.nofall.modes; import meteordevelopment.meteorclient.events.packets.PacketEvent; -import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; -import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; +import meteordevelopment.meteorclient.mixin.ServerboundMovePlayerPacketAccessor; import nekiplay.meteorplus.features.modules.movement.nofall.NoFallMode; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; +import nekiplay.meteorplus.features.modules.movement.nofall.NoFallModes; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; public class Vulcan277 extends NoFallMode { @@ -14,15 +14,15 @@ public Vulcan277() { @Override public void onSendPacket(PacketEvent.Send event) { - if (event.packet instanceof PlayerMoveC2SPacket) { - PlayerMoveC2SPacket packet = (PlayerMoveC2SPacket)event.packet; - PlayerMoveC2SPacketAccessor accessor = (PlayerMoveC2SPacketAccessor)packet; + if (event.packet instanceof ServerboundMovePlayerPacket) { + ServerboundMovePlayerPacket packet = (ServerboundMovePlayerPacket) event.packet; + ServerboundMovePlayerPacketAccessor accessor = (ServerboundMovePlayerPacketAccessor) packet; if (mc.player.fallDistance > 7.0) { accessor.meteor$setOnGround(true); mc.player.fallDistance = 0f; - var vel = mc.player.getVelocity(); - mc.player.setVelocity(vel.x, 0, vel.z); + var vel = mc.player.getDeltaMovement(); + mc.player.setDeltaMovement(vel.x, 0, vel.z); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowMode.java index 26329a9..ecf327a 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowMode.java @@ -3,19 +3,25 @@ import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; import nekiplay.main.events.PlayerUseMultiplierEvent; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class NoSlowMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final NoSlowPlus settings; private final NoSlowModes type; public NoSlowMode(NoSlowModes type) { this.settings = Modules.get().get(NoSlowPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onUse(PlayerUseMultiplierEvent event) { } - public void onTickEventPre(TickEvent.Pre event) { } - public void onActivate() { } + + public void onUse(PlayerUseMultiplierEvent event) { + } + + public void onTickEventPre(TickEvent.Pre event) { + } + + public void onActivate() { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowModes.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowModes.java index b17f765..b314e82 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowModes.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowModes.java @@ -1,7 +1,7 @@ package nekiplay.meteorplus.features.modules.movement.noslow; public enum NoSlowModes { - Vanila, + Vanilla, NCP_Strict, Grim_1dot8, Grim_New, diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowPlus.java index ca37032..d084063 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/NoSlowPlus.java @@ -15,6 +15,7 @@ public class NoSlowPlus extends Module { public NoSlowPlus() { super(Categories.Movement, "no-slow+", "Remove or increase slowness."); } + public SettingGroup defaultGroup = settings.getDefaultGroup(); private NoSlowMode currentMode; @@ -22,7 +23,7 @@ public NoSlowPlus() { public final Setting mode = defaultGroup.add(new EnumSetting.Builder() .name("mode") .description("The method of applying no slow.") - .defaultValue(NoSlowModes.Vanila) + .defaultValue(NoSlowModes.Vanilla) .onModuleActivated(spiderModesSetting -> onModeChanged(spiderModesSetting.get())) .onChanged(this::onModeChanged) .build() @@ -89,7 +90,7 @@ public NoSlowPlus() { private void onModeChanged(NoSlowModes mode) { switch (mode) { - case Vanila -> currentMode = new Vanila(); + case Vanilla -> currentMode = new Vanilla(); case NCP_Strict -> currentMode = new NCPStrict(); case Grim_1dot8 -> currentMode = new Grim(); case Grim_New -> currentMode = new GrimNew(); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Grim.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Grim.java index 793554f..5ff8f92 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Grim.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Grim.java @@ -3,33 +3,32 @@ import nekiplay.main.events.PlayerUseMultiplierEvent; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowMode; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowModes; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.network.packet.c2s.play.UpdateSelectedSlotC2SPacket; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.network.protocol.game.ServerboundSetCarriedItemPacket; public class Grim extends NoSlowMode { public Grim() { super(NoSlowModes.Grim_1dot8); } + @Override public void onUse(PlayerUseMultiplierEvent event) { - if (mc.player.isSneaking()) { + if (mc.player.isShiftKeyDown()) { event.setForward(settings.sneakForward.get().floatValue()); event.setSideways(settings.sneakSideways.get().floatValue()); - } - else if (mc.player.isUsingItem()) { + } else if (mc.player.isUsingItem()) { event.setForward(settings.usingForward.get().floatValue()); event.setSideways(settings.usingSideways.get().floatValue()); - } - else { + } else { event.setForward(settings.otherForward.get().floatValue()); event.setSideways(settings.otherSideways.get().floatValue()); } if (mc.player.isUsingItem()) { - ClientPlayNetworkHandler network = mc.getNetworkHandler(); - assert network != null; - network.sendPacket(new UpdateSelectedSlotC2SPacket(mc.player.getInventory().getSelectedSlot() % 8 + 1)); - network.sendPacket(new UpdateSelectedSlotC2SPacket(mc.player.getInventory().getSelectedSlot())); + ClientPacketListener network = mc.getConnection(); + assert network != null; + network.send(new ServerboundSetCarriedItemPacket(mc.player.getInventory().getSelectedSlot() % 8 + 1)); + network.send(new ServerboundSetCarriedItemPacket(mc.player.getInventory().getSelectedSlot())); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/GrimNew.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/GrimNew.java index 345da5b..72cc372 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/GrimNew.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/GrimNew.java @@ -3,10 +3,10 @@ import nekiplay.main.events.PlayerUseMultiplierEvent; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowMode; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowModes; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.network.packet.c2s.play.PlayerInteractItemC2SPacket; -import net.minecraft.network.packet.c2s.play.UpdateSelectedSlotC2SPacket; -import net.minecraft.util.Hand; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.network.protocol.game.ServerboundSetCarriedItemPacket; +import net.minecraft.network.protocol.game.ServerboundUseItemPacket; +import net.minecraft.world.InteractionHand; public class GrimNew extends NoSlowMode { public GrimNew() { @@ -15,28 +15,25 @@ public GrimNew() { @Override public void onUse(PlayerUseMultiplierEvent event) { - if (mc.player.isSneaking()) { + if (mc.player.isShiftKeyDown()) { event.setForward(settings.sneakForward.get().floatValue()); event.setSideways(settings.sneakSideways.get().floatValue()); - } - else if (mc.player.isUsingItem()) { + } else if (mc.player.isUsingItem()) { event.setForward(settings.usingForward.get().floatValue()); event.setSideways(settings.usingSideways.get().floatValue()); - } - else { + } else { event.setForward(settings.otherForward.get().floatValue()); event.setSideways(settings.otherSideways.get().floatValue()); } - Hand hand = mc.player.getActiveHand(); - ClientPlayNetworkHandler network = mc.getNetworkHandler(); + InteractionHand hand = mc.player.getUsedItemHand(); + ClientPacketListener network = mc.getConnection(); assert network != null; - if (hand == Hand.MAIN_HAND) { - network.sendPacket(new PlayerInteractItemC2SPacket(Hand.OFF_HAND, 0, 0, 0)); - } - else if (hand == Hand.OFF_HAND) { - network.sendPacket(new UpdateSelectedSlotC2SPacket(mc.player.getInventory().getSelectedSlot() % 8 + 1)); - network.sendPacket(new UpdateSelectedSlotC2SPacket(mc.player.getInventory().getSelectedSlot())); + if (hand == InteractionHand.MAIN_HAND) { + network.send(new ServerboundUseItemPacket(InteractionHand.OFF_HAND, 0, 0, 0)); + } else if (hand == InteractionHand.OFF_HAND) { + network.send(new ServerboundSetCarriedItemPacket(mc.player.getInventory().getSelectedSlot() % 8 + 1)); + network.send(new ServerboundSetCarriedItemPacket(mc.player.getInventory().getSelectedSlot())); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Matrix.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Matrix.java index c217c4a..e937034 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Matrix.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Matrix.java @@ -3,13 +3,13 @@ import meteordevelopment.meteorclient.events.world.TickEvent; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowMode; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowModes; -import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowPlus; -import net.minecraft.util.math.Vec3d; +import net.minecraft.world.phys.Vec3; public class Matrix extends NoSlowMode { public Matrix() { super(NoSlowModes.Matrix); } + private int ticks = 0; @Override @@ -20,14 +20,14 @@ public void onActivate() { @Override public void onTickEventPre(TickEvent.Pre event) { if (mc.player.isUsingItem()) { - if (mc.player.isOnGround()) { + if (mc.player.onGround()) { if (ticks % 2 == 0) { float speed = 0.4f; - Vec3d vel = mc.player.getVelocity(); - double x = vel.getX() * speed; - double z = vel.getZ() * speed; + Vec3 vel = mc.player.getDeltaMovement(); + double x = vel.x() * speed; + double z = vel.z() * speed; - mc.player.setVelocity(x, vel.getY(), z); + mc.player.setDeltaMovement(x, vel.y(), z); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/NCPStrict.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/NCPStrict.java index 4d18635..0d2109e 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/NCPStrict.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/NCPStrict.java @@ -3,32 +3,31 @@ import nekiplay.main.events.PlayerUseMultiplierEvent; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowMode; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowModes; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; -import net.minecraft.util.math.Direction; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.core.Direction; +import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket; public class NCPStrict extends NoSlowMode { public NCPStrict() { super(NoSlowModes.NCP_Strict); } + @Override public void onUse(PlayerUseMultiplierEvent event) { - if (mc.player.isSneaking()) { + if (mc.player.isShiftKeyDown()) { event.setForward(settings.sneakForward.get().floatValue()); event.setSideways(settings.sneakSideways.get().floatValue()); - } - else if (mc.player.isUsingItem()) { + } else if (mc.player.isUsingItem()) { event.setForward(settings.usingForward.get().floatValue()); event.setSideways(settings.usingSideways.get().floatValue()); - } - else { + } else { event.setForward(settings.otherForward.get().floatValue()); event.setSideways(settings.otherSideways.get().floatValue()); } if (mc.player.isUsingItem()) { - ClientPlayNetworkHandler network = mc.getNetworkHandler(); - network.sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.ABORT_DESTROY_BLOCK, mc.player.getBlockPos(), Direction.DOWN)); + ClientPacketListener network = mc.getConnection(); + network.send(new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK, mc.player.blockPosition(), Direction.DOWN)); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Vanila.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Vanilla.java similarity index 80% rename from src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Vanila.java rename to src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Vanilla.java index d6dc37d..49a0d67 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Vanila.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/noslow/modes/Vanilla.java @@ -4,22 +4,20 @@ import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowMode; import nekiplay.meteorplus.features.modules.movement.noslow.NoSlowModes; -public class Vanila extends NoSlowMode { - public Vanila() { - super(NoSlowModes.Vanila); +public class Vanilla extends NoSlowMode { + public Vanilla() { + super(NoSlowModes.Vanilla); } @Override public void onUse(PlayerUseMultiplierEvent event) { - if (mc.player.isSneaking()) { + if (mc.player.isShiftKeyDown()) { event.setForward(settings.sneakForward.get().floatValue()); event.setSideways(settings.sneakSideways.get().floatValue()); - } - else if (mc.player.isUsingItem()) { + } else if (mc.player.isUsingItem()) { event.setForward(settings.usingForward.get().floatValue()); event.setSideways(settings.usingSideways.get().floatValue()); - } - else { + } else { event.setForward(settings.otherForward.get().floatValue()); event.setSideways(settings.otherSideways.get().floatValue()); } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/scaffold/ScaffoldMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/scaffold/ScaffoldMode.java index 1e6b381..e65bf29 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/scaffold/ScaffoldMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/scaffold/ScaffoldMode.java @@ -2,17 +2,19 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import nekiplay.main.events.PlayerUseMultiplierEvent; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class ScaffoldMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final ScaffoldPlus settings; private final ScaffoldModes type; public ScaffoldMode(ScaffoldModes type) { this.settings = Modules.get().get(ScaffoldPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onUse(PlayerUseMultiplierEvent event) { } + + public void onUse(PlayerUseMultiplierEvent event) { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/SpeedMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/SpeedMode.java index 906dde1..d670051 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/SpeedMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/SpeedMode.java @@ -5,41 +5,55 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; -import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.client.Minecraft; +import net.minecraft.world.effect.MobEffects; public class SpeedMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final SpeedPlus settings; private final SpeedModes type; public SpeedMode(SpeedModes type) { this.settings = Modules.get().get(SpeedPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onReceivePacket(PacketEvent.Receive event) {} - public void onSendPacket(PacketEvent.Send event) {} - public void onSentPacket(PacketEvent.Sent event) {} - public void onPlayerMoveEvent(PlayerMoveEvent event) {} + public void onReceivePacket(PacketEvent.Receive event) { + } + + public void onSendPacket(PacketEvent.Send event) { + } + + public void onSentPacket(PacketEvent.Sent event) { + } + + public void onPlayerMoveEvent(PlayerMoveEvent event) { + } - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} + public void onTickEventPre(TickEvent.Pre event) { + } + + public void onTickEventPost(TickEvent.Post event) { + } - public void onJump(JumpVelocityMultiplierEvent event) {} + public void onJump(JumpVelocityMultiplierEvent event) { + } - public void onActivate() {} - public void onDeactivate() {} + public void onActivate() { + } + + public void onDeactivate() { + } protected double getDefaultSpeed() { double defaultSpeed = 0.2873; - if (mc.player.hasStatusEffect(StatusEffects.SPEED)) { - int amplifier = mc.player.getStatusEffect(StatusEffects.SPEED).getAmplifier(); + if (mc.player.hasEffect(MobEffects.SPEED)) { + int amplifier = mc.player.getEffect(MobEffects.SPEED).getAmplifier(); defaultSpeed *= 1.0 + 0.2 * (amplifier + 1); } - if (mc.player.hasStatusEffect(StatusEffects.SLOWNESS)) { - int amplifier = mc.player.getStatusEffect(StatusEffects.SLOWNESS).getAmplifier(); + if (mc.player.hasEffect(MobEffects.SLOWNESS)) { + int amplifier = mc.player.getEffect(MobEffects.SLOWNESS).getAmplifier(); defaultSpeed /= 1.0 + 0.2 * (amplifier + 1); } return defaultSpeed; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/SpeedPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/SpeedPlus.java index f822b6e..2f1182c 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/SpeedPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/SpeedPlus.java @@ -8,7 +8,8 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.features.modules.movement.speed.modes.*; +import nekiplay.meteorplus.features.modules.movement.speed.modes.AACHop438; +import nekiplay.meteorplus.features.modules.movement.speed.modes.NCPHop; import nekiplay.meteorplus.features.modules.movement.speed.modes.matrix.Matrix; import nekiplay.meteorplus.features.modules.movement.speed.modes.matrix.Matrix6_7_0; import nekiplay.meteorplus.features.modules.movement.speed.modes.matrix.MatrixExploit; @@ -21,6 +22,7 @@ public SpeedPlus() { super(Categories.Movement, "speed+", "Bypass speed"); onSpeedModeChanged(speedMode.get()); } + private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -101,10 +103,12 @@ private void onPreTick(TickEvent.Pre event) { private void onPostTick(TickEvent.Post event) { currentMode.onTickEventPost(event); } + @EventHandler public void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); } + @EventHandler public void onSentPacket(PacketEvent.Sent event) { currentMode.onSentPacket(event); @@ -116,7 +120,9 @@ private void onPlayerMoveEvent(PlayerMoveEvent event) { } @EventHandler - public void onJump(JumpVelocityMultiplierEvent event) { currentMode.onJump(event); } + public void onJump(JumpVelocityMultiplierEvent event) { + currentMode.onJump(event); + } private void onSpeedModeChanged(SpeedModes mode) { diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/AACHop438.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/AACHop438.java index f49232a..7f3e284 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/AACHop438.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/AACHop438.java @@ -21,11 +21,11 @@ public void onDeactivate() { public void onTickEventPre(TickEvent.Pre event) { Timer timer = Modules.get().get(Timer.class); timer.setOverride(Timer.OFF); - if (!PlayerUtils.isMoving() || mc.player.isTouchingWater() || mc.player.isInLava() || - mc.player.isClimbing() || mc.player.isRiding()) return; + if (!PlayerUtils.isMoving() || mc.player.isInWater() || mc.player.isInLava() || + mc.player.onClimbable() || mc.player.isHandsBusy()) return; - if (mc.player.isOnGround()) - mc.player.jump(); + if (mc.player.onGround()) + mc.player.jumpFromGround(); else { if (mc.player.fallDistance <= 0.1) timer.setOverride(1.5); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/NCPHop.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/NCPHop.java index 5ec6aa0..d5f789a 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/NCPHop.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/NCPHop.java @@ -20,19 +20,18 @@ public void onActivate() { @Override public void onDeactivate() { Modules.get().get(Timer.class).setOverride(Timer.OFF); - mc.player.getAbilities().setFlySpeed(0.02f); + mc.player.getAbilities().setFlyingSpeed(0.02f); } @Override public void onTickEventPre(TickEvent.Pre event) { - if (mc.player.isTouchingWater() || mc.player.isInLava() || - mc.player.isClimbing() || mc.player.isRiding()) return; + if (mc.player.isInWater() || mc.player.isInLava() || + mc.player.onClimbable() || mc.player.isHandsBusy()) return; Timer timer = Modules.get().get(Timer.class); - if (PlayerUtils.isMoving() && mc.player.isOnGround()) { - mc.player.jump(); - mc.player.getAbilities().setFlySpeed(0.0223f); - } - else { + if (PlayerUtils.isMoving() && mc.player.onGround()) { + mc.player.jumpFromGround(); + mc.player.getAbilities().setFlyingSpeed(0.0223f); + } else { timer.setOverride(1); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/Matrix.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/Matrix.java index a8f68fc..d3ca11d 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/Matrix.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/Matrix.java @@ -16,7 +16,7 @@ public Matrix() { public void onDeactivate() { Modules.get().get(Timer.class).setOverride(Timer.OFF); if (mc.player != null) { - mc.player.getAbilities().setFlySpeed(0.02f); + mc.player.getAbilities().setFlyingSpeed(0.02f); } } @@ -24,16 +24,15 @@ public void onDeactivate() { public void onTickEventPre(TickEvent.Pre event) { Timer timer = Modules.get().get(Timer.class); timer.setOverride(Timer.OFF); - if (mc.player.isTouchingWater() || mc.player.isInLava() || - mc.player.isClimbing() || mc.player.isRiding()) return; + if (mc.player.isInWater() || mc.player.isInLava() || + mc.player.onClimbable() || mc.player.isHandsBusy()) return; if (PlayerUtils.isMoving()) { - if (mc.player.isOnGround()) { - mc.player.jump(); - mc.player.getAbilities().setFlySpeed(0.02098f); + if (mc.player.onGround()) { + mc.player.jumpFromGround(); + mc.player.getAbilities().setFlyingSpeed(0.02098f); timer.setOverride(1.055f); } - } - else { + } else { timer.setOverride(1); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/Matrix6_7_0.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/Matrix6_7_0.java index 7de88d8..c48b2cd 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/Matrix6_7_0.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/Matrix6_7_0.java @@ -2,12 +2,12 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import meteordevelopment.meteorclient.utils.player.PlayerUtils; -import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; import nekiplay.meteorplus.features.modules.movement.speed.SpeedMode; import nekiplay.meteorplus.features.modules.movement.speed.SpeedModes; import nekiplay.meteorplus.utils.MovementUtils; +import net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket; public class Matrix6_7_0 extends SpeedMode { public Matrix6_7_0() { @@ -18,56 +18,56 @@ public Matrix6_7_0() { @Override public void onDeactivate() { - mc.player.getAbilities().setFlySpeed(0.02f); + mc.player.getAbilities().setFlyingSpeed(0.02f); } @Override public void onTickEventPre(TickEvent.Pre event) { work(); } + @Override public void onTickEventPost(TickEvent.Post event) { //work(); } public void onReceivePacket(PacketEvent.Receive event) { - if (event.packet instanceof EntityVelocityUpdateS2CPacket velocity) { - if (mc.player != null && mc.world != null && mc.world.getEntityById(velocity.getEntityId()) != null) { - if (mc.player == mc.world.getEntityById(velocity.getEntityId())) + if (event.packet instanceof ClientboundSetEntityMotionPacket velocity) { + if (mc.player != null && mc.level != null && mc.level.getEntity(velocity.id()) != null) { + if (mc.player == mc.level.getEntity(velocity.id())) noVelocityY = 10; } } } private void work() { - if (!mc.player.isOnGround() && noVelocityY <= 0) { - if (mc.player.getVelocity().y > 0) { - mc.player.getVelocity().add(0, -0.0005, 0); + if (!mc.player.onGround() && noVelocityY <= 0) { + if (mc.player.getDeltaMovement().y > 0) { + mc.player.getDeltaMovement().add(0, -0.0005, 0); } - mc.player.getVelocity().add(0, -0.0094001145141919810, 0); + mc.player.getDeltaMovement().add(0, -0.0094001145141919810, 0); } - if (!mc.player.isOnGround() && noVelocityY < 8) { + if (!mc.player.onGround() && noVelocityY < 8) { if (MovementUtils.getSpeed() < 0.2177 && noVelocityY < 8) { MovementUtils.strafe(0.2177f); } } - if (Math.abs(mc.player.getAbilities().getFlySpeed()) < 0.1) { - mc.player.getAbilities().setFlySpeed(0.026f); - } - else { - mc.player.getAbilities().setFlySpeed(0.0247f); + if (Math.abs(mc.player.getAbilities().getFlyingSpeed()) < 0.1) { + mc.player.getAbilities().setFlyingSpeed(0.026f); + } else { + mc.player.getAbilities().setFlyingSpeed(0.0247f); } - if (mc.player.isOnGround() && PlayerUtils.isMoving()) { - mc.options.jumpKey.setPressed(false); - mc.player.jump(); - IVec3d v = (IVec3d) mc.player.getVelocity(); + if (mc.player.onGround() && PlayerUtils.isMoving()) { + mc.options.keyJump.setDown(false); + mc.player.jumpFromGround(); + IVec3 v = (IVec3) mc.player.getDeltaMovement(); v.meteor$setY(0.41050001145141919810); - if (Math.abs(mc.player.getAbilities().getFlySpeed()) < 0.1) { + if (Math.abs(mc.player.getAbilities().getFlyingSpeed()) < 0.1) { MovementUtils.strafe(MovementUtils.getSpeed()); } } if (!PlayerUtils.isMoving()) { - IVec3d v = (IVec3d) mc.player.getVelocity(); + IVec3 v = (IVec3) mc.player.getDeltaMovement(); v.meteor$setXZ(0, 0); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/MatrixExploit.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/MatrixExploit.java index f2e322e..7892301 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/MatrixExploit.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/MatrixExploit.java @@ -1,15 +1,15 @@ package nekiplay.meteorplus.features.modules.movement.speed.modes.matrix; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; -import net.minecraft.util.math.Vec3d; import nekiplay.meteorplus.features.modules.movement.speed.SpeedMode; import nekiplay.meteorplus.features.modules.movement.speed.SpeedModes; import nekiplay.meteorplus.utils.ElytraUtils; +import net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket; +import net.minecraft.world.item.Items; +import net.minecraft.world.phys.Vec3; public class MatrixExploit extends SpeedMode { public MatrixExploit() { @@ -22,15 +22,15 @@ public void onActivate() { if (!elytra.found()) { settings.error("Elytra not found"); settings.toggle(); - } - else { + } else { tick = 0; } } public void startFly() { - mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_FALL_FLYING)); + mc.player.connection.send(new ServerboundPlayerCommandPacket(mc.player, ServerboundPlayerCommandPacket.Action.START_FALL_FLYING)); } + int tick = 0; @Override @@ -43,37 +43,36 @@ public void onTickEventPre(TickEvent.Pre event) { ElytraUtils.startFly(); InvUtils.move().fromArmor(2).to(elytra.slot()); tick = 21; - } - else { + } else { tick--; } - float yaw = mc.player.getYaw(); - Vec3d forward = Vec3d.fromPolar(0, yaw); - Vec3d right = Vec3d.fromPolar(0, yaw + 90); + float yaw = mc.player.getYRot(); + Vec3 forward = Vec3.directionFromRotation(0, yaw); + Vec3 right = Vec3.directionFromRotation(0, yaw + 90); double velX = 0; double velZ = 0; double s = settings.speedMatrix.get(); double speedValue = 0.01; - if (mc.options.forwardKey.isPressed()) { + if (mc.options.keyUp.isDown()) { velX += forward.x * s * speedValue; velZ += forward.z * s * speedValue; } - if (mc.options.backKey.isPressed()) { + if (mc.options.keyDown.isDown()) { velX -= forward.x * s * speedValue; velZ -= forward.z * s * speedValue; } - if (mc.options.rightKey.isPressed()) { + if (mc.options.keyRight.isDown()) { velX += right.x * s * speedValue; velZ += right.z * s * speedValue; } - if (mc.options.leftKey.isPressed()) { + if (mc.options.keyLeft.isDown()) { velX -= right.x * s * speedValue; velZ -= right.z * s * speedValue; } - double y = mc.player.getVelocity().y; - ((IVec3d) mc.player.getVelocity()).meteor$set(velX, y, velZ); + double y = mc.player.getDeltaMovement().y; + ((IVec3) mc.player.getDeltaMovement()).meteor$set(velX, y, velZ); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/MatrixExploit2.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/MatrixExploit2.java index f2387dc..25697a3 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/MatrixExploit2.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/matrix/MatrixExploit2.java @@ -1,16 +1,16 @@ package nekiplay.meteorplus.features.modules.movement.speed.modes.matrix; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.math.Vec3d; import nekiplay.meteorplus.features.modules.movement.speed.SpeedMode; import nekiplay.meteorplus.features.modules.movement.speed.SpeedModes; import nekiplay.meteorplus.utils.ElytraUtils; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.item.Items; +import net.minecraft.world.phys.Vec3; public class MatrixExploit2 extends SpeedMode { public MatrixExploit2() { @@ -23,46 +23,47 @@ public void onActivate() { if (!elytra.found()) { settings.error("Elytra not found"); settings.toggle(); - } - else { + } else { ticks = 0; } } public void modifySpeed() { - float yaw = mc.player.getYaw(); - Vec3d forward = Vec3d.fromPolar(0, yaw); - Vec3d right = Vec3d.fromPolar(0, yaw + 90); + float yaw = mc.player.getYRot(); + Vec3 forward = Vec3.directionFromRotation(0, yaw); + Vec3 right = Vec3.directionFromRotation(0, yaw + 90); double velX = 0; double velZ = 0; double s = settings.speedMatrix.get(); double speedValue = 0.01; - if (mc.options.forwardKey.isPressed()) { + if (mc.options.keyUp.isDown()) { velX += forward.x * s * speedValue; velZ += forward.z * s * speedValue; } - if (mc.options.backKey.isPressed()) { + if (mc.options.keyDown.isDown()) { velX -= forward.x * s * speedValue; velZ -= forward.z * s * speedValue; } - if (mc.options.rightKey.isPressed()) { + if (mc.options.keyRight.isDown()) { velX += right.x * s * speedValue; velZ += right.z * s * speedValue; } - if (mc.options.leftKey.isPressed()) { + if (mc.options.keyLeft.isDown()) { velX -= right.x * s * speedValue; velZ -= right.z * s * speedValue; } - double y = mc.player.getVelocity().y; - ((IVec3d) mc.player.getVelocity()).meteor$set(velX, y, velZ); + double y = mc.player.getDeltaMovement().y; + ((IVec3) mc.player.getDeltaMovement()).meteor$set(velX, y, velZ); } + private int ticks = 0; private int slot = 0; + @Override public void onTickEventPre(TickEvent.Pre event) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; switch (ticks) { case 0: { @@ -73,13 +74,13 @@ public void onTickEventPre(TickEvent.Pre event) { ticks++; } case 1: { - if (mc.player.isOnGround()) - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + if (mc.player.onGround()) + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 2: { - if (mc.player.isOnGround()) - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + if (mc.player.onGround()) + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 3: { @@ -105,12 +106,10 @@ public void onTickEventPre(TickEvent.Pre event) { if (ticks >= 13 && ticks <= 16) { ticks++; modifySpeed(); - } - else if (ticks <= 16) { + } else if (ticks <= 16) { ticks++; modifySpeed(); - } - else { + } else { ticks = 0; } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/vulcan/Vulcan.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/vulcan/Vulcan.java index c583631..eed26f0 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/vulcan/Vulcan.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/vulcan/Vulcan.java @@ -4,13 +4,13 @@ import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.player.SlotUtils; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.item.Item; -import net.minecraft.item.Items; import nekiplay.meteorplus.features.modules.movement.speed.SpeedMode; import nekiplay.meteorplus.features.modules.movement.speed.SpeedModes; import nekiplay.meteorplus.utils.CustomSpeedUtils; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; import java.util.Objects; @@ -18,11 +18,13 @@ public class Vulcan extends SpeedMode { public Vulcan() { super(SpeedModes.Vulcan); } + public Item chestPlate; + @Override public void onDeactivate() { FindItemResult chest = InvUtils.find(chestPlate); - if (chest.found() && mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() == Items.ELYTRA && settings.autoSwapVulcan.get()) { + if (chest.found() && mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() == Items.ELYTRA && settings.autoSwapVulcan.get()) { InvUtils.move().from(chest.slot()).toArmor(2); } } @@ -33,11 +35,10 @@ public void onActivate() { if (!elytra.found()) { settings.error("Elytra not found"); settings.toggle(); - } - else { + } else { if (!SlotUtils.isArmor(elytra.slot()) && settings.autoSwapVulcan.get()) { - if (mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { - chestPlate = mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem(); + if (mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { + chestPlate = mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem(); InvUtils.move().from(elytra.slot()).toArmor(2); } } @@ -46,16 +47,14 @@ public void onActivate() { @Override public void onPlayerMoveEvent(PlayerMoveEvent event) { - if (mc.player != null && mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { - if (mc.player.hasStatusEffect(StatusEffects.SPEED) && mc.player.getStatusEffect(StatusEffects.SPEED) != null) { - if (Objects.requireNonNull(mc.player.getStatusEffect(StatusEffects.SPEED)).getAmplifier() == 1) { + if (mc.player != null && mc.player.getItemBySlot(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { + if (mc.player.hasEffect(MobEffects.SPEED) && mc.player.getEffect(MobEffects.SPEED) != null) { + if (Objects.requireNonNull(mc.player.getEffect(MobEffects.SPEED)).getAmplifier() == 1) { CustomSpeedUtils.applySpeed(event, settings.speedVulcanef2.get()); - } - else if (Objects.requireNonNull(mc.player.getStatusEffect(StatusEffects.SPEED)).getAmplifier() == 0) { + } else if (Objects.requireNonNull(mc.player.getEffect(MobEffects.SPEED)).getAmplifier() == 0) { CustomSpeedUtils.applySpeed(event, settings.speedVulcanef1.get()); } - } - else { + } else { CustomSpeedUtils.applySpeed(event, settings.speedVulcanef0.get()); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/vulcan/Vulcan_2_8_6.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/vulcan/Vulcan_2_8_6.java index aecf42e..b2eefad 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/vulcan/Vulcan_2_8_6.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/speed/modes/vulcan/Vulcan_2_8_6.java @@ -2,13 +2,11 @@ import meteordevelopment.meteorclient.events.entity.player.JumpVelocityMultiplierEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.utils.player.PlayerUtils; import nekiplay.meteorplus.features.modules.movement.speed.SpeedMode; import nekiplay.meteorplus.features.modules.movement.speed.SpeedModes; import nekiplay.meteorplus.utils.MovementUtils; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.util.math.Vec3d; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.phys.Vec3; public class Vulcan_2_8_6 extends SpeedMode { public Vulcan_2_8_6() { @@ -24,8 +22,8 @@ public void onJump(JumpVelocityMultiplierEvent event) { ticks = 0; speedLevel = 0; jumped = true; - if (mc.player.hasStatusEffect(StatusEffects.SPEED)) { - speedLevel = mc.player.getStatusEffect(StatusEffects.SPEED).getAmplifier(); + if (mc.player.hasEffect(MobEffects.SPEED)) { + speedLevel = mc.player.getEffect(MobEffects.SPEED).getAmplifier(); } } @@ -42,12 +40,12 @@ public void onTickEventPre(TickEvent.Pre event) { } } if (ticks == 4) { - Vec3d vel = mc.player.getEntityPos(); - mc.player.setPos(vel.x, vel.y - 0.376, vel.z); + Vec3 vel = mc.player.position(); + mc.player.setPosRaw(vel.x, vel.y - 0.376, vel.z); } if (ticks == 6) { - if (mc.player.speed > 0.298) { + if (mc.player.flyDist > 0.298) { MovementUtils.strafe(0.298); } jumped = false; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/SpiderMode.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/SpiderMode.java index be837fa..9ce790e 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/SpiderMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/SpiderMode.java @@ -3,25 +3,34 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class SpiderMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final SpiderPlus settings; private final SpiderModes type; public SpiderMode(SpiderModes type) { this.settings = Modules.get().get(SpiderPlus.class); - this.mc = MinecraftClient.getInstance(); + this.mc = Minecraft.getInstance(); this.type = type; } - public void onSendPacket(PacketEvent.Send event) {} - public void onSentPacket(PacketEvent.Sent event) {} + public void onSendPacket(PacketEvent.Send event) { + } - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} + public void onSentPacket(PacketEvent.Sent event) { + } - public void onActivate() {} - public void onDeactivate() {} + public void onTickEventPre(TickEvent.Pre event) { + } + + public void onTickEventPost(TickEvent.Post event) { + } + + public void onActivate() { + } + + public void onDeactivate() { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/SpiderPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/SpiderPlus.java index 4273ce1..9d58964 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/SpiderPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/SpiderPlus.java @@ -18,6 +18,7 @@ public SpiderPlus() { super(Categories.Movement, "spider+", "Bypass spider"); onSpiderModeChanged(spiderMode.get()); } + private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -60,10 +61,12 @@ private void onPreTick(TickEvent.Pre event) { private void onPostTick(TickEvent.Post event) { currentMode.onTickEventPost(event); } + @EventHandler public void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); } + @EventHandler public void onSentPacket(PacketEvent.Sent event) { currentMode.onSentPacket(event); @@ -72,9 +75,15 @@ public void onSentPacket(PacketEvent.Sent event) { private void onSpiderModeChanged(SpiderModes mode) { switch (mode) { - case Matrix: currentMode = new Matrix(); break; - case Vulcan: currentMode = new Vulcan(); break; - case Elytra_clip: currentMode = new Eclip(); break; + case Matrix: + currentMode = new Matrix(); + break; + case Vulcan: + currentMode = new Vulcan(); + break; + case Elytra_clip: + currentMode = new Eclip(); + break; } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Eclip.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Eclip.java index 3e47acc..f99ee3b 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Eclip.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Eclip.java @@ -1,22 +1,21 @@ package nekiplay.meteorplus.features.modules.movement.spider.modes; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.utils.misc.Names; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import nekiplay.meteorplus.features.modules.movement.spider.SpiderMode; import nekiplay.meteorplus.features.modules.movement.spider.SpiderModes; -import nekiplay.meteorplus.features.modules.movement.spider.SpiderPlus; import nekiplay.meteorplus.utils.ElytraUtils; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.item.Items; public class Eclip extends SpiderMode { public Eclip() { super(SpiderModes.Elytra_clip); } + private int ticks = 0; private int slot = -1; private double blocks = 0; @@ -39,20 +38,21 @@ public void onTickEventPre(TickEvent.Pre event) { ticks = 0; } } + private boolean work() { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; FindItemResult elytra = InvUtils.find(Items.ELYTRA); if (elytra.found()) { return true; - } - else { + } else { return false; } } + private void clip() { if (blocks != 0) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; switch (ticks) { case 0: { @@ -62,11 +62,11 @@ private void clip() { ticks++; } case 1: { - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 2: { - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false, mc.player.horizontalCollision)); + mc.player.connection.send(new ServerboundMovePlayerPacket.StatusOnly(false, mc.player.horizontalCollision)); ticks++; } case 3: { @@ -74,8 +74,8 @@ private void clip() { ticks++; } case 4: { - player.setPosition(player.getX(), player.getY() + blocks, player.getZ()); - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(player.getX(), player.getY() + blocks, player.getZ(), false, mc.player.horizontalCollision)); + player.setPos(player.getX(), player.getY() + blocks, player.getZ()); + mc.player.connection.send(new ServerboundMovePlayerPacket.Pos(player.getX(), player.getY() + blocks, player.getZ(), false, mc.player.horizontalCollision)); ticks++; } case 5: { diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Matrix.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Matrix.java index 869622a..18397af 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Matrix.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Matrix.java @@ -2,14 +2,14 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; +import meteordevelopment.meteorclient.mixin.ServerboundMovePlayerPacketAccessor; import nekiplay.meteorplus.features.modules.movement.spider.SpiderMode; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.math.Vec3d; import nekiplay.meteorplus.features.modules.movement.spider.SpiderModes; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.phys.Vec3; public class Matrix extends SpiderMode { public Matrix() { @@ -32,7 +32,7 @@ public void onActivate() { modify = false; assert mc.player != null; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; } private boolean YGround(double height, double min, double max) { @@ -60,25 +60,25 @@ public void onSentPacket(PacketEvent.Sent event) { private void work(Packet packet) { if (modify) { - if (packet instanceof PlayerMoveC2SPacket move) { + if (packet instanceof ServerboundMovePlayerPacket move) { assert mc.player != null; double y = mc.player.getY(); y = move.getY(y); if (YGround(y, RGround(startY) - 0.1, RGround(startY) + 0.1)) { - ((PlayerMoveC2SPacketAccessor) packet).meteor$setOnGround(true); + ((ServerboundMovePlayerPacketAccessor) packet).meteor$setOnGround(true); } - if (mc.player.isOnGround() && block) { + if (mc.player.onGround() && block) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; } } } else { assert mc.player != null; - if (mc.player.isOnGround() && block) { + if (mc.player.onGround() && block) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; } } @@ -89,8 +89,8 @@ private void work(Packet packet) { @Override public void onTickEventPre(TickEvent.Pre event) { if (modify) { - ClientPlayerEntity player = mc.player; - double y = player.getEntityPos().y; + LocalPlayer player = mc.player; + double y = player.position().y; if (lastY == y && tick > 1) { block = true; } else { @@ -101,37 +101,36 @@ public void onTickEventPre(TickEvent.Pre event) { @Override public void onTickEventPost(TickEvent.Post event) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; - Vec3d pl_velocity = player.getVelocity(); - Vec3d pos = player.getEntityPos(); - ClientPlayNetworkHandler h = mc.getNetworkHandler(); + Vec3 pl_velocity = player.getDeltaMovement(); + Vec3 pos = player.position(); + ClientPacketListener h = mc.getConnection(); modify = player.horizontalCollision; - if (mc.player.isOnGround()) { + if (mc.player.onGround()) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; } if (player.horizontalCollision) { if (!start) { start = true; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; lastY = mc.player.getY(); } if (!block) { if (tick == 0) { - mc.player.setVelocity(pl_velocity.x, 0.41999998688698, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.41999998688698, pl_velocity.z); tick = 1; } else if (tick == 1) { - mc.player.setVelocity(pl_velocity.x, 0.33319999363 - coff, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.33319999363 - coff, pl_velocity.z); tick = 2; } else if (tick == 2) { - mc.player.setVelocity(pl_velocity.x, 0.24813599862 - coff, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.24813599862 - coff, pl_velocity.z); tick = 0; } } - } - else { + } else { modify = false; tick = 0; } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Vulcan.java b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Vulcan.java index c85fff6..1a2e79a 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Vulcan.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/movement/spider/modes/Vulcan.java @@ -2,15 +2,15 @@ import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; +import meteordevelopment.meteorclient.mixin.ServerboundMovePlayerPacketAccessor; import nekiplay.meteorplus.features.modules.movement.spider.SpiderMode; -import net.minecraft.block.SlabBlock; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.math.Vec3d; import nekiplay.meteorplus.features.modules.movement.spider.SpiderModes; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.level.block.SlabBlock; +import net.minecraft.world.phys.Vec3; public class Vulcan extends SpiderMode { public Vulcan() { @@ -33,7 +33,7 @@ public void onActivate() { modify = false; assert mc.player != null; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; } private boolean YGround(double height, double min, double max) { @@ -61,25 +61,25 @@ public void onSentPacket(PacketEvent.Sent event) { private void work(Packet packet) { if (modify) { - if (packet instanceof PlayerMoveC2SPacket move) { + if (packet instanceof ServerboundMovePlayerPacket move) { assert mc.player != null; double y = mc.player.getY(); y = move.getY(y); if (YGround(y, RGround(startY) - 0.1, RGround(startY) + 0.1)) { - ((PlayerMoveC2SPacketAccessor) packet).meteor$setOnGround(true); + ((ServerboundMovePlayerPacketAccessor) packet).meteor$setOnGround(true); } - if (mc.player.isOnGround() && block) { + if (mc.player.onGround() && block) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; } } } else { assert mc.player != null; - if (mc.player.isOnGround() && block) { + if (mc.player.onGround() && block) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; } } @@ -90,9 +90,9 @@ private void work(Packet packet) { @Override public void onTickEventPre(TickEvent.Pre event) { if (modify) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; - double y = player.getEntityPos().y; + double y = player.position().y; if (lastY == y && tick > 1) { block = true; } else { @@ -105,18 +105,17 @@ private TypeStarted getType(double startY) { TypeStarted temp = TypeStarted.Air; double y = RGround(startY); assert mc.player != null; - if (mc.player.isOnGround()) { + if (mc.player.onGround()) { temp = TypeStarted.Block; - assert mc.world != null; - if (mc.world.getBlockState(mc.player.getBlockPos()).getBlock() instanceof SlabBlock) { + assert mc.level != null; + if (mc.level.getBlockState(mc.player.blockPosition()).getBlock() instanceof SlabBlock) { temp = TypeStarted.Slab; } } return temp; } - private enum TypeStarted - { + private enum TypeStarted { Block, Slab, Air, @@ -126,54 +125,53 @@ private enum TypeStarted @Override public void onTickEventPost(TickEvent.Post event) { - ClientPlayerEntity player = mc.player; + LocalPlayer player = mc.player; assert player != null; - Vec3d pl_velocity = player.getVelocity(); - ClientPlayNetworkHandler h = mc.getNetworkHandler(); + Vec3 pl_velocity = player.getDeltaMovement(); + ClientPacketListener h = mc.getConnection(); modify = player.horizontalCollision; - if (mc.player.isOnGround()) { + if (mc.player.onGround()) { block = false; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; start = false; typeStarted = getType(startY); } if (player.horizontalCollision) { if (!start) { start = true; - startY = mc.player.getEntityPos().y; + startY = mc.player.position().y; lastY = mc.player.getY(); } if (!block) { if (tick == 0) { - mc.player.setVelocity(pl_velocity.x, 0.41999998688698, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.41999998688698, pl_velocity.z); tick = 1; } else if (tick == 1) { - mc.player.setVelocity(pl_velocity.x, 0.33319999363 - coff, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.33319999363 - coff, pl_velocity.z); tick = 2; } else if (tick == 2) { - mc.player.setVelocity(pl_velocity.x, 0.24813599862 - coff, pl_velocity.z); + mc.player.setDeltaMovement(pl_velocity.x, 0.24813599862 - coff, pl_velocity.z); tick = 0; } switch (typeStarted) { case Air -> { - if (mc.player.getEntityPos().y >= startY + 1.5) { + if (mc.player.position().y >= startY + 1.5) { block = true; } } case Slab -> { - if (mc.player.getEntityPos().y >= startY + 2.5) { + if (mc.player.position().y >= startY + 2.5) { block = true; } } case Block -> { - if (mc.player.getEntityPos().y >= startY + 2) { + if (mc.player.position().y >= startY + 2) { block = true; } } } } - } - else { + } else { modify = false; tick = 0; } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/player/AutoDropPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/player/AutoDropPlus.java index f4adabb..6545c53 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/player/AutoDropPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/player/AutoDropPlus.java @@ -7,17 +7,16 @@ import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.player.SlotUtils; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.screen.GenericContainerScreenHandler; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.screen.ShulkerBoxScreenHandler; -import net.minecraft.screen.slot.SlotActionType; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ChestMenu; +import net.minecraft.world.inventory.ContainerInput; +import net.minecraft.world.inventory.ShulkerBoxMenu; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import java.util.List; -public class AutoDropPlus extends Module { +public class AutoDropPlus extends Module { public AutoDropPlus() { super(Categories.Player, "auto-drop", "Auto drop items in inventory."); } @@ -93,23 +92,23 @@ public AutoDropPlus() { @EventHandler public void onTickPost(TickEvent.Pre event) { - int sync = mc.player.currentScreenHandler.syncId; + int sync = mc.player.containerMenu.containerId; - for (int i = autoDropExcludeHotbar.get() ? 0 : 9; i < mc.player.getInventory().size(); i++) { - ItemStack itemStack = mc.player.getInventory().getStack(i); + for (int i = autoDropExcludeHotbar.get() ? 0 : 9; i < mc.player.getInventory().getContainerSize(); i++) { + ItemStack itemStack = mc.player.getInventory().getItem(i); if (items.get().contains(itemStack.getItem().asItem())) { if (tick == 0) { if (removeItems.get() && sync != -1) { - mc.interactionManager.clickSlot(sync, invIndexToSlotId(i), 300, SlotActionType.SWAP, mc.player); + mc.gameMode.handleContainerInput(sync, invIndexToSlotId(i), 300, ContainerInput.SWAP, mc.player); + } else if (!removeItems.get()) { + InvUtils.drop().slot(i); } - else if (!removeItems.get()) { InvUtils.drop().slot(i); } if (!workInstant.get()) { tick = delay.get(); } - } - else { + } else { tick--; } if (!workInstant.get()) { @@ -119,16 +118,17 @@ public void onTickPost(TickEvent.Pre event) { } if (removeContainersItems.get()) { for (int i = 0; i < SlotUtils.indexToId(SlotUtils.MAIN_START); i++) { - ScreenHandler handler = mc.player.currentScreenHandler; - if (!handler.getSlot(i).hasStack()) continue; + AbstractContainerMenu handler = mc.player.containerMenu; + if (!handler.getSlot(i).hasItem()) continue; - Item item = handler.getSlot(i).getStack().getItem(); + Item item = handler.getSlot(i).getItem().getItem(); if (items.get().contains(item.asItem())) { if (tick == 0) { if (removeItems.get()) { - mc.interactionManager.clickSlot(handler.syncId, getIndexToSlotId(handler, i), 300, SlotActionType.SWAP, mc.player); + mc.gameMode.handleContainerInput(handler.containerId, getIndexToSlotId(handler, i), 300, ContainerInput.SWAP, mc.player); + } else { + InvUtils.drop().slotId(i); } - else { InvUtils.drop().slotId(i); } if (!workInstant.get()) { tick = delay.get(); } @@ -142,16 +142,16 @@ public void onTickPost(TickEvent.Pre event) { } } } + public static int invIndexToSlotId(int invIndex) { return invIndex < 9 && invIndex != -1 ? 44 - (8 - invIndex) : invIndex; } - public static int getIndexToSlotId(ScreenHandler handler, int invIndex) { - if (handler instanceof GenericContainerScreenHandler genericContainerScreenHandler) { + public static int getIndexToSlotId(AbstractContainerMenu handler, int invIndex) { + if (handler instanceof ChestMenu genericContainerScreenHandler) { int count = genericContainerScreenHandler.slots.size(); return invIndex < 0 && invIndex != -1 ? count - (-1 - invIndex) : invIndex; - } - else if (handler instanceof ShulkerBoxScreenHandler genericContainerScreenHandler) { + } else if (handler instanceof ShulkerBoxMenu genericContainerScreenHandler) { int count = genericContainerScreenHandler.slots.size(); return invIndex < 0 && invIndex != -1 ? count - (-1 - invIndex) : invIndex; } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/EyeFinder.java b/src/main/java/nekiplay/meteorplus/features/modules/render/EyeFinder.java index b46f5fe..ffb10c4 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/EyeFinder.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/EyeFinder.java @@ -11,16 +11,15 @@ import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.render.color.SettingColor; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.block.BlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.shapes.VoxelShape; import java.util.HashMap; import java.util.Iterator; @@ -29,13 +28,14 @@ public class EyeFinder extends Module { public EyeFinder() { super(Categories.Render, "eye-finder", "Find block player look."); } + private final HashMap resultMap = new HashMap(); private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final SettingGroup sgBlock = settings.createGroup("Block"); public void drawLine(Render3DEvent event, Entity entity, HitResult result) { - event.renderer.line(entity.getEyePos().x, entity.getEyePos().y, entity.getEyePos().z, result.getPos().x, result.getPos().y, result.getPos().z, lineColor.get()); + event.renderer.line(entity.getEyePosition().x, entity.getEyePosition().y, entity.getEyePosition().z, result.getLocation().x, result.getLocation().y, result.getLocation().z, lineColor.get()); } @@ -66,12 +66,12 @@ public void renderBlock(Render3DEvent event, Entity entity, HitResult result) { if (result instanceof BlockHitResult blockHitResult) { if (blockHitResult.getType() == HitResult.Type.BLOCK || blockHitResult.getType() == HitResult.Type.MISS) { BlockPos bp = new BlockPos(blockHitResult.getBlockPos()); - BlockState state = mc.world.getBlockState(bp); - Direction side = blockHitResult.getSide(); - VoxelShape shape = state.getOutlineShape(mc.world, bp); + BlockState state = mc.level.getBlockState(bp); + Direction side = blockHitResult.getDirection(); + VoxelShape shape = state.getShape(mc.level, bp); if (shape.isEmpty()) return; - Box box = shape.getBoundingBox(); + AABB box = shape.bounds(); if (side == Direction.UP || side == Direction.DOWN) { event.renderer.sideHorizontal(bp.getX() + box.minX, bp.getY() + (side == Direction.DOWN ? box.minY : box.maxY), bp.getZ() + box.minZ, bp.getX() + box.maxX, bp.getZ() + box.maxZ, sideColor.get(), lineColor.get(), shapeMode.get()); @@ -88,13 +88,13 @@ public void renderBlock(Render3DEvent event, Entity entity, HitResult result) { @EventHandler public void tickEvent(TickEvent.Pre event) { - if (mc.world != null) { - Iterator entityIterator = mc.world.getEntities().iterator(); + if (mc.level != null) { + Iterator entityIterator = mc.level.entitiesForRendering().iterator(); HashMap cachMap = new HashMap(); while (entityIterator.hasNext()) { Entity entity = entityIterator.next(); - if (entity instanceof PlayerEntity && entity != mc.player) { - HitResult result = entity.raycast(5, mc.getRenderTickCounter().getTickProgress(true), false); + if (entity instanceof Player && entity != mc.player) { + HitResult result = entity.pick(5, mc.getDeltaTracker().getGameTimeDeltaPartialTick(true), false); cachMap.put(entity, result); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/ItemFrameEsp.java b/src/main/java/nekiplay/meteorplus/features/modules/render/ItemFrameEsp.java index ae1919e..d227867 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/ItemFrameEsp.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/ItemFrameEsp.java @@ -3,7 +3,10 @@ import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.renderer.ShapeMode; -import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.settings.GenericSetting; +import meteordevelopment.meteorclient.settings.ItemListSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.render.RenderUtils; @@ -11,14 +14,13 @@ import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.settings.items.ESPItemData; import nekiplay.meteorplus.settings.items.ItemDataSetting; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.entity.Entity; -import net.minecraft.entity.decoration.ItemFrameEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.MathHelper; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.decoration.ItemFrame; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.phys.AABB; import java.util.List; import java.util.Map; @@ -26,7 +28,7 @@ public class ItemFrameEsp extends Module { public ItemFrameEsp() { - super(Categories.Render, "ItemFrame-esp", "backlighting of the frames in which the selected items"); + super(Categories.Render, "ItemFrame-esp", "back lightning of the frames in which the selected items"); } private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -60,16 +62,17 @@ public ItemFrameEsp() { .defaultData(defaultBlockConfig) .build() ); + @EventHandler private void onRender2D(Render3DEvent event) { - if (mc.world == null) return; - for (Entity entity : mc.world.getEntities()) { + if (mc.level == null) return; + for (Entity entity : mc.level.entitiesForRendering()) { double xl = entity.getX(); double yl = entity.getY(); double zl = entity.getZ(); - if (entity instanceof ItemFrameEntity) { - ItemFrameEntity itemFrame = (ItemFrameEntity)entity; - ItemStack held = itemFrame.getHeldItemStack(); + if (entity instanceof ItemFrame) { + ItemFrame itemFrame = (ItemFrame) entity; + ItemStack held = itemFrame.getItem(); if (whitelist.get().contains(held.getItem())) { ESPItemData espItemData = blockConfigs.get().get(held.getItem()); if (espItemData != null) { @@ -77,23 +80,22 @@ private void onRender2D(Render3DEvent event) { event.renderer.line(RenderUtils.center.x, RenderUtils.center.y, RenderUtils.center.z, xl, yl, zl, espItemData.tracerColor); } - double x = MathHelper.lerp(event.tickDelta, entity.lastRenderX, entity.getX()) - entity.getX(); - double y = MathHelper.lerp(event.tickDelta, entity.lastRenderY, entity.getY()) - entity.getY(); - double z = MathHelper.lerp(event.tickDelta, entity.lastRenderZ, entity.getZ()) - entity.getZ(); + double x = Mth.lerp(event.tickDelta, entity.xOld, entity.getX()) - entity.getX(); + double y = Mth.lerp(event.tickDelta, entity.yOld, entity.getY()) - entity.getY(); + double z = Mth.lerp(event.tickDelta, entity.zOld, entity.getZ()) - entity.getZ(); - Box box = entity.getBoundingBox(); + AABB box = entity.getBoundingBox(); event.renderer.box(x + box.minX, y + box.minY, z + box.minZ, x + box.maxX, y + box.maxY, z + box.maxZ, espItemData.sideColor, espItemData.lineColor, espItemData.shapeMode, 0); - } - else { + } else { if (defaultBlockConfig.get().tracer) { event.renderer.line(RenderUtils.center.x, RenderUtils.center.y, RenderUtils.center.z, xl, yl, zl, defaultBlockConfig.get().tracerColor); } - double x = MathHelper.lerp(event.tickDelta, entity.lastRenderX, entity.getX()) - entity.getX(); - double y = MathHelper.lerp(event.tickDelta, entity.lastRenderY, entity.getY()) - entity.getY(); - double z = MathHelper.lerp(event.tickDelta, entity.lastRenderZ, entity.getZ()) - entity.getZ(); + double x = Mth.lerp(event.tickDelta, entity.xOld, entity.getX()) - entity.getX(); + double y = Mth.lerp(event.tickDelta, entity.yOld, entity.getY()) - entity.getY(); + double z = Mth.lerp(event.tickDelta, entity.zOld, entity.getZ()) - entity.getZ(); - Box box = entity.getBoundingBox(); + AABB box = entity.getBoundingBox(); event.renderer.box(x + box.minX, y + box.minY, z + box.minZ, x + box.maxX, y + box.maxY, z + box.maxZ, defaultBlockConfig.get().sideColor, defaultBlockConfig.get().lineColor, defaultBlockConfig.get().shapeMode, 0); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/ItemHighlightPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/render/ItemHighlightPlus.java index 2315a01..9d4a469 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/ItemHighlightPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/ItemHighlightPlus.java @@ -7,11 +7,10 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.render.color.SettingColor; -import nekiplay.meteorplus.MeteorPlusAddon; import nekiplay.meteorplus.settings.items.HighlightItemData; import nekiplay.meteorplus.settings.items.ItemDataSetting; -import net.minecraft.item.Item; -import net.minecraft.item.Items; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; import java.util.List; import java.util.Map; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/KillEffect.java b/src/main/java/nekiplay/meteorplus/features/modules/render/KillEffect.java index e9dd291..386901b 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/KillEffect.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/KillEffect.java @@ -1,6 +1,5 @@ package nekiplay.meteorplus.features.modules.render; -import meteordevelopment.meteorclient.events.entity.player.AttackEntityEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.EnumSetting; import meteordevelopment.meteorclient.settings.Setting; @@ -8,12 +7,11 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.features.modules.movement.fly.FlyModes; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LightningEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.particle.ParticleTypes; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LightningBolt; +import net.minecraft.world.entity.LivingEntity; import java.util.ArrayList; @@ -21,6 +19,7 @@ public class KillEffect extends Module { public KillEffect() { super(Categories.Render, "kill-effect", "Render kill effect"); } + public final ArrayList entityList = new ArrayList<>(); private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -45,21 +44,21 @@ public String toString() { @EventHandler public void onTickEvent(TickEvent.Post event) { - for (Entity entity : mc.world.getEntities()) { + for (Entity entity : mc.level.entitiesForRendering()) { if (entity instanceof LivingEntity livingEntity) { if (livingEntity.deathTime > 0 || livingEntity.getHealth() <= 0) { if (!entityList.contains(entity)) { switch (mode.get()) { case Lighting_Bolt -> { - LightningEntity lightning = new LightningEntity(EntityType.LIGHTNING_BOLT, mc.world); - lightning.refreshPositionAfterTeleport(livingEntity.getEntityPos()); - mc.world.addEntity(lightning); + LightningBolt lightning = new LightningBolt(EntityType.LIGHTNING_BOLT, mc.level); + lightning.snapTo(livingEntity.position()); + mc.level.addEntity(lightning); } case Falling_Lava -> { - for (int i = 0; i < entity.getHeight() * 10; i++) { - for (int j = 0; j < entity.getWidth() * 10; j++) { - for (int k = 0; k < entity.getWidth() * 10; k++) { - mc.world.addParticleClient(ParticleTypes.FALLING_LAVA, entity.getX() + j * 0.1, entity.getY() + i * 0.1, entity.getZ() + k * 0.1, 0, 0, 0); + for (int i = 0; i < entity.getBbHeight() * 10; i++) { + for (int j = 0; j < entity.getBbWidth() * 10; j++) { + for (int k = 0; k < entity.getBbWidth() * 10; k++) { + mc.level.addParticle(ParticleTypes.FALLING_LAVA, entity.getX() + j * 0.1, entity.getY() + i * 0.1, entity.getZ() + k * 0.1, 0, 0, 0); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramData.java b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramData.java index 6e68642..9bc662f 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramData.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramData.java @@ -2,9 +2,7 @@ import meteordevelopment.meteorclient.utils.render.color.Color; import meteordevelopment.meteorclient.utils.world.Dimension; -import net.minecraft.util.math.BlockPos; - -import java.util.ArrayList; +import net.minecraft.core.BlockPos; public class HologramData { public double x; @@ -18,6 +16,7 @@ public class HologramData { public HologramData() { } + public HologramData(double x, double y, double z, String text, String dimension, Color color, double max_render_distance) { this.x = x; this.y = y; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramDataListed.java b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramDataListed.java index e464312..a27a71e 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramDataListed.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramDataListed.java @@ -2,8 +2,7 @@ import meteordevelopment.meteorclient.utils.render.color.Color; import meteordevelopment.meteorclient.utils.world.Dimension; -import nekiplay.meteorplus.features.modules.world.customblocks.PosData; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; import java.util.ArrayList; import java.util.Objects; @@ -26,6 +25,7 @@ public class HologramDataListed { public HologramDataListed() { } + public HologramDataListed(double x, double y, double z, String text, String dimension, Color color, double max_render_distance) { this.x = x; this.y = y; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramModule.java b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramModule.java index 586ec45..e1a9608 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramModule.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramModule.java @@ -2,7 +2,6 @@ import com.google.gson.Gson; -import com.google.gson.JsonSyntaxException; import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.Render2DEvent; import meteordevelopment.meteorclient.events.world.TickEvent; @@ -17,12 +16,12 @@ import meteordevelopment.meteorclient.utils.render.color.Color; import meteordevelopment.meteorclient.utils.world.Dimension; import meteordevelopment.orbit.EventHandler; -import org.meteordev.starscript.Script; import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.item.Item; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.core.BlockPos; +import net.minecraft.world.item.Item; +import net.minecraft.world.phys.Vec3; import org.joml.Vector3d; +import org.meteordev.starscript.Script; import java.io.*; import java.nio.charset.StandardCharsets; @@ -37,6 +36,7 @@ public class HologramModule extends Module { public HologramModule() { super(Categories.Render, "holograms", "Create own holograms"); } + public Gson gson = new Gson(); public List allHolograms = new ArrayList(); @@ -65,7 +65,7 @@ private void onTick(TickEvent.Post event) { @EventHandler private void on2DRender(Render2DEvent event) { - Vec3d camera_pos = mc.gameRenderer.getCamera().getCameraPos(); + Vec3 camera_pos = mc.gameRenderer.getMainCamera().position(); for (HologramDataListed hologramData : inWorldHolograms) { Vector3d pos = new Vector3d(hologramData.x, hologramData.y, hologramData.z); if (pos.distance(camera_pos.x, camera_pos.y, camera_pos.z) <= hologramData.max_render_distance) { @@ -90,13 +90,13 @@ private void on2DRender(Render2DEvent event) { for (HologramData hologramData1 : hologramData.other_holograms) { text.render(MeteorStarscript.run(scripts.get(hologramData1.text)), hX - hologramData1.x, hY - hologramData1.y, hologramData1.color, true); if (hologramData1.item_id != 0) { - Item item = Item.byRawId(hologramData1.item_id); - RenderUtils.drawItem(event.drawContext, item.getDefaultStack(), (int) ((int) hX - hologramData1.x), (int) ((int) 0 - hologramData1.y), hologramData1.item_scale, true); + Item item = Item.byId(hologramData1.item_id); + RenderUtils.drawItem(event.graphics, item.getDefaultInstance(), (int) ((int) hX - hologramData1.x), (int) ((int) 0 - hologramData1.y), hologramData1.item_scale, true); } } if (hologramData.item_id != 0) { - Item item = Item.byRawId(hologramData.item_id); - RenderUtils.drawItem(event.drawContext, item.getDefaultStack(), (int) hX, (int) 0, hologramData.item_scale, true); + Item item = Item.byId(hologramData.item_id); + RenderUtils.drawItem(event.graphics, item.getDefaultInstance(), (int) hX, (int) 0, hologramData.item_scale, true); } } text.end(); @@ -140,8 +140,7 @@ private void load() { allHolograms.add(hologramData); MeteorPlusAddon.LOG.info(MeteorPlusAddon.METEOR_LOGPREFIX + " Success loaded hologram: " + file.getName()); } - } - catch (Exception e) { + } catch (Exception e) { MeteorPlusAddon.LOG.error(MeteorPlusAddon.METEOR_LOGPREFIX + " Error in hologram: " + e); } } catch (IOException e) { diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/BedrockStorageBruteforce.java b/src/main/java/nekiplay/meteorplus/features/modules/world/BedrockStorageBruteforce.java index a02b880..6ba6ebd 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/BedrockStorageBruteforce.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/BedrockStorageBruteforce.java @@ -16,16 +16,15 @@ import meteordevelopment.meteorclient.utils.render.color.SettingColor; import meteordevelopment.meteorclient.utils.world.Dimension; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.shapes.VoxelShape; import java.time.LocalDateTime; import java.time.ZoneId; @@ -76,52 +75,55 @@ public BedrockStorageBruteforce() { ); Thread clickerThread = null; private boolean scan = true; + private void stop() { - if (clickerThread != null && clickerThread.isAlive()) - { + if (clickerThread != null && clickerThread.isAlive()) { } scan = false; } + @Override public void onDeactivate() { stop(); } + private boolean isAllowScan(BlockPos pos) { - if (mc.world != null) { + if (mc.level != null) { if (!scanned.contains(pos)) { - BlockState state = mc.world.getBlockState(pos); + BlockState state = mc.level.getBlockState(pos); Block block = state.getBlock(); return block != Blocks.AIR && block != Blocks.BEDROCK && block != Blocks.LAVA && block != Blocks.WATER; } } return false; } + Dimension dim; + @Override public void onActivate() { dim = PlayerUtils.getDimension(); scan = true; clickerThread = new Thread(() -> { - while (scan) - { + while (scan) { assert mc.player != null; - BlockPos playerPos = mc.player.getBlockPos(); + BlockPos playerPos = mc.player.blockPosition(); int ranger = range.get(); int x = Utils.random(playerPos.getX() - ranger, playerPos.getX() + ranger); int y = Utils.random(1, 4); int z = Utils.random(playerPos.getZ() - ranger, playerPos.getZ() + ranger); - BlockPos posible = new BlockPos(x, y, z); + BlockPos possible = new BlockPos(x, y, z); if (LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() >= millis) { - if (isAllowScan(posible)) { - ClientPlayNetworkHandler conn = mc.getNetworkHandler(); + if (isAllowScan(possible)) { + ClientPacketListener conn = mc.getConnection(); if (conn != null) { - last = posible; - scanned.add(posible); - PlayerActionC2SPacket abortPacket = new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.START_DESTROY_BLOCK, posible, Direction.UP, 0); - conn.sendPacket(abortPacket); - PlayerActionC2SPacket abortPacket2 = new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.ABORT_DESTROY_BLOCK, posible, Direction.UP, 0); - conn.sendPacket(abortPacket2); + last = possible; + scanned.add(possible); + ServerboundPlayerActionPacket abortPacket = new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.START_DESTROY_BLOCK, possible, Direction.UP, 0); + conn.send(abortPacket); + ServerboundPlayerActionPacket abortPacket2 = new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK, possible, Direction.UP, 0); + conn.send(abortPacket2); millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + Utils.random(delaymin.get(), delaymax.get()); } } @@ -131,28 +133,32 @@ public void onActivate() { clickerThread.start(); millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); } + BlockPos last = null; long millis = 0; + @EventHandler private void onRender(Render3DEvent event) { if (last != null) { BlockPos bp = last; - assert mc.world != null; - BlockState state = mc.world.getBlockState(bp); - VoxelShape shape = state.getOutlineShape(mc.world, bp); + assert mc.level != null; + BlockState state = mc.level.getBlockState(bp); + VoxelShape shape = state.getShape(mc.level, bp); SettingColor color = new SettingColor(255, 255, 255); if (shape.isEmpty()) return; - for (Box b : shape.getBoundingBoxes()) { + for (AABB b : shape.toAabbs()) { event.renderer.box(bp.getX() + b.minX, bp.getY() + b.minY, bp.getZ() + b.minZ, bp.getX() + b.maxX, bp.getY() + b.maxY, bp.getZ() + b.maxZ, new SettingColor(255, 255, 255, 255), color, ShapeMode.Lines, 0); } event.renderer.line(RenderUtils.center.x, RenderUtils.center.y, RenderUtils.center.z, bp.getX(), bp.getY(), bp.getZ(), color); } } + @EventHandler private void onGameLeft(GameLeftEvent event) { scanned.clear(); stop(); } + @EventHandler private void onTickPre(TickEvent.Pre event) { if (PlayerUtils.getDimension() != dim) { diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/GhostBlockFixer.java b/src/main/java/nekiplay/meteorplus/features/modules/world/GhostBlockFixer.java index a979da3..a2013d5 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/GhostBlockFixer.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/GhostBlockFixer.java @@ -9,13 +9,12 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.block.BlockState; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket; +import net.minecraft.world.level.block.state.BlockState; import java.time.LocalDateTime; import java.time.ZoneId; @@ -25,6 +24,7 @@ public class GhostBlockFixer extends Module { public GhostBlockFixer() { super(Categories.World, "auto-ghost-block-fixer", "Automatically fix ghost blocks."); } + private final SettingGroup GBSettings = settings.getDefaultGroup(); private final Setting delay = GBSettings.add(new IntSetting.Builder() @@ -46,9 +46,9 @@ public GhostBlockFixer() { ); private final ArrayDeque blocks = new ArrayDeque<>(); + @EventHandler - public void onBlockBreak(BreakBlockEvent block) - { + public void onBlockBreak(BreakBlockEvent block) { blocks.add(block.blockPos); } @@ -56,36 +56,37 @@ public void onBlockBreak(BreakBlockEvent block) public void onActivate() { millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); } + @Override public void onDeactivate() { blocks.clear(); } + @EventHandler - public void onLeave(GameLeftEvent event) - { + public void onLeave(GameLeftEvent event) { blocks.clear(); } + private long millis = 0; + @EventHandler - public void onTick(TickEvent.Post event) - { + public void onTick(TickEvent.Post event) { if (!blocks.isEmpty()) { - ClientPlayNetworkHandler conn = mc.getNetworkHandler(); - ClientPlayerEntity player = mc.player; + ClientPacketListener conn = mc.getConnection(); + LocalPlayer player = mc.player; if (conn != null && player != null) { if (LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() >= millis) { BlockPos block = blocks.peek(); assert block != null; - assert mc.world != null; - double distance = mc.player.squaredDistanceTo(block.getX(), block.getY(), block.getZ()); - BlockState state = mc.world.getBlockState(block); + assert mc.level != null; + double distance = mc.player.distanceToSqr(block.getX(), block.getY(), block.getZ()); + BlockState state = mc.level.getBlockState(block); if (distance <= range.get() && state.isAir()) { millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + delay.get(); - PlayerActionC2SPacket packet = new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.ABORT_DESTROY_BLOCK, block, Direction.UP, 0); - conn.sendPacket(packet); + ServerboundPlayerActionPacket packet = new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK, block, Direction.UP, 0); + conn.send(packet); blocks.remove(); - } - else if (!state.isAir()) { + } else if (!state.isAir()) { blocks.remove(); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/SafeMine.java b/src/main/java/nekiplay/meteorplus/features/modules/world/SafeMine.java index ae4b981..57075fb 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/SafeMine.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/SafeMine.java @@ -15,15 +15,14 @@ import meteordevelopment.meteorclient.utils.world.BlockUtils; import meteordevelopment.orbit.EventHandler; import meteordevelopment.orbit.EventPriority; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.block.Blocks; -import net.minecraft.fluid.Fluids; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.core.BlockPos; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.Shapes; import java.util.ArrayList; import java.util.Iterator; @@ -66,7 +65,7 @@ public SafeMine() { ); private final Setting delay = ALSettings.add(new IntSetting.Builder() - .name("Repalce delay") + .name("Replace delay") .description("Delay for replace lava.") .defaultValue(0) .min(0) @@ -82,23 +81,19 @@ public SafeMine() { @EventHandler private void onTickEvent(TickEvent.Post event) { - if (mc.crosshairTarget != null && mc.crosshairTarget.getType() == HitResult.Type.BLOCK) { + if (mc.hitResult != null && mc.hitResult.getType() == HitResult.Type.BLOCK) { if (replaceLava.get()) { synchronized (lava) { Iterator iterator = lava.iterator(); - if (iterator.hasNext()) - { - if (tick == 0) - { + if (iterator.hasNext()) { + if (tick == 0) { if (mc.player != null) { BlockPos block = iterator.next(); - BlockUtils.place(block, Hand.OFF_HAND, mc.player.getInventory().getSelectedSlot(), false, 0, false, false, false); + BlockUtils.place(block, InteractionHand.OFF_HAND, mc.player.getInventory().getSelectedSlot(), false, 0, false, false, false); iterator.remove(); tick = delay.get(); } - } - else - { + } else { tick--; } } @@ -108,22 +103,20 @@ private void onTickEvent(TickEvent.Post event) { } @EventHandler - private void onCanContactLava(TickEvent.Post event) - { - if (mc.player != null && mc.world != null) { - Vec3d underpos = mc.player.getEntityPos().add(0, -1, 0); + private void onCanContactLava(TickEvent.Post event) { + if (mc.player != null && mc.level != null) { + Vec3 underpos = mc.player.position().add(0, -1, 0); BlockPos under = new BlockPos((int) underpos.x, (int) underpos.y, (int) underpos.z); - if (mc.world.getBlockState(under).isOf(Blocks.LAVA)) { - if (solidLavaFreeze.get() && mc.player.isOnGround()) { + if (mc.level.getBlockState(under).is(Blocks.LAVA)) { + if (solidLavaFreeze.get() && mc.player.onGround()) { if (!freeze) { freeze = true; - yaw = mc.player.getYaw(); - pitch = mc.player.getPitch(); - position = mc.player.getEntityPos(); + yaw = mc.player.getYRot(); + pitch = mc.player.getXRot(); + position = mc.player.position(); } } - } - else { + } else { freeze = false; } } @@ -131,7 +124,7 @@ private void onCanContactLava(TickEvent.Post event) @EventHandler private void onCanWalkOnFluid(CanWalkOnFluidEvent event) { - if ((event.fluidState.getFluid() == Fluids.LAVA || event.fluidState.getFluid() == Fluids.FLOWING_LAVA) && solidLava.get()) { + if ((event.fluidState.getType() == Fluids.LAVA || event.fluidState.getType() == Fluids.FLOWING_LAVA) && solidLava.get()) { event.walkOnFluid = true; if (solidLavaFreeze.get()) { freeze = true; @@ -142,8 +135,8 @@ private void onCanWalkOnFluid(CanWalkOnFluidEvent event) { @EventHandler private void onFluidCollisionShape(CollisionShapeEvent event) { if (!event.state.getFluidState().isEmpty()) { - if (mc.player != null && event.state != null && event.state.isOf(Blocks.LAVA )&& !mc.player.isInLava() && solidLava.get()) { - event.shape = VoxelShapes.fullCube(); + if (mc.player != null && event.state != null && event.state.is(Blocks.LAVA) && !mc.player.isInLava() && solidLava.get()) { + event.shape = Shapes.block(); } } } @@ -152,7 +145,7 @@ private void onFluidCollisionShape(CollisionShapeEvent event) { private void onStartBreakingBlock(StartBreakingBlockEvent event) { ArrayList lavaBlocks = isExposedLava(event.blockPos); if (lavaBlocks.size() > 0 && antiMine.get()) { - mc.options.attackKey.setPressed(false); + mc.options.keyAttack.setDown(false); event.setCancelled(true); synchronized (lava) { lava = isExposedLava(event.blockPos); @@ -160,30 +153,29 @@ private void onStartBreakingBlock(StartBreakingBlockEvent event) { } } - private ArrayList isExposedLava(BlockPos pos) - { + private ArrayList isExposedLava(BlockPos pos) { ArrayList blocks = new ArrayList<>(); - if (mc.world != null) { - if (mc.world.getBlockState(pos).isOf(Blocks.LAVA)) { + if (mc.level != null) { + if (mc.level.getBlockState(pos).is(Blocks.LAVA)) { blocks.add(pos); } - if (mc.world.getBlockState(pos.add(1, 0, 0)).isOf(Blocks.LAVA)) { - blocks.add(pos.add(1, 0, 0)); + if (mc.level.getBlockState(pos.offset(1, 0, 0)).is(Blocks.LAVA)) { + blocks.add(pos.offset(1, 0, 0)); } - if (mc.world.getBlockState(pos.add(-1, 0, 0)).isOf(Blocks.LAVA)) { - blocks.add(pos.add(-1, 0, 0)); + if (mc.level.getBlockState(pos.offset(-1, 0, 0)).is(Blocks.LAVA)) { + blocks.add(pos.offset(-1, 0, 0)); } - if (mc.world.getBlockState(pos.add(0, 1, 0)).isOf(Blocks.LAVA)) { - blocks.add(pos.add(0,1, 0)); + if (mc.level.getBlockState(pos.offset(0, 1, 0)).is(Blocks.LAVA)) { + blocks.add(pos.offset(0, 1, 0)); } - if (mc.world.getBlockState(pos.add(0, -1, 0)).isOf(Blocks.LAVA)) { - blocks.add(pos.add(0,-1, 0)); + if (mc.level.getBlockState(pos.offset(0, -1, 0)).is(Blocks.LAVA)) { + blocks.add(pos.offset(0, -1, 0)); } - if (mc.world.getBlockState(pos.add(0, 0, 1)).isOf(Blocks.LAVA)) { - blocks.add(pos.add(0,0, 1)); + if (mc.level.getBlockState(pos.offset(0, 0, 1)).is(Blocks.LAVA)) { + blocks.add(pos.offset(0, 0, 1)); } - if (mc.world.getBlockState(pos.add(0, 0, -1)).isOf(Blocks.LAVA)) { - blocks.add(pos.add(0,0, -1)); + if (mc.level.getBlockState(pos.offset(0, 0, -1)).is(Blocks.LAVA)) { + blocks.add(pos.offset(0, 0, -1)); } } return blocks; @@ -215,7 +207,7 @@ private ArrayList isExposedLava(BlockPos pos) private final Setting FreezeLookPlace = FSettings.add(new BoolSetting.Builder() .name("Freeze look place support") - .description("Unfreez you yaw and pitch on place") + .description("Unfreeze you yaw and pitch on place") .defaultValue(false) .visible(FreezeLookSilent::get) .build() @@ -223,43 +215,40 @@ private ArrayList isExposedLava(BlockPos pos) private float yaw = 0; private float pitch = 0; - private Vec3d position = Vec3d.ZERO; + private Vec3 position = Vec3.ZERO; @Override() public void onActivate() { - if (mc.player != null){ - yaw = mc.player.getYaw(); - pitch = mc.player.getPitch(); - position = mc.player.getEntityPos(); + if (mc.player != null) { + yaw = mc.player.getYRot(); + pitch = mc.player.getXRot(); + position = mc.player.position(); } } private boolean rotate = false; - private void setFreezeLook(PacketEvent.Send event, PlayerMoveC2SPacket playerMove) - { - if (playerMove.changesLook() && FreezeLook.get() && FreezeLookSilent.get() && !rotate) { + private void setFreezeLook(PacketEvent.Send event, ServerboundMovePlayerPacket playerMove) { + if (playerMove.hasRotation() && FreezeLook.get() && FreezeLookSilent.get() && !rotate) { event.setCancelled(true); - } - else if (mc.player != null && playerMove.changesLook() && FreezeLook.get() && !FreezeLookSilent.get()) { + } else if (mc.player != null && playerMove.hasRotation() && FreezeLook.get() && !FreezeLookSilent.get()) { event.setCancelled(true); - mc.player.setYaw(yaw); - mc.player.setPitch(pitch); + mc.player.setYRot(yaw); + mc.player.setXRot(pitch); } - if (mc.player != null && playerMove.changesPosition()) { - mc.player.setVelocity(0, 0, 0); - mc.player.setPos(position.x, position.y, position.z); + if (mc.player != null && playerMove.hasPosition()) { + mc.player.setDeltaMovement(0, 0, 0); + mc.player.setPosRaw(position.x, position.y, position.z); event.setCancelled(true); } } @EventHandler - private void InteractBlockEvent(InteractBlockEvent event) - { - if (mc.player != null && mc.getNetworkHandler() != null && FreezeLookPlace.get() && freeze) { - PlayerMoveC2SPacket.LookAndOnGround r = new PlayerMoveC2SPacket.LookAndOnGround(mc.player.getYaw(), mc.player.getPitch(), mc.player.isOnGround(), mc.player.horizontalCollision); + private void InteractBlockEvent(InteractBlockEvent event) { + if (mc.player != null && mc.getConnection() != null && FreezeLookPlace.get() && freeze) { + ServerboundMovePlayerPacket.Rot r = new ServerboundMovePlayerPacket.Rot(mc.player.getYRot(), mc.player.getXRot(), mc.player.onGround(), mc.player.horizontalCollision); rotate = true; - mc.getNetworkHandler().sendPacket(r); + mc.getConnection().send(r); rotate = false; } } @@ -267,17 +256,18 @@ private void InteractBlockEvent(InteractBlockEvent event) @EventHandler private void onMovePacket(PacketEvent.Send event) { if (freeze) { - if (event.packet instanceof PlayerMoveC2SPacket playerMove) { + if (event.packet instanceof ServerboundMovePlayerPacket playerMove) { if (Packet.get()) { setFreezeLook(event, playerMove); } } } } + @EventHandler private void onMovePacket2(PacketEvent.Send event) { if (freeze) { - if (event.packet instanceof PlayerMoveC2SPacket playerMove) { + if (event.packet instanceof ServerboundMovePlayerPacket playerMove) { if (Packet.get()) { setFreezeLook(event, playerMove); } @@ -289,8 +279,8 @@ private void onMovePacket2(PacketEvent.Send event) { private void onTick(TickEvent.Pre event) { if (freeze) { if (mc.player != null) { - mc.player.setVelocity(0, 0, 0); - mc.player.setPos(position.x, position.y, position.z); + mc.player.setDeltaMovement(0, 0, 0); + mc.player.setPosRaw(position.x, position.y, position.z); } } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/XrayBruteforce.java b/src/main/java/nekiplay/meteorplus/features/modules/world/XrayBruteforce.java index 1f094d6..1ebb524 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/XrayBruteforce.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/XrayBruteforce.java @@ -5,49 +5,47 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import meteordevelopment.meteorclient.MeteorClient; +import meteordevelopment.meteorclient.events.entity.player.BreakBlockEvent; import meteordevelopment.meteorclient.events.game.GameLeftEvent; -import meteordevelopment.meteorclient.events.meteor.KeyEvent; +import meteordevelopment.meteorclient.events.meteor.KeyInputEvent; import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; +import meteordevelopment.meteorclient.events.render.Render2DEvent; +import meteordevelopment.meteorclient.events.render.Render3DEvent; +import meteordevelopment.meteorclient.events.world.BlockUpdateEvent; +import meteordevelopment.meteorclient.renderer.ShapeMode; +import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Categories; +import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.render.blockesp.ESPBlock; import meteordevelopment.meteorclient.systems.modules.render.blockesp.ESPBlockData; import meteordevelopment.meteorclient.systems.modules.render.blockesp.ESPChunk; +import meteordevelopment.meteorclient.utils.Utils; +import meteordevelopment.meteorclient.utils.entity.EntityUtils; import meteordevelopment.meteorclient.utils.misc.Keybind; import meteordevelopment.meteorclient.utils.misc.UnorderedArrayList; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; import meteordevelopment.meteorclient.utils.player.PlayerUtils; +import meteordevelopment.meteorclient.utils.render.RenderUtils; import meteordevelopment.meteorclient.utils.render.color.RainbowColors; +import meteordevelopment.meteorclient.utils.render.color.SettingColor; import meteordevelopment.meteorclient.utils.world.Dimension; import meteordevelopment.meteorclient.utils.world.TickRate; -import nekiplay.meteorplus.MeteorPlusAddon; -import nekiplay.meteorplus.utils.GenerationBlock; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.chunk.Chunk; - -import meteordevelopment.meteorclient.events.entity.player.BreakBlockEvent; -import meteordevelopment.meteorclient.events.render.Render2DEvent; -import meteordevelopment.meteorclient.events.render.Render3DEvent; -import meteordevelopment.meteorclient.events.world.BlockUpdateEvent; -import meteordevelopment.meteorclient.renderer.ShapeMode; -import meteordevelopment.meteorclient.settings.*; -import meteordevelopment.meteorclient.systems.modules.Module; -import meteordevelopment.meteorclient.utils.Utils; -import meteordevelopment.meteorclient.utils.entity.EntityUtils; -import meteordevelopment.meteorclient.utils.render.RenderUtils; -import meteordevelopment.meteorclient.utils.render.color.SettingColor; import meteordevelopment.orbit.EventHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; +import nekiplay.meteorplus.utils.GenerationBlock; import nekiplay.meteorplus.utils.xraybruteforce.XBlock; import nekiplay.meteorplus.utils.xraybruteforce.XChunk; import nekiplay.meteorplus.utils.xraybruteforce.XGroup; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.ChunkAccess; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.shapes.VoxelShape; import java.io.*; import java.lang.reflect.Type; @@ -58,13 +56,14 @@ import static org.lwjgl.glfw.GLFW.GLFW_KEY_X; public class XrayBruteforce extends Module { - public XrayBruteforce() { - super(Categories.World, "xray-bruteForce", "Bypasses anti-xray."); + public XrayBruteforce() { + super(Categories.World, "xray-bruteForce", "Bypasses anti-xray."); RainbowColors.register(this::onTickRainbow); - } - private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgSVisual = settings.createGroup("Scaner"); - private final SettingGroup sgRVisual = settings.createGroup("Scaner Render Visuals"); + } + + private final SettingGroup sgGeneral = settings.getDefaultGroup(); + private final SettingGroup sgSVisual = settings.createGroup("Scanner"); + private final SettingGroup sgRVisual = settings.createGroup("Scanner Render Visuals"); private final SettingGroup sgSRenderer = settings.createGroup("Scanned Renderer"); private final SettingGroup sgSaver = settings.createGroup("Scanned Saver"); private final SettingGroup sgDelayer = settings.createGroup("Scanned Delayer"); @@ -94,7 +93,7 @@ public XrayBruteforce() { .build() ); - public final Setting load = sgSaver.add(new BoolSetting.Builder() + public final Setting load = sgSaver.add(new BoolSetting.Builder() .name("Load") .description("Load rendered ores.") .defaultValue(false) @@ -124,12 +123,13 @@ private void loadSaveOres() { try { String json = reader.readLine(); Gson gson = new Gson(); - Type type = new TypeToken>(){}.getType(); + Type type = new TypeToken>() { + }.getType(); Map read = gson.fromJson(json, type); BlockPos pos = new BlockPos(read.get("X"), read.get("Y"), read.get("Z")); - if (EntityUtils.isInRenderDistance(pos)) { - addBlock(pos, true); - } + if (EntityUtils.isInRenderDistance(pos)) { + addBlock(pos, true); + } } catch (IOException e) { e.printStackTrace(); @@ -185,17 +185,17 @@ private void saveRenderOre(RenderOre ore) { .build() ); - private final Setting> whblocks = sgGeneral.add(new BlockListSetting.Builder() - .name("whitelist") - .description("Which blocks to show x-rayed.") - .defaultValue( - Blocks.DIAMOND_ORE, - Blocks.DEEPSLATE_DIAMOND_ORE, - Blocks.ANCIENT_DEBRIS - ) - .onChanged(v -> scanned.clear()) - .build() - ); + private final Setting> whblocks = sgGeneral.add(new BlockListSetting.Builder() + .name("whitelist") + .description("Which blocks to show x-rayed.") + .defaultValue( + Blocks.DIAMOND_ORE, + Blocks.DEEPSLATE_DIAMOND_ORE, + Blocks.ANCIENT_DEBRIS + ) + .onChanged(v -> scanned.clear()) + .build() + ); private final Setting defaultBlockConfig = sgGeneral.add(new GenericSetting.Builder() @@ -231,12 +231,12 @@ private void saveRenderOre(RenderOre ore) { .build() ); - private final Setting packet_first = sgGeneral.add(new EnumSetting.Builder() - .name("packet-#1") - .description("First packet.") - .defaultValue(PacketMode.Start) - .build() - ); + private final Setting packet_first = sgGeneral.add(new EnumSetting.Builder() + .name("packet-#1") + .description("First packet.") + .defaultValue(PacketMode.Start) + .build() + ); private final Setting packet_two = sgGeneral.add(new EnumSetting.Builder() .name("packet-#2") @@ -252,55 +252,54 @@ private void saveRenderOre(RenderOre ore) { .build() ); - public enum PacketMode - { + public enum PacketMode { None, - Start, - Abort, + Start, + Abort, Stop, - } - - public final Setting clear_cache_blocks = sgGeneral.add(new BoolSetting.Builder() - .name("Clear-cache") - .description("Clear saved cache.") - .defaultValue(false) - .build() - ); - - public final Setting clear_cache_ores = sgGeneral.add(new BoolSetting.Builder() - .name("Clear-rendered-ores-cache") - .description("Clear saved ores cache.") - .defaultValue(false) - .build() - ); - - public final Setting rescanerDelay = sgDelayer.add(new IntSetting.Builder() - .name("rescaner-delay") - .description("Deley for rechecking blobk.") + } + + public final Setting clear_cache_blocks = sgGeneral.add(new BoolSetting.Builder() + .name("Clear-cache") + .description("Clear saved cache.") + .defaultValue(false) + .build() + ); + + public final Setting clear_cache_ores = sgGeneral.add(new BoolSetting.Builder() + .name("Clear-rendered-ores-cache") + .description("Clear saved ores cache.") + .defaultValue(false) + .build() + ); + + public final Setting rescannerDelay = sgDelayer.add(new IntSetting.Builder() + .name("rescanner-delay") + .description("Delay for rechecking block.") .defaultValue(2000) .build() ); public final Setting tps_sync = sgDelayer.add(new BoolSetting.Builder() .name("TPS-sync") - .description("TPS sync scaning.") + .description("TPS sync scanning.") .defaultValue(true) .build() ); - public final Setting fps_sync = sgDelayer.add(new BoolSetting.Builder() - .name("FPS-sync") - .description("FPS sync scaning.") - .defaultValue(false) - .build() - ); + public final Setting fps_sync = sgDelayer.add(new BoolSetting.Builder() + .name("FPS-sync") + .description("FPS sync scanning.") + .defaultValue(false) + .build() + ); - public final Setting auto_height = sgSVisual.add(new BoolSetting.Builder() - .name("Auto-height") - .description("Auto detect height.") - .defaultValue(false) - .build() - ); + public final Setting auto_height = sgSVisual.add(new BoolSetting.Builder() + .name("Auto-height") + .description("Auto detect height.") + .defaultValue(false) + .build() + ); public final Setting auto_dimension = sgSVisual.add(new BoolSetting.Builder() .name("Auto-dimension") @@ -345,31 +344,31 @@ public enum ScanPriority { Normal } - private final Setting range = sgSVisual.add(new IntSetting.Builder() - .name("range") - .description("Bruteforce range.") - .defaultValue(40) - .min(3) - .sliderRange(3, 512) - .build() - ); - private final Setting y_range = sgSVisual.add(new IntSetting.Builder() - .name("y-range") - .description("Bruteforce range.") - .defaultValue(13) - .min(3) - .sliderRange(3, 255) - .build() - ); - - private final Setting delaymin = sgDelayer.add(new IntSetting.Builder() - .name("Scan delay min") - .description("Bruteforce delay min .") - .defaultValue(30) - .min(0) - .sliderRange(0, 150) - .build() - ); + private final Setting range = sgSVisual.add(new IntSetting.Builder() + .name("range") + .description("Bruteforce range.") + .defaultValue(40) + .min(3) + .sliderRange(3, 512) + .build() + ); + private final Setting y_range = sgSVisual.add(new IntSetting.Builder() + .name("y-range") + .description("Bruteforce range.") + .defaultValue(13) + .min(3) + .sliderRange(3, 255) + .build() + ); + + private final Setting delaymin = sgDelayer.add(new IntSetting.Builder() + .name("Scan delay min") + .description("Bruteforce delay min .") + .defaultValue(30) + .min(0) + .sliderRange(0, 150) + .build() + ); private final Setting delaymax = sgDelayer.add(new IntSetting.Builder() .name("Scan delay max") @@ -438,7 +437,7 @@ private boolean isPressed() { return (pausekeybind.get().isPressed() && pauseBind.get()); } - private BlockPos currentScanBlock; + private BlockPos currentScanBlock; private boolean pause_toggle = true; @@ -458,21 +457,19 @@ private void onTickRainbow() { } } } + } catch (NullPointerException ignore) { } - catch (NullPointerException ignore) { } } } @EventHandler - private void onKeyEvent(KeyEvent event) - { + private void onKeyInputEvent(KeyInputEvent event) { if (event.action == KeyAction.Press && isPressed()) { pause_toggle = !pause_toggle; if (pause_toggle) { currentScanBlock = null; info("§c" + "Paused"); - } - else { + } else { info("§a" + "Un paused"); } } @@ -485,16 +482,15 @@ private void onMouseClickEvent(MouseClickEvent event) { if (pause_toggle) { currentScanBlock = null; info("§c" + "Paused"); - } - else { + } else { info("§a" + "Un paused"); } } } public class RenderOre { - public Block block = Blocks.AIR; - public BlockPos blockPos = null; + public Block block = Blocks.AIR; + public BlockPos blockPos = null; public RenderOre(BlockPos pos) { this.blockPos = pos; @@ -507,13 +503,13 @@ public RenderOre(BlockPos pos) { public SettingColor sidecolor = null; public SettingColor tracercolor = null; public ShapeMode shapeMode = null; - } + } private final List groups = new UnorderedArrayList<>(); public HashMap oresV3 = new HashMap(); + public XBlock getSBlockData(BlockPos pos) { - if (oresV3.containsKey(pos)) - { + if (oresV3.containsKey(pos)) { return oresV3.get(pos); } return null; @@ -536,15 +532,14 @@ public void removeGroup(XGroup group) { private final Long2ObjectMap chunks = new Long2ObjectOpenHashMap<>(); public XBlock getBlock(int x, int y, int z) { - XChunk chunk = chunks.get(ChunkPos.toLong(x >> 4, z >> 4)); + XChunk chunk = chunks.get(ChunkPos.pack(x >> 4, z >> 4)); return chunk == null ? null : chunk.get(x, y, z); } - private boolean setColors(RenderOre ore) - { + private boolean setColors(RenderOre ore) { if (ore != null && ore.block != null && ore.linecolor == null && ore.sidecolor == null && ore.tracercolor == null && ore.shapeMode == null && ore.sBlock == null) { - assert mc.world != null; - BlockState state = mc.world.getBlockState(ore.blockPos); + assert mc.level != null; + BlockState state = mc.level.getBlockState(ore.blockPos); if (ore.block == Blocks.AIR) { ore.block = state.getBlock(); } @@ -562,8 +557,9 @@ private boolean setColors(RenderOre ore) return false; } - public static final List ores = new ArrayList<>(); - private RenderOre getRenderOre(BlockPos pos) { + public static final List ores = new ArrayList<>(); + + private RenderOre getRenderOre(BlockPos pos) { synchronized (ores) { for (RenderOre cur : ores) { if (cur != null && cur.block != null && cur.blockPos != null && cur.blockPos.equals(pos)) { @@ -573,24 +569,25 @@ private RenderOre getRenderOre(BlockPos pos) { return null; } } + private void removeRenderOre(BlockPos pos) { synchronized (ores) { ores.removeIf(cur -> cur != null && cur.block != null && cur.blockPos != null && cur.blockPos.equals(pos)); } } - private void addRenderBlock(BlockPos blockPos) { - synchronized (ores) { - RenderOre ore = getRenderOre(blockPos); - if (ore == null) { - RenderOre ne = new RenderOre(blockPos); - ne.blockPos = blockPos; - ores.add(ne); - } - else if (ore.sBlock != null) { + + private void addRenderBlock(BlockPos blockPos) { + synchronized (ores) { + RenderOre ore = getRenderOre(blockPos); + if (ore == null) { + RenderOre ne = new RenderOre(blockPos); + ne.blockPos = blockPos; + ores.add(ne); + } else if (ore.sBlock != null) { ore.sBlock.update(); } - } - } + } + } public enum GenerationType { Old, @@ -613,8 +610,8 @@ private void addNeedRescan(BlockPos pos, int delay) { } } - @EventHandler - public void blockUpdateEvent(BlockUpdateEvent event) { + @EventHandler + public void blockUpdateEvent(BlockUpdateEvent event) { if (!event.oldState.isAir()) { if (scanned.contains(event.pos)) { if (whblocks.get().contains(event.newState.getBlock()) && !pause_toggle) { @@ -634,34 +631,34 @@ public void blockUpdateEvent(BlockUpdateEvent event) { } } } - } - - @EventHandler - private void minedBlock(BreakBlockEvent event) { - new Thread(() -> { - RenderOre ore = getRenderOre(event.blockPos); - if (ore != null) { - ore.block = Blocks.AIR; + } + + @EventHandler + private void minedBlock(BreakBlockEvent event) { + new Thread(() -> { + RenderOre ore = getRenderOre(event.blockPos); + if (ore != null) { + ore.block = Blocks.AIR; updateRenderedOres(); synchronized (ores) { ores.remove(ore); } - } - }).start(); - } + } + }).start(); + } - private void addBlock(BlockPos pos, Boolean ignore) { - if (!scanned.contains(pos) && !ignore) { - blocks.add(pos); + private void addBlock(BlockPos pos, Boolean ignore) { + if (!scanned.contains(pos) && !ignore) { + blocks.add(pos); scanned.add(pos); - } else if (ignore) { + } else if (ignore) { blocks.add(pos); if (!scanned.contains(pos)) { scanned.add(pos); } } - } + } public ESPBlockData getBlockData(Block block) { ESPBlockData blockData = blockConfigs.get().get(block); @@ -671,7 +668,7 @@ public ESPBlockData getBlockData(Block block) { private void updateRenderedOres() { if (ores.size() > 0) { for (RenderOre pos : ores.toArray(new RenderOre[0])) { - BlockState state = mc.world.getBlockState(pos.blockPos); + BlockState state = mc.level.getBlockState(pos.blockPos); if (state.getBlock() == pos.block) { pos.sBlock.update(); } @@ -679,12 +676,11 @@ private void updateRenderedOres() { } } - private void renderOres(Render3DEvent event) { + private void renderOres(Render3DEvent event) { int renderBlocks = 0; if (ores.size() > 0) { for (RenderOre pos : ores.toArray(new RenderOre[0])) { - if (setColors(pos)) - { + if (setColors(pos)) { if (autoSave.get()) { Thread saveth = new Thread(() -> { for (RenderOre ore : ores.toArray(new RenderOre[0])) { @@ -699,8 +695,7 @@ private void renderOres(Render3DEvent event) { renderOreBlock(event, pos); renderBlocks++; } - } - else { + } else { if (pos.sBlock != null) { if (EntityUtils.isInRenderDistance(pos.blockPos) && pos.block != null && whblocks.get().contains(pos.block)) { pos.sBlock.render(event, pos); @@ -715,52 +710,53 @@ private void renderOres(Render3DEvent event) { } renderedBlocks = renderBlocks; } - private int renderedBlocks = 0; - private void renderOreBlock(Render3DEvent event, RenderOre ore) - { - if (ore.block != null && mc.world != null && ore.tracercolor != null && ore.sidecolor != null && ore.linecolor != null) { - BlockState state = mc.world.getBlockState(ore.blockPos); - VoxelShape shape = state.getOutlineShape(mc.world, ore.blockPos); + + private int renderedBlocks = 0; + + private void renderOreBlock(Render3DEvent event, RenderOre ore) { + if (ore.block != null && mc.level != null && ore.tracercolor != null && ore.sidecolor != null && ore.linecolor != null) { + BlockState state = mc.level.getBlockState(ore.blockPos); + VoxelShape shape = state.getShape(mc.level, ore.blockPos); ESPBlockData blockdata = getBlockData(ore.block); if (shape.isEmpty()) return; - for (Box b : shape.getBoundingBoxes()) { - event.renderer.box(ore.blockPos.getX() + b.minX, ore.blockPos.getY() + b.minY, ore.blockPos.getZ() + b.minZ, ore.blockPos.getX() + b.maxX, ore.blockPos.getY() + b.maxY, ore.blockPos.getZ() + b.maxZ, ore.sidecolor, ore.linecolor, blockdata.shapeMode, 0); - } + for (AABB b : shape.toAabbs()) { + event.renderer.box(ore.blockPos.getX() + b.minX, ore.blockPos.getY() + b.minY, ore.blockPos.getZ() + b.minZ, ore.blockPos.getX() + b.maxX, ore.blockPos.getY() + b.maxY, ore.blockPos.getZ() + b.maxZ, ore.sidecolor, ore.linecolor, blockdata.shapeMode, 0); + } if (blockdata.tracer) { event.renderer.line(RenderUtils.center.x, RenderUtils.center.y, RenderUtils.center.z, ore.blockPos.getX(), ore.blockPos.getY(), ore.blockPos.getZ(), ore.tracercolor); } - } - } - private boolean lagging = false; - @EventHandler - private void render2d(Render2DEvent event) - { - lagging = false; - } - @EventHandler - private void onRender(Render3DEvent event) { - if (clear_cache_blocks.get()) - { - scanned.clear(); + } + } + + private boolean lagging = false; + + @EventHandler + private void render2d(Render2DEvent event) { + lagging = false; + } + + @EventHandler + private void onRender(Render3DEvent event) { + if (clear_cache_blocks.get()) { + scanned.clear(); need_rescan.clear(); - clear_cache_blocks.set(false); - info("Cache checked blocks cleared"); - } - if (clear_cache_ores.get()) - { - ores.clear(); - clear_cache_ores.set(false); - info("Cache render ores cleared"); - } + clear_cache_blocks.set(false); + info("Cache checked blocks cleared"); + } + if (clear_cache_ores.get()) { + ores.clear(); + clear_cache_ores.set(false); + info("Cache render ores cleared"); + } if (currentScanBlock != null) { BlockPos bp = currentScanBlock; - assert mc.world != null; - BlockState state = mc.world.getBlockState(bp); - VoxelShape shape = state.getOutlineShape(mc.world, bp); + assert mc.level != null; + BlockState state = mc.level.getBlockState(bp); + VoxelShape shape = state.getShape(mc.level, bp); if (shape.isEmpty()) return; if (outline.get()) { - for (Box b : shape.getBoundingBoxes()) { + for (AABB b : shape.toAabbs()) { event.renderer.box(bp.getX() + b.minX, bp.getY() + b.minY, bp.getZ() + b.minZ, bp.getX() + b.maxX, bp.getY() + b.maxY, bp.getZ() + b.maxZ, new SettingColor(255, 255, 255, 255), outlineColor.get(), ShapeMode.Lines, 0); } } @@ -768,13 +764,14 @@ private void onRender(Render3DEvent event) { event.renderer.line(RenderUtils.center.x, RenderUtils.center.y, RenderUtils.center.z, bp.getX(), bp.getY(), bp.getZ(), tracerColor.get()); } } - } + } @EventHandler private void onRenderOres(Render3DEvent event) { renderOres(event); } - private void addCaves(Chunk chunk) { + + private void addCaves(ChunkAccess chunk) { if (scanPriority.get() == ScanPriority.Caves) { ArrayList caf = new ArrayList(); caf.add(Blocks.AIR); @@ -800,19 +797,20 @@ private void addCaves(Chunk chunk) { } } } + private void addExposedBlocks() { - if (mc.world != null) { - Iterable chunks = Utils.chunks(); - for (Chunk chunk : chunks) { + if (mc.level != null) { + Iterable chunks = Utils.chunks(); + for (ChunkAccess chunk : chunks) { if (expanded.get()) { ESPChunk s = ESPChunk.searchChunk(chunk, whblocks.get()); if (s.blocks != null) { for (ESPBlock sBlock : s.blocks.values()) { BlockPos pos = new BlockPos(sBlock.x, sBlock.y, sBlock.z); - if (whblocks.get().contains(mc.world.getBlockState(pos).getBlock())) { + if (whblocks.get().contains(mc.level.getBlockState(pos).getBlock())) { if (isExposedOre(pos)) { if (auto_dimension.get()) { - GenerationBlock generationBlock = GenerationBlock.getGenerationBlock(mc.world.getBlockState(pos).getBlock(), false); + GenerationBlock generationBlock = GenerationBlock.getGenerationBlock(mc.level.getBlockState(pos).getBlock(), false); if (generationBlock != null && generationBlock.dimension == PlayerUtils.getDimension()) { addBlock(pos, false); List post = getBlocks(pos, clusterRange.get(), clusterRange.get()); @@ -852,93 +850,88 @@ private boolean isExposedBlock(BlockState state) { } private boolean isExposedOre(BlockPos pos) { - if (mc.world != null) { - BlockState def = mc.world.getBlockState(pos); + if (mc.level != null) { + BlockState def = mc.level.getBlockState(pos); if (whblocks.get().contains(def.getBlock())) { - if (isExposedBlock(mc.world.getBlockState(pos.add(0, 1, 0)))) + if (isExposedBlock(mc.level.getBlockState(pos.offset(0, 1, 0)))) return true; - else if (isExposedBlock(mc.world.getBlockState(pos.add(0, -1, 0)))) + else if (isExposedBlock(mc.level.getBlockState(pos.offset(0, -1, 0)))) return true; - else if (isExposedBlock(mc.world.getBlockState(pos.add(1, 0, 0)))) + else if (isExposedBlock(mc.level.getBlockState(pos.offset(1, 0, 0)))) return true; - else if (isExposedBlock(mc.world.getBlockState(pos.add(-1, 0, 0)))) + else if (isExposedBlock(mc.level.getBlockState(pos.offset(-1, 0, 0)))) return true; - else if (isExposedBlock(mc.world.getBlockState(pos.add(0, 0, 1)))) + else if (isExposedBlock(mc.level.getBlockState(pos.offset(0, 0, 1)))) return true; - else if (isExposedBlock(mc.world.getBlockState(pos.add(-0, 0, -1)))) + else if (isExposedBlock(mc.level.getBlockState(pos.offset(-0, 0, -1)))) return true; } } return false; } - private List blocks = new ArrayList<>(); - @Override - public String getInfoString() { + private List blocks = new ArrayList<>(); + + @Override + public String getInfoString() { if (pause_toggle) { return "paused"; - } - else { + } else { return renderedBlocks + "b, " + timescan + "t"; } - } + } - private boolean send(BlockPos blockpos) - { - boolean sucess = true; - if (blockpos == null) { - sucess = false; - } - ClientPlayNetworkHandler conn = mc.getNetworkHandler(); - if (conn == null) { - sucess = false; + private boolean send(BlockPos blockpos) { + boolean success = true; + if (blockpos == null) { + success = false; } - if (mc.world == null) { - sucess = false; + ClientPacketListener conn = mc.getConnection(); + if (conn == null) { + success = false; } - else { - BlockState state = mc.world.getBlockState(blockpos); + if (mc.level == null) { + success = false; + } else { + BlockState state = mc.level.getBlockState(blockpos); if (state.getBlock() == Blocks.WALL_TORCH || state.getBlock() == Blocks.TORCH || state.getBlock() == Blocks.AIR || state.getBlock() == Blocks.LAVA || state.getBlock() == Blocks.WATER) { - sucess = false; + success = false; } } if (!EntityUtils.isInRenderDistance(blockpos)) { - sucess = false; + success = false; } - if (sucess) { + if (success) { currentScanBlock = blockpos; - PlayerActionC2SPacket packet_one = getPacket(blockpos, packet_first); + ServerboundPlayerActionPacket packet_one = getPacket(blockpos, packet_first); if (packet_one != null) { - conn.sendPacket(packet_one); + conn.send(packet_one); } - PlayerActionC2SPacket packet_tw = getPacket(blockpos, packet_two); + ServerboundPlayerActionPacket packet_tw = getPacket(blockpos, packet_two); if (packet_tw != null) { - conn.sendPacket(packet_tw); + conn.send(packet_tw); } - addNeedRescan(blockpos, rescanerDelay.get()); - } - else { - currentScanBlock = null; + addNeedRescan(blockpos, rescannerDelay.get()); + } else { + currentScanBlock = null; } - if (sucess && !scanned.contains(blockpos)) { + if (success && !scanned.contains(blockpos)) { scanned.add(blockpos); } - return sucess; - } + return success; + } - private PlayerActionC2SPacket getPacket(BlockPos blockpos, Setting setting) { + private ServerboundPlayerActionPacket getPacket(BlockPos blockpos, Setting setting) { if (setting.get() == PacketMode.Abort) { - PlayerActionC2SPacket abort = new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.ABORT_DESTROY_BLOCK, new BlockPos(blockpos), Direction.UP, 0); + ServerboundPlayerActionPacket abort = new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK, new BlockPos(blockpos), Direction.UP, 0); return abort; - } - else if (setting.get() == PacketMode.Start) { - PlayerActionC2SPacket start = new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.START_DESTROY_BLOCK, new BlockPos(blockpos), Direction.UP, 0); + } else if (setting.get() == PacketMode.Start) { + ServerboundPlayerActionPacket start = new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.START_DESTROY_BLOCK, new BlockPos(blockpos), Direction.UP, 0); return start; - } - else if (setting.get() == PacketMode.Stop) { - PlayerActionC2SPacket stop = new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, new BlockPos(blockpos), Direction.UP, 0); + } else if (setting.get() == PacketMode.Stop) { + ServerboundPlayerActionPacket stop = new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.STOP_DESTROY_BLOCK, new BlockPos(blockpos), Direction.UP, 0); return stop; } return null; @@ -946,72 +939,64 @@ else if (setting.get() == PacketMode.Stop) { long timescan = 0; long millis = 0; - private void checker() - { + + private void checker() { float timeSinceLastTick = TickRate.INSTANCE.getTimeSinceLastTick(); - if (LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() >= millis && !pause_toggle) - { - if (blocks != null && blocks.size() > 0) { + if (LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() >= millis && !pause_toggle) { + if (blocks != null && blocks.size() > 0) { if (tps_sync.get() && timeSinceLastTick <= 1f) { work(); - } - else if (!tps_sync.get()) { + } else if (!tps_sync.get()) { work(); } - } - else - { + } else { if (tps_sync.get() && timeSinceLastTick <= 1f) { addRandomBlock(); work(); - } - else if (!tps_sync.get()) { + } else if (!tps_sync.get()) { addRandomBlock(); work(); } - } - } - } + } + } + } - private void work() - { - try { + private void work() { + try { long start = System.currentTimeMillis(); - Iterator blocksIterator = blocks.iterator(); - if (blocksIterator.hasNext()) { - if (fps_sync.get()) { - if (!lagging) { - BlockPos block = blocksIterator.next(); - if (send(block)) { - millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + Utils.random(delaymin.get(), delaymax.get()); - lagging = true; - } + Iterator blocksIterator = blocks.iterator(); + if (blocksIterator.hasNext()) { + if (fps_sync.get()) { + if (!lagging) { + BlockPos block = blocksIterator.next(); + if (send(block)) { + millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + Utils.random(delaymin.get(), delaymax.get()); + lagging = true; + } blocksIterator.remove(); - } - } - else - { - BlockPos block = blocksIterator.next(); - blocksIterator.remove(); - if (send(block)) { - millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + Utils.random(delaymin.get(), delaymax.get()); - lagging = true; - } - } - } + } + } else { + BlockPos block = blocksIterator.next(); + blocksIterator.remove(); + if (send(block)) { + millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + Utils.random(delaymin.get(), delaymax.get()); + lagging = true; + } + } + } long finish = System.currentTimeMillis(); timescan = finish - start; - } catch (Exception ignored) { } - } + } catch (Exception ignored) { + } + } - private void addRandomBlock() { + private void addRandomBlock() { assert mc.player != null; - int x = Utils.random(mc.player.getBlockPos().getX() -range.get(), mc.player.getBlockPos().getX() + range.get()); - int y; - int z = Utils.random(mc.player.getBlockPos().getZ() -range.get(), mc.player.getBlockPos().getZ() + range.get()); + int x = Utils.random(mc.player.blockPosition().getX() - range.get(), mc.player.blockPosition().getX() + range.get()); + int y; + int z = Utils.random(mc.player.blockPosition().getZ() - range.get(), mc.player.blockPosition().getZ() + range.get()); - if (auto_height.get()) - { + if (auto_height.get()) { List findBlocks = whblocks.get(); boolean newGeneration = false; if (generationType.get() == GenerationType.New) { @@ -1023,58 +1008,53 @@ private void addRandomBlock() { y = Utils.random(b.min_height, b.max_height); if (auto_dimension.get() && PlayerUtils.getDimension() == b.dimension) { addBlock(new BlockPos(x, y, z), false); - } - else if (!auto_dimension.get()) { + } else if (!auto_dimension.get()) { addBlock(new BlockPos(x, y, z), false); } - } - else if (b == null) { - y = Utils.random(mc.player.getBlockPos().getY() -y_range.get(), mc.player.getBlockPos().getY() + y_range.get()); + } else if (b == null) { + y = Utils.random(mc.player.blockPosition().getY() - y_range.get(), mc.player.blockPosition().getY() + y_range.get()); if (!scanned.contains(new BlockPos(x, y, z))) { addBlock(new BlockPos(x, y, z), false); } } } - } - else { - y = Utils.random(mc.player.getBlockPos().getY() -y_range.get(), mc.player.getBlockPos().getY() + y_range.get()); + } else { + y = Utils.random(mc.player.blockPosition().getY() - y_range.get(), mc.player.blockPosition().getY() + y_range.get()); if (!scanned.contains(new BlockPos(x, y, z))) { if (auto_dimension.get() && PlayerUtils.getDimension() == Dimension.Overworld) { addBlock(new BlockPos(x, y, z), false); - } - else if (!auto_dimension.get()) { + } else if (!auto_dimension.get()) { addBlock(new BlockPos(x, y, z), false); } } } - } - private Thread clickerThread; + } + + private Thread clickerThread; @EventHandler private void onGameLeft(GameLeftEvent event) { need_rescan.clear(); } - private void reScaner() - { + private void reScanner() { synchronized (need_rescan) { float timeSinceLastTick = TickRate.INSTANCE.getTimeSinceLastTick(); Iterator iterator = need_rescan.iterator(); while (iterator.hasNext()) { BlockScanned blockscanned = iterator.next(); if (timeSinceLastTick <= 1f) { - if (LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() >= blockscanned.rescanTime && mc.world != null) { - BlockState state = mc.world.getBlockState(blockscanned.pos); + if (LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() >= blockscanned.rescanTime && mc.level != null) { + BlockState state = mc.level.getBlockState(blockscanned.pos); if (whblocks.get().contains(state.getBlock())) { addRenderBlock(blockscanned.pos); for (BlockPos pos : getBlocks(blockscanned.pos, clusterRange.get(), clusterRange.get())) { addBlock(pos, true); if (!scanned.contains(pos)) { - addNeedRescan(pos, rescanerDelay.get()); + addNeedRescan(pos, rescannerDelay.get()); } } - } - else { + } else { RenderOre ore = getRenderOre(blockscanned.pos); if (ore != null) { removeRenderOre(blockscanned.pos); @@ -1082,8 +1062,7 @@ private void reScaner() } iterator.remove(); } - } - else if (timeSinceLastTick > 1) { + } else if (timeSinceLastTick > 1) { int[] piArray = String.valueOf(1 / timeSinceLastTick) .replaceAll("\\D", "") @@ -1096,24 +1075,24 @@ else if (timeSinceLastTick > 1) { } } } + private Thread exposedthread = null; - @Override - public void onActivate() { + + @Override + public void onActivate() { scan = true; - millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); - clickerThread = new Thread(() -> { + millis = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + clickerThread = new Thread(() -> { addRandomBlock(); - while (scan) - { - checker(); - reScaner(); - } - }); + while (scan) { + checker(); + reScanner(); + } + }); clickerThread.start(); exposedthread = new Thread(() -> { - while (scan) - { + while (scan) { addExposedBlocks(); updateRenderedOres(); try { @@ -1124,42 +1103,41 @@ public void onActivate() { } }); exposedthread.start(); - } + } + private boolean scan = false; - @Override - public void onDeactivate() { + + @Override + public void onDeactivate() { scan = false; - blocks.clear(); - currentScanBlock = null; - if (clickerThread != null) - { - clickerThread = null; - } - if (exposedthread != null) - { + blocks.clear(); + currentScanBlock = null; + if (clickerThread != null) { + clickerThread = null; + } + if (exposedthread != null) { exposedthread = null; } - } - - private static final List scanned = new ArrayList<>(); - - private List getBlocks(BlockPos startPos, int y_radius, int radius) - { - List temp = new ArrayList<>(); - for (int dy = -y_radius; dy <= y_radius; dy++) { - if ((startPos.getY() + dy) < -60 || (startPos.getY() + dy) > 360) continue; - for (int dz = -radius; dz <= radius; dz++) { - for (int dx = -radius; dx <= radius; dx++) { - BlockPos blockPos = startPos.add(dx, dy, dz); - BlockState state = mc.world.getBlockState(blockPos); + } + + private static final List scanned = new ArrayList<>(); + + private List getBlocks(BlockPos startPos, int y_radius, int radius) { + List temp = new ArrayList<>(); + for (int dy = -y_radius; dy <= y_radius; dy++) { + if ((startPos.getY() + dy) < -60 || (startPos.getY() + dy) > 360) continue; + for (int dz = -radius; dz <= radius; dz++) { + for (int dx = -radius; dx <= radius; dx++) { + BlockPos blockPos = startPos.offset(dx, dy, dz); + BlockState state = mc.level.getBlockState(blockPos); boolean isInRenderDistance = EntityUtils.isInRenderDistance(blockPos); boolean isBlockPosNotInList = !scanned.contains(blockPos); - if (isInRenderDistance && isBlockPosNotInList) { + if (isInRenderDistance && isBlockPosNotInList) { temp.add(blockPos); - } - } - } - } - return temp; - } + } + } + } + } + return temp; + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarm.java b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarm.java index bff6837..3af58b4 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarm.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarm.java @@ -10,8 +10,8 @@ import nekiplay.MixinPlugin; import nekiplay.meteorplus.features.modules.world.autoobsidianmine.modes.Cauldrons; import nekiplay.meteorplus.features.modules.world.autoobsidianmine.modes.Portals; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; public class AutoObsidianFarm extends Module { public AutoObsidianFarm() { @@ -23,7 +23,7 @@ public AutoObsidianFarm() { public final Setting workingMode = sgGeneral.add(new EnumSetting.Builder() .name("mode") .description("Working mode.") - .defaultValue(AutoObsidianFarmModes.Portals_Vanila) + .defaultValue(AutoObsidianFarmModes.Portals_Vanilla) .onModuleActivated(modesSetting -> onModeChanged(modesSetting.get())) .onChanged(this::onModeChanged) .build() @@ -32,14 +32,14 @@ public AutoObsidianFarm() { public final Setting mainPortalPosition = sgGeneral.add(new BlockPosSetting.Builder() .name("portal location 1") .description("the position of the portal to hell") - .visible(() -> workingMode.get() == AutoObsidianFarmModes.Portals_Vanila) + .visible(() -> workingMode.get() == AutoObsidianFarmModes.Portals_Vanilla) .build() ); public final Setting twoPortalPosition = sgGeneral.add(new BlockPosSetting.Builder() .name("portal location 2") .description("portal position in hell for new portal generations") - .visible(() -> workingMode.get() == AutoObsidianFarmModes.Portals_Vanila) + .visible(() -> workingMode.get() == AutoObsidianFarmModes.Portals_Vanilla) .build() ); @@ -123,7 +123,7 @@ public AutoObsidianFarm() { .name("disable-baritone-breaking-if-not-mine-portal") .description("No break blocks if is not mining portal.") .defaultValue(true) - .visible(() -> workingMode.get() == AutoObsidianFarmModes.Portals_Vanila) + .visible(() -> workingMode.get() == AutoObsidianFarmModes.Portals_Vanilla) .build() ); @@ -131,7 +131,7 @@ public AutoObsidianFarm() { .name("disable-baritone-place") .description("No place blocks.") .defaultValue(true) - .visible(() -> workingMode.get() == AutoObsidianFarmModes.Portals_Vanila) + .visible(() -> workingMode.get() == AutoObsidianFarmModes.Portals_Vanilla) .build() ); @@ -162,15 +162,14 @@ public AutoObsidianFarm() { private void onModeChanged(AutoObsidianFarmModes mode) { switch (mode) { - case Portal_Homes, Portals_Vanila -> { + case Portal_Homes, Portals_Vanilla -> { if (MixinPlugin.isBaritonePresent) { currentMode = new Portals(); - } - else { + } else { error("This mode need Baritone API (Fabric)"); } } - case Cauldrons -> { + case Cauldrons -> { currentMode = new Cauldrons(); } } @@ -197,12 +196,14 @@ public void onDeactivate() { currentMode.onDeactivate(); } } + @EventHandler private void onPreTickPost(TickEvent.Post event) { if (currentMode != null) { currentMode.onTickEventPost(event); } } + @EventHandler private void onPreTick(TickEvent.Pre event) { if (currentMode != null) { @@ -219,7 +220,7 @@ private void onCollisionShape(CollisionShapeEvent event) { @EventHandler private void onMovePacket(PacketEvent.Send event) { - if (event.packet instanceof PlayerMoveC2SPacket playerMove) { + if (event.packet instanceof ServerboundMovePlayerPacket playerMove) { if (currentMode != null) { currentMode.onMovePacket(playerMove); } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarmMode.java b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarmMode.java index 3256d6a..074ab38 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarmMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarmMode.java @@ -3,27 +3,40 @@ import meteordevelopment.meteorclient.events.world.CollisionShapeEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; +import net.minecraft.client.Minecraft; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; public class AutoObsidianFarmMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final AutoObsidianFarm settings; private final AutoObsidianFarmModes type; public AutoObsidianFarmMode(AutoObsidianFarmModes type) { - this.settings = Modules.get().get(AutoObsidianFarm.class);; - this.mc = MinecraftClient.getInstance(); + this.settings = Modules.get().get(AutoObsidianFarm.class); + ; + this.mc = Minecraft.getInstance(); this.type = type; } - public void onActivate() {} - public void onDeactivate() {} - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} - public void onCollisionShape(CollisionShapeEvent event) {} + public void onActivate() { + } + + public void onDeactivate() { + } - public void onMovePacket(PlayerMoveC2SPacket playerMove) {} + public void onTickEventPre(TickEvent.Pre event) { + } + + public void onTickEventPost(TickEvent.Post event) { + } - public String getInfoString() { return ""; } + public void onCollisionShape(CollisionShapeEvent event) { + } + + public void onMovePacket(ServerboundMovePlayerPacket playerMove) { + } + + public String getInfoString() { + return ""; + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarmModes.java b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarmModes.java index f50550c..1ada39c 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarmModes.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/AutoObsidianFarmModes.java @@ -1,7 +1,7 @@ package nekiplay.meteorplus.features.modules.world.autoobsidianmine; public enum AutoObsidianFarmModes { - Portals_Vanila, + Portals_Vanilla, Portal_Homes, Cauldrons; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/modes/Cauldrons.java b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/modes/Cauldrons.java index 4c00c98..4b2d4bc 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/modes/Cauldrons.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/modes/Cauldrons.java @@ -6,24 +6,29 @@ import meteordevelopment.meteorclient.systems.modules.player.AutoEat; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.Pool; -import meteordevelopment.meteorclient.utils.player.*; +import meteordevelopment.meteorclient.utils.player.ChatUtils; +import meteordevelopment.meteorclient.utils.player.FindItemResult; +import meteordevelopment.meteorclient.utils.player.InvUtils; +import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.meteorclient.utils.world.BlockIterator; import meteordevelopment.meteorclient.utils.world.BlockUtils; import meteordevelopment.meteorclient.utils.world.TickRate; import nekiplay.meteorplus.features.modules.world.autoobsidianmine.AutoObsidianFarmMode; import nekiplay.meteorplus.features.modules.world.autoobsidianmine.AutoObsidianFarmModes; import nekiplay.meteorplus.utils.RaycastUtils; -import net.minecraft.block.*; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.UpdateSelectedSlotC2SPacket; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.RaycastContext; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.protocol.game.ServerboundSetCarriedItemPacket; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.Shapes; import java.util.ArrayList; import java.util.Comparator; @@ -34,12 +39,13 @@ public Cauldrons() { super(AutoObsidianFarmModes.Cauldrons); } - private final List blocks = new ArrayList<>(); + private final List blocks = new ArrayList<>(); private boolean firstBlock; private int noBlockTimer; - private final BlockPos.Mutable lastBlockPos = new BlockPos.Mutable(); + private final BlockPos.MutableBlockPos lastBlockPos = new BlockPos.MutableBlockPos(); private int timer; - private final Pool blockPosPool = new Pool<>(BlockPos.Mutable::new); + private final Pool blockPosPool = new Pool<>(BlockPos.MutableBlockPos::new); + @Override public void onActivate() { firstBlock = true; @@ -49,6 +55,7 @@ public void onActivate() { lavaPlaceTimer = 0; placed = 0; } + private int collectTimer = 0; private int lavaPlaceTimer = 0; private final Portals.SortMode sortMode = Portals.SortMode.Closest; @@ -59,17 +66,18 @@ public void onCollisionShape(CollisionShapeEvent event) { return; } if (event.state.getBlock() == Blocks.CAULDRON || event.state.getBlock() == Blocks.LAVA_CAULDRON || event.state.getBlock() == Blocks.WATER_CAULDRON) { - event.shape = VoxelShapes.fullCube(); + event.shape = Shapes.block(); } } + private int placed = 0; @Override public void onDeactivate() { if (placed > 0) { - ChatUtils.info("Farmed obsidian: " + (placed/64) + " stacks"); + ChatUtils.info("Farmed obsidian: " + (placed / 64) + " stacks"); if (placed >= 64 * 27) { - ChatUtils.info("Farmed obsidian: " + (placed/64/27) + " chests"); + ChatUtils.info("Farmed obsidian: " + (placed / 64 / 27) + " chests"); } } } @@ -81,7 +89,9 @@ public String getInfoString() { @Override public void onTickEventPost(TickEvent.Post event) { - if (mc.player == null || mc.world == null || mc.interactionManager == null) { return; } + if (mc.player == null || mc.level == null || mc.gameMode == null) { + return; + } if ((mc.player.isUsingItem() || (Modules.get().get(AutoEat.class).isActive() && Modules.get().get(AutoEat.class).eating)) && settings.pauseOnEat.get()) { return; } @@ -89,7 +99,7 @@ public void onTickEventPost(TickEvent.Post event) { return; } BlockPos placing = settings.lavaPlaceLocation.get(); - if (mc.player.squaredDistanceTo(placing.toCenterPos()) >= settings.range.get() + settings.range.get() + 1) { + if (mc.player.distanceToSqr(placing.getCenter()) >= settings.range.get() + settings.range.get() + 1) { return; } BlockIterator.register(settings.range.get(), settings.range.get(), (blockPos, blockState) -> { @@ -124,7 +134,7 @@ public void onTickEventPost(TickEvent.Post event) { if (timer > 0) return; } - BlockState state = mc.world.getBlockState(placing); + BlockState state = mc.level.getBlockState(placing); if (state.getBlock() == Blocks.OBSIDIAN) { if (BlockUtils.canBreak(placing)) { @@ -135,44 +145,42 @@ public void onTickEventPost(TickEvent.Post event) { } else { FindItemResult bucket = InvUtils.findInHotbar(Items.BUCKET); FindItemResult lavaBucket = InvUtils.findInHotbar(Items.LAVA_BUCKET); - if (lavaBucket.found() && mc.player.getEntityPos().distanceTo(placing.toCenterPos()) <= settings.range.get() + 1) { + if (lavaBucket.found() && mc.player.position().distanceTo(placing.getCenter()) <= settings.range.get() + 1) { if (state.getBlock() != Blocks.LAVA) { if (lavaPlaceTimer >= settings.lavaPlaceDelay.get()) { double yaw = Rotations.getYaw(placing); double pitch = Rotations.getPitch(placing); - Vec3d pos = mc.player.getEyePos(); - HitResult result = RaycastUtils.bucketRaycast(pos, (float) pitch, (float) yaw, RaycastContext.FluidHandling.NONE); + Vec3 pos = mc.player.getEyePosition(); + HitResult result = RaycastUtils.bucketRaycast(pos, (float) pitch, (float) yaw, ClipContext.Fluid.NONE); if (result.getType() == HitResult.Type.BLOCK) { BlockHitResult blockHitResult = (BlockHitResult) result; BlockPos blockPos = blockHitResult.getBlockPos(); - Direction direction = blockHitResult.getSide(); - BlockPos blockPos2 = blockPos.offset(direction); + Direction direction = blockHitResult.getDirection(); + BlockPos blockPos2 = blockPos.relative(direction); if (blockPos2.equals(placing)) { Rotations.rotate(yaw, pitch, 10, true, () -> { InvUtils.swap(lavaBucket.slot(), true); - mc.interactionManager.interactItem(mc.player, Hand.MAIN_HAND); + mc.gameMode.useItem(mc.player, InteractionHand.MAIN_HAND); placed++; InvUtils.swapBack(); lavaPlaceTimer = 0; }); } } - } - else { + } else { lavaPlaceTimer++; } } - } - else if (bucket.found()) { + } else if (bucket.found()) { for (BlockPos block : blocks) { - BlockState state2 = mc.world.getBlockState(block); - if (state2.getBlock() == Blocks.LAVA_CAULDRON && mc.player.getEntityPos().distanceTo(block.toCenterPos()) <= settings.range.get() + 1) { + BlockState state2 = mc.level.getBlockState(block); + if (state2.getBlock() == Blocks.LAVA_CAULDRON && mc.player.position().distanceTo(block.getCenter()) <= settings.range.get() + 1) { if (collectTimer >= settings.collectDelay.get()) { mc.player.getInventory().setSelectedSlot(bucket.slot()); - mc.player.networkHandler.sendPacket(new UpdateSelectedSlotC2SPacket(bucket.slot())); + mc.player.connection.send(new ServerboundSetCarriedItemPacket(bucket.slot())); rotate(block, () -> { - Vec3d hitPos = Vec3d.ofCenter(block); + Vec3 hitPos = Vec3.atCenterOf(block); Direction side = Direction.DOWN; //BlockPos neighbour; //if (side == null) { @@ -185,12 +193,12 @@ else if (bucket.found()) { BlockHitResult bhr = new BlockHitResult(hitPos, Direction.UP, block, false); boolean isSneaking = false; if (settings.bypassSneak.get()) { - mc.player.setSneaking(false); + mc.player.setShiftKeyDown(false); isSneaking = true; } - BlockUtils.interact(bhr, Hand.MAIN_HAND, true); + BlockUtils.interact(bhr, InteractionHand.MAIN_HAND, true); if (settings.bypassSneak.get() && isSneaking) { - mc.player.setSneaking(true); + mc.player.setShiftKeyDown(true); } collectTimer = 0; }); @@ -201,12 +209,13 @@ else if (bucket.found()) { } } firstBlock = false; - for (BlockPos.Mutable blockPos : blocks) blockPosPool.free(blockPos); + for (BlockPos.MutableBlockPos blockPos : blocks) blockPosPool.free(blockPos); blocks.clear(); } } }); } + private void rotate(BlockPos target, Runnable action) { Rotations.rotate(Rotations.getYaw(target), Rotations.getPitch(target), action); } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/modes/Portals.java b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/modes/Portals.java index c5486a1..3f83109 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/modes/Portals.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/autoobsidianmine/modes/Portals.java @@ -15,12 +15,12 @@ import nekiplay.meteorplus.features.modules.world.autoobsidianmine.AutoObsidianFarmMode; import nekiplay.meteorplus.features.modules.world.autoobsidianmine.AutoObsidianFarmModes; import nekiplay.meteorplus.utils.BlockHelper; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Vec3d; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; import java.util.ArrayList; import java.util.Comparator; @@ -28,7 +28,7 @@ public class Portals extends AutoObsidianFarmMode { public Portals() { - super(AutoObsidianFarmModes.Portals_Vanila); + super(AutoObsidianFarmModes.Portals_Vanilla); } private final Shape shape = Shape.Cube; @@ -41,18 +41,18 @@ public Portals() { private final SortMode sortMode = SortMode.Closest; - private final Pool blockPosPool = new Pool<>(BlockPos.Mutable::new); - private final List blocks = new ArrayList<>(); + private final Pool blockPosPool = new Pool<>(BlockPos.MutableBlockPos::new); + private final List blocks = new ArrayList<>(); private boolean firstBlock; - private final BlockPos.Mutable lastBlockPos = new BlockPos.Mutable(); + private final BlockPos.MutableBlockPos lastBlockPos = new BlockPos.MutableBlockPos(); private int timer; private int noBlockTimer; - private final BlockPos.Mutable pos1 = new BlockPos.Mutable(); // Rendering for cubes - private final BlockPos.Mutable pos2 = new BlockPos.Mutable(); - private Box box; + private final BlockPos.MutableBlockPos pos1 = new BlockPos.MutableBlockPos(); // Rendering for cubes + private final BlockPos.MutableBlockPos pos2 = new BlockPos.MutableBlockPos(); + private AABB box; private int maxh = 0; private int maxv = 0; private boolean baritoneBreakSaved = false; @@ -113,7 +113,9 @@ public void onTickEventPre(TickEvent.Pre event) { if (commandDelay <= settings.delayCommand.get()) { commandDelay++; } - if (mc.player == null || mc.world == null) { return; } + if (mc.player == null || mc.level == null) { + return; + } if ((mc.player.isUsingItem() || (Modules.get().get(AutoEat.class).isActive() && Modules.get().get(AutoEat.class).eating)) && settings.pauseOnEat.get()) { return; } @@ -135,8 +137,7 @@ public void onTickEventPre(TickEvent.Pre event) { } } } - } - else if (settings.workingMode.get() == AutoObsidianFarmModes.Portals_Vanila) { + } else if (settings.workingMode.get() == AutoObsidianFarmModes.Portals_Vanilla) { if (PlayerUtils.getDimension() == Dimension.Overworld) { BlockPos to = settings.twoPortalPosition.get(); @@ -144,15 +145,13 @@ else if (settings.workingMode.get() == AutoObsidianFarmModes.Portals_Vanila) { double distance = Math.sqrt(PlayerUtils.squaredDistanceTo(dis.getX(), mc.player.getY(), dis.getZ())); if (distance <= 20) { List obsidians = getPortalBlocks(); - Block down = mc.world.getBlockState(mc.player.getBlockPos().add(0, -1, 0)).getBlock(); + Block down = mc.level.getBlockState(mc.player.blockPosition().offset(0, -1, 0)).getBlock(); if (obsidians.isEmpty()) { isMine = false; - } - else if (down == Blocks.OBSIDIAN) { + } else if (down == Blocks.OBSIDIAN) { isMine = true; } - } - else { + } else { isMine = false; } @@ -162,16 +161,14 @@ else if (down == Blocks.OBSIDIAN) { BaritoneAPI.getSettings().allowBreak.value = false; } if (!BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().hasPath() && !BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().isPathing()) { - to = settings.mainPortalPosition.get(); + to = settings.mainPortalPosition.get(); BaritoneAPI.getProvider().getPrimaryBaritone().getCommandManager().execute("goto " + to.getX() + " " + to.getY() + " " + to.getZ()); } - } - else if (BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().hasPath() || BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().isPathing() || BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().getPath().isPresent()) { + } else if (BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().hasPath() || BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().isPathing() || BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().getPath().isPresent()) { BaritoneAPI.getSettings().allowBreak.value = true; BaritoneAPI.getProvider().getPrimaryBaritone().getCommandManager().execute("stop"); } - } - else if (PlayerUtils.getDimension() == Dimension.Nether) { + } else if (PlayerUtils.getDimension() == Dimension.Nether) { isMine = false; if (settings.noBaritoneBreaking.get()) { BaritoneAPI.getSettings().allowBreak.value = false; @@ -210,7 +207,7 @@ else if (PlayerUtils.getDimension() == Dimension.Nether) { pos1.set(pX_ - r, pY - r + 1, pZ - r + 1); // down pos2.set(pX_ + r - 1, pY + r, pZ + r); // up } else { - int direction = Math.round((mc.player.getRotationClient().y % 360) / 90); + int direction = Math.round((mc.player.getRotationVector().y % 360) / 90); direction = (direction == 4 || direction == -4) ? 0 : direction; direction = direction == -2 ? 2 : direction == -1 ? 3 : direction == -3 ? 1 : direction; // stupid java not doing modulo shit @@ -249,7 +246,7 @@ else if (PlayerUtils.getDimension() == Dimension.Nether) { if (mode == Mode.Flatten) { pos1.setY((int) Math.floor(pY)); } - box = new Box(pos1.toCenterPos(), pos2.toCenterPos()); + box = new AABB(pos1.getCenter(), pos2.getCenter()); // Find blocks to break @@ -257,7 +254,7 @@ else if (PlayerUtils.getDimension() == Dimension.Nether) { // Check for air, unbreakable blocks and distance boolean toofarSphere = Utils.squaredDistance(pX, pY, pZ, blockPos.getX() + 0.5, blockPos.getY() + 0.5, blockPos.getZ() + 0.5) > rangeSq; boolean toofarUniformCube = maxDist(Math.floor(pX), Math.floor(pY), Math.floor(pZ), blockPos.getX(), blockPos.getY(), blockPos.getZ()) >= range; - boolean toofarCube = !box.contains(Vec3d.ofCenter(blockPos)); + boolean toofarCube = !box.contains(Vec3.atCenterOf(blockPos)); if (!BlockUtils.canBreak(blockPos, blockState) || (toofarSphere && shape == Shape.Sphere) @@ -321,7 +318,7 @@ else if (sortMode == SortMode.TopDown) firstBlock = false; // Clear current block positions - for (BlockPos.Mutable blockPos : blocks) blockPosPool.free(blockPos); + for (BlockPos.MutableBlockPos blockPos : blocks) blockPosPool.free(blockPos); blocks.clear(); } }); @@ -337,9 +334,9 @@ private List getPortalBlocks() { for (int i2 = -4; i2 < 4; i2++) { for (int i3 = -4; i3 < 4; i3++) { assert mc.player != null; - assert mc.world != null; - BlockPos pos = mc.player.getBlockPos().add(i2, i, i3); - BlockState state = mc.world.getBlockState(pos); + assert mc.level != null; + BlockPos pos = mc.player.blockPosition().offset(i2, i, i3); + BlockState state = mc.level.getBlockState(pos); if (state.getBlock() == Blocks.OBSIDIAN) { temp.add(pos); } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlockData.java b/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlockData.java index 3cc7b4e..3686610 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlockData.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlockData.java @@ -1,6 +1,6 @@ package nekiplay.meteorplus.features.modules.world.customblocks; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; import java.util.ArrayList; import java.util.List; @@ -11,7 +11,8 @@ public class CustomBlockData { public String world; public String dimension; - public CustomBlockData(BlockPos pos,int block_id) { + + public CustomBlockData(BlockPos pos, int block_id) { this.positions.add(new PosData(pos)); this.block_id = block_id; } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlocksModule.java b/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlocksModule.java index 2a836ac..00da9a9 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlocksModule.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlocksModule.java @@ -14,12 +14,13 @@ import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.block.*; -import net.minecraft.item.Item; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.Heightmap; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.WorldChunk; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.ChunkAccess; +import net.minecraft.world.level.chunk.LevelChunk; +import net.minecraft.world.level.levelgen.Heightmap; import java.io.*; import java.nio.charset.StandardCharsets; @@ -32,6 +33,7 @@ public class CustomBlocksModule extends Module { public CustomBlocksModule() { super(Categories.World, "Custom Blocks", "Place custom blocks in world, extension for Holograms"); } + public Gson gson = new Gson(); public HashMap allBlocks = new HashMap(); @@ -44,7 +46,7 @@ public void onActivate() { createDefault(); load(); - for (Chunk chunk : Utils.chunks()) { + for (ChunkAccess chunk : Utils.chunks()) { updateChunkData(chunk); } } @@ -56,13 +58,13 @@ public void onActivate() { .build() ); - private void updateChunkData(Chunk chunk) { + private void updateChunkData(ChunkAccess chunk) { String dimension = PlayerUtils.getDimension().name(); - for (int x = chunk.getPos().getStartX(); x <= chunk.getPos().getEndX(); x++) { - for (int z = chunk.getPos().getStartZ(); z <= chunk.getPos().getEndZ(); z++) { - int height = chunk.getHeightmap(Heightmap.Type.WORLD_SURFACE).get(x - chunk.getPos().getStartX(), z - chunk.getPos().getStartZ()); + for (int x = chunk.getPos().getMinBlockX(); x <= chunk.getPos().getMaxBlockX(); x++) { + for (int z = chunk.getPos().getMinBlockZ(); z <= chunk.getPos().getMaxBlockZ(); z++) { + int height = chunk.getOrCreateHeightmapUnprimed(Heightmap.Types.WORLD_SURFACE).getFirstAvailable(x - chunk.getPos().getMinBlockX(), z - chunk.getPos().getMinBlockZ()); - for (int y = mc.world.getBottomY(); y < height; y++) { + for (int y = mc.level.getMinY(); y < height; y++) { BlockPos pos = new BlockPos(x, y, z); @@ -84,7 +86,7 @@ private void updateChunkData(Chunk chunk) { @EventHandler private void onChunkData(ChunkDataEvent event) { - WorldChunk chunk = event.chunk(); + LevelChunk chunk = event.chunk(); updateChunkData(chunk); } @@ -99,9 +101,9 @@ private boolean isValidBlockForReplace(Block block) { } private void setBlock(BlockPos pos, CustomBlockData data) { - BlockState block = Block.getStateFromRawId(data.block_id); + BlockState block = Block.stateById(data.block_id); - mc.world.setBlockState(pos, block); + mc.level.setBlockAndUpdate(pos, block); } @EventHandler diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/PosData.java b/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/PosData.java index 01e642a..0f05d84 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/PosData.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/PosData.java @@ -1,6 +1,6 @@ package nekiplay.meteorplus.features.modules.world.customblocks; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; import java.util.Objects; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/TimerMode.java b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/TimerMode.java index 7c3f3a6..15919fd 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/TimerMode.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/TimerMode.java @@ -4,27 +4,38 @@ import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.world.Timer; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; public class TimerMode { - protected final MinecraftClient mc; + protected final Minecraft mc; protected final TimerPlus settings; private final TimerModes type; protected Timer timer; public TimerMode(TimerModes type) { - this.timer = Modules.get().get(Timer.class);; - this.settings = Modules.get().get(TimerPlus.class);; - this.mc = MinecraftClient.getInstance(); + this.timer = Modules.get().get(Timer.class); + ; + this.settings = Modules.get().get(TimerPlus.class); + ; + this.mc = Minecraft.getInstance(); this.type = type; } - public void onSendPacket(PacketEvent.Send event) {} - public void onSentPacket(PacketEvent.Sent event) {} + public void onSendPacket(PacketEvent.Send event) { + } - public void onTickEventPre(TickEvent.Pre event) {} - public void onTickEventPost(TickEvent.Post event) {} + public void onSentPacket(PacketEvent.Sent event) { + } - public void onActivate() {} - public void onDeactivate() {} + public void onTickEventPre(TickEvent.Pre event) { + } + + public void onTickEventPost(TickEvent.Post event) { + } + + public void onActivate() { + } + + public void onDeactivate() { + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/TimerPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/TimerPlus.java index a3a7f9e..a7dd777 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/TimerPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/TimerPlus.java @@ -18,6 +18,7 @@ public TimerPlus() { autoSubscribe = false; MeteorClient.EVENT_BUS.subscribe(this); } + public static int workingDelay = 27; public static int workingTimer = 0; public static int rechargeTimer = 0; // Reset timer @@ -57,7 +58,7 @@ public TimerPlus() { .description("Recharge timer delay.") .defaultValue(352) .visible(() -> mode.get() == TimerModes.Custom || mode.get() == TimerModes.Custom_v2) - .onChanged((a) -> { + .onChanged((a) -> { rechargeDelay = a; rechargeTimer = 0; }) @@ -187,10 +188,12 @@ private void onPreTick(TickEvent.Pre event) { private void onPostTick(TickEvent.Post event) { currentMode.onTickEventPost(event); } + @EventHandler public void onSendPacket(PacketEvent.Send event) { currentMode.onSendPacket(event); } + @EventHandler public void onSentPacket(PacketEvent.Sent event) { currentMode.onSentPacket(event); @@ -206,11 +209,12 @@ public String getInfoString() { return String.format("%.1f", percentage); } - public static double find_percent(double start,double end,double val){ - end = end- start; + + public static double find_percent(double start, double end, double val) { + end = end - start; val = val - start; start = 0; - return((1-(val/end))*100); + return ((1 - (val / end)) * 100); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/NCP.java b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/NCP.java index 50af2aa..a9c48a8 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/NCP.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/NCP.java @@ -1,7 +1,6 @@ package nekiplay.meteorplus.features.modules.world.timer.modes; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.world.Timer; import meteordevelopment.meteorclient.utils.player.PlayerUtils; import nekiplay.meteorplus.features.modules.world.timer.TimerMode; @@ -27,29 +26,24 @@ public void onTickEventPre(TickEvent.Pre event) { rechargeTimer = rechargeDelay; workingTimer = 0; timer.setOverride(Timer.OFF); - } - else { + } else { if (settings.isActive()) { if (settings.onlyInMove.get() && PlayerUtils.isMoving()) { workingTimer++; timer.setOverride(timerMultiplier); - } - else if (!settings.onlyInMove.get()) { + } else if (!settings.onlyInMove.get()) { workingTimer++; timer.setOverride(timerMultiplier); - } - else { + } else { timer.setOverride(timerMultiplierOnRecharge); } } } - } - else { + } else { rechargeTimer--; if (settings.isActive()) { timer.setOverride(timerMultiplierOnRecharge); - } - else { + } else { timer.setOverride(Timer.OFF); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/NCPv2.java b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/NCPv2.java index 6bacc55..cda64f3 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/NCPv2.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/NCPv2.java @@ -7,7 +7,6 @@ import nekiplay.meteorplus.features.modules.world.timer.TimerModes; import static nekiplay.meteorplus.features.modules.world.timer.TimerPlus.*; -import static nekiplay.meteorplus.features.modules.world.timer.TimerPlus.timerMultiplierOnRecharge; public class NCPv2 extends TimerMode { public NCPv2() { @@ -27,39 +26,32 @@ public void onTickEventPre(TickEvent.Pre event) { rechargeTimer = rechargeDelay; workingTimer = 0; timer.setOverride(Timer.OFF); - } - else { + } else { if (settings.isActive()) { if (settings.onlyInMove.get() && PlayerUtils.isMoving()) { workingTimer++; - if (mc.player.isOnGround()) { + if (mc.player.onGround()) { timer.setOverride(timerMultiplier); - } - else { + } else { timer.setOverride(timerMultiplierInAir); } - } - else if (!settings.onlyInMove.get()) { + } else if (!settings.onlyInMove.get()) { workingTimer++; - if (mc.player.isOnGround()) { + if (mc.player.onGround()) { timer.setOverride(timerMultiplier); - } - else { + } else { timer.setOverride(timerMultiplierInAir); } - } - else { + } else { timer.setOverride(timerMultiplierOnRecharge); } } } - } - else { + } else { rechargeTimer--; if (settings.isActive()) { timer.setOverride(timerMultiplierOnRecharge); - } - else { + } else { timer.setOverride(Timer.OFF); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/Vulcan.java b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/Vulcan.java index b24288d..70cddc8 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/Vulcan.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/timer/modes/Vulcan.java @@ -1,7 +1,6 @@ package nekiplay.meteorplus.features.modules.world.timer.modes; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.world.Timer; import meteordevelopment.meteorclient.utils.player.PlayerUtils; import nekiplay.meteorplus.features.modules.world.timer.TimerMode; @@ -10,7 +9,7 @@ import static nekiplay.meteorplus.features.modules.world.timer.TimerPlus.*; -public class Vulcan extends TimerMode { +public class Vulcan extends TimerMode { public Vulcan() { super(TimerModes.Vulcan); } @@ -30,29 +29,24 @@ public void onTickEventPre(TickEvent.Pre event) { rechargeDelay = delay; workingTimer = 0; timer.setOverride(Timer.OFF); - } - else { + } else { if (settings.isActive()) { if (settings.onlyInMove.get() && PlayerUtils.isMoving()) { workingTimer++; timer.setOverride(1.35); - } - else if (!settings.onlyInMove.get()) { + } else if (!settings.onlyInMove.get()) { workingTimer++; timer.setOverride(1.35); - } - else { + } else { timer.setOverride(Timer.OFF); } } } - } - else { + } else { rechargeTimer--; if (settings.isActive()) { timer.setOverride(Timer.OFF); - } - else { + } else { timer.setOverride(Timer.OFF); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/world/zones/ZonesModule.java b/src/main/java/nekiplay/meteorplus/features/modules/world/zones/ZonesModule.java index a7ddf28..7a03312 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/world/zones/ZonesModule.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/world/zones/ZonesModule.java @@ -15,7 +15,7 @@ import meteordevelopment.meteorclient.utils.world.Dimension; import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.util.math.Box; +import net.minecraft.world.phys.AABB; import java.io.BufferedReader; import java.io.File; @@ -31,6 +31,7 @@ public class ZonesModule extends Module { public ZonesModule() { super(Categories.World, "Zones", "Create custom zones for blocking baritone settings in zone"); } + public Gson gson = new Gson(); public List allZones = new ArrayList(); public List inWorldZones = new ArrayList(); @@ -53,15 +54,16 @@ private void onTick(TickEvent.Post event) { } } - private void render(Box box, Color sides, Color lines, ShapeMode shapeMode, Render3DEvent event) { + private void render(AABB box, Color sides, Color lines, ShapeMode shapeMode, Render3DEvent event) { event.renderer.box( box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ, sides, lines, shapeMode, 0); } + @EventHandler private void onRender(Render3DEvent event) { for (ZoneData zoneData : inWorldZones) { if (zoneData.showBoundingBox) { - render(new Box(zoneData.x_start, zoneData.y_start, zoneData.z_start, zoneData.x_end, zoneData.y_end, zoneData.z_end), Color.WHITE, Color.WHITE, ShapeMode.Both, event); + render(new AABB(zoneData.x_start, zoneData.y_start, zoneData.z_start, zoneData.x_end, zoneData.y_end, zoneData.z_end), Color.WHITE, Color.WHITE, ShapeMode.Both, event); } } } diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/gui/TitleScreenCreditsMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/gui/TitleScreenCreditsMixin.java index bf31e29..8f63cde 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/gui/TitleScreenCreditsMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/gui/TitleScreenCreditsMixin.java @@ -1,9 +1,9 @@ package nekiplay.meteorplus.mixin.meteorclient.gui; import meteordevelopment.meteorclient.utils.player.TitleScreenCredits; -import net.minecraft.text.MutableText; -import net.minecraft.text.Style; -import net.minecraft.text.Text; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.chat.Style; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArgs; @@ -13,19 +13,19 @@ @Mixin(TitleScreenCredits.class) public class TitleScreenCreditsMixin { - @ModifyArgs(method = "add", at = @At(value = "INVOKE", target = "Lnet/minecraft/text/MutableText;append(Lnet/minecraft/text/Text;)Lnet/minecraft/text/MutableText;")) + @ModifyArgs(method = "add", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/chat/MutableComponent;append(Lnet/minecraft/network/chat/Component;)Lnet/minecraft/network/chat/MutableComponent;")) private static void modifyAddText(Args args) { - Text text = args.get(0); + Component text = args.get(0); if (text != null) { Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_MONTH); int month = calendar.get(Calendar.MONTH) + 1; if (day <= 7 && month == 4) { - MutableText newText = Text.literal(text.getString().replaceAll("Meteor", "Motor")) + MutableComponent newText = Component.literal(text.getString().replaceAll("Meteor", "Motor")) .setStyle(text.getStyle()); - if (text instanceof MutableText mutableText) { - newText = newText.styled(style -> { + if (text instanceof MutableComponent mutableText) { + newText = newText.withStyle(style -> { Style original = mutableText.getStyle(); if (original.getHoverEvent() != null) { style = style.withHoverEvent(original.getHoverEvent()); diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/gui/WBlockPosEditMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/gui/WBlockPosEditMixin.java index 802d87b..3b60f35 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/gui/WBlockPosEditMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/gui/WBlockPosEditMixin.java @@ -5,18 +5,17 @@ import meteordevelopment.meteorclient.gui.widgets.input.WTextBox; import nekiplay.meteorplus.mixinclasses.SpoofMode; import nekiplay.meteorplus.settings.ConfigModifier; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.util.math.BlockPos; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.core.BlockPos; 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; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(value = WBlockPosEdit.class, remap = false, priority = 1001) -public class WBlockPosEditMixin extends WHorizontalList { +public class WBlockPosEditMixin extends WHorizontalList { @Shadow public Runnable action; @Shadow @@ -35,6 +34,7 @@ public class WBlockPosEditMixin extends WHorizontalList { private BlockPos lastValue; @Shadow private boolean clicking; + @Inject(method = "addTextBox", at = @At("HEAD"), cancellable = true) private void addTextBox(CallbackInfo ci) { this.textBoxX = this.add(this.theme.textBox(Integer.toString(this.value.getX()), this::filterFixed)).minWidth(75.0).widget(); @@ -50,8 +50,8 @@ private void addTextBox(CallbackInfo ci) { } this.newValueCheck(); + } catch (NumberFormatException ignore) { } - catch (NumberFormatException ignore) { } }; this.textBoxY.actionOnUnfocused = () -> { try { @@ -63,8 +63,8 @@ private void addTextBox(CallbackInfo ci) { } this.newValueCheck(); + } catch (NumberFormatException ignore) { } - catch (NumberFormatException ignore) { } }; this.textBoxZ.actionOnUnfocused = () -> { try { @@ -74,15 +74,14 @@ private void addTextBox(CallbackInfo ci) { } else { if (ConfigModifier.get().spoofMode.get() == SpoofMode.Fake) { this.set(new BlockPos(this.value.getX(), this.value.getY(), Integer.parseInt(this.textBoxZ.get()))); - } - else { + } else { this.set(new BlockPos(this.value.getX(), this.value.getY(), Integer.parseInt(this.textBoxZ.get()) - ConfigModifier.get().z_spoof.get())); } } this.newValueCheck(); + } catch (NumberFormatException ignore) { } - catch (NumberFormatException ignore) { } }; if (ConfigModifier.get().positionProtection.get()) { @@ -95,10 +94,12 @@ private void addTextBox(CallbackInfo ci) { } ci.cancel(); } + private void updateRender(WTextBox textBox) { textBoxX.setFocused(true); textBoxX.setFocused(false); } + @Unique private boolean filterFixed(String text, char c) { boolean validate = true; @@ -119,14 +120,17 @@ private boolean filterFixed(String text, char c) { } return good; } + @Shadow public BlockPos get() { return this.value; } + @Shadow public void set(BlockPos value) { this.value = value; } + @Shadow private void newValueCheck() { if (this.value != this.lastValue) { diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BetterTooltipsMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BetterTooltipsMixin.java index 4078703..393a1c2 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BetterTooltipsMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BetterTooltipsMixin.java @@ -11,10 +11,10 @@ import meteordevelopment.meteorclient.utils.tooltip.ContainerTooltipComponent; import meteordevelopment.meteorclient.utils.tooltip.TextTooltipComponent; import nekiplay.meteorplus.utils.ColorRemover; -import net.minecraft.client.resource.language.I18n; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.text.Text; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -42,36 +42,35 @@ public BetterTooltipsMixin(Category category, String name, String description, S private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final SettingGroup sgPreviews = settings.getGroup("Previews"); - public final Setting echest = (Setting)sgPreviews.get("echests"); + public final Setting echest = (Setting) sgPreviews.get("echests"); - private final Setting displayWhen = (Setting)sgGeneral.get("display-when"); + private final Setting displayWhen = (Setting) sgGeneral.get("display-when"); - @ModifyArgs(method = "appendTooltip", at = @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/events/game/ItemStackTooltipEvent;appendStart(Lnet/minecraft/text/Text;)V")) + @ModifyArgs(method = "appendTooltip", at = @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/events/game/ItemStackTooltipEvent;appendStart(Lnet/minecraft/network/chat/Component;)V")) private void appendTooltipStart(Args args) { - Text text = args.get(0); + Component text = args.get(0); String str = ColorRemover.GetVerbatim(text.getString()); if (str.startsWith("Honey level:")) { Pattern pattern = Pattern.compile("Honey level: (.*)"); Matcher matcher = pattern.matcher(str); if (matcher.find()) { String val = matcher.group(1).replaceAll("\\.", ""); - args.set(0, Text.literal(I18n.translate("modules.meteor-client.better-tooltips.beehive.honey-level", val))); + args.set(0, Component.literal(I18n.get("modules.meteor-client.better-tooltips.beehive.honey-level", val))); } - } - else if (str.startsWith("Bees:")) { + } else if (str.startsWith("Bees:")) { Pattern pattern = Pattern.compile("Bees: (.*)"); Matcher matcher = pattern.matcher(str); if (matcher.find()) { String val = matcher.group(1).replaceAll("\\.", ""); - args.set(0, Text.literal(I18n.translate("modules.meteor-client.better-tooltips.beehive.bees", val))); + args.set(0, Component.literal(I18n.get("modules.meteor-client.better-tooltips.beehive.bees", val))); } } } - @ModifyArgs(method = "appendTooltip", at = @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/events/game/ItemStackTooltipEvent;appendEnd(Lnet/minecraft/text/Text;)V")) + @ModifyArgs(method = "appendTooltip", at = @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/events/game/ItemStackTooltipEvent;appendEnd(Lnet/minecraft/network/chat/Component;)V")) private void appendTooltipEnd(Args args) { - Text text = args.get(0); + Component text = args.get(0); String str = ColorRemover.GetVerbatim(text.getString()); if (str.endsWith("kb")) { @@ -79,28 +78,26 @@ private void appendTooltipEnd(Args args) { Matcher matcher = pattern.matcher(str); if (matcher.find()) { String val = matcher.group(1); - args.set(0, Text.literal(I18n.translate("modules.meteor-client.better-tooltips.kilobytes", val))); + args.set(0, Component.literal(I18n.get("modules.meteor-client.better-tooltips.kilobytes", val))); } - } - else if (str.endsWith("bytes")) { + } else if (str.endsWith("bytes")) { Pattern pattern = Pattern.compile("(.*) bytes"); Matcher matcher = pattern.matcher(str); if (matcher.find()) { String val = matcher.group(1); - args.set(0, Text.literal(I18n.translate("modules.meteor-client.better-tooltips.bytes", val))); + args.set(0, Component.literal(I18n.get("modules.meteor-client.better-tooltips.bytes", val))); } - } - else if (str.equals("Error getting bytes.")) { - args.set(0, Text.literal(I18n.translate("modules.meteor-client.better-tooltips.error-getting-bytes"))); + } else if (str.equals("Error getting bytes.")) { + args.set(0, Component.literal(I18n.get("modules.meteor-client.better-tooltips.error-getting-bytes"))); } } - @ModifyArgs(method = "appendPreviewTooltipText", at = @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/events/game/ItemStackTooltipEvent;appendEnd(Lnet/minecraft/text/Text;)V")) + @ModifyArgs(method = "appendPreviewTooltipText", at = @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/events/game/ItemStackTooltipEvent;appendEnd(Lnet/minecraft/network/chat/Component;)V")) private void appendPreviewTooltipTextEnd(Args args) { - Text text = args.get(0); + Component text = args.get(0); String str = ColorRemover.GetVerbatim(text.getString()); if (str.endsWith("to preview")) { - args.set(0, Text.literal(I18n.translate("modules.meteor-client.better-tooltips.hold-to-preview", keybind))); + args.set(0, Component.literal(I18n.get("modules.meteor-client.better-tooltips.hold-to-preview", keybind))); } } @@ -109,7 +106,7 @@ private void getTooltipData(TooltipDataEvent event, CallbackInfo ci) { if (event.itemStack.getItem() == Items.ENDER_CHEST && previewEChest()) { event.tooltipData = EChestMemory.isKnown() ? new ContainerTooltipComponent(EChestMemory.ITEMS.toArray(new ItemStack[27]), ECHEST_COLOR) - : new TextTooltipComponent(Text.literal(I18n.translate("modules.meteor-client.better-tooltips.unknown-inventory"))); + : new TextTooltipComponent(Component.literal(I18n.get("modules.meteor-client.better-tooltips.unknown-inventory"))); } } diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BlockESPMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BlockESPMixin.java index 4cc04d6..f1f6aea 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BlockESPMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BlockESPMixin.java @@ -31,15 +31,15 @@ public BlockESPMixin(Category category, String name, String description) { public String getInfoString() { renders = 0; synchronized (chunks) { - for (ESPChunk chunk : chunks.values()) { - if (!chunk.shouldBeDeleted()) { + for (ESPChunk chunk : chunks.values()) { + if (!chunk.shouldBeDeleted()) { ESPBlock block; for (ObjectIterator var1 = chunk.blocks.values().iterator(); var1.hasNext(); block.loaded = false) { block = (ESPBlock) var1.next(); renders++; } - } - } + } + } } return "" + renders; diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BreakIndicatorsMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BreakIndicatorsMixin.java index d9c8fa2..e531313 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BreakIndicatorsMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BreakIndicatorsMixin.java @@ -1,8 +1,8 @@ package nekiplay.meteorplus.mixin.meteorclient.modules; import meteordevelopment.meteorclient.events.render.Render2DEvent; -import meteordevelopment.meteorclient.mixin.ClientPlayerInteractionManagerAccessor; -import meteordevelopment.meteorclient.mixin.WorldRendererAccessor; +import meteordevelopment.meteorclient.mixin.LevelRendererAccessor; +import meteordevelopment.meteorclient.mixin.MultiPlayerGameModeAccessor; import meteordevelopment.meteorclient.renderer.text.TextRenderer; import meteordevelopment.meteorclient.settings.BoolSetting; import meteordevelopment.meteorclient.settings.ColorSetting; @@ -17,19 +17,20 @@ import meteordevelopment.meteorclient.utils.render.color.SettingColor; import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.BlockBreakingInfo; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.shape.VoxelShape; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.BlockDestructionProgress; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.shapes.VoxelShape; import org.joml.Vector3d; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; + import java.util.List; import java.util.Map; @Mixin(BreakIndicators.class) -public class BreakIndicatorsMixin extends Module { +public class BreakIndicatorsMixin extends Module { @Unique private final SettingGroup sgPercentageRenderPlus = settings.createGroup(MeteorPlusAddon.HUD_TITLE + " Percentage Render"); @@ -69,10 +70,10 @@ public BreakIndicatorsMixin(Category category, String name, String description, @EventHandler private void on2DRender(Render2DEvent event) { - Map blocks = ((WorldRendererAccessor) mc.worldRenderer).meteor$getBlockBreakingInfos(); + Map blocks = ((LevelRendererAccessor) mc.levelRenderer).meteor$getDestroyingBlocks(); - float ownBreakingStage = ((ClientPlayerInteractionManagerAccessor) mc.interactionManager).meteor$getBreakingProgress(); - BlockPos ownBreakingPos = ((ClientPlayerInteractionManagerAccessor) mc.interactionManager).meteor$getCurrentBreakingBlockPos(); + float ownBreakingStage = ((MultiPlayerGameModeAccessor) mc.gameMode).meteor$getBreakingProgress(); + BlockPos ownBreakingPos = ((MultiPlayerGameModeAccessor) mc.gameMode).meteor$getCurrentBreakingBlockPos(); if (ownBreakingPos != null && ownBreakingStage > 0) { @@ -80,11 +81,11 @@ private void on2DRender(Render2DEvent event) { double shrinkFactor = 1d - ownBreakingStage; - BlockState state = mc.world.getBlockState(ownBreakingPos); - VoxelShape shape = state.getOutlineShape(mc.world, ownBreakingPos); + BlockState state = mc.level.getBlockState(ownBreakingPos); + VoxelShape shape = state.getShape(mc.level, ownBreakingPos); if (shape == null || shape.isEmpty()) return; - Box orig = shape.getBoundingBox(); + AABB orig = shape.bounds(); renderBlock(event, ownBreakingPos, shrinkFactor, orig); @@ -92,14 +93,14 @@ private void on2DRender(Render2DEvent event) { blocks.values().forEach(info -> { BlockPos pos = info.getPos(); - int stage = info.getStage(); + int stage = info.getProgress(); if (pos.equals(ownBreakingPos)) return; - BlockState state = mc.world.getBlockState(pos); - VoxelShape shape = state.getOutlineShape(mc.world, pos); + BlockState state = mc.level.getBlockState(pos); + VoxelShape shape = state.getShape(mc.level, pos); if (shape == null || shape.isEmpty()) return; - Box orig = shape.getBoundingBox(); + AABB orig = shape.bounds(); double shrinkFactor = (9 - (stage + 1)) / 9d; double progress = 1d - shrinkFactor; @@ -113,12 +114,12 @@ private void on2DRender(Render2DEvent event) { } @Unique - private void renderBlock(Render2DEvent event, BlockPos pos, double shrinkFactor, Box orig) { + private void renderBlock(Render2DEvent event, BlockPos pos, double shrinkFactor, AABB orig) { Vector3d vector3d = new Vector3d(pos.getX() + orig.getCenter().x, pos.getY() + orig.getCenter().y, pos.getZ() + orig.getCenter().z); if (percentageRender.get()) { if (NametagUtils.to2D(vector3d, 1, true)) { TextRenderer text = TextRenderer.get(); - NametagUtils.begin(vector3d, event.drawContext); + NametagUtils.begin(vector3d, event.graphics); text.beginBig(); String label = String.format("%1$,.0f", shrinkFactor * 100) + "%"; @@ -134,7 +135,7 @@ private void renderBlock(Render2DEvent event, BlockPos pos, double shrinkFactor, text.render(label, hX, hY, percentageColor.get(), true); text.end(); - NametagUtils.end(event.drawContext); + NametagUtils.end(event.graphics); } } } @@ -143,10 +144,10 @@ private void renderBlock(Render2DEvent event, BlockPos pos, double shrinkFactor, private void renderPacket(Render2DEvent event, List blocks) { for (PacketMine.MyBlock block : blocks) { if (block.mining && block.progress() != Double.POSITIVE_INFINITY) { - VoxelShape shape = block.blockState.getOutlineShape(mc.world, block.blockPos); + VoxelShape shape = block.blockState.getShape(mc.level, block.blockPos); if (shape == null || shape.isEmpty()) return; - Box orig = shape.getBoundingBox(); + AABB orig = shape.bounds(); double progressNormalised = Math.min(1, block.progress()); double shrinkFactor = 1d - progressNormalised; diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/CriticalsMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/CriticalsMixin.java deleted file mode 100644 index 96c3a8c..0000000 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/CriticalsMixin.java +++ /dev/null @@ -1,60 +0,0 @@ -package nekiplay.meteorplus.mixin.meteorclient.modules; - -import meteordevelopment.meteorclient.events.packets.PacketEvent; -import meteordevelopment.meteorclient.mixininterface.IPlayerInteractEntityC2SPacket; -import meteordevelopment.meteorclient.settings.BoolSetting; -import meteordevelopment.meteorclient.settings.Setting; -import meteordevelopment.meteorclient.settings.SettingGroup; -import meteordevelopment.meteorclient.systems.modules.Category; -import meteordevelopment.meteorclient.systems.modules.Module; -import meteordevelopment.meteorclient.systems.modules.combat.Criticals; -import nekiplay.meteorplus.MeteorPlusAddon; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket; -import org.spongepowered.asm.mixin.Mixin; -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; - -import static nekiplay.meteorplus.features.modules.combat.criticals.CriticalsPlus.needCrit; -import static nekiplay.meteorplus.features.modules.combat.criticals.CriticalsPlus.skipCrit; - -@Mixin(value = Criticals.class, remap = false, priority = 1001) -public class CriticalsMixin extends Module { - public CriticalsMixin(Category category, String name, String description) { - super(category, name, description); - } - - @Unique - private final SettingGroup sgMeteorPlus = settings.createGroup(MeteorPlusAddon.HUD_TITLE); - - @Unique - private final Setting noWorkIfItsNotNeed = sgMeteorPlus.add(new BoolSetting.Builder() - .name("Use-crit-only-if-necessary") - .description("Hits with a crit if the enemy's health is less than the normal damage of your weapon.") - .defaultValue(true) - .build() - ); - - @Inject(method = "onSendPacket", at = @At("HEAD"), cancellable = true) - private void onSendPacket(PacketEvent.Send event, CallbackInfo ci) { - if (event.packet instanceof IPlayerInteractEntityC2SPacket packet && packet.meteor$getType() == PlayerInteractEntityC2SPacket.InteractType.ATTACK) { - if (skipCrit()) { ci.cancel(); return; } - - Entity entity = packet.meteor$getEntity(); - if (entity != null) { - if (entity.getType() == EntityType.SHULKER_BULLET || entity.getType() == EntityType.FIREBALL) { - ci.cancel(); - } - else if (entity instanceof LivingEntity livingEntity) { - if (!needCrit(livingEntity) && noWorkIfItsNotNeed.get()) { - ci.cancel(); - } - } - } - } - } -} diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ESPMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ESPMixin.java index 176645d..af59f70 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ESPMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ESPMixin.java @@ -2,10 +2,10 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.ESP; -import nekiplay.meteorplus.features.modules.combat.Teams; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; import nekiplay.meteorplus.features.modules.combat.AntiBotPlus; +import nekiplay.meteorplus.features.modules.combat.Teams; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -17,7 +17,7 @@ public class ESPMixin { protected void shouldSkip(Entity entity, CallbackInfoReturnable cir) { AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); Teams teams = Modules.get().get(Teams.class); - if (antiBotPlus != null && teams != null && !cir.getReturnValue() && entity instanceof PlayerEntity) { + if (antiBotPlus != null && teams != null && !cir.getReturnValue() && entity instanceof Player) { boolean ignore = antiBotPlus.isBot(entity); if (!ignore) { ignore = teams.isInYourTeam(entity); diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/FreecamMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/FreecamMixin.java index a6c4cc3..626f7bc 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/FreecamMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/FreecamMixin.java @@ -3,7 +3,7 @@ import baritone.api.BaritoneAPI; import baritone.api.pathing.goals.GoalBlock; import meteordevelopment.meteorclient.events.Cancellable; -import meteordevelopment.meteorclient.events.meteor.KeyEvent; +import meteordevelopment.meteorclient.events.meteor.KeyInputEvent; import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.BoolSetting; @@ -15,21 +15,20 @@ import meteordevelopment.meteorclient.systems.modules.render.Freecam; import meteordevelopment.meteorclient.utils.misc.Keybind; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; -import meteordevelopment.meteorclient.utils.player.ChatUtils; import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.utils.RaycastUtils; -import net.minecraft.block.*; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.Nullable; -import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import static meteordevelopment.meteorclient.MeteorClient.mc; -import static meteordevelopment.meteorclient.utils.misc.input.Input.isPressed; import static nekiplay.meteorplus.MeteorPlusAddon.HUD_TITLE; import static org.lwjgl.glfw.GLFW.GLFW_MOUSE_BUTTON_LEFT; import static org.lwjgl.glfw.GLFW.GLFW_MOUSE_BUTTON_RIGHT; @@ -87,8 +86,8 @@ public class FreecamMixin { @Unique private BlockPos tryGetValidPos(BlockPos pos) { - assert mc.world != null; - BlockState state = mc.world.getBlockState(pos); + assert mc.level != null; + BlockState state = mc.level.getBlockState(pos); Block block = state.getBlock(); if (block == Blocks.FERN || block == Blocks.SHORT_GRASS || @@ -124,7 +123,7 @@ private BlockPos tryGetValidPos(BlockPos pos) { block == Blocks.JUNGLE_WALL_SIGN || block == Blocks.MANGROVE_WALL_SIGN || block == Blocks.WARPED_WALL_SIGN || - // Mushroms + // Mushrooms block == Blocks.BROWN_MUSHROOM || block == Blocks.RED_MUSHROOM || block == Blocks.CRIMSON_FUNGUS || @@ -172,18 +171,18 @@ private BlockPos tryGetValidPos(BlockPos pos) { ) { return pos; - } - else { - return pos.up(); + } else { + return pos.above(); } } - @Unique @Nullable + @Unique + @Nullable private BlockPos rayCastClicked() { BlockPos blockPos = null; - Vec3d rotationVector = RaycastUtils.getRotationVector((float) freecam.getPitch(mc.getRenderTickCounter().getTickProgress(true)), (float) freecam.getYaw(mc.getRenderTickCounter().getTickProgress(true))); - Vec3d pos = new Vec3d(freecam.pos.x, freecam.pos.y, freecam.pos.z); - HitResult result = RaycastUtils.raycast(pos, rotationVector, 64 * 4, mc.getRenderTickCounter().getTickProgress(true), true); + Vec3 rotationVector = RaycastUtils.getRotationVector((float) freecam.getPitch(mc.getDeltaTracker().getGameTimeDeltaPartialTick(true)), (float) freecam.getYaw(mc.getDeltaTracker().getGameTimeDeltaPartialTick(true))); + Vec3 pos = new Vec3(freecam.pos.x, freecam.pos.y, freecam.pos.z); + HitResult result = RaycastUtils.raycast(pos, rotationVector, 64 * 4, mc.getDeltaTracker().getGameTimeDeltaPartialTick(true), true); if (result.getType() == HitResult.Type.BLOCK) { BlockHitResult blockHitResult = (BlockHitResult) result; blockPos = blockHitResult.getBlockPos(); @@ -193,16 +192,16 @@ private BlockPos rayCastClicked() { @Unique private void Work(Cancellable event) { - if (baritoneMoveBlinkKey.get().isPressed() && mc.currentScreen == null) { + if (baritoneMoveBlinkKey.get().isPressed() && mc.screen == null) { BlockPos clicked = rayCastClicked(); if (blinkBaritoneControl.get()) { if (clicked == null) return; - if (mc.world == null) return; + if (mc.level == null) return; - BlockState state = mc.world.getBlockState(clicked); + BlockState state = mc.level.getBlockState(clicked); if (state.isAir()) return; isBlinkMoving = true; @@ -213,13 +212,13 @@ private void Work(Cancellable event) { event.cancel(); } } - if (baritoneMoveKey.get().isPressed() && mc.currentScreen == null) { + if (baritoneMoveKey.get().isPressed() && mc.screen == null) { BlockPos clicked = rayCastClicked(); if (clicked == null) return; - if (mc.world == null) return; + if (mc.level == null) return; - BlockState state = mc.world.getBlockState(clicked); + BlockState state = mc.level.getBlockState(clicked); if (state.isAir()) return; @@ -234,7 +233,7 @@ private void Work(Cancellable event) { event.cancel(); } - if (baritoneStopKey.get().isPressed() && mc.currentScreen == null) { + if (baritoneStopKey.get().isPressed() && mc.screen == null) { BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().forceCancel(); if (blink != null) { if (blink.isActive()) { @@ -248,16 +247,16 @@ private void Work(Cancellable event) { @Unique @EventHandler - private void onKeyEvent(KeyEvent event) - { - if (mc.world != null && event.action == KeyAction.Press) { + private void onKeyEvent(KeyInputEvent event) { + if (mc.level != null && event.action == KeyAction.Press) { Work(event); } } + @Unique @EventHandler private void onMouseClickEvent(MouseClickEvent event) { - if (mc.world != null && event.action == KeyAction.Press) { + if (mc.level != null && event.action == KeyAction.Press) { Work(event); } } @@ -265,13 +264,13 @@ private void onMouseClickEvent(MouseClickEvent event) { @Unique @EventHandler private void onTickEvent(TickEvent.Pre event) { - if (mc.world != null && blinkBaritoneControl.get() && blink != null) { - if (isBlinkMoving && (BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().hasPath() || BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().isPathing() ) ) { + if (mc.level != null && blinkBaritoneControl.get() && blink != null) { + if (isBlinkMoving && (BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().hasPath() || BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().isPathing())) { if (!blink.isActive()) { blink.toggle(); } } - if (isBlinkMoving && (!BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().hasPath() || !BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().isPathing() ) ) { + if (isBlinkMoving && (!BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().hasPath() || !BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().isPathing())) { if (blink.isActive()) { blink.toggle(); isBlinkMoving = false; diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ItemHighlightMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ItemHighlightMixin.java index ba6012e..2d19708 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ItemHighlightMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ItemHighlightMixin.java @@ -5,7 +5,7 @@ import meteordevelopment.meteorclient.systems.modules.render.ItemHighlight; import nekiplay.meteorplus.features.modules.render.ItemHighlightPlus; import nekiplay.meteorplus.settings.items.HighlightItemData; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -23,8 +23,7 @@ private void getColor(ItemStack stack, CallbackInfoReturnable cir) { HighlightItemData espItemData = itemHighlightPlus.itemsConfigs.get().get(stack.getItem()); if (espItemData != null) { cir.setReturnValue(espItemData.Color.getPacked()); - } - else { + } else { cir.setReturnValue(itemHighlightPlus.defaultBlockConfig.get().Color.getPacked()); } } diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/KillAuraMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/KillAuraMixin.java index 1079b3e..60b071a 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/KillAuraMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/KillAuraMixin.java @@ -12,15 +12,15 @@ import meteordevelopment.meteorclient.systems.modules.movement.elytrafly.ElytraFly; import meteordevelopment.meteorclient.utils.entity.DamageUtils; import nekiplay.meteorplus.MeteorPlusAddon; +import nekiplay.meteorplus.features.modules.combat.AntiBotPlus; import nekiplay.meteorplus.features.modules.combat.Teams; import nekiplay.meteorplus.features.modules.movement.elytrafly.ElytraFlyPlus; import nekiplay.meteorplus.features.modules.movement.fly.FlyPlus; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.player.PlayerEntity; -import nekiplay.meteorplus.features.modules.combat.AntiBotPlus; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -160,15 +160,13 @@ public KillAuraMixin(Category category, String name, String description) { private void delayCheck(CallbackInfoReturnable cir) { Modules modules = Modules.get(); if (onlyCrits.get() && !allowCrit() && needCrit(getTarget())) { - if (ignoreOnlyCritsOnLevitation.get() && !Objects.requireNonNull(mc.player).hasStatusEffect(StatusEffects.LEVITATION)) { + if (ignoreOnlyCritsOnLevitation.get() && !Objects.requireNonNull(mc.player).hasEffect(MobEffects.LEVITATION)) { cir.setReturnValue(false); return; - } - else if (onlyCritsIgnoreFlight.get() && (!modules.isActive(Flight.class) && !modules.isActive(FlyPlus.class) && !modules.isActive(ElytraFly.class) && !modules.isActive(ElytraFlyPlus.class))) { + } else if (onlyCritsIgnoreFlight.get() && (!modules.isActive(Flight.class) && !modules.isActive(FlyPlus.class) && !modules.isActive(ElytraFly.class) && !modules.isActive(ElytraFlyPlus.class))) { cir.setReturnValue(false); return; - } - else if (!ignoreOnlyCritsOnLevitation.get() && !onlyCritsIgnoreFlight.get()) { + } else if (!ignoreOnlyCritsOnLevitation.get() && !onlyCritsIgnoreFlight.get()) { cir.setReturnValue(false); return; } @@ -182,7 +180,7 @@ else if (!ignoreOnlyCritsOnLevitation.get() && !onlyCritsIgnoreFlight.get()) { hitTimer++; cir.setReturnValue(false); return; - } else { + } else { if (ignoreOnlyCritsForOneHitEntity.get()) { cir.setReturnValue(true); return; @@ -191,8 +189,7 @@ else if (!ignoreOnlyCritsOnLevitation.get() && !onlyCritsIgnoreFlight.get()) { return; } } - } - else { + } else { if (ignoreOnlyCritsForOneHitEntity.get()) { cir.setReturnValue(true); return; @@ -204,7 +201,7 @@ else if (!ignoreOnlyCritsOnLevitation.get() && !onlyCritsIgnoreFlight.get()) { } if (smartDelayv2.get() && getTarget() instanceof LivingEntity livingEntity) { - if (DamageUtils.getAttackDamage(mc.player, livingEntity) >= livingEntity.getHealth() + 1.5 && mc.player.getAttackCooldownProgress(0.5f) >= 0.25 && livingEntity.hurtTime <= maxHurtTime.get()) { + if (DamageUtils.getAttackDamage(mc.player, livingEntity) >= livingEntity.getHealth() + 1.5 && mc.player.getAttackStrengthScale(0.5f) >= 0.25 && livingEntity.hurtTime <= maxHurtTime.get()) { cir.setReturnValue(true); } } @@ -230,7 +227,7 @@ private void onAttackEntity(Entity target, CallbackInfo ci) { protected void entityCheck(Entity entity, CallbackInfoReturnable cir) { AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); Teams teams = Modules.get().get(Teams.class); - if (antiBotPlus != null && teams != null && entity instanceof PlayerEntity) { + if (antiBotPlus != null && teams != null && entity instanceof Player) { if (cir.getReturnValueZ()) { boolean ignore = !antiBotPlus.isBot(entity); if (ignore) { diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/MiddleClickExtraMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/MiddleClickExtraMixin.java index 6164eaa..6c9772b 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/MiddleClickExtraMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/MiddleClickExtraMixin.java @@ -16,17 +16,13 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import net.minecraft.client.gui.Click; -import net.minecraft.client.input.MouseInput; -import static meteordevelopment.meteorclient.MeteorClient.mc; -import static nekiplay.meteorplus.MeteorPlusAddon.HUD_TITLE; import static org.lwjgl.glfw.GLFW.GLFW_MOUSE_BUTTON_MIDDLE; @Mixin(value = MiddleClickExtra.class, remap = false) public class MiddleClickExtraMixin extends Module { public MiddleClickExtraMixin() { - super(Categories.Player, "middle-click-extra", "Perform various actions when you middle click."); + super(Categories.Player, "middle-click-extra", "Perform various actions when you middle click."); } @Final @@ -42,11 +38,11 @@ public MiddleClickExtraMixin() { .build() ); - @Inject(method = "onMouseClick", at = @At("HEAD"), cancellable = true) + @Inject(method = "onMouseClick", at = @At("HEAD"), cancellable = true) private void onMouseClick(MouseClickEvent event, CallbackInfo ci) { - if (event.action == KeyAction.Press && event.button() == 2 && mc.currentScreen == null) { + if (event.action == KeyAction.Press && event.button() == 2 && mc.screen == null) { if (event.action != KeyAction.Press || event.button() != GLFW_MOUSE_BUTTON_MIDDLE) return; - if (noInventory.get() && mc.currentScreen != null) { + if (noInventory.get() && mc.screen != null) { ci.cancel(); } } diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NameTagsMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NameTagsMixin.java index 5a7fbcb..440d5f7 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NameTagsMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NameTagsMixin.java @@ -5,7 +5,7 @@ import meteordevelopment.meteorclient.systems.modules.render.Nametags; import nekiplay.meteorplus.features.modules.combat.AntiBotPlus; import nekiplay.meteorplus.features.modules.combat.Teams; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -14,7 +14,7 @@ @Mixin(value = Nametags.class) public class NameTagsMixin { @Inject(method = "renderNametagPlayer", at = @At("HEAD"), cancellable = true) - private void onRenderNametagPlayer(Render2DEvent event, PlayerEntity player, boolean shadow, CallbackInfo ci) { + private void onRenderNametagPlayer(Render2DEvent event, Player player, boolean shadow, CallbackInfo ci) { AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); Teams teams = Modules.get().get(Teams.class); if (antiBotPlus != null && teams != null) { diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NoRenderMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NoRenderMixin.java index fe0cadf..9b6b129 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NoRenderMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NoRenderMixin.java @@ -1,6 +1,8 @@ package nekiplay.meteorplus.mixin.meteorclient.modules; -import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.settings.BoolSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Category; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.render.NoRender; @@ -9,6 +11,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; + import java.util.List; @Mixin(value = NoRender.class, remap = false, priority = 1001) @@ -93,6 +96,7 @@ public NoRenderMixin(Category category, String name, String description) { .defaultValue(false) .build() ); + @Unique @EventHandler private void onMountHealthBarRender(RenderMountHealthBarEvent event) { @@ -100,6 +104,7 @@ private void onMountHealthBarRender(RenderMountHealthBarEvent event) { event.setCancelled(true); } } + @Unique @EventHandler private void onArmorBarRender(RenderArmorBarEvent event) { @@ -107,6 +112,7 @@ private void onArmorBarRender(RenderArmorBarEvent event) { event.setCancelled(true); } } + @Unique @EventHandler private void onFoodBarRender(RenderFoodBarEvent event) { @@ -114,6 +120,7 @@ private void onFoodBarRender(RenderFoodBarEvent event) { event.setCancelled(true); } } + @Unique @EventHandler private void onHealthBarRender(RenderHealthBarEvent event) { @@ -121,6 +128,7 @@ private void onHealthBarRender(RenderHealthBarEvent event) { event.setCancelled(true); } } + @Unique @EventHandler private void onExperienceBarRender(RenderExperienceBarEvent event) { @@ -128,6 +136,7 @@ private void onExperienceBarRender(RenderExperienceBarEvent event) { event.setCancelled(true); } } + @Unique @EventHandler private void onExperienceLevelRender(RenderExperienceLevelEvent event) { diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/TracersMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/TracersMixin.java index 5f941e0..b8cbc28 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/TracersMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/TracersMixin.java @@ -2,10 +2,10 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Tracers; -import nekiplay.meteorplus.features.modules.combat.Teams; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; import nekiplay.meteorplus.features.modules.combat.AntiBotPlus; +import nekiplay.meteorplus.features.modules.combat.Teams; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -17,7 +17,7 @@ public class TracersMixin { protected void shouldBeIgnored(Entity entity, CallbackInfoReturnable cir) { AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); Teams teams = Modules.get().get(Teams.class); - if (antiBotPlus != null && teams != null && !cir.getReturnValue() && entity instanceof PlayerEntity) { + if (antiBotPlus != null && teams != null && !cir.getReturnValue() && entity instanceof Player) { boolean ignore = antiBotPlus.isBot(entity); if (!ignore) { ignore = teams.isInYourTeam(entity); diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/WaypointsModuleMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/WaypointsModuleMixin.java index 292812a..3c5453d 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/WaypointsModuleMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/WaypointsModuleMixin.java @@ -1,15 +1,12 @@ package nekiplay.meteorplus.mixin.meteorclient.modules; -import baritone.api.BaritoneAPI; -import baritone.api.IBaritone; -import com.sun.source.tree.Tree; -import meteordevelopment.meteorclient.gui.widgets.WWidget; -import baritone.api.pathing.goals.GoalGetToBlock; import meteordevelopment.meteorclient.gui.GuiTheme; import meteordevelopment.meteorclient.gui.renderer.GuiRenderer; import meteordevelopment.meteorclient.gui.widgets.WLabel; +import meteordevelopment.meteorclient.gui.widgets.WWidget; import meteordevelopment.meteorclient.gui.widgets.containers.WTable; import meteordevelopment.meteorclient.gui.widgets.pressable.WButton; +import meteordevelopment.meteorclient.gui.widgets.pressable.WCheckbox; import meteordevelopment.meteorclient.gui.widgets.pressable.WMinus; import meteordevelopment.meteorclient.pathing.PathManagers; import meteordevelopment.meteorclient.settings.*; @@ -19,22 +16,17 @@ import meteordevelopment.meteorclient.systems.waypoints.Waypoint; import meteordevelopment.meteorclient.systems.waypoints.Waypoints; import meteordevelopment.meteorclient.utils.Utils; -import nekiplay.meteorplus.utils.NumeralUtils; import nekiplay.meteorplus.mixinclasses.EditWaypointScreen; import nekiplay.meteorplus.mixinclasses.WIcon; import nekiplay.meteorplus.mixinclasses.WaypointsModuleModes; -import net.minecraft.text.Text; import org.spongepowered.asm.mixin.Mixin; -import meteordevelopment.meteorclient.gui.widgets.pressable.WCheckbox; 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.CallbackInfoReturnable; -import java.util.*; import java.util.concurrent.atomic.AtomicReference; -import static meteordevelopment.meteorclient.MeteorClient.mc; import static meteordevelopment.meteorclient.utils.render.color.Color.GRAY; import static nekiplay.meteorplus.MeteorPlusAddon.HUD_TITLE; @@ -53,7 +45,7 @@ public class WaypointsModuleMixin extends Module { private final Setting showDistance = meteorPlusTab.add(new BoolSetting.Builder() .name("show-distance") .description("Show distance in this gui.") - .onChanged((a) -> { + .onChanged((a) -> { GuiTheme t = themeRef.get(); WTable tab = tableRef.get(); if (t != null && tab != null) { @@ -68,7 +60,7 @@ public class WaypointsModuleMixin extends Module { private final Setting showCompactDistance = meteorPlusTab.add(new BoolSetting.Builder() .name("show-compact-distance") .description("Show compact distance in this gui.") - .onChanged((a) -> { + .onChanged((a) -> { GuiTheme t = themeRef.get(); WTable tab = tableRef.get(); if (t != null && tab != null) { @@ -85,7 +77,7 @@ public class WaypointsModuleMixin extends Module { .name("sort-mode") .description("Sorting waypoints mode.") .defaultValue(WaypointsModuleModes.SortMode.Distance) - .onChanged((a) -> { + .onChanged((a) -> { GuiTheme t = themeRef.get(); WTable tab = tableRef.get(); if (t != null && tab != null) { @@ -100,13 +92,13 @@ public class WaypointsModuleMixin extends Module { .name("search") .description("Search waypoint by text") .defaultValue("") - .onChanged((a) -> { - GuiTheme t = themeRef.get(); - WTable tab = tableRef.get(); - if (t != null && tab != null) { - initTable(t, tab); - } - }) + .onChanged((a) -> { + GuiTheme t = themeRef.get(); + WTable tab = tableRef.get(); + if (t != null && tab != null) { + initTable(t, tab); + } + }) .build() ); diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/ClientConnectionAccessor.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/ClientConnectionAccessor.java deleted file mode 100644 index 299e89e..0000000 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/ClientConnectionAccessor.java +++ /dev/null @@ -1,11 +0,0 @@ -package nekiplay.meteorplus.mixin.minecraft; - -import net.minecraft.network.ClientConnection; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(ClientConnection.class) -public interface ClientConnectionAccessor { - @Accessor("ticks") - int getTicks(); -} diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/ConnectionAccessor.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/ConnectionAccessor.java new file mode 100644 index 0000000..cbb3f2c --- /dev/null +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/ConnectionAccessor.java @@ -0,0 +1,11 @@ +package nekiplay.meteorplus.mixin.minecraft; + +import net.minecraft.network.Connection; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(Connection.class) +public interface ConnectionAccessor { + @Accessor("tickCount") + int getTickCount(); +} diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/ClientPlayerInteractionManagerMixin.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/MultiPlayerGameModeMixin.java similarity index 53% rename from src/main/java/nekiplay/meteorplus/mixin/minecraft/ClientPlayerInteractionManagerMixin.java rename to src/main/java/nekiplay/meteorplus/mixin/minecraft/MultiPlayerGameModeMixin.java index 4c252a8..3bea71d 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/ClientPlayerInteractionManagerMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/MultiPlayerGameModeMixin.java @@ -1,19 +1,19 @@ package nekiplay.meteorplus.mixin.minecraft; import meteordevelopment.meteorclient.MeteorClient; -import net.minecraft.client.network.ClientPlayerInteractionManager; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.screen.slot.SlotActionType; import nekiplay.main.events.ClickWindowEvent; +import net.minecraft.client.multiplayer.MultiPlayerGameMode; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ContainerInput; 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; -@Mixin(ClientPlayerInteractionManager.class) -public class ClientPlayerInteractionManagerMixin { - @Inject(method = "clickSlot", at = @At("HEAD"), cancellable = true) - private void windowClick(int syncId, int slotId, int button, SlotActionType actionType, PlayerEntity player, CallbackInfo callbackInfo) { +@Mixin(MultiPlayerGameMode.class) +public class MultiPlayerGameModeMixin { + @Inject(method = "handleContainerInput", at = @At("HEAD"), cancellable = true) + private void windowClick(int syncId, int slotId, int button, ContainerInput actionType, Player player, CallbackInfo callbackInfo) { final ClickWindowEvent event = ClickWindowEvent.get(syncId, slotId, button, actionType); MeteorClient.EVENT_BUS.post(event); diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/ShapelessRecipeAccessor.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/ShapelessRecipeAccessor.java index 43ff089..3e2468e 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/ShapelessRecipeAccessor.java +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/ShapelessRecipeAccessor.java @@ -1,13 +1,12 @@ package nekiplay.meteorplus.mixin.minecraft; -import net.minecraft.recipe.ShapelessRecipe; -import net.minecraft.recipe.book.CraftingRecipeCategory; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.NormalCraftingRecipe; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -@Mixin(ShapelessRecipe.class) +@Mixin(NormalCraftingRecipe.class) public interface ShapelessRecipeAccessor { - @Accessor("category") - CraftingRecipeCategory getCategory(); - + @Accessor("bookInfo") + CraftingRecipe.CraftingBookInfo getBookInfo(); } diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ClientPlayerEntityMixin.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ClientPlayerEntityMixin.java deleted file mode 100644 index 834bb84..0000000 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ClientPlayerEntityMixin.java +++ /dev/null @@ -1,24 +0,0 @@ -package nekiplay.meteorplus.mixin.minecraft.entity; - -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import meteordevelopment.meteorclient.MeteorClient; -import nekiplay.main.events.PlayerUseMultiplierEvent; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.util.math.Vec2f; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; - -@Mixin(value = ClientPlayerEntity.class, priority = 1003) -public abstract class ClientPlayerEntityMixin { - - @WrapOperation(method = "applyMovementSpeedFactors", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/Vec2f;multiply(F)Lnet/minecraft/util/math/Vec2f;", ordinal = 1)) - private Vec2f hookCustomMultiplier(Vec2f instance, float value, Operation original) { - PlayerUseMultiplierEvent playerUseMultiplier = new PlayerUseMultiplierEvent(value, value); - MeteorClient.EVENT_BUS.post(playerUseMultiplier); - return new Vec2f( - instance.x * playerUseMultiplier.getSideways(), - instance.y * playerUseMultiplier.getForward() - ); - } -} diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/LivingEntityMixin.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/LivingEntityMixin.java index 3c86f6a..86d6303 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/LivingEntityMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/LivingEntityMixin.java @@ -1,36 +1,29 @@ package nekiplay.meteorplus.mixin.minecraft.entity; -import com.llamalad7.mixinextras.injector.ModifyReturnValue; import meteordevelopment.meteorclient.systems.modules.Modules; -import meteordevelopment.meteorclient.systems.modules.movement.elytrafly.ElytraFly; import nekiplay.meteorplus.features.modules.movement.NoJumpDelay; -import nekiplay.meteorplus.features.modules.movement.elytrafly.ElytraFlyPlus; -import net.minecraft.entity.LivingEntity; +import net.minecraft.world.entity.LivingEntity; 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 static meteordevelopment.meteorclient.MeteorClient.mc; - @Mixin(value = LivingEntity.class, priority = 1001) public class LivingEntityMixin { @Shadow protected boolean jumping; @Shadow - private int jumpingCooldown; + private int noJumpDelay; - @Inject(method = "tickMovement", at = @At("HEAD")) + @Inject(method = "aiStep", at = @At("HEAD")) private void hookTickMovement(CallbackInfo ci) { Modules modules = Modules.get(); if (modules != null) { - NoJumpDelay noJumpDelay = modules.get(NoJumpDelay.class); - if (noJumpDelay != null) { - if (noJumpDelay.isActive()) { - jumpingCooldown = 0; - } + NoJumpDelay module = modules.get(NoJumpDelay.class); + if (module != null && module.isActive()) { + this.noJumpDelay = 0; } } } diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/LocalPlayerMixin.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/LocalPlayerMixin.java new file mode 100644 index 0000000..ce0a9ff --- /dev/null +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/LocalPlayerMixin.java @@ -0,0 +1,24 @@ +package nekiplay.meteorplus.mixin.minecraft.entity; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import meteordevelopment.meteorclient.MeteorClient; +import nekiplay.main.events.PlayerUseMultiplierEvent; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.world.phys.Vec2; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(value = LocalPlayer.class, priority = 1003) +public abstract class LocalPlayerMixin { + + @WrapOperation(method = "modifyInput", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/phys/Vec2;scale(F)Lnet/minecraft/world/phys/Vec2;", ordinal = 1)) + private Vec2 hookCustomMultiplier(Vec2 instance, float value, Operation original) { + PlayerUseMultiplierEvent playerUseMultiplier = new PlayerUseMultiplierEvent(value, value); + MeteorClient.EVENT_BUS.post(playerUseMultiplier); + return new Vec2( + instance.x * playerUseMultiplier.getSideways(), + instance.y * playerUseMultiplier.getForward() + ); + } +} diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/PlayerMoveC2SPacketAccessor.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ServerboundMovePlayerPacketAccessor.java similarity index 69% rename from src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/PlayerMoveC2SPacketAccessor.java rename to src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ServerboundMovePlayerPacketAccessor.java index 15f684a..978c988 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/PlayerMoveC2SPacketAccessor.java +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ServerboundMovePlayerPacketAccessor.java @@ -1,12 +1,12 @@ package nekiplay.meteorplus.mixin.minecraft.entity; -import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; +import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.gen.Accessor; -@Mixin(PlayerMoveC2SPacket.class) -public interface PlayerMoveC2SPacketAccessor { +@Mixin(ServerboundMovePlayerPacket.class) +public interface ServerboundMovePlayerPacketAccessor { @Mutable @Accessor("y") void setY(double y); diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ShulkerEntityAccessor.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ShulkerAccessor.java similarity index 53% rename from src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ShulkerEntityAccessor.java rename to src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ShulkerAccessor.java index a597327..aab2965 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ShulkerEntityAccessor.java +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/entity/ShulkerAccessor.java @@ -1,13 +1,13 @@ package nekiplay.meteorplus.mixin.minecraft.entity; -import net.minecraft.entity.mob.ShulkerEntity; +import net.minecraft.world.entity.monster.Shulker; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; -@Mixin(ShulkerEntity.class) -public interface ShulkerEntityAccessor { - @Invoker("getPeekAmount") - int getPeekAmount(); +@Mixin(Shulker.class) +public interface ShulkerAccessor { + @Invoker("getRawPeekAmount") + int GetRawPeekAmount(); @Invoker("isClosed") boolean isClosed(); diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/DebugHudMixin.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/DebugScreenOverlayMixin.java similarity index 64% rename from src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/DebugHudMixin.java rename to src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/DebugScreenOverlayMixin.java index ab60bcd..69b4d6c 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/DebugHudMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/DebugScreenOverlayMixin.java @@ -2,10 +2,9 @@ import meteordevelopment.meteorclient.MeteorClient; import nekiplay.main.events.hud.DebugDrawTextEvent; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.hud.DebugHud; -import net.minecraft.util.hit.HitResult; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.client.gui.components.DebugScreenOverlay; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -16,20 +15,20 @@ import java.util.List; -@Mixin(value = DebugHud.class, priority = 1001) -public class DebugHudMixin { +@Mixin(value = DebugScreenOverlay.class, priority = 1001) +public class DebugScreenOverlayMixin { @Shadow @Final - private MinecraftClient client; + private Minecraft minecraft; @Inject( - method = "drawText", + method = "extractLines", at = @At( value = "HEAD" ), locals = LocalCapture.CAPTURE_FAILHARD ) - private void modifyDrawLeftText(DrawContext context, List text, boolean left, CallbackInfo ci) { + private void modifyDrawLeftText(GuiGraphicsExtractor context, List text, boolean left, CallbackInfo ci) { DebugDrawTextEvent debugDrawTextEvent = DebugDrawTextEvent.get(text, left); MeteorClient.EVENT_BUS.post(debugDrawTextEvent); } diff --git a/src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/InGameHudMixin.java b/src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/GuiMixin.java similarity index 50% rename from src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/InGameHudMixin.java rename to src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/GuiMixin.java index cb704e7..39ec930 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/InGameHudMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/minecraft/hud/GuiMixin.java @@ -1,19 +1,22 @@ - package nekiplay.meteorplus.mixin.minecraft.hud; + import meteordevelopment.meteorclient.MeteorClient; -import nekiplay.main.events.hud.*; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.client.render.RenderTickCounter; -import net.minecraft.entity.player.PlayerEntity; +import nekiplay.main.events.hud.RenderArmorBarEvent; +import nekiplay.main.events.hud.RenderFoodBarEvent; +import nekiplay.main.events.hud.RenderHealthBarEvent; +import nekiplay.main.events.hud.RenderMountHealthBarEvent; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.world.entity.player.Player; 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; -@Mixin(InGameHud.class) -public class InGameHudMixin { - @Inject(method = "renderHealthBar", at = @At("HEAD"), cancellable = true) - private void onRenderHealthBar(DrawContext context, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking, CallbackInfo ci) { + +@Mixin(Gui.class) +public class GuiMixin { + @Inject(method = "extractHearts", at = @At("HEAD"), cancellable = true) + private void onRenderHealthBar(GuiGraphicsExtractor context, Player player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking, CallbackInfo ci) { RenderHealthBarEvent healthBarRenderEvent = RenderHealthBarEvent.get(context, player, x, y, lines, regeneratingHeartIndex, maxHealth, lastHealth, health, absorption, blinking); MeteorClient.EVENT_BUS.post(healthBarRenderEvent); if (healthBarRenderEvent.isCancelled()) { @@ -21,24 +24,26 @@ private void onRenderHealthBar(DrawContext context, PlayerEntity player, int x, } } - @Inject(method = "renderFood", at = @At("HEAD"), cancellable = true) - private void onRenderFoodBar(DrawContext context, PlayerEntity player, int top, int right, CallbackInfo ci) { + @Inject(method = "extractFood", at = @At("HEAD"), cancellable = true) + private void onRenderFoodBar(GuiGraphicsExtractor context, Player player, int top, int right, CallbackInfo ci) { RenderFoodBarEvent renderFoodBarEvent = RenderFoodBarEvent.get(context, player, top, right); MeteorClient.EVENT_BUS.post(renderFoodBarEvent); if (renderFoodBarEvent.isCancelled()) { ci.cancel(); } } - @Inject(method = "renderArmor", at = @At("HEAD"), cancellable = true) - private static void onRenderArmor(DrawContext context, PlayerEntity player, int i, int j, int k, int x, CallbackInfo ci) { + + @Inject(method = "extractArmor", at = @At("HEAD"), cancellable = true) + private static void onRenderArmor(GuiGraphicsExtractor context, Player player, int i, int j, int k, int x, CallbackInfo ci) { RenderArmorBarEvent renderArmorBarEvent = RenderArmorBarEvent.get(context, player, i, j, k, x); MeteorClient.EVENT_BUS.post(renderArmorBarEvent); if (renderArmorBarEvent.isCancelled()) { ci.cancel(); } } - @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) - private void onRenderMountHealth(DrawContext context, CallbackInfo ci) { + + @Inject(method = "extractVehicleHealth", at = @At("HEAD"), cancellable = true) + private void onRenderMountHealth(GuiGraphicsExtractor context, CallbackInfo ci) { RenderMountHealthBarEvent renderMountHealthBarEvent = RenderMountHealthBarEvent.get(context); MeteorClient.EVENT_BUS.post(renderMountHealthBarEvent); if (renderMountHealthBarEvent.isCancelled()) { diff --git a/src/main/java/nekiplay/meteorplus/mixin/whereisit/RenderingMixin.java b/src/main/java/nekiplay/meteorplus/mixin/whereisit/RenderingMixin.java index e83a1de..2c200c3 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/whereisit/RenderingMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/whereisit/RenderingMixin.java @@ -3,7 +3,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import nekiplay.meteorplus.features.modules.integrations.WhereIsIt; import nekiplay.meteorplus.utils.ColorRemover; -import net.minecraft.text.Text; +import net.minecraft.network.chat.Component; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -17,32 +17,32 @@ public class RenderingMixin { @Unique private static WhereIsIt whereIsIt; - @ModifyArgs(method = "renderLabel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/font/TextRenderer;draw(Lnet/minecraft/text/Text;FFIZLorg/joml/Matrix4f;Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/font/TextRenderer$TextLayerType;II)V")) + + @ModifyArgs(method = "renderLabel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/Font;drawInBatch(Lnet/minecraft/network/chat/Component;FFIZLorg/joml/Matrix4fc;Lnet/minecraft/client/renderer/MultiBufferSource;Lnet/minecraft/client/gui/Font$DisplayMode;II)V")) private static void changeColor(Args args) { if (whereIsIt == null) { whereIsIt = Modules.get().get(WhereIsIt.class); } if (whereIsIt != null && whereIsIt.isActive()) { - Text text1 = args.get(0); + Component text1 = args.get(0); String text2 = text1.getString(); - if (whereIsIt.suport_color_symbols.get()) { + if (whereIsIt.support_color_symbols.get()) { String text3 = ColorRemover.GetVerbatim(text2); - args.set(0, Text.of(text3)); + args.set(0, Component.nullToEmpty(text3)); - int width = mc.textRenderer.getWidth(text3); - float x = (float)(-width) / 2.0F; + int width = mc.font.width(text3); + float x = (float) (-width) / 2.0F; args.set(1, x); args.set(3, getColor(text2)); - } - else { + } else { args.set(3, whereIsIt.text_color.get().getPacked()); } } } - @ModifyArgs(method = "renderLabel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;translate(DDD)V")) + @ModifyArgs(method = "renderLabel", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;translate(DDD)V")) private static void translatePosition(Args args) { if (whereIsIt == null) { whereIsIt = Modules.get().get(WhereIsIt.class); @@ -50,12 +50,12 @@ private static void translatePosition(Args args) { if (whereIsIt != null && whereIsIt.isActive()) { - args.set(1, (double)args.get(1) + whereIsIt.y_offset.get()); + args.set(1, (double) args.get(1) + whereIsIt.y_offset.get()); } } - @ModifyArgs(method = "renderLabel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/VertexConsumer;vertex(Lorg/joml/Matrix4fc;FFF)Lnet/minecraft/client/render/VertexConsumer;")) - private static void backgroundModifer(Args args) { + @ModifyArgs(method = "renderLabel", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/VertexConsumer;addVertex(Lorg/joml/Matrix4fc;FFF)Lcom/mojang/blaze3d/vertex/VertexConsumer;")) + private static void backgroundModifier(Args args) { if (whereIsIt == null) { whereIsIt = Modules.get().get(WhereIsIt.class); } diff --git a/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/GuiMapMixin.java b/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/GuiMapMixin.java index 35a4870..99073d6 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/GuiMapMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/GuiMapMixin.java @@ -1,16 +1,16 @@ package nekiplay.meteorplus.mixin.xaero.worldmap; import baritone.api.BaritoneAPI; -import baritone.api.IBaritone; import baritone.api.pathing.goals.GoalBlock; import meteordevelopment.meteorclient.systems.modules.Modules; +import meteordevelopment.meteorclient.utils.misc.Names; import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.meteorclient.utils.world.Dimension; import nekiplay.MixinPlugin; import nekiplay.meteorplus.features.modules.integrations.MapIntegration; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.resource.language.I18n; -import net.minecraft.util.math.BlockPos; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.core.BlockPos; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -22,8 +22,10 @@ import xaero.map.gui.GuiMap; import xaero.map.gui.dropdown.rightclick.RightClickOption; import xaero.map.misc.Misc; -import xaero.map.region.*; -import meteordevelopment.meteorclient.utils.misc.Names; +import xaero.map.region.MapBlock; +import xaero.map.region.MapRegion; +import xaero.map.region.MapTile; +import xaero.map.region.MapTileChunk; import java.util.ArrayList; import java.util.List; @@ -33,7 +35,7 @@ @Mixin(GuiMap.class) public abstract class GuiMapMixin { @Unique - private final GuiMap guiMap = (GuiMap)(Object) this; + private final GuiMap guiMap = (GuiMap) (Object) this; @Shadow(remap = false) private double scale; @Shadow(remap = false) @@ -48,6 +50,7 @@ public abstract class GuiMapMixin { private double cameraX = 0.0; @Shadow(remap = false) private double cameraZ = 0.0; + @Inject(method = "", at = @At("TAIL")) private void onInit(CallbackInfo info) { cameraX = ((float) mc.player.getX()); @@ -55,7 +58,7 @@ private void onInit(CallbackInfo info) { } @Inject(method = "getRightClickOptions", at = @At(value = "RETURN"), remap = false) - private void rightClickOptins(CallbackInfoReturnable> cir) { + private void rightClickOptions(CallbackInfoReturnable> cir) { Modules modules = Modules.get(); if (modules != null) { MapIntegration mapIntegration = modules.get(MapIntegration.class); @@ -65,8 +68,8 @@ private void rightClickOptins(CallbackInfoReturnable int mouseXPos = (int) Misc.getMouseX(mc, false); int mouseYPos = (int) Misc.getMouseY(mc, false); - int mouseFromCentreX = mouseXPos - mc.getWindow().getFramebufferWidth() / 2; - int mouseFromCentreY = mouseYPos - mc.getWindow().getFramebufferHeight() / 2; + int mouseFromCentreX = mouseXPos - mc.getWindow().getWidth() / 2; + int mouseFromCentreY = mouseYPos - mc.getWindow().getHeight() / 2; double mousePosX = (double) mouseFromCentreX / this.scale + this.cameraX; double mousePosZ = (double) mouseFromCentreY / this.scale + this.cameraZ; @@ -92,20 +95,20 @@ public void onAction(Screen screen) { )); } - if (!MixinPlugin.isXaeroPlusMapresent) { + if (!MixinPlugin.isXaeroPlusMapPresent) { if (mapIntegration.baritoneGoto.get()) { options.addAll(3, List.of( - new RightClickOption(I18n.translate("gui.world_map.baritone_goal_here"), options.size(), guiMap) { + new RightClickOption(I18n.get("gui.world_map.baritone_goal_here"), options.size(), guiMap) { @Override public void onAction(Screen screen) { - GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).up()); + GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).above()); BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoal(goal); } }, - new RightClickOption(I18n.translate("gui.world_map.baritone_path_here"), options.size(), guiMap) { + new RightClickOption(I18n.get("gui.world_map.baritone_path_here"), options.size(), guiMap) { @Override public void onAction(Screen screen) { - GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).up()); + GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).above()); BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoalAndPath(goal); } } @@ -113,10 +116,10 @@ public void onAction(Screen screen) { if (mapIntegration.baritoneElytra.get() && mapIntegration.baritoneGoto.get() && PlayerUtils.getDimension() == Dimension.Nether) { if (rightClickY - 1 > 0 && rightClickY < 128) { options.addAll(3, List.of( - new RightClickOption(I18n.translate("gui.world_map.baritone_elytra_here"), options.size(), guiMap) { + new RightClickOption(I18n.get("gui.world_map.baritone_elytra_here"), options.size(), guiMap) { @Override public void onAction(Screen screen) { - GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).up()); + GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).above()); BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoal(goal); BaritoneAPI.getProvider().getPrimaryBaritone().getCommandManager().execute("elytra"); } @@ -129,10 +132,10 @@ public void onAction(Screen screen) { if (mapIntegration.baritoneElytra.get() && mapIntegration.baritoneGoto.get() && PlayerUtils.getDimension() == Dimension.Nether) { if (rightClickY - 1 > 0 && rightClickY < 128) { options.addAll(3, List.of( - new RightClickOption(I18n.translate("gui.world_map.baritone_elytra_here"), options.size(), guiMap) { + new RightClickOption(I18n.get("gui.world_map.baritone_elytra_here"), options.size(), guiMap) { @Override public void onAction(Screen screen) { - GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).up()); + GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).above()); BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoal(goal); BaritoneAPI.getProvider().getPrimaryBaritone().getCommandManager().execute("elytra"); } diff --git a/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/MapPixelAccessor.java b/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/MapPixelAccessor.java index 6b5f8b3..6727f65 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/MapPixelAccessor.java +++ b/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/MapPixelAccessor.java @@ -1,6 +1,6 @@ package nekiplay.meteorplus.mixin.xaero.worldmap; -import net.minecraft.block.BlockState; +import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import xaero.map.region.MapPixel; diff --git a/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/WaypointRendererMixin.java b/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/WaypointRendererMixin.java index 7113e3f..e38ac14 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/WaypointRendererMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/WaypointRendererMixin.java @@ -1,23 +1,20 @@ package nekiplay.meteorplus.mixin.xaero.worldmap; import baritone.api.BaritoneAPI; -import baritone.api.IBaritone; import baritone.api.pathing.goals.GoalBlock; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.utils.player.PlayerUtils; -import meteordevelopment.meteorclient.utils.world.BlockUtils; import meteordevelopment.meteorclient.utils.world.Dimension; import nekiplay.meteorplus.features.modules.integrations.MapIntegration; -import nekiplay.meteorplus.utils.RotationUtils; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.core.BlockPos; +import net.minecraft.world.phys.Vec3; 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.CallbackInfoReturnable; -import xaero.map.common.config.option.WorldMapProfiledConfigOptions; import xaero.map.WorldMap; +import xaero.map.common.config.option.WorldMapProfiledConfigOptions; import xaero.map.gui.GuiMap; import xaero.map.gui.IRightClickableElement; import xaero.map.gui.dropdown.rightclick.RightClickOption; @@ -32,7 +29,7 @@ @Mixin(WaypointReader.class) public class WaypointRendererMixin { @Inject(method = "getRightClickOptions(Lxaero/map/mods/gui/Waypoint;Lxaero/map/gui/IRightClickableElement;)Ljava/util/ArrayList;", at = @At("HEAD"), remap = false, cancellable = true) - private void rightClickOptins(Waypoint element, IRightClickableElement target, CallbackInfoReturnable> cir) { + private void rightClickOptions(Waypoint element, IRightClickableElement target, CallbackInfoReturnable> cir) { Modules modules = Modules.get(); if (modules != null) { MapIntegration mapIntegration = modules.get(MapIntegration.class); @@ -43,7 +40,7 @@ public void onAction(Screen screen) { SupportMods.xaeroMinimap.openWaypoint((GuiMap) screen, element); } }); - if ((Boolean)WorldMap.INSTANCE.getConfigs().getClientConfigManager().getEffective(WorldMapProfiledConfigOptions.COORDINATES) && !SupportMods.xaeroMinimap.hidingWaypointCoordinates()) { + if ((Boolean) WorldMap.INSTANCE.getConfigs().getClientConfigManager().getEffective(WorldMapProfiledConfigOptions.COORDINATES) && !SupportMods.xaeroMinimap.hidingWaypointCoordinates()) { rightClickOptions.add(new RightClickOption(String.format("X: %d, Y: %s, Z: %d", element.getX(), element.isyIncluded() ? "" + element.getY() : "~", element.getZ()), rightClickOptions.size(), target) { public void onAction(Screen screen) { SupportMods.xaeroMinimap.openWaypoint((GuiMap) screen, element); @@ -71,24 +68,24 @@ public boolean isActive() { rightClickOptions.add((new RightClickOption("gui.world_map.look_at_waypoint", rightClickOptions.size(), target) { public void onAction(Screen screen) { - Vec3d playerPos = mc.player.getEntityPos(); - Vec3d blockCenter = new Vec3d( + Vec3 playerPos = mc.player.position(); + Vec3 blockCenter = new Vec3( element.getX() + 0.5, element.getY() + 0.5, element.getZ() + 0.5 ); // Вычисляем вектор направления от игрока к блоку - Vec3d direction = blockCenter.subtract(playerPos).normalize(); + Vec3 direction = blockCenter.subtract(playerPos).normalize(); // Преобразуем вектор направления в углы поворота (yaw и pitch) double distanceXZ = Math.sqrt(direction.x * direction.x + direction.z * direction.z); - float yaw = (float)Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90.0F; - float pitch = (float)Math.toDegrees(-Math.atan2(direction.y, distanceXZ)); + float yaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90.0F; + float pitch = (float) Math.toDegrees(-Math.atan2(direction.y, distanceXZ)); // Устанавливаем поворот игрока - mc.player.setYaw(yaw); - mc.player.setPitch(pitch); + mc.player.setYRot(yaw); + mc.player.setXRot(pitch); } public boolean isActive() { diff --git a/src/main/java/nekiplay/meteorplus/mixinclasses/EditWaypointScreen.java b/src/main/java/nekiplay/meteorplus/mixinclasses/EditWaypointScreen.java index 6c3cf5e..c1f3008 100644 --- a/src/main/java/nekiplay/meteorplus/mixinclasses/EditWaypointScreen.java +++ b/src/main/java/nekiplay/meteorplus/mixinclasses/EditWaypointScreen.java @@ -11,6 +11,7 @@ public class EditWaypointScreen extends EditSystemScreen { private Runnable reload; + public EditWaypointScreen(GuiTheme theme, Waypoint value, Runnable reload) { super(theme, value, reload); this.reload = reload; @@ -19,7 +20,7 @@ public EditWaypointScreen(GuiTheme theme, Waypoint value, Runnable reload) { @Override public Waypoint create() { return new Waypoint.Builder() - .pos(mc.player.getBlockPos().up(2)) + .pos(mc.player.blockPosition().above(2)) .dimension(PlayerUtils.getDimension()) .build(); } diff --git a/src/main/java/nekiplay/meteorplus/mixinclasses/IModule.java b/src/main/java/nekiplay/meteorplus/mixinclasses/IModule.java index 675c490..c6f8562 100644 --- a/src/main/java/nekiplay/meteorplus/mixinclasses/IModule.java +++ b/src/main/java/nekiplay/meteorplus/mixinclasses/IModule.java @@ -2,5 +2,6 @@ public interface IModule { boolean isHidden(); + void setHidden(boolean value); } diff --git a/src/main/java/nekiplay/meteorplus/mixinclasses/WaypointsModuleModes.java b/src/main/java/nekiplay/meteorplus/mixinclasses/WaypointsModuleModes.java index 7cf7335..de4a12e 100644 --- a/src/main/java/nekiplay/meteorplus/mixinclasses/WaypointsModuleModes.java +++ b/src/main/java/nekiplay/meteorplus/mixinclasses/WaypointsModuleModes.java @@ -20,6 +20,7 @@ public static class DistanceComparator implements Comparator { public DistanceComparator(Map base) { this.base = base; } + public int compare(String a, String b) { long distance1 = 0; long distance2 = 0; @@ -29,8 +30,8 @@ public int compare(String a, String b) { if (awp != null && bwp != null) { if (awp.getPos() != null && bwp.getPos() != null) { - distance1 = Math.round(mc.player.getEntityPos().distanceTo(awp.getPos().toCenterPos())); - distance2 = Math.round(mc.player.getEntityPos().distanceTo(bwp.getPos().toCenterPos())); + distance1 = Math.round(mc.player.position().distanceTo(awp.getPos().getCenter())); + distance2 = Math.round(mc.player.position().distanceTo(bwp.getPos().getCenter())); } } } @@ -48,6 +49,7 @@ public static class NameComparator implements Comparator { public NameComparator(Map base) { this.base = base; } + public int compare(String a, String b) { if (base.containsKey(a) && base.containsKey(b)) { @@ -61,8 +63,7 @@ public int compare(String a, String b) { } } return 0; - } - else { + } else { return 0; } } diff --git a/src/main/java/nekiplay/meteorplus/settings/ConfigModifier.java b/src/main/java/nekiplay/meteorplus/settings/ConfigModifier.java index c7b39a7..a65fae8 100644 --- a/src/main/java/nekiplay/meteorplus/settings/ConfigModifier.java +++ b/src/main/java/nekiplay/meteorplus/settings/ConfigModifier.java @@ -1,6 +1,6 @@ package nekiplay.meteorplus.settings; -import meteordevelopment.meteorclient.mixin.ClientPlayerInteractionManagerAccessor; +import meteordevelopment.meteorclient.mixin.MultiPlayerGameModeAccessor; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.config.Config; import meteordevelopment.meteorclient.utils.Utils; @@ -10,26 +10,26 @@ import meteordevelopment.meteorclient.utils.world.Dimension; import nekiplay.meteorplus.features.modules.world.timer.TimerPlus; import nekiplay.meteorplus.mixinclasses.SpoofMode; -import net.minecraft.client.network.PlayerListEntry; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.network.packet.c2s.play.ClientStatusC2SPacket; -import net.minecraft.registry.Registries; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.stat.Stat; -import net.minecraft.stat.Stats; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.client.multiplayer.PlayerInfo; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.protocol.game.ServerboundClientCommandPacket; +import net.minecraft.resources.Identifier; +import net.minecraft.stats.Stat; +import net.minecraft.stats.Stats; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.phys.Vec3; import org.apache.commons.lang3.StringUtils; import org.meteordev.starscript.Starscript; -import org.meteordev.starscript.Script; import org.meteordev.starscript.value.Value; import org.meteordev.starscript.value.ValueMap; + import java.util.Arrays; import java.util.Optional; import java.util.stream.Collectors; @@ -92,20 +92,19 @@ private void changedProtection() { Starscript ss = MeteorStarscript.ss; - if (positionProtection.get()) { if (spoofMode.get() == SpoofMode.Fake) { ss.set("camera", new ValueMap() .set("pos", new ValueMap() .set("_toString", () -> posString(false, true)) - .set("x", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().x + ConfigModifier.get().x_spoof.get())) - .set("y", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().y)) - .set("z", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().z + ConfigModifier.get().z_spoof.get())) + .set("x", () -> Value.number(mc.gameRenderer.getMainCamera().position().x + ConfigModifier.get().x_spoof.get())) + .set("y", () -> Value.number(mc.gameRenderer.getMainCamera().position().y)) + .set("z", () -> Value.number(mc.gameRenderer.getMainCamera().position().z + ConfigModifier.get().z_spoof.get())) ) .set("opposite_dim_pos", new ValueMap() .set("_toString", () -> posString(true, true)) .set("x", () -> oppositeX(true)) - .set("y", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().y)) + .set("y", () -> Value.number(mc.gameRenderer.getMainCamera().position().y)) .set("z", () -> oppositeZ(true)) ) @@ -117,12 +116,12 @@ private void changedProtection() { // Player ss.set("player", new ValueMap() - .set("_toString", () -> Value.string(mc.getSession().getUsername())) + .set("_toString", () -> Value.string(mc.getUser().getName())) .set("health", () -> Value.number(mc.player != null ? mc.player.getHealth() : 0)) .set("absorption", () -> Value.number(mc.player != null ? mc.player.getAbsorptionAmount() : 0)) - .set("hunger", () -> Value.number(mc.player != null ? mc.player.getHungerManager().getFoodLevel() : 0)) + .set("hunger", () -> Value.number(mc.player != null ? mc.player.getFoodData().getFoodLevel() : 0)) - .set("speed", () -> Value.number(Utils.getPlayerSpeed().horizontalLength())) + .set("speed", () -> Value.number(Utils.getPlayerSpeed().horizontalDistance())) .set("speed_all", new ValueMap() .set("_toString", () -> Value.string(mc.player != null ? Utils.getPlayerSpeed().toString() : "")) .set("x", () -> Value.number(mc.player != null ? Utils.getPlayerSpeed().x : 0)) @@ -130,7 +129,7 @@ private void changedProtection() { .set("z", () -> Value.number(mc.player != null ? Utils.getPlayerSpeed().z : 0)) ) - .set("breaking_progress", () -> Value.number(mc.interactionManager != null ? ((ClientPlayerInteractionManagerAccessor) mc.interactionManager).meteor$getBreakingProgress() : 0)) + .set("breaking_progress", () -> Value.number(mc.gameMode != null ? ((MultiPlayerGameModeAccessor) mc.gameMode).meteor$getBreakingProgress() : 0)) .set("biome", ConfigModifier::biome) .set("dimension", () -> Value.string(PlayerUtils.getDimension().name())) @@ -154,8 +153,8 @@ private void changedProtection() { .set("pitch", () -> pitch(false)) .set("direction", () -> direction(false)) - .set("hand", () -> mc.player != null ? wrap(mc.player.getMainHandStack()) : Value.null_()) - .set("offhand", () -> mc.player != null ? wrap(mc.player.getOffHandStack()) : Value.null_()) + .set("hand", () -> mc.player != null ? wrap(mc.player.getMainHandItem()) : Value.null_()) + .set("offhand", () -> mc.player != null ? wrap(mc.player.getOffhandItem()) : Value.null_()) .set("hand_or_offhand", ConfigModifier::handOrOffhand) .set("get_item", ConfigModifier::getItem) .set("count_items", ConfigModifier::countItems) @@ -171,19 +170,18 @@ private void changedProtection() { .set("get_stat", ConfigModifier::getStat) ); - } - else { + } else { ss.set("camera", new ValueMap() .set("pos", new ValueMap() .set("_toString", () -> posString(false, true)) .set("x", () -> Value.number(0)) - .set("y", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().y)) + .set("y", () -> Value.number(mc.gameRenderer.getMainCamera().position().y)) .set("z", () -> Value.number(0)) ) .set("opposite_dim_pos", new ValueMap() .set("_toString", () -> posString(true, true)) .set("x", () -> Value.number(0)) - .set("y", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().y)) + .set("y", () -> Value.number(mc.gameRenderer.getMainCamera().position().y)) .set("z", () -> Value.number(0)) ) @@ -195,12 +193,12 @@ private void changedProtection() { // Player ss.set("player", new ValueMap() - .set("_toString", () -> Value.string(mc.getSession().getUsername())) + .set("_toString", () -> Value.string(mc.getUser().getName())) .set("health", () -> Value.number(mc.player != null ? mc.player.getHealth() : 0)) .set("absorption", () -> Value.number(mc.player != null ? mc.player.getAbsorptionAmount() : 0)) - .set("hunger", () -> Value.number(mc.player != null ? mc.player.getHungerManager().getFoodLevel() : 0)) + .set("hunger", () -> Value.number(mc.player != null ? mc.player.getFoodData().getFoodLevel() : 0)) - .set("speed", () -> Value.number(Utils.getPlayerSpeed().horizontalLength())) + .set("speed", () -> Value.number(Utils.getPlayerSpeed().horizontalDistance())) .set("speed_all", new ValueMap() .set("_toString", () -> Value.string(mc.player != null ? Utils.getPlayerSpeed().toString() : "")) .set("x", () -> Value.number(0)) @@ -208,7 +206,7 @@ private void changedProtection() { .set("z", () -> Value.number(0)) ) - .set("breaking_progress", () -> Value.number(mc.interactionManager != null ? ((ClientPlayerInteractionManagerAccessor) mc.interactionManager).meteor$getBreakingProgress() : 0)) + .set("breaking_progress", () -> Value.number(mc.gameMode != null ? ((MultiPlayerGameModeAccessor) mc.gameMode).meteor$getBreakingProgress() : 0)) .set("biome", ConfigModifier::biome) .set("dimension", () -> Value.string(PlayerUtils.getDimension().name())) @@ -232,8 +230,8 @@ private void changedProtection() { .set("pitch", () -> pitch(false)) .set("direction", () -> direction(false)) - .set("hand", () -> mc.player != null ? wrap(mc.player.getMainHandStack()) : Value.null_()) - .set("offhand", () -> mc.player != null ? wrap(mc.player.getOffHandStack()) : Value.null_()) + .set("hand", () -> mc.player != null ? wrap(mc.player.getMainHandItem()) : Value.null_()) + .set("offhand", () -> mc.player != null ? wrap(mc.player.getOffhandItem()) : Value.null_()) .set("hand_or_offhand", ConfigModifier::handOrOffhand) .set("get_item", ConfigModifier::getItem) .set("count_items", ConfigModifier::countItems) @@ -250,19 +248,18 @@ private void changedProtection() { .set("get_stat", ConfigModifier::getStat) ); } - } - else { + } else { ss.set("camera", new ValueMap() .set("pos", new ValueMap() .set("_toString", () -> posString(false, true)) - .set("x", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().x)) - .set("y", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().y)) - .set("z", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().z)) + .set("x", () -> Value.number(mc.gameRenderer.getMainCamera().position().x)) + .set("y", () -> Value.number(mc.gameRenderer.getMainCamera().position().y)) + .set("z", () -> Value.number(mc.gameRenderer.getMainCamera().position().z)) ) .set("opposite_dim_pos", new ValueMap() .set("_toString", () -> posString(true, true)) .set("x", () -> oppositeX(true)) - .set("y", () -> Value.number(mc.gameRenderer.getCamera().getCameraPos().y)) + .set("y", () -> Value.number(mc.gameRenderer.getMainCamera().position().y)) .set("z", () -> oppositeZ(true)) ) @@ -273,12 +270,12 @@ private void changedProtection() { // Player ss.set("player", new ValueMap() - .set("_toString", () -> Value.string(mc.getSession().getUsername())) + .set("_toString", () -> Value.string(mc.getUser().getName())) .set("health", () -> Value.number(mc.player != null ? mc.player.getHealth() : 0)) .set("absorption", () -> Value.number(mc.player != null ? mc.player.getAbsorptionAmount() : 0)) - .set("hunger", () -> Value.number(mc.player != null ? mc.player.getHungerManager().getFoodLevel() : 0)) + .set("hunger", () -> Value.number(mc.player != null ? mc.player.getFoodData().getFoodLevel() : 0)) - .set("speed", () -> Value.number(Utils.getPlayerSpeed().horizontalLength())) + .set("speed", () -> Value.number(Utils.getPlayerSpeed().horizontalDistance())) .set("speed_all", new ValueMap() .set("_toString", () -> Value.string(mc.player != null ? Utils.getPlayerSpeed().toString() : "")) .set("x", () -> Value.number(mc.player != null ? Utils.getPlayerSpeed().x : 0)) @@ -286,7 +283,7 @@ private void changedProtection() { .set("z", () -> Value.number(mc.player != null ? Utils.getPlayerSpeed().z : 0)) ) - .set("breaking_progress", () -> Value.number(mc.interactionManager != null ? ((ClientPlayerInteractionManagerAccessor) mc.interactionManager).meteor$getBreakingProgress() : 0)) + .set("breaking_progress", () -> Value.number(mc.gameMode != null ? ((MultiPlayerGameModeAccessor) mc.gameMode).meteor$getBreakingProgress() : 0)) .set("biome", ConfigModifier::biome) .set("dimension", () -> Value.string(PlayerUtils.getDimension().name())) @@ -310,8 +307,8 @@ private void changedProtection() { .set("pitch", () -> pitch(false)) .set("direction", () -> direction(false)) - .set("hand", () -> mc.player != null ? wrap(mc.player.getMainHandStack()) : Value.null_()) - .set("offhand", () -> mc.player != null ? wrap(mc.player.getOffHandStack()) : Value.null_()) + .set("hand", () -> mc.player != null ? wrap(mc.player.getMainHandItem()) : Value.null_()) + .set("offhand", () -> mc.player != null ? wrap(mc.player.getOffhandItem()) : Value.null_()) .set("hand_or_offhand", ConfigModifier::handOrOffhand) .set("get_item", ConfigModifier::getItem) .set("count_items", ConfigModifier::countItems) @@ -333,10 +330,9 @@ private void changedProtection() { private Value oppositeX(boolean camera) { double x = 0; if (positionProtection.get()) { - x = camera ? mc.gameRenderer.getCamera().getCameraPos().x + ConfigModifier.get().x_spoof.get() : (mc.player != null ? mc.player.getX() + ConfigModifier.get().x_spoof.get() : 0); - } - else { - x = camera ? mc.gameRenderer.getCamera().getCameraPos().x : (mc.player != null ? mc.player.getX() : 0); + x = camera ? mc.gameRenderer.getMainCamera().position().x + ConfigModifier.get().x_spoof.get() : (mc.player != null ? mc.player.getX() + ConfigModifier.get().x_spoof.get() : 0); + } else { + x = camera ? mc.gameRenderer.getMainCamera().position().x : (mc.player != null ? mc.player.getX() : 0); } Dimension dimension = PlayerUtils.getDimension(); @@ -349,10 +345,9 @@ private Value oppositeX(boolean camera) { private Value oppositeZ(boolean camera) { double z = 0; if (positionProtection.get()) { - z = camera ? mc.gameRenderer.getCamera().getCameraPos().z + ConfigModifier.get().z_spoof.get() : (mc.player != null ? mc.player.getZ() + ConfigModifier.get().z_spoof.get() : 0); - } - else { - z = camera ? mc.gameRenderer.getCamera().getCameraPos().z : (mc.player != null ? mc.player.getZ() : 0); + z = camera ? mc.gameRenderer.getMainCamera().position().z + ConfigModifier.get().z_spoof.get() : (mc.player != null ? mc.player.getZ() + ConfigModifier.get().z_spoof.get() : 0); + } else { + z = camera ? mc.gameRenderer.getMainCamera().position().z : (mc.player != null ? mc.player.getZ() : 0); } Dimension dimension = PlayerUtils.getDimension(); @@ -364,8 +359,8 @@ private Value oppositeZ(boolean camera) { private static Value yaw(boolean camera) { float yaw; - if (camera) yaw = mc.gameRenderer.getCamera().getYaw(); - else yaw = mc.player != null ? mc.player.getYaw() : 0; + if (camera) yaw = mc.gameRenderer.getMainCamera().yRot(); + else yaw = mc.player != null ? mc.player.getYRot() : 0; yaw %= 360; if (yaw < 0) yaw += 360; @@ -376,8 +371,8 @@ private static Value yaw(boolean camera) { private static Value pitch(boolean camera) { float pitch; - if (camera) pitch = mc.gameRenderer.getCamera().getPitch(); - else pitch = mc.player != null ? mc.player.getPitch() : 0; + if (camera) pitch = mc.gameRenderer.getMainCamera().xRot(); + else pitch = mc.player != null ? mc.player.getXRot() : 0; pitch %= 360; if (pitch < 0) pitch += 360; @@ -388,17 +383,19 @@ private static Value pitch(boolean camera) { private static Value direction(boolean camera) { float yaw; - if (camera) yaw = mc.gameRenderer.getCamera().getYaw(); - else yaw = mc.player != null ? mc.player.getYaw() : 0; + if (camera) yaw = mc.gameRenderer.getMainCamera().yRot(); + else yaw = mc.player != null ? mc.player.getYRot() : 0; return wrap(HorizontalDirection.get(yaw)); } - private static final BlockPos.Mutable BP = new BlockPos.Mutable(); + + private static final BlockPos.MutableBlockPos BP = new BlockPos.MutableBlockPos(); + private static Value biome() { - if (mc.player == null || mc.world == null) return Value.string(""); + if (mc.player == null || mc.level == null) return Value.string(""); BP.set(mc.player.getX(), mc.player.getY(), mc.player.getZ()); - Identifier id = mc.world.getRegistryManager().getOptional(RegistryKeys.BIOME).get().getId(mc.world.getBiome(BP).value()); + Identifier id = mc.level.registryAccess().lookup(Registries.BIOME).get().getKey(mc.level.getBiome(BP).value()); if (id == null) return Value.string("Unknown"); return Value.string(Arrays.stream(id.getPath().split("_")).map(StringUtils::capitalize).collect(Collectors.joining(" "))); @@ -407,22 +404,23 @@ private static Value biome() { private static Value handOrOffhand() { if (mc.player == null) return Value.null_(); - ItemStack itemStack = mc.player.getMainHandStack(); - if (itemStack.isEmpty()) itemStack = mc.player.getOffHandStack(); + ItemStack itemStack = mc.player.getMainHandItem(); + if (itemStack.isEmpty()) itemStack = mc.player.getOffhandItem(); return itemStack != null ? wrap(itemStack) : Value.null_(); } private static Value ping() { - if (mc.getNetworkHandler() == null || mc.player == null) return Value.number(0); + if (mc.getConnection() == null || mc.player == null) return Value.number(0); - PlayerListEntry playerListEntry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()); + PlayerInfo playerListEntry = mc.getConnection().getPlayerInfo(mc.player.getUUID()); return Value.number(playerListEntry != null ? playerListEntry.getLatency() : 0); } + private Value posString(boolean opposite, boolean camera) { - Vec3d pos; - if (camera) pos = mc.gameRenderer.getCamera().getCameraPos(); - else pos = mc.player != null ? mc.player.getEntityPos() : Vec3d.ZERO; + Vec3 pos; + if (camera) pos = mc.gameRenderer.getMainCamera().position(); + else pos = mc.player != null ? mc.player.position() : Vec3.ZERO; double x = pos.x; double z = pos.z; @@ -433,8 +431,7 @@ private Value posString(boolean opposite, boolean camera) { if (dimension == Dimension.Overworld) { x /= 8; z /= 8; - } - else if (dimension == Dimension.Nether) { + } else if (dimension == Dimension.Nether) { x *= 8; z *= 8; } @@ -447,12 +444,10 @@ private Value posString(double x, double y, double z) { if (positionProtection.get()) { if (spoofMode.get() == SpoofMode.Fake) { return Value.string(String.format("X: %.0f Y: %.0f Z: %.0f", x + ConfigModifier.get().x_spoof.get(), y, z + ConfigModifier.get().z_spoof.get())); - } - else { + } else { return Value.string(String.format("X: 0 Y: %.0f Z: 0", y)); } - } - else { + } else { return Value.string(String.format("X: %.0f Y: %.0f Z: %.0f", x, y, z)); } } @@ -461,7 +456,7 @@ private static Value getItem(Starscript ss, int argCount) { if (argCount != 1) ss.error("player.get_item() requires 1 argument, got %d.", argCount); int i = (int) ss.popNumber("First argument to player.get_item() needs to be a number."); - return mc.player != null ? wrap(mc.player.getInventory().getStack(i)) : Value.null_(); + return mc.player != null ? wrap(mc.player.getInventory().getItem(i)) : Value.null_(); } private static Value countItems(Starscript ss, int argCount) { @@ -471,12 +466,12 @@ private static Value countItems(Starscript ss, int argCount) { Identifier id = Identifier.tryParse(idRaw); if (id == null) return Value.number(0); - Item item = Registries.ITEM.get(id); + Item item = BuiltInRegistries.ITEM.getValue(id); if (item == Items.AIR || mc.player == null) return Value.number(0); int count = 0; - for (int i = 0; i < mc.player.getInventory().size(); i++) { - ItemStack itemStack = mc.player.getInventory().getStack(i); + for (int i = 0; i < mc.player.getInventory().getContainerSize(); i++) { + ItemStack itemStack = mc.player.getInventory().getItem(i); if (itemStack.getItem() == item) count += itemStack.getCount(); } @@ -489,10 +484,10 @@ private static Value hasPotionEffect(Starscript ss, int argCount) { Identifier name = popIdentifier(ss, "First argument to player.has_potion_effect() needs to a string."); - Optional> effect = Registries.STATUS_EFFECT.getEntry(name); + Optional> effect = BuiltInRegistries.MOB_EFFECT.get(name); if (effect.isEmpty()) return Value.null_(); - StatusEffectInstance effectInstance = mc.player.getStatusEffect(effect.get()); + MobEffectInstance effectInstance = mc.player.getEffect(effect.get()); return Value.bool(effectInstance != null); } @@ -502,22 +497,24 @@ private static Value getPotionEffect(Starscript ss, int argCount) { Identifier name = popIdentifier(ss, "First argument to player.get_potion_effect() needs to a string."); - Optional> effect = Registries.STATUS_EFFECT.getEntry(name); + Optional> effect = BuiltInRegistries.MOB_EFFECT.get(name); if (effect.isEmpty()) return Value.null_(); - StatusEffectInstance effectInstance = mc.player.getStatusEffect(effect.get()); + MobEffectInstance effectInstance = mc.player.getEffect(effect.get()); if (effectInstance == null) return Value.null_(); return wrap(effectInstance); } + private static long lastRequestedStatsTime = 0; + private static Value getStat(Starscript ss, int argCount) { if (argCount < 1) ss.error("player.get_stat() requires 1 argument, got %d.", argCount); if (mc.player == null) return Value.number(0); long time = System.currentTimeMillis(); - if ((time - lastRequestedStatsTime) / 1000.0 >= 1 && mc.getNetworkHandler() != null) { - mc.getNetworkHandler().sendPacket(new ClientStatusC2SPacket(ClientStatusC2SPacket.Mode.REQUEST_STATS)); + if ((time - lastRequestedStatsTime) / 1000.0 >= 1 && mc.getConnection() != null) { + mc.getConnection().send(new ServerboundClientCommandPacket(ServerboundClientCommandPacket.Action.REQUEST_STATS)); lastRequestedStatsTime = time; } @@ -525,21 +522,21 @@ private static Value getStat(Starscript ss, int argCount) { Identifier name = popIdentifier(ss, (argCount > 1 ? "Second" : "First") + " argument to player.get_stat() needs to be a string."); Stat stat = switch (type) { - case "mined" -> Stats.MINED.getOrCreateStat(Registries.BLOCK.get(name)); - case "crafted" -> Stats.CRAFTED.getOrCreateStat(Registries.ITEM.get(name)); - case "used" -> Stats.USED.getOrCreateStat(Registries.ITEM.get(name)); - case "broken" -> Stats.BROKEN.getOrCreateStat(Registries.ITEM.get(name)); - case "picked_up" -> Stats.PICKED_UP.getOrCreateStat(Registries.ITEM.get(name)); - case "dropped" -> Stats.DROPPED.getOrCreateStat(Registries.ITEM.get(name)); - case "killed" -> Stats.KILLED.getOrCreateStat(Registries.ENTITY_TYPE.get(name)); - case "killed_by" -> Stats.KILLED_BY.getOrCreateStat(Registries.ENTITY_TYPE.get(name)); + case "mined" -> Stats.BLOCK_MINED.get(BuiltInRegistries.BLOCK.getValue(name)); + case "crafted" -> Stats.ITEM_CRAFTED.get(BuiltInRegistries.ITEM.getValue(name)); + case "used" -> Stats.ITEM_USED.get(BuiltInRegistries.ITEM.getValue(name)); + case "broken" -> Stats.ITEM_BROKEN.get(BuiltInRegistries.ITEM.getValue(name)); + case "picked_up" -> Stats.ITEM_PICKED_UP.get(BuiltInRegistries.ITEM.getValue(name)); + case "dropped" -> Stats.ITEM_DROPPED.get(BuiltInRegistries.ITEM.getValue(name)); + case "killed" -> Stats.ENTITY_KILLED.get(BuiltInRegistries.ENTITY_TYPE.getValue(name)); + case "killed_by" -> Stats.ENTITY_KILLED_BY.get(BuiltInRegistries.ENTITY_TYPE.getValue(name)); case "custom" -> { - name = Registries.CUSTOM_STAT.get(name); - yield name != null ? Stats.CUSTOM.getOrCreateStat(name) : null; + name = BuiltInRegistries.CUSTOM_STAT.getValue(name); + yield name != null ? Stats.CUSTOM.get(name) : null; } default -> null; }; - return Value.number(stat != null ? mc.player.getStatHandler().getStat(stat) : 0); + return Value.number(stat != null ? mc.player.getStats().getValue(stat) : 0); } } diff --git a/src/main/java/nekiplay/meteorplus/settings/items/ESPItemData.java b/src/main/java/nekiplay/meteorplus/settings/items/ESPItemData.java index 372cc3e..f71e977 100644 --- a/src/main/java/nekiplay/meteorplus/settings/items/ESPItemData.java +++ b/src/main/java/nekiplay/meteorplus/settings/items/ESPItemData.java @@ -2,14 +2,13 @@ import meteordevelopment.meteorclient.gui.GuiTheme; import meteordevelopment.meteorclient.gui.WidgetScreen; -import meteordevelopment.meteorclient.settings.GenericSetting; import meteordevelopment.meteorclient.renderer.ShapeMode; +import meteordevelopment.meteorclient.settings.GenericSetting; import meteordevelopment.meteorclient.settings.IGeneric; import meteordevelopment.meteorclient.utils.misc.IChangeable; -import meteordevelopment.meteorclient.utils.misc.ICopyable; import meteordevelopment.meteorclient.utils.render.color.SettingColor; -import net.minecraft.item.Item; -import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.Item; public class ESPItemData implements IGeneric, IChangeable, IItemData { public ShapeMode shapeMode; @@ -75,8 +74,8 @@ public ESPItemData copy() { } @Override - public NbtCompound toTag() { - NbtCompound tag = new NbtCompound(); + public CompoundTag toTag() { + CompoundTag tag = new CompoundTag(); tag.putString("shapeMode", shapeMode.name()); tag.put("lineColor", lineColor.toTag()); @@ -91,7 +90,7 @@ public NbtCompound toTag() { } @Override - public ESPItemData fromTag(NbtCompound tag) { + public ESPItemData fromTag(CompoundTag tag) { shapeMode = ShapeMode.valueOf(tag.getString("shapeMode").get()); lineColor.fromTag(tag.getCompound("lineColor").get()); sideColor.fromTag(tag.getCompound("sideColor").get()); diff --git a/src/main/java/nekiplay/meteorplus/settings/items/ESPItemDataScreen.java b/src/main/java/nekiplay/meteorplus/settings/items/ESPItemDataScreen.java index 425713b..a69655f 100644 --- a/src/main/java/nekiplay/meteorplus/settings/items/ESPItemDataScreen.java +++ b/src/main/java/nekiplay/meteorplus/settings/items/ESPItemDataScreen.java @@ -5,7 +5,7 @@ import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.utils.render.color.SettingColor; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; import org.jetbrains.annotations.Nullable; public class ESPItemDataScreen extends WindowScreen { @@ -15,11 +15,13 @@ public class ESPItemDataScreen extends WindowScreen { public ESPItemDataScreen(GuiTheme theme, ESPItemData blockData, Item block, ItemDataSetting setting) { this(theme, blockData, setting, () -> setting.get().put(block, blockData)); - } - public ESPItemDataScreen(GuiTheme theme, ESPItemData blockData, GenericSetting setting) { - this(theme, blockData, setting, null); - } - private ESPItemDataScreen(GuiTheme theme, ESPItemData blockData, Setting setting, @Nullable Runnable firstChangeConsumer) { + } + + public ESPItemDataScreen(GuiTheme theme, ESPItemData blockData, GenericSetting setting) { + this(theme, blockData, setting, null); + } + + private ESPItemDataScreen(GuiTheme theme, ESPItemData blockData, Setting setting, @Nullable Runnable firstChangeConsumer) { super(theme, "Configure Items"); this.blockData = blockData; diff --git a/src/main/java/nekiplay/meteorplus/settings/items/HighlightItemData.java b/src/main/java/nekiplay/meteorplus/settings/items/HighlightItemData.java index a600cd5..66a13f6 100644 --- a/src/main/java/nekiplay/meteorplus/settings/items/HighlightItemData.java +++ b/src/main/java/nekiplay/meteorplus/settings/items/HighlightItemData.java @@ -1,14 +1,13 @@ package nekiplay.meteorplus.settings.items; import meteordevelopment.meteorclient.gui.GuiTheme; -import meteordevelopment.meteorclient.gui.WidgetScreen; +import meteordevelopment.meteorclient.gui.WidgetScreen; import meteordevelopment.meteorclient.settings.GenericSetting; -import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.settings.IGeneric; import meteordevelopment.meteorclient.utils.misc.IChangeable; import meteordevelopment.meteorclient.utils.render.color.SettingColor; -import net.minecraft.item.Item; -import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.Item; public class HighlightItemData implements IGeneric, IChangeable, IItemData { public SettingColor Color; @@ -55,8 +54,8 @@ public HighlightItemData copy() { } @Override - public NbtCompound toTag() { - NbtCompound tag = new NbtCompound(); + public CompoundTag toTag() { + CompoundTag tag = new CompoundTag(); tag.put("color", Color.toTag()); tag.putBoolean("changed", changed); @@ -65,7 +64,7 @@ public NbtCompound toTag() { } @Override - public HighlightItemData fromTag(NbtCompound tag) { + public HighlightItemData fromTag(CompoundTag tag) { Color.fromTag(tag.getCompound("color").get()); changed = tag.getBoolean("changed").get(); diff --git a/src/main/java/nekiplay/meteorplus/settings/items/HighlightItemDataScreen.java b/src/main/java/nekiplay/meteorplus/settings/items/HighlightItemDataScreen.java index f4c39af..5152669 100644 --- a/src/main/java/nekiplay/meteorplus/settings/items/HighlightItemDataScreen.java +++ b/src/main/java/nekiplay/meteorplus/settings/items/HighlightItemDataScreen.java @@ -2,10 +2,9 @@ import meteordevelopment.meteorclient.gui.GuiTheme; import meteordevelopment.meteorclient.gui.WindowScreen; -import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.utils.render.color.SettingColor; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; import org.jetbrains.annotations.Nullable; public class HighlightItemDataScreen extends WindowScreen { @@ -15,11 +14,13 @@ public class HighlightItemDataScreen extends WindowScreen { public HighlightItemDataScreen(GuiTheme theme, HighlightItemData blockData, Item block, ItemDataSetting setting) { this(theme, blockData, setting, () -> setting.get().put(block, blockData)); - } - public HighlightItemDataScreen(GuiTheme theme, HighlightItemData blockData, GenericSetting setting) { - this(theme, blockData, setting, null); - } - private HighlightItemDataScreen(GuiTheme theme, HighlightItemData blockData, Setting setting, @Nullable Runnable firstChangeConsumer) { + } + + public HighlightItemDataScreen(GuiTheme theme, HighlightItemData blockData, GenericSetting setting) { + this(theme, blockData, setting, null); + } + + private HighlightItemDataScreen(GuiTheme theme, HighlightItemData blockData, Setting setting, @Nullable Runnable firstChangeConsumer) { super(theme, "Configure Items"); this.blockData = blockData; diff --git a/src/main/java/nekiplay/meteorplus/settings/items/IItemData.java b/src/main/java/nekiplay/meteorplus/settings/items/IItemData.java index 372cfd3..d8e28d0 100644 --- a/src/main/java/nekiplay/meteorplus/settings/items/IItemData.java +++ b/src/main/java/nekiplay/meteorplus/settings/items/IItemData.java @@ -5,7 +5,7 @@ import meteordevelopment.meteorclient.utils.misc.IChangeable; import meteordevelopment.meteorclient.utils.misc.ICopyable; import meteordevelopment.meteorclient.utils.misc.ISerializable; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public interface IItemData & ISerializable & IChangeable & IItemData> { WidgetScreen createScreen(GuiTheme theme, Item block, ItemDataSetting setting); diff --git a/src/main/java/nekiplay/meteorplus/settings/items/ItemDataSetting.java b/src/main/java/nekiplay/meteorplus/settings/items/ItemDataSetting.java index 4a3ef5d..fa59ac4 100644 --- a/src/main/java/nekiplay/meteorplus/settings/items/ItemDataSetting.java +++ b/src/main/java/nekiplay/meteorplus/settings/items/ItemDataSetting.java @@ -6,17 +6,17 @@ import meteordevelopment.meteorclient.utils.misc.ICopyable; import meteordevelopment.meteorclient.utils.misc.IGetter; import meteordevelopment.meteorclient.utils.misc.ISerializable; -import net.minecraft.item.Item; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.registry.Registries; -import net.minecraft.util.Identifier; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.Item; import java.util.HashMap; import java.util.Map; import java.util.function.Consumer; public class ItemDataSetting & ISerializable & IChangeable & IItemData> extends Setting> { - public final IGetter defaultData; + public final IGetter defaultData; public ItemDataSetting(String name, String description, Map defaultValue, Consumer> onChanged, Consumer>> onModuleActivated, IGetter defaultData, IVisible visible) { super(name, description, defaultValue, onChanged, onModuleActivated, visible); @@ -40,10 +40,10 @@ protected boolean isValueValid(Map value) { } @Override - protected NbtCompound save(NbtCompound tag) { - NbtCompound valueTag = new NbtCompound(); + protected CompoundTag save(CompoundTag tag) { + CompoundTag valueTag = new CompoundTag(); for (Item block : get().keySet()) { - valueTag.put(Registries.ITEM.getId(block).toString(), get().get(block).toTag()); + valueTag.put(BuiltInRegistries.ITEM.getKey(block).toString(), get().get(block).toTag()); } tag.put("value", valueTag); @@ -51,12 +51,12 @@ protected NbtCompound save(NbtCompound tag) { } @Override - protected Map load(NbtCompound tag) { + protected Map load(CompoundTag tag) { get().clear(); - NbtCompound valueTag = tag.getCompound("value").get(); - for (String key : valueTag.getKeys()) { - get().put(Registries.ITEM.get(Identifier.of(key)), defaultData.get().copy().fromTag(valueTag.getCompound(key).get())); + CompoundTag valueTag = tag.getCompound("value").get(); + for (String key : valueTag.keySet()) { + get().put(BuiltInRegistries.ITEM.getValue(Identifier.parse(key)), defaultData.get().copy().fromTag(valueTag.getCompound(key).get())); } return get(); diff --git a/src/main/java/nekiplay/meteorplus/settings/items/ItemDataSettingScreen.java b/src/main/java/nekiplay/meteorplus/settings/items/ItemDataSettingScreen.java index cee7851..45a2a8c 100644 --- a/src/main/java/nekiplay/meteorplus/settings/items/ItemDataSettingScreen.java +++ b/src/main/java/nekiplay/meteorplus/settings/items/ItemDataSettingScreen.java @@ -10,8 +10,8 @@ import meteordevelopment.meteorclient.utils.misc.ICopyable; import meteordevelopment.meteorclient.utils.misc.ISerializable; import meteordevelopment.meteorclient.utils.misc.Names; -import net.minecraft.item.Item; -import net.minecraft.registry.Registries; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.world.item.Item; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; @@ -50,7 +50,7 @@ public void initWidgets() { } public & ISerializable & IChangeable & IItemData> void initTable() { - for (Item Item : Registries.ITEM) { + for (Item Item : BuiltInRegistries.ITEM) { T blockData = (T) setting.get().get(Item); if (blockData != null && blockData.isChanged()) BLOCKS.add(0, Item); @@ -63,7 +63,7 @@ public & ISerializable & IChangeable & IItemData> T blockData = (T) setting.get().get(block); - table.add(theme.itemWithLabel(block.asItem().getDefaultStack(), Names.get(block))).expandCellX(); + table.add(theme.itemWithLabel(block.asItem().getDefaultInstance(), Names.get(block))).expandCellX(); table.add(theme.label((blockData != null && blockData.isChanged()) ? "*" : " ")); WButton edit = table.add(theme.button(GuiRenderer.EDIT)).widget(); diff --git a/src/main/java/nekiplay/meteorplus/utils/BlockHelper.java b/src/main/java/nekiplay/meteorplus/utils/BlockHelper.java index f5e7332..907a99a 100644 --- a/src/main/java/nekiplay/meteorplus/utils/BlockHelper.java +++ b/src/main/java/nekiplay/meteorplus/utils/BlockHelper.java @@ -1,28 +1,24 @@ package nekiplay.meteorplus.utils; -import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.meteorclient.utils.world.Dimension; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.Mth; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.phys.Vec3; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; -import java.util.Random; import static meteordevelopment.meteorclient.MeteorClient.mc; public class BlockHelper { - public static boolean isVecComplete(ArrayList vlist) { - BlockPos ppos = mc.player.getBlockPos(); - for (Vec3d b : vlist) { - BlockPos bb = ppos.add((int) b.getX(), (int) b.getY(), (int) b.getZ()); + public static boolean isVecComplete(ArrayList vlist) { + BlockPos ppos = mc.player.blockPosition(); + for (Vec3 b : vlist) { + BlockPos bb = ppos.offset((int) b.x(), (int) b.y(), (int) b.z()); if (getBlock(bb) == Blocks.AIR) return false; } return true; @@ -46,53 +42,50 @@ public static double distanceBetween(BlockPos pos1, BlockPos pos2) { double d = pos1.getX() - pos2.getX(); double e = pos1.getY() - pos2.getY(); double f = pos1.getZ() - pos2.getZ(); - return MathHelper.sqrt((float) (d * d + e * e + f * f)); + return Mth.sqrt((float) (d * d + e * e + f * f)); } - public static BlockPos getBlockPosFromDirection(Direction direction, BlockPos orginalPos) { + public static BlockPos getBlockPosFromDirection(Direction direction, BlockPos originalPos) { return switch (direction) { - case UP -> orginalPos.up(); - case DOWN -> orginalPos.down(); - case EAST -> orginalPos.east(); - case WEST -> orginalPos.west(); - case NORTH -> orginalPos.north(); - case SOUTH -> orginalPos.south(); + case UP -> originalPos.above(); + case DOWN -> originalPos.below(); + case EAST -> originalPos.east(); + case WEST -> originalPos.west(); + case NORTH -> originalPos.north(); + case SOUTH -> originalPos.south(); }; } public static Block getBlock(BlockPos p) { if (p == null) return null; - if (mc.world == null) return null; - return mc.world.getBlockState(p).getBlock(); + if (mc.level == null) return null; + return mc.level.getBlockState(p).getBlock(); } public static boolean isOurSurroundBlock(BlockPos bp) { - BlockPos ppos = mc.player.getBlockPos(); + BlockPos ppos = mc.player.blockPosition(); for (Direction direction : Direction.values()) { if (direction == Direction.UP || direction == Direction.DOWN) continue; - BlockPos pos = ppos.offset(direction); + BlockPos pos = ppos.offset(direction.getUnitVec3i()); if (pos.equals(bp)) return true; } return false; } public static boolean outOfRange(BlockPos cityBlock) { - return MathHelper.sqrt((float) mc.player.squaredDistanceTo(cityBlock.getX(), cityBlock.getY(), cityBlock.getZ())) > 4; + return Mth.sqrt((float) mc.player.distanceToSqr(cityBlock.getX(), cityBlock.getY(), cityBlock.getZ())) > 4; } - public static BlockPos opposite(BlockPos pos, Dimension dimension) - { + public static BlockPos opposite(BlockPos pos, Dimension dimension) { int x = pos.getX(); int z = pos.getZ(); - if (dimension == Dimension.Overworld) - { + if (dimension == Dimension.Overworld) { x /= 8; z /= 8; - } - else if (dimension == Dimension.Nether) { + } else if (dimension == Dimension.Nether) { x *= 8; z *= 8; } diff --git a/src/main/java/nekiplay/meteorplus/utils/ColorRemover.java b/src/main/java/nekiplay/meteorplus/utils/ColorRemover.java index 65f0219..43f999c 100644 --- a/src/main/java/nekiplay/meteorplus/utils/ColorRemover.java +++ b/src/main/java/nekiplay/meteorplus/utils/ColorRemover.java @@ -1,26 +1,25 @@ package nekiplay.meteorplus.utils; public class ColorRemover { - public static String GetVerbatim(String text) - { + public static String GetVerbatim(String text) { int idx = 0; var data = new char[text.length()]; - for ( int i = 0; i < text.length(); i++ ) - if ( text.charAt(i) != '§' && text.charAt(i) != '&') + for (int i = 0; i < text.length(); i++) + if (text.charAt(i) != '§' && text.charAt(i) != '&') data[idx++] = text.charAt(i); else i++; return new String(data, 0, idx); } - public static String GetVerbatimAll(String text) - { + + public static String GetVerbatimAll(String text) { int idx = 0; var data = new char[text.length()]; - for ( int i = 0; i < text.length(); i++ ) - if ( text.charAt(i) != '§' && text.charAt(i) != '&' ) + for (int i = 0; i < text.length(); i++) + if (text.charAt(i) != '§' && text.charAt(i) != '&') data[idx++] = text.charAt(i); else i++; diff --git a/src/main/java/nekiplay/meteorplus/utils/CustomSpeedUtils.java b/src/main/java/nekiplay/meteorplus/utils/CustomSpeedUtils.java index fc9cf99..e84746f 100644 --- a/src/main/java/nekiplay/meteorplus/utils/CustomSpeedUtils.java +++ b/src/main/java/nekiplay/meteorplus/utils/CustomSpeedUtils.java @@ -1,23 +1,23 @@ package nekiplay.meteorplus.utils; import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; -import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.mixininterface.IVec3; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.movement.Anchor; import meteordevelopment.meteorclient.utils.player.PlayerUtils; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.util.math.Vec3d; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.phys.Vec3; import static meteordevelopment.meteorclient.MeteorClient.mc; public class CustomSpeedUtils { public static void applySpeed(PlayerMoveEvent event, double speed) { - Vec3d vel = PlayerUtils.getHorizontalVelocity(speed); - double velX = vel.getX(); - double velZ = vel.getZ(); + Vec3 vel = PlayerUtils.getHorizontalVelocity(speed); + double velX = vel.x(); + double velZ = vel.z(); - if (mc.player.hasStatusEffect(StatusEffects.SPEED)) { - double value = (mc.player.getStatusEffect(StatusEffects.SPEED).getAmplifier() + 1) * 0.205; + if (mc.player.hasEffect(MobEffects.SPEED)) { + double value = (mc.player.getEffect(MobEffects.SPEED).getAmplifier() + 1) * 0.205; velX += velX * value; velZ += velZ * value; } @@ -28,6 +28,6 @@ public static void applySpeed(PlayerMoveEvent event, double speed) { velZ = anchor.deltaZ; } - ((IVec3d) event.movement).meteor$set(velX, event.movement.y, velZ); + ((IVec3) event.movement).meteor$set(velX, event.movement.y, velZ); } } diff --git a/src/main/java/nekiplay/meteorplus/utils/ElytraUtils.java b/src/main/java/nekiplay/meteorplus/utils/ElytraUtils.java index 8451b7f..fa90b92 100644 --- a/src/main/java/nekiplay/meteorplus/utils/ElytraUtils.java +++ b/src/main/java/nekiplay/meteorplus/utils/ElytraUtils.java @@ -1,24 +1,23 @@ package nekiplay.meteorplus.utils; -import net.minecraft.client.MinecraftClient; -import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; -import net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket; +import net.minecraft.network.protocol.game.ServerboundContainerClosePacket; +import net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket; import static meteordevelopment.meteorclient.MeteorClient.mc; public class ElytraUtils { public static void startFly() { - if (mc.player != null && mc.player.networkHandler != null) { - mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_FALL_FLYING)); + if (mc.player != null && mc.player.connection != null) { + mc.player.connection.send(new ServerboundPlayerCommandPacket(mc.player, ServerboundPlayerCommandPacket.Action.START_FALL_FLYING)); } } public static void fakeInventoryOpen(boolean open) { - if (mc.player != null && mc.player.networkHandler != null) { + if (mc.player != null && mc.player.connection != null) { if (open) - mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.OPEN_INVENTORY)); + mc.player.connection.send(new ServerboundPlayerCommandPacket(mc.player, ServerboundPlayerCommandPacket.Action.OPEN_INVENTORY)); else - mc.player.networkHandler.sendPacket(new CloseHandledScreenC2SPacket(0)); + mc.player.connection.send(new ServerboundContainerClosePacket(0)); } } } diff --git a/src/main/java/nekiplay/meteorplus/utils/GameSensitivityUtils.java b/src/main/java/nekiplay/meteorplus/utils/GameSensitivityUtils.java index ed2ae2b..a0773d6 100644 --- a/src/main/java/nekiplay/meteorplus/utils/GameSensitivityUtils.java +++ b/src/main/java/nekiplay/meteorplus/utils/GameSensitivityUtils.java @@ -1,7 +1,5 @@ package nekiplay.meteorplus.utils; -import net.minecraft.client.MinecraftClient; - import static meteordevelopment.meteorclient.MeteorClient.mc; public class GameSensitivityUtils { @@ -15,7 +13,7 @@ public static float getGCDValue() { public static float getGCD() { float f1; - return (f1 = (float) (mc.options.getMouseSensitivity().getValue() * 0.6 + 0.2)) * f1 * f1 * 8; + return (f1 = (float) (mc.options.sensitivity().get() * 0.6 + 0.2)) * f1 * f1 * 8; } public static float getDeltaMouse(float delta) { diff --git a/src/main/java/nekiplay/meteorplus/utils/GenerationBlock.java b/src/main/java/nekiplay/meteorplus/utils/GenerationBlock.java index 839e462..a2892c0 100644 --- a/src/main/java/nekiplay/meteorplus/utils/GenerationBlock.java +++ b/src/main/java/nekiplay/meteorplus/utils/GenerationBlock.java @@ -1,8 +1,8 @@ package nekiplay.meteorplus.utils; import meteordevelopment.meteorclient.utils.world.Dimension; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; public class GenerationBlock { public int min_height; @@ -22,52 +22,40 @@ public GenerationBlock(Block block, Dimension dimension, int min_height, int max public static GenerationBlock getGenerationBlock(Block block, boolean newGeneration) { if (block == Blocks.ANCIENT_DEBRIS) { return new GenerationBlock(block, Dimension.Nether, 8, 22); - } - else if (block == Blocks.DIAMOND_ORE || block == Blocks.DEEPSLATE_DIAMOND_ORE) { + } else if (block == Blocks.DIAMOND_ORE || block == Blocks.DEEPSLATE_DIAMOND_ORE) { if (newGeneration) { return new GenerationBlock(block, Dimension.Overworld, -64, 15); - } - else { + } else { return new GenerationBlock(block, Dimension.Overworld, 1, 15); } - } - else if (block == Blocks.GOLD_ORE || block == Blocks.DEEPSLATE_GOLD_ORE) { + } else if (block == Blocks.GOLD_ORE || block == Blocks.DEEPSLATE_GOLD_ORE) { if (newGeneration) { return new GenerationBlock(block, Dimension.Overworld, -16, 112); - } - else { + } else { return new GenerationBlock(block, Dimension.Overworld, 1, 32); } - } - else if (block == Blocks.IRON_ORE || block == Blocks.DEEPSLATE_IRON_ORE) { + } else if (block == Blocks.IRON_ORE || block == Blocks.DEEPSLATE_IRON_ORE) { if (newGeneration) { return new GenerationBlock(block, Dimension.Overworld, -16, 48); + } else { + return new GenerationBlock(block, Dimension.Overworld, 1, 63); } - else { - return new GenerationBlock(block, Dimension.Overworld, 1, 63 ); - } - } - else if (block == Blocks.LAPIS_ORE || block == Blocks.DEEPSLATE_LAPIS_ORE) { + } else if (block == Blocks.LAPIS_ORE || block == Blocks.DEEPSLATE_LAPIS_ORE) { if (newGeneration) { return new GenerationBlock(block, Dimension.Overworld, -64, 64); - } - else { + } else { return new GenerationBlock(block, Dimension.Overworld, 1, 31); } - } - else if (block == Blocks.REDSTONE_ORE || block == Blocks.DEEPSLATE_REDSTONE_ORE) { + } else if (block == Blocks.REDSTONE_ORE || block == Blocks.DEEPSLATE_REDSTONE_ORE) { if (newGeneration) { return new GenerationBlock(block, Dimension.Overworld, -64, 8); - } - else { + } else { return new GenerationBlock(block, Dimension.Overworld, 1, 15); } - } - else if (block == Blocks.COAL_ORE || block == Blocks.DEEPSLATE_COAL_ORE) { + } else if (block == Blocks.COAL_ORE || block == Blocks.DEEPSLATE_COAL_ORE) { if (newGeneration) { return new GenerationBlock(block, Dimension.Overworld, 0, 80); - } - else { + } else { return new GenerationBlock(block, Dimension.Overworld, 1, 114); } } diff --git a/src/main/java/nekiplay/meteorplus/utils/MovementUtils.java b/src/main/java/nekiplay/meteorplus/utils/MovementUtils.java index 69deea1..da7a417 100644 --- a/src/main/java/nekiplay/meteorplus/utils/MovementUtils.java +++ b/src/main/java/nekiplay/meteorplus/utils/MovementUtils.java @@ -4,24 +4,28 @@ public class MovementUtils { public static double getSpeed() { - return Math.sqrt(mc.player.getVelocity().x * mc.player.getVelocity().x + mc.player.getVelocity().z * mc.player.getVelocity().z); + return Math.sqrt(mc.player.getDeltaMovement().x * mc.player.getDeltaMovement().x + mc.player.getDeltaMovement().z * mc.player.getDeltaMovement().z); } + public static void strafe(float speed) { - strafe((double)speed); + strafe((double) speed); } + public static void strafe(double speed) { double yaw = direction(); double sin = -Math.sin(yaw) * speed; double cos = Math.cos(yaw) * speed; - mc.player.getVelocity().add(cos, 0, sin); + mc.player.getDeltaMovement().add(cos, 0, sin); } + public static double direction() { - float yaw = mc.player.getYaw(); - if (mc.player.input.getMovementInput().x < 0) yaw += 180; + float yaw = mc.player.getYRot(); + if (mc.player.input.getMoveVector().x < 0) yaw += 180; float forward = 1; - if (mc.player.input.getMovementInput().x < 0) forward -= 0.5; else if (mc.player.input.getMovementInput().x > 0) forward += 0.5; - if (mc.player.input.getMovementInput().y > 0) yaw -= 90 * forward; - if (mc.player.input.getMovementInput().y < 0) yaw += 90 * forward; + if (mc.player.input.getMoveVector().x < 0) forward -= 0.5; + else if (mc.player.input.getMoveVector().x > 0) forward += 0.5; + if (mc.player.input.getMoveVector().y > 0) yaw -= 90 * forward; + if (mc.player.input.getMoveVector().y < 0) yaw += 90 * forward; return Math.toRadians(yaw); } } diff --git a/src/main/java/nekiplay/meteorplus/utils/NumeralUtils.java b/src/main/java/nekiplay/meteorplus/utils/NumeralUtils.java index 2bb1107..3a8b6c0 100644 --- a/src/main/java/nekiplay/meteorplus/utils/NumeralUtils.java +++ b/src/main/java/nekiplay/meteorplus/utils/NumeralUtils.java @@ -4,6 +4,6 @@ public class NumeralUtils { public static String FormatNumber(long count) { if (count < 1000) return "" + count; int exp = (int) (Math.log(count) / Math.log(1000)); - return String.format("%.1f %c", count / Math.pow(1000, exp),"kMGTPE".charAt(exp-1)); + return String.format("%.1f %c", count / Math.pow(1000, exp), "kMGTPE".charAt(exp - 1)); } } diff --git a/src/main/java/nekiplay/meteorplus/utils/Perlin2D.java b/src/main/java/nekiplay/meteorplus/utils/Perlin2D.java index d1022c4..40e6658 100644 --- a/src/main/java/nekiplay/meteorplus/utils/Perlin2D.java +++ b/src/main/java/nekiplay/meteorplus/utils/Perlin2D.java @@ -5,23 +5,20 @@ public class Perlin2D { byte[] permutationTable; - public Perlin2D(int seed) - { + public Perlin2D(int seed) { var rand = new Random(seed); permutationTable = new byte[1024]; rand.nextBytes(permutationTable); } - public Perlin2D() - { + public Perlin2D() { var rand = new Random(0); permutationTable = new byte[1024]; rand.nextBytes(permutationTable); } - private float[] GetPseudoRandomGradientVector(int x, int y) - { - int v = (int)(((x * 1836311903L) ^ (y * 2971215073L) + 4807526976L) & 1023); + private float[] GetPseudoRandomGradientVector(int x, int y) { + int v = (int) (((x * 1836311903L) ^ (y * 2971215073L) + 4807526976L) & 1023); v = permutationTable[v] & 3; return switch (v) { @@ -32,25 +29,21 @@ private float[] GetPseudoRandomGradientVector(int x, int y) }; } - static float QunticCurve(float t) - { + static float QunticCurve(float t) { return t * t * t * (t * (t * 6 - 15) + 10); } - static float Lerp(float a, float b, float t) - { + static float Lerp(float a, float b, float t) { return a + (b - a) * t; } - static float Dot(float[] a, float[] b) - { + static float Dot(float[] a, float[] b) { return a[0] * b[0] + a[1] * b[1]; } - public float Noise(float fx, float fy) - { - int left = (int)Math.floor(fx); - int top = (int)Math.floor(fy); + public float Noise(float fx, float fy) { + int left = (int) Math.floor(fx); + int top = (int) Math.floor(fy); float pointInQuadX = fx - left; float pointInQuadY = fy - top; @@ -59,10 +52,10 @@ public float Noise(float fx, float fy) float[] bottomLeftGradient = GetPseudoRandomGradientVector(left, top + 1); float[] bottomRightGradient = GetPseudoRandomGradientVector(left + 1, top + 1); - float[] distanceToTopLeft = new float[] { pointInQuadX, pointInQuadY }; - float[] distanceToTopRight = new float[] { pointInQuadX - 1, pointInQuadY }; - float[] distanceToBottomLeft = new float[] { pointInQuadX, pointInQuadY - 1 }; - float[] distanceToBottomRight = new float[] { pointInQuadX - 1, pointInQuadY - 1 }; + float[] distanceToTopLeft = new float[]{pointInQuadX, pointInQuadY}; + float[] distanceToTopRight = new float[]{pointInQuadX - 1, pointInQuadY}; + float[] distanceToBottomLeft = new float[]{pointInQuadX, pointInQuadY - 1}; + float[] distanceToBottomRight = new float[]{pointInQuadX - 1, pointInQuadY - 1}; float tx1 = Dot(distanceToTopLeft, topLeftGradient); float tx2 = Dot(distanceToTopRight, topRightGradient); @@ -79,14 +72,12 @@ public float Noise(float fx, float fy) return tb; } - public float Noise(float fx, float fy, int octaves, float persistence) - { + public float Noise(float fx, float fy, int octaves, float persistence) { float amplitude = 1; float max = 0; float result = 0; - while (octaves-- > 0) - { + while (octaves-- > 0) { max += amplitude; result += Noise(fx, fy) * amplitude; amplitude *= persistence; diff --git a/src/main/java/nekiplay/meteorplus/utils/RaycastUtils.java b/src/main/java/nekiplay/meteorplus/utils/RaycastUtils.java index e697379..26140b9 100644 --- a/src/main/java/nekiplay/meteorplus/utils/RaycastUtils.java +++ b/src/main/java/nekiplay/meteorplus/utils/RaycastUtils.java @@ -1,16 +1,10 @@ package nekiplay.meteorplus.utils; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.projectile.ProjectileUtil; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.EntityHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.RaycastContext; -import net.minecraft.world.World; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.projectile.ProjectileUtil; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.phys.*; import java.util.function.Predicate; @@ -20,54 +14,55 @@ public class RaycastUtils { public static EntityHitResult raycastEntity(final double range, final float yaw, final float pitch, double boxexpand) { Entity camera = mc.getCameraEntity(); - Vec3d cameraVec = mc.player.getEyePos(); + Vec3 cameraVec = mc.player.getEyePosition(); - final float yawCos = MathHelper.cos(-yaw * 0.017453292F - (float) Math.PI); - final float yawSin = MathHelper.sin(-yaw * 0.017453292F - (float) Math.PI); - final float pitchCos = -MathHelper.cos(-pitch * 0.017453292F); - final float pitchSin = MathHelper.sin(-pitch * 0.017453292F); + final float yawCos = Mth.cos(-yaw * 0.017453292F - (float) Math.PI); + final float yawSin = Mth.sin(-yaw * 0.017453292F - (float) Math.PI); + final float pitchCos = -Mth.cos(-pitch * 0.017453292F); + final float pitchSin = Mth.sin(-pitch * 0.017453292F); - final Vec3d rotation = new Vec3d(yawSin * pitchCos, pitchSin, yawCos * pitchCos); + final Vec3 rotation = new Vec3(yawSin * pitchCos, pitchSin, yawCos * pitchCos); - Vec3d vec3d3 = cameraVec.add(rotation.x * range, rotation.y * range, rotation.z * range); - Box box = camera.getBoundingBox().stretch(rotation.multiply(range)).expand(boxexpand, boxexpand, boxexpand); + Vec3 vec3d3 = cameraVec.add(rotation.x * range, rotation.y * range, rotation.z * range); + AABB box = camera.getBoundingBox().expandTowards(rotation.scale(range)).inflate(boxexpand, boxexpand, boxexpand); - return ProjectileUtil.raycast(camera, cameraVec, vec3d3, box, new Predicate() { + return ProjectileUtil.getEntityHitResult(camera, cameraVec, vec3d3, box, new Predicate() { @Override public boolean test(Entity entity) { - return !entity.isSpectator() && entity.isCollidable(mc.player); + return !entity.isSpectator() && entity.canBeCollidedWith(mc.player); } }, 0); } - public static Vec3d getRotationVector(float pitch, float yaw) { - float f = pitch * ((float)Math.PI / 180); - float g = -yaw * ((float)Math.PI / 180); - float h = MathHelper.cos(g); - float i = MathHelper.sin(g); - float j = MathHelper.cos(f); - float k = MathHelper.sin(f); - return new Vec3d(i * j, -k, h * j); + + public static Vec3 getRotationVector(float pitch, float yaw) { + float f = pitch * ((float) Math.PI / 180); + float g = -yaw * ((float) Math.PI / 180); + float h = Mth.cos(g); + float i = Mth.sin(g); + float j = Mth.cos(f); + float k = Mth.sin(f); + return new Vec3(i * j, -k, h * j); } - public static HitResult raycast(Vec3d camera, Vec3d rotation, double maxDistance, float tickDelta, boolean includeFluids) { - Vec3d vec3d = camera; - Vec3d vec3d2 = rotation; - Vec3d vec3d3 = vec3d.add(vec3d2.x * maxDistance, vec3d2.y * maxDistance, vec3d2.z * maxDistance); - return mc.world.raycast(new RaycastContext(vec3d, vec3d3, RaycastContext.ShapeType.OUTLINE, includeFluids ? RaycastContext.FluidHandling.ANY : RaycastContext.FluidHandling.NONE, mc.player)); + public static HitResult raycast(Vec3 camera, Vec3 rotation, double maxDistance, float tickDelta, boolean includeFluids) { + Vec3 vec3d = camera; + Vec3 vec3d2 = rotation; + Vec3 vec3d3 = vec3d.add(vec3d2.x * maxDistance, vec3d2.y * maxDistance, vec3d2.z * maxDistance); + return mc.level.clip(new ClipContext(vec3d, vec3d3, ClipContext.Block.OUTLINE, includeFluids ? ClipContext.Fluid.ANY : ClipContext.Fluid.NONE, mc.player)); } - public static BlockHitResult bucketRaycast(Vec3d camera, float pitch, float yaw, RaycastContext.FluidHandling fluidHandling) { + public static BlockHitResult bucketRaycast(Vec3 camera, float pitch, float yaw, ClipContext.Fluid fluidHandling) { float f = pitch; float g = yaw; - Vec3d vec3d = camera; - float h = MathHelper.cos(-g * 0.017453292F - 3.1415927F); - float i = MathHelper.sin(-g * 0.017453292F - 3.1415927F); - float j = -MathHelper.cos(-f * 0.017453292F); - float k = MathHelper.sin(-f * 0.017453292F); + Vec3 vec3d = camera; + float h = Mth.cos(-g * 0.017453292F - 3.1415927F); + float i = Mth.sin(-g * 0.017453292F - 3.1415927F); + float j = -Mth.cos(-f * 0.017453292F); + float k = Mth.sin(-f * 0.017453292F); float l = i * j; float n = h * j; double d = 5.0; - Vec3d vec3d2 = vec3d.add((double)l * 5.0, (double)k * 5.0, (double)n * 5.0); - return mc.world.raycast(new RaycastContext(vec3d, vec3d2, RaycastContext.ShapeType.OUTLINE, fluidHandling, mc.player)); + Vec3 vec3d2 = vec3d.add((double) l * 5.0, (double) k * 5.0, (double) n * 5.0); + return mc.level.clip(new ClipContext(vec3d, vec3d2, ClipContext.Block.OUTLINE, fluidHandling, mc.player)); } } diff --git a/src/main/java/nekiplay/meteorplus/utils/RotationUtils.java b/src/main/java/nekiplay/meteorplus/utils/RotationUtils.java index 7a23492..0479347 100644 --- a/src/main/java/nekiplay/meteorplus/utils/RotationUtils.java +++ b/src/main/java/nekiplay/meteorplus/utils/RotationUtils.java @@ -1,25 +1,21 @@ package nekiplay.meteorplus.utils; -import meteordevelopment.meteorclient.utils.player.Rotations; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; import org.joml.Vector3d; import static java.lang.Math.*; import static meteordevelopment.meteorclient.MeteorClient.mc; -import static net.minecraft.util.math.MathHelper.wrapDegrees; +import static net.minecraft.util.Mth.wrapDegrees; import static org.joml.Math.clamp; public class RotationUtils { - public static Vec3d getEyesPos() - { - ClientPlayerEntity player = mc.player; + public static Vec3 getEyesPos() { + LocalPlayer player = mc.player; - return new Vec3d(player.getX(), + return new Vec3(player.getX(), player.getY() + player.getEyeHeight(player.getPose()), player.getZ()); } @@ -32,14 +28,15 @@ public static double getRotationDifference(final Rotation a, final Rotation b) { return Math.hypot(getAngleDifference(a.yaw, b.yaw), a.getPitch() - b.getPitch()); } - public static Rotation toRotation(final Vec3d vec, final boolean predict) { - final Vec3d eyesPos = new Vec3d(mc.player.getX(), mc.player.getBoundingBox().minY + + public static Rotation toRotation(final Vec3 vec, final boolean predict) { + final Vec3 eyesPos = new Vec3(mc.player.getX(), mc.player.getBoundingBox().minY + mc.player.getEyeHeight(mc.player.getPose()), mc.player.getZ()); - if(predict) { - if(mc.player.isOnGround()) { - eyesPos.add(mc.player.getVelocity().x, 0.0, mc.player.getVelocity().z); - }else eyesPos.add(mc.player.getVelocity().x, mc.player.getVelocity().y, mc.player.getVelocity().z); + if (predict) { + if (mc.player.onGround()) { + eyesPos.add(mc.player.getDeltaMovement().x, 0.0, mc.player.getDeltaMovement().z); + } else + eyesPos.add(mc.player.getDeltaMovement().x, mc.player.getDeltaMovement().y, mc.player.getDeltaMovement().z); } final double diffX = vec.x - eyesPos.x; @@ -51,8 +48,8 @@ public static Rotation toRotation(final Vec3d vec, final boolean predict) { (float) (-toDegrees(atan2(diffY, Math.sqrt(diffX * diffX + diffZ * diffZ))))); } - public static Vec3d getCenter(final Box bb) { - return new Vec3d(bb.minX + (bb.maxX - bb.minX) * 0.5, bb.minY + (bb.maxY - bb.minY) * 0.5, bb.minZ + (bb.maxZ - bb.minZ) * 0.5); + public static Vec3 getCenter(final AABB bb) { + return new Vec3(bb.minX + (bb.maxX - bb.minX) * 0.5, bb.minY + (bb.maxY - bb.minY) * 0.5, bb.minZ + (bb.maxZ - bb.minZ) * 0.5); } public static Rotation limitAngleChange(final Rotation currentRotation, final Rotation targetRotation, final float turnSpeed) { @@ -65,9 +62,8 @@ public static Rotation limitAngleChange(final Rotation currentRotation, final Ro )); } - public static Rotation getNeededRotations(Vec3d vec) - { - Vec3d eyesPos = getEyesPos(); + public static Rotation getNeededRotations(Vec3 vec) { + Vec3 eyesPos = getEyesPos(); double diffX = vec.x - eyesPos.x; double diffY = vec.y - eyesPos.y; @@ -76,19 +72,18 @@ public static Rotation getNeededRotations(Vec3d vec) double diffXZ = Math.sqrt(diffX * diffX + diffZ * diffZ); float yaw = (float) toDegrees(atan2(diffZ, diffX)) - 90F; - float pitch = (float)-toDegrees(atan2(diffY, diffXZ)); + float pitch = (float) -toDegrees(atan2(diffY, diffXZ)); return new Rotation(yaw, pitch); } - public static double getAngleToLookVec(Vec3d vec) - { + public static double getAngleToLookVec(Vec3 vec) { Rotation needed = getNeededRotations(vec); - ClientPlayerEntity player = mc.player; - float currentYaw = wrapDegrees(player.getYaw()); - float currentPitch = wrapDegrees(player.getPitch()); + LocalPlayer player = mc.player; + float currentYaw = wrapDegrees(player.getYRot()); + float currentPitch = wrapDegrees(player.getXRot()); float diffYaw = currentYaw - needed.yaw; float diffPitch = currentPitch - needed.pitch; @@ -97,30 +92,25 @@ public static double getAngleToLookVec(Vec3d vec) } - public static final class Rotation - { + public static final class Rotation { private float yaw; private float pitch; - public Rotation(float yaw, float pitch) - { + public Rotation(float yaw, float pitch) { this.yaw = wrapDegrees(yaw); this.pitch = wrapDegrees(pitch); } - public Rotation(double yaw, double pitch) - { - this.yaw = wrapDegrees((float)yaw); - this.pitch = wrapDegrees((float)pitch); + public Rotation(double yaw, double pitch) { + this.yaw = wrapDegrees((float) yaw); + this.pitch = wrapDegrees((float) pitch); } - public float getYaw() - { + public float getYaw() { return yaw; } - public float getPitch() - { + public float getPitch() { return pitch; } @@ -137,12 +127,12 @@ public static Vector3d getVector3d(LivingEntity me, LivingEntity to, float range // САМЫЙ ПРОСТОЙ И ПРАВИЛЬНЫЙ РАСЧЕТ ОТ ЛИПЫ // - double wHalf = to.getWidth() / 2; + double wHalf = to.getBbWidth() / 2; - double yExpand = clamp(me.getEyeHeight(me.getPose()) - to.getY(), 0, to.getHeight() * (mc.player.distanceTo(to) / (range))); + double yExpand = clamp(me.getEyeHeight(me.getPose()) - to.getY(), 0, to.getBbHeight() * (mc.player.distanceTo(to) / (range))); - double xExpand = clamp(mc.player.getEntityPos().x - to.getEntityPos().x, -wHalf, wHalf); - double zExpand = clamp(mc.player.getEntityPos().z - to.getEntityPos().z, -wHalf, wHalf); + double xExpand = clamp(mc.player.position().x - to.position().x, -wHalf, wHalf); + double zExpand = clamp(mc.player.position().z - to.position().z, -wHalf, wHalf); return new Vector3d( to.getX() - me.getX() + xExpand, @@ -159,7 +149,7 @@ public static double getDegree(LivingEntity entity, float range) { Vector3d vec = getVector3d(mc.player, entity, range); double yaw = wrapDegrees(toDegrees(atan2(vec.z, vec.x)) - 90); - double delta = wrapDegrees(yaw - mc.player.getYaw()); + double delta = wrapDegrees(yaw - mc.player.getYRot()); if (abs(delta) > 180) delta -= signum(delta) * 360; @@ -170,16 +160,16 @@ public static boolean isLookingAtMe(LivingEntity target) { double x = target.getX() - mc.player.getX(); double z = target.getZ() - mc.player.getZ(); - float entityYaw = wrapDegrees(target.getYaw()); + float entityYaw = wrapDegrees(target.getYRot()); double yaw = toDegrees(atan2(z, x)) + 90.0; return abs(wrapDegrees(yaw - entityYaw)) <= 90; } public static boolean isInHitBox(LivingEntity me, LivingEntity to) { - double wHalf = to.getWidth() / 2; + double wHalf = to.getBbWidth() / 2; - double yExpand = clamp(me.getEyeHeight(me.getPose()) - to.getY(), 0, to.getHeight()); + double yExpand = clamp(me.getEyeHeight(me.getPose()) - to.getY(), 0, to.getBbHeight()); double xExpand = clamp(mc.player.getX() - to.getX(), -wHalf, wHalf); double zExpand = clamp(mc.player.getZ() - to.getZ(), -wHalf, wHalf); diff --git a/src/main/java/nekiplay/meteorplus/utils/TickTimer.java b/src/main/java/nekiplay/meteorplus/utils/TickTimer.java index 1c7821b..52c6066 100644 --- a/src/main/java/nekiplay/meteorplus/utils/TickTimer.java +++ b/src/main/java/nekiplay/meteorplus/utils/TickTimer.java @@ -1,6 +1,6 @@ package nekiplay.meteorplus.utils; -import nekiplay.meteorplus.mixin.minecraft.ClientConnectionAccessor; +import nekiplay.meteorplus.mixin.minecraft.ConnectionAccessor; import static meteordevelopment.meteorclient.MeteorClient.mc; @@ -8,21 +8,21 @@ public class TickTimer { private int ticksBegin = ticks(); private double delay; - public TickTimer(double delay){ + public TickTimer(double delay) { this.delay = delay; } - public void reset(double delay){ + public void reset(double delay) { this.delay = delay; this.ticksBegin = ticks(); } - public boolean elapsed(double newDelay){ + public boolean elapsed(double newDelay) { int currentTicks = ticks(); if (currentTicks == -1 || ticksBegin == -1 || - (1000.0/20.0)*(currentTicks - ticksBegin) >= delay - ){ + (1000.0 / 20.0) * (currentTicks - ticksBegin) >= delay + ) { reset(newDelay); return true; } @@ -30,15 +30,15 @@ public boolean elapsed(double newDelay){ return false; } - public boolean elapsed(){ + public boolean elapsed() { return elapsed(delay); } private static int ticks() { - var handler = mc.getNetworkHandler(); + var handler = mc.getConnection(); if (handler == null) return -1; - return ((ClientConnectionAccessor)handler.getConnection()).getTicks(); + return ((ConnectionAccessor) handler.getConnection()).getTickCount(); } } diff --git a/src/main/java/nekiplay/meteorplus/utils/algoritms/PerlinNoice.java b/src/main/java/nekiplay/meteorplus/utils/algoritms/PerlinNoice.java index 45eb793..b0016b0 100644 --- a/src/main/java/nekiplay/meteorplus/utils/algoritms/PerlinNoice.java +++ b/src/main/java/nekiplay/meteorplus/utils/algoritms/PerlinNoice.java @@ -11,6 +11,7 @@ public static int PerlinNoice(int multiply) { float noice = perlin.Noise(5, 5) + perlin.Noise((25 - 25) * Phi, (25 + 25) * Phi) * -1; return (int) (noice * multiply); } + public static int PerlinNoice(double multiply) { Perlin2D perlin = new Perlin2D(new Random().nextInt()); float Phi = 0.70710678118f; diff --git a/src/main/java/nekiplay/meteorplus/utils/algoritms/RandomUtils.java b/src/main/java/nekiplay/meteorplus/utils/algoritms/RandomUtils.java index 99b6dd3..e63a63f 100644 --- a/src/main/java/nekiplay/meteorplus/utils/algoritms/RandomUtils.java +++ b/src/main/java/nekiplay/meteorplus/utils/algoritms/RandomUtils.java @@ -7,10 +7,12 @@ public static float nextFloat(float min, float max) { if (max <= min) return max; else return ThreadLocalRandom.current().nextFloat(min, max); } + public static int nextInt(int min, int max) { if (max <= min) return max; else return ThreadLocalRandom.current().nextInt(min, max); } + public static double nextDouble(double min, double max) { if (max <= min) return max; else return ThreadLocalRandom.current().nextDouble(min, max); diff --git a/src/main/java/nekiplay/meteorplus/utils/algoritms/ShadyRotation.java b/src/main/java/nekiplay/meteorplus/utils/algoritms/ShadyRotation.java index 02333df..db7a4f2 100644 --- a/src/main/java/nekiplay/meteorplus/utils/algoritms/ShadyRotation.java +++ b/src/main/java/nekiplay/meteorplus/utils/algoritms/ShadyRotation.java @@ -5,9 +5,9 @@ import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.orbit.EventHandler; import nekiplay.meteorplus.utils.RotationUtils; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; import static meteordevelopment.meteorclient.MeteorClient.mc; @@ -42,49 +42,50 @@ private static float wrapAngleTo180(float angle) { } public static Rotation getRotationToBlock(BlockPos block) { - double diffX = block.getX() - mc.player.getEntityPos().x + 0.5; - double diffY = block.getY() - mc.player.getEntityPos().y + 0.5 - mc.player.getEyeY(); - double diffZ = block.getZ() - mc.player.getEntityPos().z + 0.5; + double diffX = block.getX() - mc.player.position().x + 0.5; + double diffY = block.getY() - mc.player.position().y + 0.5 - mc.player.getEyeY(); + double diffZ = block.getZ() - mc.player.position().z + 0.5; double dist = Math.sqrt(diffX * diffX + diffZ * diffZ); float pitch = (float) -Math.atan2(dist, diffY); float yaw = (float) Math.atan2(diffZ, diffX); - pitch = (float) wrapAngleTo180((pitch * 180F / Math.PI + 90)*-1); + pitch = (float) wrapAngleTo180((pitch * 180F / Math.PI + 90) * -1); yaw = (float) wrapAngleTo180((yaw * 180 / Math.PI) - 90); return new Rotation(pitch, yaw); } public static Rotation getRotationToEntity(Entity entity) { - double diffX = entity.getEntityPos().x - mc.player.getEntityPos().x; - double diffY = entity.getEntityPos().y + entity.getEyePos().y - mc.player.getEntityPos().y - mc.player.getEyeY(); - double diffZ = entity.getEntityPos().z - mc.player.getEntityPos().z; + double diffX = entity.position().x - mc.player.position().x; + double diffY = entity.position().y + entity.getEyePosition().y - mc.player.position().y - mc.player.getEyeY(); + double diffZ = entity.position().z - mc.player.position().z; double dist = Math.sqrt(diffX * diffX + diffZ * diffZ); float pitch = (float) -Math.atan2(dist, diffY); float yaw = (float) Math.atan2(diffZ, diffX); - pitch = (float) wrapAngleTo180((pitch * 180F / Math.PI + 90)*-1); + pitch = (float) wrapAngleTo180((pitch * 180F / Math.PI + 90) * -1); yaw = (float) wrapAngleTo180((yaw * 180 / Math.PI) - 90); return new Rotation(pitch, yaw); } - public static Rotation vec3ToRotation(Vec3d vec) { - double diffX = vec.x - mc.player.getEntityPos().x; - double diffY = vec.y - mc.player.getEntityPos().y - mc.player.getEyeY(); - double diffZ = vec.z - mc.player.getEntityPos().z; + public static Rotation vec3ToRotation(Vec3 vec) { + double diffX = vec.x - mc.player.position().x; + double diffY = vec.y - mc.player.position().y - mc.player.getEyeY(); + double diffZ = vec.z - mc.player.position().z; double dist = Math.sqrt(diffX * diffX + diffZ * diffZ); float pitch = (float) -Math.atan2(dist, diffY); float yaw = (float) Math.atan2(diffZ, diffX); - pitch = (float) wrapAngleTo180((pitch * 180F / Math.PI + 90)*-1); + pitch = (float) wrapAngleTo180((pitch * 180F / Math.PI + 90) * -1); yaw = (float) wrapAngleTo180((yaw * 180 / Math.PI) - 90); return new Rotation(pitch, yaw); } + public static void smoothLook(Rotation rotation, int ticks, boolean client, Runnable callback) { ShadyRotation.client = client; - if(ticks == 0) { + if (ticks == 0) { look(rotation, client); callback.run(); return; @@ -92,8 +93,8 @@ public static void smoothLook(Rotation rotation, int ticks, boolean client, Runn ShadyRotation.callback = callback; - pitchDifference = wrapAngleTo180(rotation.pitch - mc.player.getPitch()); - yawDifference = wrapAngleTo180(rotation.yaw - mc.player.getYaw()); + pitchDifference = wrapAngleTo180(rotation.pitch - mc.player.getXRot()); + yawDifference = wrapAngleTo180(rotation.yaw - mc.player.getYRot()); ShadyRotation.ticks = ticks * 20; ShadyRotation.tickCounter = 0; @@ -101,7 +102,7 @@ public static void smoothLook(Rotation rotation, int ticks, boolean client, Runn public static void smoothLook(RotationUtils.Rotation rotation, int ticks, boolean client, Runnable callback) { ShadyRotation.client = client; - if(ticks == 0) { + if (ticks == 0) { look(new Rotation(rotation.getPitch(), rotation.getYaw()), client); callback.run(); return; @@ -109,8 +110,8 @@ public static void smoothLook(RotationUtils.Rotation rotation, int ticks, boolea ShadyRotation.callback = callback; if (client) { - pitchDifference = wrapAngleTo180(rotation.getPitch() - mc.player.getPitch()); - yawDifference = wrapAngleTo180(rotation.getYaw() - mc.player.getYaw()); + pitchDifference = wrapAngleTo180(rotation.getPitch() - mc.player.getXRot()); + yawDifference = wrapAngleTo180(rotation.getYaw() - mc.player.getYRot()); } else { pitchDifference = wrapAngleTo180(rotation.getPitch() - Rotations.serverPitch); yawDifference = wrapAngleTo180(rotation.getYaw() - Rotations.serverYaw); @@ -123,8 +124,8 @@ public static void smoothLook(RotationUtils.Rotation rotation, int ticks, boolea public static void smartLook(Rotation rotation, int ticksPer180, boolean client, Runnable callback) { ShadyRotation.client = client; float rotationDifference = Math.max( - Math.abs(rotation.pitch - mc.player.getPitch()), - Math.abs(rotation.yaw - mc.player.getYaw()) + Math.abs(rotation.pitch - mc.player.getXRot()), + Math.abs(rotation.yaw - mc.player.getYRot()) ); smoothLook(rotation, (int) (rotationDifference / 180 * ticksPer180), client, callback); } @@ -133,8 +134,8 @@ public static void look(Rotation rotation, boolean client) { Rotations.serverYaw = rotation.yaw; Rotations.serverPitch = rotation.pitch; if (client) { - mc.player.setPitch(rotation.pitch); - mc.player.setYaw(rotation.yaw); + mc.player.setXRot(rotation.pitch); + mc.player.setYRot(rotation.yaw); } } @@ -143,22 +144,19 @@ public void Init() { } private void rotatorWorker() { - if(mc.player == null) return; - if(tickCounter < ticks) { + if (mc.player == null) return; + if (tickCounter < ticks) { running = true; if (client) { - mc.player.setPitch(mc.player.getPitch() + pitchDifference / ticks); - mc.player.setYaw(mc.player.getYaw() + yawDifference / ticks); - } - else { + mc.player.setXRot(mc.player.getXRot() + pitchDifference / ticks); + mc.player.setYRot(mc.player.getYRot() + yawDifference / ticks); + } else { Rotations.setCamRotation(Rotations.serverYaw + yawDifference / ticks, Rotations.serverPitch + pitchDifference / ticks); //Rotations.serverYaw = (Rotations.serverYaw + yawDifference / ticks); //Rotations.serverPitch = (Rotations.serverPitch + pitchDifference / ticks); } tickCounter++; - } - else - { + } else { running = false; } } diff --git a/src/main/java/nekiplay/meteorplus/utils/algoritms/Smooth.java b/src/main/java/nekiplay/meteorplus/utils/algoritms/Smooth.java index 1684dad..ec67b5d 100644 --- a/src/main/java/nekiplay/meteorplus/utils/algoritms/Smooth.java +++ b/src/main/java/nekiplay/meteorplus/utils/algoritms/Smooth.java @@ -14,23 +14,19 @@ public static double getDouble(SmoothType type, double diffAngle, double minRota } else { speeds = Math.pow(v, 2.0) * maxRotation + (1 - Math.pow(v, 2.0)) * minRotation; } - } - else if (type == SmoothType.Perlin) { + } else if (type == SmoothType.Perlin) { int noice = PerlinNoice.PerlinNoice(maxRotation); if (noice > 0) { speeds = noice; - } - else { + } else { speeds = maxRotation; } - } - else if (type == SmoothType.PerlinRandom) { + } else if (type == SmoothType.PerlinRandom) { double random = RandomUtils.nextDouble(minRotation, maxRotation); int noice = PerlinNoice.PerlinNoice(random); if (noice > 0) { speeds = noice; - } - else { + } else { speeds = random; } } diff --git a/src/main/java/nekiplay/meteorplus/utils/math/StopWatch.java b/src/main/java/nekiplay/meteorplus/utils/math/StopWatch.java index 6efb4f5..1c96479 100644 --- a/src/main/java/nekiplay/meteorplus/utils/math/StopWatch.java +++ b/src/main/java/nekiplay/meteorplus/utils/math/StopWatch.java @@ -2,15 +2,19 @@ public class StopWatch { public long lastMS = System.currentTimeMillis(); + public void reset() { lastMS = System.currentTimeMillis(); } + public boolean isReached(long time) { return System.currentTimeMillis() - lastMS > time; } + public void setLastMS(long newValue) { lastMS = System.currentTimeMillis() + newValue; } + public void setTime(long time) { lastMS = time; } @@ -18,9 +22,11 @@ public void setTime(long time) { public long getTime() { return System.currentTimeMillis() - lastMS; } + public boolean isRunning() { return System.currentTimeMillis() - lastMS <= 0; } + public boolean hasTimeElapsed() { return lastMS < System.currentTimeMillis(); } diff --git a/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XBlock.java b/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XBlock.java index d4cd7ce..ab90a50 100644 --- a/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XBlock.java +++ b/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XBlock.java @@ -6,16 +6,16 @@ import meteordevelopment.meteorclient.systems.modules.render.blockesp.ESPBlockData; import meteordevelopment.meteorclient.utils.render.color.Color; import nekiplay.meteorplus.features.modules.world.XrayBruteforce; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; import static meteordevelopment.meteorclient.MeteorClient.mc; public class XBlock { - private static final BlockPos.Mutable blockPos = new BlockPos.Mutable(); + private static final BlockPos.MutableBlockPos blockPos = new BlockPos.MutableBlockPos(); private static final XrayBruteforce search = Modules.get().get(XrayBruteforce.class); @@ -39,7 +39,7 @@ public class XBlock { public static final int BO_RI = 1 << 17; public static final int BO_LE = 1 << 18; - public static final int[] SIDES = { FO, BA, LE, RI, TO, BO }; + public static final int[] SIDES = {FO, BA, LE, RI, TO, BO}; public final int x, y, z; private BlockState state; @@ -77,8 +77,7 @@ private void assignGroup() { if (firstGroup == null) { firstGroup = neighbour.group; - } - else { + } else { if (firstGroup != neighbour.group) firstGroup.merge(neighbour.group); } } @@ -91,8 +90,8 @@ private void assignGroup() { } public void update() { - assert mc.world != null; - state = mc.world.getBlockState(blockPos.set(x, y, z)); + assert mc.level != null; + state = mc.level.getBlockState(blockPos.set(x, y, z)); neighbours = 0; if (isNeighbour(Direction.SOUTH)) neighbours |= FO; @@ -119,42 +118,42 @@ public void update() { } private boolean isNeighbour(Direction dir) { - blockPos.set(x + dir.getOffsetX(), y + dir.getOffsetY(), z + dir.getOffsetZ()); - assert mc.world != null; - BlockState neighbourState = mc.world.getBlockState(blockPos); + blockPos.set(x + dir.getStepX(), y + dir.getStepY(), z + dir.getStepZ()); + assert mc.level != null; + BlockState neighbourState = mc.level.getBlockState(blockPos); if (neighbourState.getBlock() != state.getBlock()) return false; - VoxelShape cube = VoxelShapes.fullCube(); - VoxelShape shape = state.getOutlineShape(mc.world, blockPos); - VoxelShape neighbourShape = neighbourState.getOutlineShape(mc.world, blockPos); + VoxelShape cube = Shapes.block(); + VoxelShape shape = state.getShape(mc.level, blockPos); + VoxelShape neighbourShape = neighbourState.getShape(mc.level, blockPos); if (shape.isEmpty()) shape = cube; if (neighbourShape.isEmpty()) neighbourShape = cube; switch (dir) { case SOUTH: - if (shape.getMax(Direction.Axis.Z) == 1 && neighbourShape.getMin(Direction.Axis.Z) == 0) return true; + if (shape.max(Direction.Axis.Z) == 1 && neighbourShape.min(Direction.Axis.Z) == 0) return true; break; case NORTH: - if (shape.getMin(Direction.Axis.Z) == 0 && neighbourShape.getMax(Direction.Axis.Z) == 1) return true; + if (shape.min(Direction.Axis.Z) == 0 && neighbourShape.max(Direction.Axis.Z) == 1) return true; break; case EAST: - if (shape.getMax(Direction.Axis.X) == 1 && neighbourShape.getMin(Direction.Axis.X) == 0) return true; + if (shape.max(Direction.Axis.X) == 1 && neighbourShape.min(Direction.Axis.X) == 0) return true; break; case WEST: - if (shape.getMin(Direction.Axis.X) == 0 && neighbourShape.getMax(Direction.Axis.X) == 1) return true; + if (shape.min(Direction.Axis.X) == 0 && neighbourShape.max(Direction.Axis.X) == 1) return true; break; case UP: - if (shape.getMax(Direction.Axis.Y) == 1 && neighbourShape.getMin(Direction.Axis.Y) == 0) return true; + if (shape.max(Direction.Axis.Y) == 1 && neighbourShape.min(Direction.Axis.Y) == 0) return true; break; case DOWN: - if (shape.getMin(Direction.Axis.Y) == 0 && neighbourShape.getMax(Direction.Axis.Y) == 1) return true; + if (shape.min(Direction.Axis.Y) == 0 && neighbourShape.max(Direction.Axis.Y) == 1) return true; break; } @@ -163,8 +162,8 @@ private boolean isNeighbour(Direction dir) { private boolean isNeighbourDiagonal(double x, double y, double z) { blockPos.set(this.x + x, this.y + y, this.z + z); - assert mc.world != null; - return state.getBlock() == mc.world.getBlockState(blockPos).getBlock(); + assert mc.level != null; + return state.getBlock() == mc.level.getBlockState(blockPos).getBlock(); } public void render(Render3DEvent event, XrayBruteforce.RenderOre ore) { @@ -176,15 +175,15 @@ public void render(Render3DEvent event, XrayBruteforce.RenderOre ore) { double y2 = y + 1; double z2 = z + 1; - VoxelShape shape = state.getOutlineShape(mc.world, blockPos); + VoxelShape shape = state.getShape(mc.level, blockPos); if (!shape.isEmpty()) { - x1 = x + shape.getMin(Direction.Axis.X); - y1 = y + shape.getMin(Direction.Axis.Y); - z1 = z + shape.getMin(Direction.Axis.Z); - x2 = x + shape.getMax(Direction.Axis.X); - y2 = y + shape.getMax(Direction.Axis.Y); - z2 = z + shape.getMax(Direction.Axis.Z); + x1 = x + shape.min(Direction.Axis.X); + y1 = y + shape.min(Direction.Axis.Y); + z1 = z + shape.min(Direction.Axis.Z); + x2 = x + shape.max(Direction.Axis.X); + y2 = y + shape.max(Direction.Axis.Y); + z2 = z + shape.max(Direction.Axis.Z); } ESPBlockData blockData = search.getBlockData(ore.block); diff --git a/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XChunk.java b/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XChunk.java index 18f32b0..17776f1 100644 --- a/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XChunk.java +++ b/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XChunk.java @@ -4,12 +4,12 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import meteordevelopment.meteorclient.events.render.Render3DEvent; import nekiplay.meteorplus.features.modules.world.XrayBruteforce; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkSectionPos; -import net.minecraft.world.Heightmap; -import net.minecraft.world.chunk.Chunk; +import net.minecraft.core.BlockPos; +import net.minecraft.core.SectionPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.ChunkAccess; +import net.minecraft.world.level.levelgen.Heightmap; import java.util.List; @@ -17,7 +17,7 @@ import static meteordevelopment.meteorclient.utils.Utils.getRenderDistance; public class XChunk { - private static final BlockPos.Mutable blockPos = new BlockPos.Mutable(); + private static final BlockPos.MutableBlockPos blockPos = new BlockPos.MutableBlockPos(); private final int x, z; public Long2ObjectMap blocks; @@ -70,8 +70,8 @@ public int size() { public boolean shouldBeDeleted() { int viewDist = getRenderDistance() + 1; - int chunkX = ChunkSectionPos.getSectionCoord(mc.player.getBlockPos().getX()); - int chunkZ = ChunkSectionPos.getSectionCoord(mc.player.getBlockPos().getZ()); + int chunkX = SectionPos.blockToSectionCoord(mc.player.blockPosition().getX()); + int chunkZ = SectionPos.blockToSectionCoord(mc.player.blockPosition().getZ()); return x > chunkX + viewDist || x < chunkX - viewDist || z > chunkZ + viewDist || z < chunkZ - viewDist; } @@ -83,15 +83,15 @@ public void render(Render3DEvent event, XrayBruteforce.RenderOre ore) { } - public static XChunk searchChunk(Chunk chunk, List blocks) { - XChunk schunk = new XChunk(chunk.getPos().x, chunk.getPos().z); + public static XChunk searchChunk(ChunkAccess chunk, List blocks) { + XChunk schunk = new XChunk(chunk.getPos().x(), chunk.getPos().z()); if (schunk.shouldBeDeleted()) return schunk; - for (int x = chunk.getPos().getStartX(); x <= chunk.getPos().getEndX(); x++) { - for (int z = chunk.getPos().getStartZ(); z <= chunk.getPos().getEndZ(); z++) { - int height = chunk.getHeightmap(Heightmap.Type.WORLD_SURFACE).get(x - chunk.getPos().getStartX(), z - chunk.getPos().getStartZ()); + for (int x = chunk.getPos().getMinBlockX(); x <= chunk.getPos().getMaxBlockX(); x++) { + for (int z = chunk.getPos().getMinBlockZ(); z <= chunk.getPos().getMaxBlockZ(); z++) { + int height = chunk.getOrCreateHeightmapUnprimed(Heightmap.Types.WORLD_SURFACE).getFirstAvailable(x - chunk.getPos().getMinBlockX(), z - chunk.getPos().getMinBlockZ()); - for (int y = mc.world.getBottomY(); y < height; y++) { + for (int y = mc.level.getMinY(); y < height; y++) { blockPos.set(x, y, z); BlockState bs = chunk.getBlockState(blockPos); diff --git a/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XGroup.java b/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XGroup.java index 2e78132..f16fc05 100644 --- a/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XGroup.java +++ b/src/main/java/nekiplay/meteorplus/utils/xraybruteforce/XGroup.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.utils.misc.UnorderedArrayList; import meteordevelopment.meteorclient.utils.render.RenderUtils; import nekiplay.meteorplus.features.modules.world.XrayBruteforce; -import net.minecraft.block.Block; +import net.minecraft.world.level.block.Block; import java.util.ArrayDeque; import java.util.Queue; @@ -74,7 +74,8 @@ private void trySplit(XBlock block) { remainingBlocks.remove(blocks.get(0)); neighbours.remove(blocks.get(0)); - loop: { + loop: + { while (!blocksToCheck.isEmpty()) { XBlock b = blocksToCheck.poll(); diff --git a/src/main/resources/assets/meteorplus/lang/de_de.json b/src/main/resources/assets/meteorplus/lang/de_de.json index 5dda78f..f7da6f2 100644 --- a/src/main/resources/assets/meteorplus/lang/de_de.json +++ b/src/main/resources/assets/meteorplus/lang/de_de.json @@ -3,21 +3,15 @@ "gui.world_map.baritone_path_here": "Baritone der weg ist hier", "gui.world_map.baritone_elytra_here": "Baritone elitra ist hier", "gui.world_map.look_at_waypoint": "Siehe den tag", - "item.meteorplus.logo": "Meteor+ logo", "item.meteorplus.logo_mods": "Meteor+ Integrations logo", - "modules.meteor-client.better-tooltips.beehive.honey-level": "§7Niveau des honigs: §e%d§7.", "modules.meteor-client.better-tooltips.beehive.bees": "§7Bienen: §e%d§7.", - "modules.meteor-client.better-tooltips.kilobytes": "§7%s kb", "modules.meteor-client.better-tooltips.bytes": "§7%s byte", "modules.meteor-client.better-tooltips.error-getting-bytes": "§cFehler beim empfang von Bytes.", - "modules.meteor-client.better-tooltips.unknown-inventory": "§4Unbekanntes inventar", - "modules.meteor-client.better-tooltips.hold-to-preview": "УFür eine vorschau §e%s§r gedrückt halten", - "modules.meteor-client.inventory-tweaks.dump": "Falten", "modules.meteor-client.inventory-tweaks.steal": "Nehmen" } diff --git a/src/main/resources/assets/meteorplus/lang/en_us.json b/src/main/resources/assets/meteorplus/lang/en_us.json index 0c128d6..9f61219 100644 --- a/src/main/resources/assets/meteorplus/lang/en_us.json +++ b/src/main/resources/assets/meteorplus/lang/en_us.json @@ -3,24 +3,18 @@ "gui.world_map.baritone_path_here": "Baritone path Here", "gui.world_map.baritone_elytra_here": "Baritone elytra Here", "gui.world_map.look_at_waypoint": "Look at waypoint", - "item.meteorplus.logo": "Meteor+ logo", "item.meteorplus.logo_mods": "Meteor+ Integrations logo", "item.meteorplus.star": "Star", "item.meteorplus.diamond": "Diamond", "item.meteorplus.money": "Money", - "modules.meteor-client.better-tooltips.beehive.honey-level": "§7Honey level: §e%d§7.", "modules.meteor-client.better-tooltips.beehive.bees": "§7Bees: §e%d§7.", - "modules.meteor-client.better-tooltips.kilobytes": "§7%s kb", "modules.meteor-client.better-tooltips.bytes": "§7%s bytes", "modules.meteor-client.better-tooltips.error-getting-bytes": "§cError getting bytes.", - "modules.meteor-client.better-tooltips.unknown-inventory": "§4Unknown inventory", - "modules.meteor-client.better-tooltips.hold-to-preview": "Hold §e%s§r to preview", - "modules.meteor-client.inventory-tweaks.dump": "Dump", "modules.meteor-client.inventory-tweaks.steal": "Steal" } diff --git a/src/main/resources/assets/meteorplus/lang/ru_ru.json b/src/main/resources/assets/meteorplus/lang/ru_ru.json index 7f33882..9fb2016 100644 --- a/src/main/resources/assets/meteorplus/lang/ru_ru.json +++ b/src/main/resources/assets/meteorplus/lang/ru_ru.json @@ -3,24 +3,18 @@ "gui.world_map.baritone_path_here": "Baritone путь тут", "gui.world_map.baritone_elytra_here": "Baritone элитра тут", "gui.world_map.look_at_waypoint": "Смотреть на метку", - "item.meteorplus.logo": "Meteor+ логотип", "item.meteorplus.logo_mods": "Meteor+ Integrations логотип", "item.meteorplus.star": "Звезда", "item.meteorplus.diamond": "Алмаз", "item.meteorplus.money": "Деньги", - "modules.meteor-client.better-tooltips.beehive.honey-level": "§7Уровень мёда: §e%d§7.", "modules.meteor-client.better-tooltips.beehive.bees": "§7Пчел: §e%d§7.", - "modules.meteor-client.better-tooltips.kilobytes": "§7%s кб", "modules.meteor-client.better-tooltips.bytes": "§7%s байт", "modules.meteor-client.better-tooltips.error-getting-bytes": "§cОшибка при получении байтов.", - "modules.meteor-client.better-tooltips.unknown-inventory": "§4Неизвестный инвентарь", - "modules.meteor-client.better-tooltips.hold-to-preview": "Удерживайте §e%s§r для предпросмотра", - "modules.meteor-client.inventory-tweaks.dump": "Сложить", "modules.meteor-client.inventory-tweaks.steal": "Взять" } diff --git a/src/main/resources/assets/meteorplus/lang/uk_ua.json b/src/main/resources/assets/meteorplus/lang/uk_ua.json index b8d5b26..cde5a1f 100644 --- a/src/main/resources/assets/meteorplus/lang/uk_ua.json +++ b/src/main/resources/assets/meteorplus/lang/uk_ua.json @@ -3,24 +3,18 @@ "gui.world_map.baritone_path_here": "Baritone путь тут", "gui.world_map.baritone_elytra_here": "Baritone елітра тут", "gui.world_map.look_at_waypoint": "Дивитися на мітку", - "item.meteorplus.logo": "Meteor+ логотип", "item.meteorplus.logo_mods": "Meteor+ Integrations логотип", "item.meteorplus.star": "Зірка", "item.meteorplus.diamond": "Діамант", "item.meteorplus.money": "Гроші", - "modules.meteor-client.better-tooltips.beehive.honey-level": "§7Рівень меду: §e%d§7.", "modules.meteor-client.better-tooltips.beehive.bees": "§7Бджіл: §e%d§7.", - "modules.meteor-client.better-tooltips.kilobytes": "§7%s кб", "modules.meteor-client.better-tooltips.bytes": "§7%s байт", "modules.meteor-client.better-tooltips.error-getting-bytes": "§cПомилка при отриманні байтів.", - "modules.meteor-client.better-tooltips.unknown-inventory": "§4Невідомий інвентар", - "modules.meteor-client.better-tooltips.hold-to-preview": "Утримуйте §e%s§r для перегляду", - "modules.meteor-client.inventory-tweaks.dump": "Скласти", "modules.meteor-client.inventory-tweaks.steal": "Взяти" } diff --git a/src/main/resources/assets/meteorplus/lang/zh_cn.json b/src/main/resources/assets/meteorplus/lang/zh_cn.json index 3f0963f..0be5e5b 100644 --- a/src/main/resources/assets/meteorplus/lang/zh_cn.json +++ b/src/main/resources/assets/meteorplus/lang/zh_cn.json @@ -3,21 +3,15 @@ "gui.world_map.baritone_path_here": "Baritone 路径标记", "gui.world_map.baritone_elytra_here": "Baritone 鞘翅飞行标记", "gui.world_map.look_at_waypoint": "查看标签", - "item.meteorplus.logo": "Meteor+ 主标识", "item.meteorplus.logo_mods": "Meteor+ 整合包标识", - "modules.meteor-client.better-tooltips.beehive.honey-level": "§7蜂蜜等级:§e%d§7", "modules.meteor-client.better-tooltips.beehive.bees": "§7蜜蜂数量:§e%d§7", - "modules.meteor-client.better-tooltips.kilobytes": "§7%s KB", "modules.meteor-client.better-tooltips.bytes": "§7%s 字节", "modules.meteor-client.better-tooltips.error-getting-bytes": "§c字节数据获取失败", - "modules.meteor-client.better-tooltips.unknown-inventory": "§4未知容器类型", - "modules.meteor-client.better-tooltips.hold-to-preview": "按住 §e%s§r 以预览", - "modules.meteor-client.inventory-tweaks.dump": "批量丢弃", "modules.meteor-client.inventory-tweaks.steal": "快速拿取" } diff --git a/src/main/resources/assets/meteorplus/lang/zh_tw.json b/src/main/resources/assets/meteorplus/lang/zh_tw.json index 754f1b8..68c5310 100644 --- a/src/main/resources/assets/meteorplus/lang/zh_tw.json +++ b/src/main/resources/assets/meteorplus/lang/zh_tw.json @@ -3,21 +3,15 @@ "gui.world_map.baritone_path_here": "Baritone 路徑標記", "gui.world_map.baritone_elytra_here": "Baritone 鞘翅飛行標記", "gui.world_map.look_at_waypoint": "查看標籤", - "item.meteorplus.logo": "Meteor+ 主標誌", "item.meteorplus.logo_mods": "Meteor+ 整合包標誌", - "modules.meteor-client.better-tooltips.beehive.honey-level": "§7蜂蜜等級:§e%d§7", "modules.meteor-client.better-tooltips.beehive.bees": "§7蜜蜂數量:§e%d§7", - "modules.meteor-client.better-tooltips.kilobytes": "§7%s KB", "modules.meteor-client.better-tooltips.bytes": "§7%s 位元組", "modules.meteor-client.better-tooltips.error-getting-bytes": "§c位元組資料獲取失敗", - "modules.meteor-client.better-tooltips.unknown-inventory": "§4未知容器類型", - "modules.meteor-client.better-tooltips.hold-to-preview": "按住 §e%s§r 以預覽", - "modules.meteor-client.inventory-tweaks.dump": "批量丟棄", "modules.meteor-client.inventory-tweaks.steal": "快速拿取" } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 443bfc9..355acb9 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,47 +1,47 @@ { - "schemaVersion": 1, - "id": "meteorplus", - "version": "${version}", - "name": "Meteor+", - "description": "An addon for Meteor client that adds many blatant features.", - "authors": [ - "Neki_play" - ], - "contact": { - "homepage": "https://github.com/MeteorClientPlus/MeteorPlus", - "issues": "https://github.com/MeteorClientPlus/MeteorPlus/issues", - "sources": "https://github.com/MeteorClientPlus/MeteorPlus/MeteorPlus", - "discord": "https://www.guilded.gg/i/27dAlJKk" - }, - "license": "GPL-3.0", - "icon": "assets/meteorplus/icon.png", - "environment": "*", - "entrypoints": { + "schemaVersion": 1, + "id": "meteorplus", + "version": "${version}", + "name": "Meteor+", + "description": "An addon for Meteor client that adds many blatant features.", + "authors": [ + "Neki_play" + ], + "contact": { + "homepage": "https://github.com/MeteorClientPlus/MeteorPlus", + "issues": "https://github.com/MeteorClientPlus/MeteorPlus/issues", + "sources": "https://github.com/MeteorClientPlus/MeteorPlus/MeteorPlus", + "discord": "https://www.guilded.gg/i/27dAlJKk" + }, + "license": "GPL-3.0", + "icon": "assets/meteorplus/icon.png", + "environment": "*", + "entrypoints": { "main": [ "nekiplay.Main" ], - "meteor": [ - "nekiplay.meteorplus.MeteorPlusAddon" - ] - }, - "mixins": [ - "meteorplus.mixins.json", - "meteorplus-xaeroworldmap.mixins.json", - "meteorplus-whereisit.mixins.json" - ], - "accessWidener": "meteorplus.accesswidener", - "custom": { - "meteor-client:color": "0,181,73", - "github:sha": "${gh_hash}", + "meteor": [ + "nekiplay.meteorplus.MeteorPlusAddon" + ] + }, + "mixins": [ + "meteorplus.mixins.json", + "meteorplus-xaeroworldmap.mixins.json", + "meteorplus-whereisit.mixins.json" + ], + "accessWidener": "meteorplus.accesswidener", + "custom": { + "meteor-client:color": "0,181,73", + "github:sha": "${gh_hash}", "modmenu": { "links": { "modmenu.website": "https://meteorclientplus.github.io", "modmenu.discord": "https://discord.gg/Y3ardRfJXr" } } - }, - "depends": { - "java": ">=21", - "minecraft": ">=${mc_version}" - } + }, + "depends": { + "java": ">=${jdk_version}", + "minecraft": ">=${minecraft_version}" + } } diff --git a/src/main/resources/meteorplus-xaeroworldmap.mixins.json b/src/main/resources/meteorplus-xaeroworldmap.mixins.json index cf513ac..9ccf833 100644 --- a/src/main/resources/meteorplus-xaeroworldmap.mixins.json +++ b/src/main/resources/meteorplus-xaeroworldmap.mixins.json @@ -4,9 +4,9 @@ "compatibilityLevel": "JAVA_17", "plugin": "nekiplay.MixinPlugin", "client": [ - "WaypointRendererMixin", "GuiMapMixin", - "MapPixelAccessor" + "MapPixelAccessor", + "WaypointRendererMixin" ], "injectors": { "defaultRequire": 1 diff --git a/src/main/resources/meteorplus.accesswidener b/src/main/resources/meteorplus.accesswidener index e8ecc43..08730cb 100644 --- a/src/main/resources/meteorplus.accesswidener +++ b/src/main/resources/meteorplus.accesswidener @@ -1,6 +1,5 @@ -accessWidener v1 named +accessWidener v1 official -accessible method net/minecraft/entity/passive/AbstractHorseEntity canBreed ()Z -accessible class net/minecraft/network/packet/c2s/play/PlayerInteractEntityC2SPacket$InteractType -accessible field net/minecraft/client/input/Input movementVector Lnet/minecraft/util/math/Vec2f; -accessible field net/minecraft/text/MutableText content Lnet/minecraft/text/TextContent; +accessible method net/minecraft/world/entity/animal/equine/AbstractHorse canParent ()Z +accessible field net/minecraft/client/player/ClientInput moveVector Lnet/minecraft/world/phys/Vec2; +accessible field net/minecraft/network/chat/MutableComponent contents Lnet/minecraft/network/chat/ComponentContents; diff --git a/src/main/resources/meteorplus.mixins.json b/src/main/resources/meteorplus.mixins.json index dc6880d..6191247 100644 --- a/src/main/resources/meteorplus.mixins.json +++ b/src/main/resources/meteorplus.mixins.json @@ -8,7 +8,6 @@ "meteorclient.modules.BetterTooltipsMixin", "meteorclient.modules.BlockESPMixin", "meteorclient.modules.BreakIndicatorsMixin", - "meteorclient.modules.CriticalsMixin", "meteorclient.modules.ESPMixin", "meteorclient.modules.FreecamMixin", "meteorclient.modules.ItemHighlightMixin", @@ -18,11 +17,11 @@ "meteorclient.modules.NoRenderMixin", "meteorclient.modules.TracersMixin", "meteorclient.modules.WaypointsModuleMixin", - "minecraft.ClientConnectionAccessor", + "minecraft.ConnectionAccessor", "minecraft.ShapelessRecipeAccessor", - "minecraft.entity.ShulkerEntityAccessor", - "minecraft.hud.DebugHudMixin", - "minecraft.hud.InGameHudMixin" + "minecraft.entity.ShulkerAccessor", + "minecraft.hud.DebugScreenOverlayMixin", + "minecraft.hud.GuiMixin" ], "injectors": { "defaultRequire": 1 @@ -32,8 +31,8 @@ "meteorclient.gui.TitleScreenCreditsMixin", "meteorclient.utils.misc.KeybindMixin", "minecraft.StringReaderMixin", - "minecraft.entity.ClientPlayerEntityMixin", "minecraft.entity.LivingEntityMixin", - "minecraft.entity.PlayerMoveC2SPacketAccessor" + "minecraft.entity.LocalPlayerMixin", + "minecraft.entity.ServerboundMovePlayerPacketAccessor" ] }