diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index e35f5aa..825a852 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -4,7 +4,7 @@ name: Java CI with Gradle concurrency: - group: "build-1.19.2" + group: "build-1.19.4" cancel-in-progress: true on: @@ -34,9 +34,9 @@ jobs: - uses: "marvinpinto/action-automatic-releases@latest" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" - automatic_release_tag: "latest-1.19.3" + automatic_release_tag: "latest-1.19.4" prerelease: false - title: "1.19.3 Build" + title: "1.19.4 Build" files: | ./build/libs/*.jar diff --git a/README.md b/README.md index f5eda31..9af4471 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ - Insta Mine (Removed from Meteor in [62cd0](https://github.com/MeteorDevelopment/meteor-client/commit/62cd0461e48a6c50f040bf48de25be1fa4eba77e)) - Item generator (Ported from [Wurst](https://github.com/Wurst-Imperium/Wurst7/tree)) - InteractionMenu (Ported from [BleachHack](https://github.com/BleachDrinker420/BleachHack/pull/211)) +- Jetpack - Lavacast - MossBot (Ported from [BleachHack](https://github.com/BleachDrinker420/BleachHack/pull/211)) - NewChunks (Ported from [BleachHack](https://github.com/BleachDrinker420/BleachHack/blob/master/BleachHack-Fabric-1.17/src/main/java/bleach/hack/module/mods/NewChunks.java)) diff --git a/build.gradle b/build.gradle index ca0182c..42f3123 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.0-SNAPSHOT' + id 'fabric-loom' version '1.1-SNAPSHOT' } sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 @@ -30,6 +30,7 @@ dependencies { modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" modImplementation("meteordevelopment:meteor-client:${project.meteor_version}-SNAPSHOT") + modImplementation "baritone:fabric:${project.minecraft_version}-SNAPSHOT" // seed .locate and ore sim extraLibs('com.seedfinding:mc_math:0eb505174da8a92550f8ec6efe254e0fa936cc0d') { transitive = false } diff --git a/gradle.properties b/gradle.properties index 66efc9b..0ec1afa 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,13 +2,13 @@ org.gradle.jvmargs=-Xmx2G # Fabric Properties -minecraft_version=1.19.3 -yarn_version=1.19.3+build.2 -loader_version=0.14.11 +minecraft_version=1.19.4 +yarn_version=1.19.4+build.1 +loader_version=0.14.17 # Mod Properties mod_version = 0.2 maven_group = anticope.rejects archives_base_name = meteor-rejects-addon -meteor_version=0.5.2 \ No newline at end of file +meteor_version=0.5.3 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4605298..ef62641 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file diff --git a/src/main/java/anticope/rejects/MeteorRejectsAddon.java b/src/main/java/anticope/rejects/MeteorRejectsAddon.java index 2f97f99..66c903e 100644 --- a/src/main/java/anticope/rejects/MeteorRejectsAddon.java +++ b/src/main/java/anticope/rejects/MeteorRejectsAddon.java @@ -65,6 +65,7 @@ public class MeteorRejectsAddon extends MeteorAddon { modules.add(new InstaMine()); modules.add(new ItemGenerator()); modules.add(new InteractionMenu()); + modules.add(new Jetpack()); modules.add(new Lavacast()); modules.add(new MossBot()); modules.add(new NewChunks()); diff --git a/src/main/java/anticope/rejects/events/OffGroundSpeedEvent.java b/src/main/java/anticope/rejects/events/OffGroundSpeedEvent.java new file mode 100644 index 0000000..f0b90a8 --- /dev/null +++ b/src/main/java/anticope/rejects/events/OffGroundSpeedEvent.java @@ -0,0 +1,12 @@ +package anticope.rejects.events; + +public class OffGroundSpeedEvent { + public static final OffGroundSpeedEvent INSTANCE = new OffGroundSpeedEvent(); + + public float speed; + + public static OffGroundSpeedEvent get(float speed) { + INSTANCE.speed = speed; + return INSTANCE; + } +} diff --git a/src/main/java/anticope/rejects/gui/hud/RadarHud.java b/src/main/java/anticope/rejects/gui/hud/RadarHud.java index 31c366a..41004a9 100644 --- a/src/main/java/anticope/rejects/gui/hud/RadarHud.java +++ b/src/main/java/anticope/rejects/gui/hud/RadarHud.java @@ -1,29 +1,22 @@ package anticope.rejects.gui.hud; -import java.util.Iterator; - import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.meteorclient.systems.hud.HudElementInfo; -import meteordevelopment.meteorclient.utils.render.color.Color; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - import it.unimi.dsi.fastutil.objects.Object2BooleanMap; import meteordevelopment.meteorclient.renderer.Renderer2D; -import meteordevelopment.meteorclient.settings.BoolSetting; -import meteordevelopment.meteorclient.settings.ColorSetting; -import meteordevelopment.meteorclient.settings.DoubleSetting; -import meteordevelopment.meteorclient.settings.EntityTypeListSetting; import meteordevelopment.meteorclient.settings.*; -import meteordevelopment.meteorclient.systems.hud.HudRenderer; import meteordevelopment.meteorclient.systems.hud.HudElement; +import meteordevelopment.meteorclient.systems.hud.HudElementInfo; +import meteordevelopment.meteorclient.systems.hud.HudRenderer; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.ESP; import meteordevelopment.meteorclient.systems.waypoints.Waypoint; import meteordevelopment.meteorclient.systems.waypoints.Waypoints; +import meteordevelopment.meteorclient.utils.render.color.Color; import meteordevelopment.meteorclient.utils.render.color.SettingColor; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; import static meteordevelopment.meteorclient.MeteorClient.mc; diff --git a/src/main/java/anticope/rejects/gui/screens/InteractionScreen.java b/src/main/java/anticope/rejects/gui/screens/InteractionScreen.java index 869041d..3e02383 100644 --- a/src/main/java/anticope/rejects/gui/screens/InteractionScreen.java +++ b/src/main/java/anticope/rejects/gui/screens/InteractionScreen.java @@ -1,7 +1,7 @@ package anticope.rejects.gui.screens; -import anticope.rejects.modules.InteractionMenu; import anticope.rejects.mixin.EntityAccessor; +import anticope.rejects.modules.InteractionMenu; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import meteordevelopment.meteorclient.MeteorClient; @@ -14,7 +14,6 @@ import meteordevelopment.starscript.compiler.Compiler; import meteordevelopment.starscript.compiler.Parser; import meteordevelopment.starscript.utils.Error; import meteordevelopment.starscript.utils.StarscriptError; - import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.screen.Screen; @@ -23,7 +22,8 @@ import net.minecraft.client.option.KeyBinding; import net.minecraft.client.render.GameRenderer; import net.minecraft.client.util.InputUtil; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.*; +import net.minecraft.entity.Entity; +import net.minecraft.entity.Saddleable; import net.minecraft.entity.mob.EndermanEntity; import net.minecraft.entity.passive.AbstractHorseEntity; import net.minecraft.entity.player.PlayerEntity; @@ -251,7 +251,7 @@ public class InteractionScreen extends Screen { drawDots(matrix, (int) (Math.min(height, width) / 2 * 0.75), mouseX, mouseY); matrix.scale(2f, 2f, 1f); - drawCenteredText(matrix, textRenderer, entity.getName(), width / 4, 6, 0xFFFFFFFF); + drawCenteredTextWithShadow(matrix, textRenderer, entity.getName(), width / 4, 6, 0xFFFFFFFF); int scale = client.options.getGuiScale().getValue(); Vector2 mouse = new Vector2(mouseX, mouseY); @@ -324,10 +324,10 @@ public class InteractionScreen extends Screen { private void drawTextField(MatrixStack matrix, int x, int y, String key) { if (x >= width / 2) { drawRect(matrix, x + 10, y - 8, textRenderer.getWidth(key) + 3, 15, backgroundColor, borderColor); - drawStringWithShadow(matrix, textRenderer, key, x + 12, y - 4, textColor); + drawTextWithShadow(matrix, textRenderer, key, x + 12, y - 4, textColor); } else { drawRect(matrix, x - 14 - textRenderer.getWidth(key), y - 8, textRenderer.getWidth(key) + 3, 15, backgroundColor, borderColor); - drawStringWithShadow(matrix, textRenderer, key, x - 12 - textRenderer.getWidth(key), y - 4, textColor); + drawTextWithShadow(matrix, textRenderer, key, x - 12 - textRenderer.getWidth(key), y - 4, textColor); } } diff --git a/src/main/java/anticope/rejects/mixin/LivingEntityMixin.java b/src/main/java/anticope/rejects/mixin/LivingEntityMixin.java index f370892..2f4c53b 100644 --- a/src/main/java/anticope/rejects/mixin/LivingEntityMixin.java +++ b/src/main/java/anticope/rejects/mixin/LivingEntityMixin.java @@ -1,27 +1,21 @@ package anticope.rejects.mixin; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.At; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; - import anticope.rejects.events.TeleportParticleEvent; import meteordevelopment.meteorclient.MeteorClient; -import meteordevelopment.meteorclient.utils.Utils; +import net.minecraft.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import static meteordevelopment.meteorclient.MeteorClient.mc; @Mixin(LivingEntity.class) public class LivingEntityMixin { - @Inject(method = "handleStatus", at = @At("HEAD"), cancellable = true) + @Inject(method = "handleStatus", at = @At("HEAD")) private void onHandleStatus(byte status, CallbackInfo ci) { - if ((Object) this instanceof Entity thisPlayer) { - if ((Object) thisPlayer == mc.player && status == 46 && Utils.canUpdate()) { - MeteorClient.EVENT_BUS.post(TeleportParticleEvent.get(thisPlayer.getX(), thisPlayer.getY(), thisPlayer.getZ())); - } + if ((Object) this == mc.player && status == 46) { + MeteorClient.EVENT_BUS.post(TeleportParticleEvent.get(mc.player.getX(), mc.player.getY(), mc.player.getZ())); } } } diff --git a/src/main/java/anticope/rejects/mixin/PlayerEntityMixin.java b/src/main/java/anticope/rejects/mixin/PlayerEntityMixin.java new file mode 100644 index 0000000..7d60641 --- /dev/null +++ b/src/main/java/anticope/rejects/mixin/PlayerEntityMixin.java @@ -0,0 +1,17 @@ +package anticope.rejects.mixin; + +import anticope.rejects.events.OffGroundSpeedEvent; +import meteordevelopment.meteorclient.MeteorClient; +import net.minecraft.entity.player.PlayerEntity; +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; + +@Mixin(PlayerEntity.class) +public class PlayerEntityMixin { + @Inject(method = "getOffGroundSpeed", at = @At("RETURN"), cancellable = true) + private void onGetOffGroundSpeed(CallbackInfoReturnable cir) { + cir.setReturnValue(MeteorClient.EVENT_BUS.post(OffGroundSpeedEvent.get(cir.getReturnValueF())).speed); + } +} diff --git a/src/main/java/anticope/rejects/mixin/TexturedRenderLayersMixin.java b/src/main/java/anticope/rejects/mixin/TexturedRenderLayersMixin.java index 968b3c4..0a26217 100644 --- a/src/main/java/anticope/rejects/mixin/TexturedRenderLayersMixin.java +++ b/src/main/java/anticope/rejects/mixin/TexturedRenderLayersMixin.java @@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.ModifyVariable; @Mixin(TexturedRenderLayers.class) public class TexturedRenderLayersMixin { - @ModifyVariable(method = "getChestTexture(Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/block/enums/ChestType;Z)Lnet/minecraft/client/util/SpriteIdentifier;", at = @At("LOAD"), ordinal = 0) + @ModifyVariable(method = "getChestTextureId(Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/block/enums/ChestType;Z)Lnet/minecraft/client/util/SpriteIdentifier;", at = @At("LOAD"), ordinal = 0) private static boolean chrsitmas(boolean christmas) { Rendering rendering = Modules.get().get(Rendering.class); if (rendering != null && rendering.chistmas()) diff --git a/src/main/java/anticope/rejects/modules/AntiBot.java b/src/main/java/anticope/rejects/modules/AntiBot.java index 51a88d5..4c28345 100644 --- a/src/main/java/anticope/rejects/modules/AntiBot.java +++ b/src/main/java/anticope/rejects/modules/AntiBot.java @@ -1,13 +1,13 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.BoolSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.entity.EntityUtils; +import meteordevelopment.orbit.EventHandler; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; diff --git a/src/main/java/anticope/rejects/modules/AntiSpawnpoint.java b/src/main/java/anticope/rejects/modules/AntiSpawnpoint.java index 83fb333..06d8049 100644 --- a/src/main/java/anticope/rejects/modules/AntiSpawnpoint.java +++ b/src/main/java/anticope/rejects/modules/AntiSpawnpoint.java @@ -1,12 +1,12 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.settings.BoolSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; +import meteordevelopment.orbit.EventHandler; import net.minecraft.block.BedBlock; import net.minecraft.block.Blocks; import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket; diff --git a/src/main/java/anticope/rejects/modules/AntiVanish.java b/src/main/java/anticope/rejects/modules/AntiVanish.java index 1c35b51..e3af556 100644 --- a/src/main/java/anticope/rejects/modules/AntiVanish.java +++ b/src/main/java/anticope/rejects/modules/AntiVanish.java @@ -38,7 +38,7 @@ public class AntiVanish extends Module { private final Setting command = sgGeneral.add(new StringSetting.Builder() .name("command") - .description("The completion command.") + .description("The completion command to detect player names.") .defaultValue("minecraft:msg") .visible(() -> mode.get() == Mode.RealJoinMessage) .build() @@ -68,7 +68,7 @@ public class AntiVanish extends Module { public WWidget getWidget(GuiTheme theme) { WVerticalList l = theme.verticalList(); l.add(theme.label("LeaveMessage: If client didn't receive a quit game message (like essentials).")); - l.add(theme.label("RealJoinMessage: Tell whether the player is really left.")); + l.add(theme.label("RealJoinMessage: Tell whether the player is really left by using player name completion.")); return l; } diff --git a/src/main/java/anticope/rejects/modules/AutoBedTrap.java b/src/main/java/anticope/rejects/modules/AutoBedTrap.java index fe7f815..5aa08cd 100644 --- a/src/main/java/anticope/rejects/modules/AutoBedTrap.java +++ b/src/main/java/anticope/rejects/modules/AutoBedTrap.java @@ -1,31 +1,25 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.settings.BlockListSetting; -import meteordevelopment.meteorclient.settings.BoolSetting; -import meteordevelopment.meteorclient.settings.DoubleSetting; -import meteordevelopment.meteorclient.settings.IntSetting; -import meteordevelopment.meteorclient.settings.Setting; -import meteordevelopment.meteorclient.settings.SettingGroup; +import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.misc.Pool; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.world.BlockIterator; import meteordevelopment.meteorclient.utils.world.BlockUtils; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - +import meteordevelopment.orbit.EventHandler; import net.minecraft.block.BedBlock; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.item.BlockItem; import net.minecraft.util.math.BlockPos; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class AutoBedTrap extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); diff --git a/src/main/java/anticope/rejects/modules/AutoCraft.java b/src/main/java/anticope/rejects/modules/AutoCraft.java index 801c5d0..a5a1781 100644 --- a/src/main/java/anticope/rejects/modules/AutoCraft.java +++ b/src/main/java/anticope/rejects/modules/AutoCraft.java @@ -71,7 +71,7 @@ public class AutoCraft extends Module { List recipeResultCollectionList = mc.player.getRecipeBook().getOrderedResults(); for (RecipeResultCollection recipeResultCollection : recipeResultCollectionList) { for (Recipe recipe : recipeResultCollection.getRecipes(true)) { - if (!itemList.contains(recipe.getOutput().getItem())) continue; + if (!itemList.contains(recipe.getOutput(mc.world.getRegistryManager()).getItem())) continue; mc.interactionManager.clickRecipe(currentScreenHandler.syncId, recipe, craftAll.get()); mc.interactionManager.clickSlot(currentScreenHandler.syncId, 0, 1, drop.get() ? SlotActionType.THROW : SlotActionType.QUICK_MOVE, mc.player); diff --git a/src/main/java/anticope/rejects/modules/AutoExtinguish.java b/src/main/java/anticope/rejects/modules/AutoExtinguish.java index 9610d6e..a05cada 100644 --- a/src/main/java/anticope/rejects/modules/AutoExtinguish.java +++ b/src/main/java/anticope/rejects/modules/AutoExtinguish.java @@ -1,7 +1,6 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.BoolSetting; import meteordevelopment.meteorclient.settings.IntSetting; @@ -11,6 +10,7 @@ import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.meteorclient.utils.world.BlockIterator; +import meteordevelopment.orbit.EventHandler; import net.minecraft.block.Blocks; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.item.Item; diff --git a/src/main/java/anticope/rejects/modules/AutoLogin.java b/src/main/java/anticope/rejects/modules/AutoLogin.java index 28a4960..2d5f93b 100644 --- a/src/main/java/anticope/rejects/modules/AutoLogin.java +++ b/src/main/java/anticope/rejects/modules/AutoLogin.java @@ -3,7 +3,6 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; import anticope.rejects.settings.StringMapSetting; import anticope.rejects.utils.RejectsUtils; -import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.game.GameJoinedEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.gui.GuiTheme; diff --git a/src/main/java/anticope/rejects/modules/AutoPot.java b/src/main/java/anticope/rejects/modules/AutoPot.java index a373717..042a342 100644 --- a/src/main/java/anticope/rejects/modules/AutoPot.java +++ b/src/main/java/anticope/rejects/modules/AutoPot.java @@ -1,20 +1,24 @@ package anticope.rejects.modules; //import baritone.api.BaritoneAPI; + import anticope.rejects.MeteorRejectsAddon; import baritone.api.BaritoneAPI; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.entity.player.ItemUseCrosshairTargetEvent; import meteordevelopment.meteorclient.events.world.TickEvent; +import meteordevelopment.meteorclient.settings.BoolSetting; +import meteordevelopment.meteorclient.settings.IntSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.combat.AnchorAura; import meteordevelopment.meteorclient.systems.modules.combat.BedAura; import meteordevelopment.meteorclient.systems.modules.combat.CrystalAura; import meteordevelopment.meteorclient.systems.modules.combat.KillAura; -import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.player.Rotations; +import meteordevelopment.orbit.EventHandler; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; diff --git a/src/main/java/anticope/rejects/modules/AutoSoup.java b/src/main/java/anticope/rejects/modules/AutoSoup.java index cc78b1d..ab16c68 100644 --- a/src/main/java/anticope/rejects/modules/AutoSoup.java +++ b/src/main/java/anticope/rejects/modules/AutoSoup.java @@ -24,7 +24,7 @@ import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.BlockPos; public class AutoSoup extends Module { - private static final String desc = "Automatically eats soup when your health is low. Note: This hack ignores hunger and assumes that eating soup directly refills your health. If the server you are playing on is not configured to do that, use AutoEat instead."; + private static final String desc = "Automatically eats soup when your health is low on some servers."; public AutoSoup() { super(MeteorRejectsAddon.CATEGORY, "auto-soup", desc); diff --git a/src/main/java/anticope/rejects/modules/AutoTNT.java b/src/main/java/anticope/rejects/modules/AutoTNT.java index 14bfff2..82ffb8d 100644 --- a/src/main/java/anticope/rejects/modules/AutoTNT.java +++ b/src/main/java/anticope/rejects/modules/AutoTNT.java @@ -14,7 +14,8 @@ import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.meteorclient.utils.world.BlockIterator; import meteordevelopment.orbit.EventHandler; import net.minecraft.block.TntBlock; -import net.minecraft.item.*; +import net.minecraft.item.FireChargeItem; +import net.minecraft.item.FlintAndSteelItem; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/anticope/rejects/modules/BlockIn.java b/src/main/java/anticope/rejects/modules/BlockIn.java index 2e5547e..a8d1d0a 100644 --- a/src/main/java/anticope/rejects/modules/BlockIn.java +++ b/src/main/java/anticope/rejects/modules/BlockIn.java @@ -1,8 +1,6 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import net.minecraft.entity.MovementType; -import net.minecraft.util.math.Vec3d; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.BoolSetting; import meteordevelopment.meteorclient.settings.Setting; @@ -15,9 +13,11 @@ import meteordevelopment.meteorclient.utils.world.BlockUtils; import meteordevelopment.orbit.EventHandler; import net.minecraft.block.Block; import net.minecraft.block.FallingBlock; +import net.minecraft.entity.MovementType; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; public class BlockIn extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); diff --git a/src/main/java/anticope/rejects/modules/BoatGlitch.java b/src/main/java/anticope/rejects/modules/BoatGlitch.java index 7229f07..21c217b 100644 --- a/src/main/java/anticope/rejects/modules/BoatGlitch.java +++ b/src/main/java/anticope/rejects/modules/BoatGlitch.java @@ -1,7 +1,6 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.entity.BoatMoveEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; import meteordevelopment.meteorclient.events.world.TickEvent; @@ -11,6 +10,7 @@ import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; +import meteordevelopment.orbit.EventHandler; import net.minecraft.entity.Entity; import net.minecraft.entity.vehicle.BoatEntity; import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket; diff --git a/src/main/java/anticope/rejects/modules/BoatPhase.java b/src/main/java/anticope/rejects/modules/BoatPhase.java index 844dc3d..adf54a1 100644 --- a/src/main/java/anticope/rejects/modules/BoatPhase.java +++ b/src/main/java/anticope/rejects/modules/BoatPhase.java @@ -1,7 +1,6 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.entity.BoatMoveEvent; import meteordevelopment.meteorclient.mixininterface.IVec3d; import meteordevelopment.meteorclient.settings.BoolSetting; @@ -11,6 +10,7 @@ import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.utils.player.PlayerUtils; +import meteordevelopment.orbit.EventHandler; import net.minecraft.entity.vehicle.BoatEntity; import net.minecraft.util.math.Vec3d; diff --git a/src/main/java/anticope/rejects/modules/ChorusExploit.java b/src/main/java/anticope/rejects/modules/ChorusExploit.java index 210b591..54555ad 100644 --- a/src/main/java/anticope/rejects/modules/ChorusExploit.java +++ b/src/main/java/anticope/rejects/modules/ChorusExploit.java @@ -1,5 +1,7 @@ package anticope.rejects.modules; +import anticope.rejects.MeteorRejectsAddon; +import anticope.rejects.events.TeleportParticleEvent; import meteordevelopment.meteorclient.events.entity.player.FinishUsingItemEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.render.Render3DEvent; @@ -7,8 +9,6 @@ import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.Utils; -import meteordevelopment.meteorclient.utils.entity.fakeplayer.FakePlayerEntity; -import meteordevelopment.meteorclient.utils.entity.fakeplayer.FakePlayerManager; import meteordevelopment.meteorclient.utils.misc.Keybind; import meteordevelopment.meteorclient.utils.render.RenderUtils; import meteordevelopment.meteorclient.utils.render.color.SettingColor; @@ -18,10 +18,8 @@ import net.minecraft.network.packet.c2s.play.TeleportConfirmC2SPacket; import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; import net.minecraft.util.math.Vec3d; -import anticope.rejects.events.TeleportParticleEvent; -import anticope.rejects.MeteorRejectsAddon; - -import java.util.*; +import java.util.LinkedList; +import java.util.Queue; public class ChorusExploit extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); diff --git a/src/main/java/anticope/rejects/modules/ColorSigns.java b/src/main/java/anticope/rejects/modules/ColorSigns.java index 2d71098..b8a4ffb 100644 --- a/src/main/java/anticope/rejects/modules/ColorSigns.java +++ b/src/main/java/anticope/rejects/modules/ColorSigns.java @@ -1,11 +1,10 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket; - -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.systems.modules.Module; +import meteordevelopment.orbit.EventHandler; +import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket; import net.minecraft.network.packet.s2c.play.GameJoinS2CPacket; public class ColorSigns extends Module { diff --git a/src/main/java/anticope/rejects/modules/Confuse.java b/src/main/java/anticope/rejects/modules/Confuse.java index 4efc859..774cf48 100644 --- a/src/main/java/anticope/rejects/modules/Confuse.java +++ b/src/main/java/anticope/rejects/modules/Confuse.java @@ -34,13 +34,13 @@ public class Confuse extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final Setting mode = sgGeneral.add(new EnumSetting.Builder() - .name("mode") - .defaultValue(Mode.RandomTP) - .description("Mode") - .build() + .name("mode") + .defaultValue(Mode.RandomTP) + .description("Mode") + .build() ); - - private final Setting delay = sgGeneral.add(new IntSetting.Builder() + + private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") .description("Delay") .defaultValue(3) @@ -48,7 +48,7 @@ public class Confuse extends Module { .sliderMax(20) .build() ); - + private final Setting range = sgGeneral.add(new IntSetting.Builder() .name("radius") .description("Range to confuse opponents") @@ -56,15 +56,15 @@ public class Confuse extends Module { .min(0).sliderMax(10) .build() ); - + private final Setting priority = sgGeneral.add(new EnumSetting.Builder() .name("priority") .description("Targetting priority") .defaultValue(SortPriority.LowestHealth) .build() ); - - private final Setting circleSpeed = sgGeneral.add(new IntSetting.Builder() + + private final Setting circleSpeed = sgGeneral.add(new IntSetting.Builder() .name("circle-speed") .description("Circle mode speed") .defaultValue(10) @@ -72,19 +72,19 @@ public class Confuse extends Module { .sliderMax(180) .build() ); - + private final Setting moveThroughBlocks = sgGeneral.add(new BoolSetting.Builder() .name("move-through-blocks") .defaultValue(false) .build() ); - + private final Setting budgetGraphics = sgGeneral.add(new BoolSetting.Builder() .name("budget-graphics") .defaultValue(false) .build() ); - + private final Setting circleColor = sgGeneral.add(new ColorSetting.Builder() .name("circle-color") .description("Color for circle rendering") @@ -92,13 +92,13 @@ public class Confuse extends Module { .visible(budgetGraphics::get) .build() ); - - + + int delayWaited = 0; double circleProgress = 0; double addition = 0.0; Entity target = null; - + public Confuse() { super(MeteorRejectsAddon.CATEGORY, "confuse", "Makes your enemies shit themselves"); } @@ -113,24 +113,24 @@ public class Confuse extends Module { @EventHandler private void onTick(TickEvent.Pre event) { - + // Delay delayWaited++; if (delayWaited < delay.get()) return; delayWaited = 0; - - + + // Targetting target = TargetUtils.getPlayerTarget(range.get(), priority.get()); - + if (target == null) return; - + Vec3d entityPos = target.getPos(); Vec3d playerPos = mc.player.getPos(); Random r = new Random(); BlockHitResult hit; int halfRange = range.get() / 2; - + switch (mode.get()) { case RandomTP: double x = r.nextDouble() * range.get() - halfRange; @@ -138,11 +138,11 @@ public class Confuse extends Module { double z = r.nextDouble() * range.get() - halfRange; Vec3d addend = new Vec3d(x, y, z); Vec3d goal = entityPos.add(addend); - if (mc.world.getBlockState(new BlockPos(goal.x, goal.y, goal.z)).getBlock() != Blocks.AIR) { + if (mc.world.getBlockState(BlockPos.ofFloored(goal.x, goal.y, goal.z)).getBlock() != Blocks.AIR) { goal = new Vec3d(x, playerPos.y, z); } - if (mc.world.getBlockState(new BlockPos(goal.x, goal.y, goal.z)).getBlock() == Blocks.AIR) { - hit = mc.world.raycast(new RaycastContext(mc.player.getPos(),goal, RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.ANY, mc.player)); + if (mc.world.getBlockState(BlockPos.ofFloored(goal.x, goal.y, goal.z)).getBlock() == Blocks.AIR) { + hit = mc.world.raycast(new RaycastContext(mc.player.getPos(), goal, RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.ANY, mc.player)); if (!moveThroughBlocks.get() && hit.isInsideBlock()) { delayWaited = (int) (delay.get() - 1); break; @@ -152,7 +152,7 @@ public class Confuse extends Module { delayWaited = (int) (delay.get() - 1); } break; - + case Switch: Vec3d diff = entityPos.subtract(playerPos); Vec3d diff1 = new Vec3d(Utils.clamp(diff.x, -halfRange, halfRange), Utils.clamp(diff.y, -halfRange, halfRange), Utils.clamp(diff.z, -halfRange, halfRange)); @@ -164,7 +164,7 @@ public class Confuse extends Module { } mc.player.updatePosition(goal2.x, goal2.y, goal2.z); break; - + case Circle: delay.set(0); circleProgress += circleSpeed.get(); diff --git a/src/main/java/anticope/rejects/modules/CustomPackets.java b/src/main/java/anticope/rejects/modules/CustomPackets.java index ab09eea..3ece9f7 100644 --- a/src/main/java/anticope/rejects/modules/CustomPackets.java +++ b/src/main/java/anticope/rejects/modules/CustomPackets.java @@ -2,19 +2,25 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; import anticope.rejects.events.CustomPayloadEvent; -import com.google.gson.*; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; -import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.settings.BoolSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.ChatUtils; import meteordevelopment.orbit.EventHandler; import net.minecraft.network.PacketByteBuf; -import net.minecraft.text.*; +import net.minecraft.text.HoverEvent; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; import net.minecraft.util.Formatting; import java.lang.reflect.Type; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.Map; public class CustomPackets extends Module { private static final Gson GSON_NON_PRETTY = new GsonBuilder().enableComplexMapKeySerialization().disableHtmlEscaping().create(); diff --git a/src/main/java/anticope/rejects/modules/GhostMode.java b/src/main/java/anticope/rejects/modules/GhostMode.java index 4d28636..8d29a99 100644 --- a/src/main/java/anticope/rejects/modules/GhostMode.java +++ b/src/main/java/anticope/rejects/modules/GhostMode.java @@ -1,5 +1,6 @@ package anticope.rejects.modules; +import anticope.rejects.MeteorRejectsAddon; import meteordevelopment.meteorclient.events.game.GameJoinedEvent; import meteordevelopment.meteorclient.events.game.OpenScreenEvent; import meteordevelopment.meteorclient.events.world.TickEvent; @@ -9,7 +10,6 @@ import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; import net.minecraft.client.gui.screen.DeathScreen; -import anticope.rejects.MeteorRejectsAddon; public class GhostMode extends Module { diff --git a/src/main/java/anticope/rejects/modules/Glide.java b/src/main/java/anticope/rejects/modules/Glide.java index 3f66f8d..9c1def7 100644 --- a/src/main/java/anticope/rejects/modules/Glide.java +++ b/src/main/java/anticope/rejects/modules/Glide.java @@ -1,8 +1,11 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; +import anticope.rejects.events.OffGroundSpeedEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.settings.DoubleSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; import net.minecraft.client.network.ClientPlayerEntity; @@ -46,19 +49,23 @@ public class Glide extends Module { @EventHandler private void onTick(TickEvent.Post event) { - ClientPlayerEntity player = mc.player; - Vec3d v = player.getVelocity(); - - if(player.isOnGround() || player.isTouchingWater() || player.isInLava() || player.isClimbing() || v.y >= 0) return; - - if(minHeight.get() > 0) - { - Box box = player.getBoundingBox(); - box = box.union(box.offset(0, -minHeight.get(), 0)); - if(!mc.world.isSpaceEmpty(box)) return; - } - - player.setVelocity(v.x, Math.max(v.y, -fallSpeed.get()), v.z); - player.airStrafingSpeed *= moveSpeed.get(); + ClientPlayerEntity player = mc.player; + Vec3d v = player.getVelocity(); + + if (player.isOnGround() || player.isTouchingWater() || player.isInLava() || player.isClimbing() || v.y >= 0) + return; + + if (minHeight.get() > 0) { + Box box = player.getBoundingBox(); + box = box.union(box.offset(0, -minHeight.get(), 0)); + if (!mc.world.isSpaceEmpty(box)) return; + } + + player.setVelocity(v.x, Math.max(v.y, -fallSpeed.get()), v.z); + } + + @EventHandler + private void onOffGroundSpeed(OffGroundSpeedEvent event) { + event.speed *= moveSpeed.get().floatValue(); } } \ No newline at end of file diff --git a/src/main/java/anticope/rejects/modules/InstaMine.java b/src/main/java/anticope/rejects/modules/InstaMine.java index d08f8c4..d3a4f6e 100644 --- a/src/main/java/anticope/rejects/modules/InstaMine.java +++ b/src/main/java/anticope/rejects/modules/InstaMine.java @@ -6,7 +6,6 @@ import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.settings.*; -import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.meteorclient.utils.render.color.SettingColor; diff --git a/src/main/java/anticope/rejects/modules/ItemGenerator.java b/src/main/java/anticope/rejects/modules/ItemGenerator.java index 42d361b..a5b0403 100644 --- a/src/main/java/anticope/rejects/modules/ItemGenerator.java +++ b/src/main/java/anticope/rejects/modules/ItemGenerator.java @@ -1,13 +1,13 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.IntSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.InvUtils; +import meteordevelopment.orbit.EventHandler; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket; @@ -19,7 +19,7 @@ public class ItemGenerator extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final Setting speed = sgGeneral.add(new IntSetting.Builder() .name("speed") - .description("WARNING: High speeds will cause a ton of lag and can easily crash the game!") + .description("Stacks per tick. High speeds may cause lag.") .defaultValue(1) .min(1) .max(36) @@ -29,7 +29,7 @@ public class ItemGenerator extends Module { private final Setting stackSize = sgGeneral.add(new IntSetting.Builder() .name("stack-size") - .description("How many items to place in each stack. Doesn't seem to affect performance.") + .description("How many items to place in each stack. ") .defaultValue(1) .min(1) .max(64) diff --git a/src/main/java/anticope/rejects/modules/Jetpack.java b/src/main/java/anticope/rejects/modules/Jetpack.java new file mode 100644 index 0000000..93ca1b3 --- /dev/null +++ b/src/main/java/anticope/rejects/modules/Jetpack.java @@ -0,0 +1,41 @@ +package anticope.rejects.modules; + +import anticope.rejects.MeteorRejectsAddon; +import anticope.rejects.events.OffGroundSpeedEvent; +import meteordevelopment.meteorclient.events.world.TickEvent; +import meteordevelopment.meteorclient.mixininterface.IVec3d; +import meteordevelopment.meteorclient.settings.DoubleSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; +import meteordevelopment.meteorclient.systems.modules.Module; +import meteordevelopment.orbit.EventHandler; + +public class Jetpack extends Module { + private final SettingGroup sgGeneral = settings.getDefaultGroup(); + + private final Setting jetpackSpeed = sgGeneral.add(new DoubleSetting.Builder() + .name("jetpack-speed") + .description("How fast while ascending.") + .defaultValue(0.42) + .min(0) + .sliderMax(1) + .build() + ); + + public Jetpack() { + super(MeteorRejectsAddon.CATEGORY, "jetpack", "Flies as if using a jetpack."); + } + + @EventHandler + private void onTick(TickEvent.Pre event) { + if (mc.options.jumpKey.isPressed()) { + ((IVec3d) mc.player.getVelocity()).setY(jetpackSpeed.get()); + } + } + + @EventHandler + private void onOffGroundSpeed(OffGroundSpeedEvent event) { + event.speed = mc.player.getMovementSpeed() * jetpackSpeed.get().floatValue(); + } +} + diff --git a/src/main/java/anticope/rejects/modules/Lavacast.java b/src/main/java/anticope/rejects/modules/Lavacast.java index b878bf1..63269fe 100644 --- a/src/main/java/anticope/rejects/modules/Lavacast.java +++ b/src/main/java/anticope/rejects/modules/Lavacast.java @@ -1,18 +1,18 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.settings.IntSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; +import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.meteorclient.utils.render.color.SettingColor; +import meteordevelopment.orbit.EventHandler; import net.minecraft.block.Blocks; import net.minecraft.item.Items; import net.minecraft.util.Hand; diff --git a/src/main/java/anticope/rejects/modules/MossBot.java b/src/main/java/anticope/rejects/modules/MossBot.java index db5e187..83bfa1d 100644 --- a/src/main/java/anticope/rejects/modules/MossBot.java +++ b/src/main/java/anticope/rejects/modules/MossBot.java @@ -55,7 +55,7 @@ public class MossBot extends Module { return; } - BlockPos bestBlock = BlockPos.streamOutwards(new BlockPos(mc.player.getEyePos()), range.get(), range.get(), range.get()) + BlockPos bestBlock = BlockPos.streamOutwards(BlockPos.ofFloored(mc.player.getEyePos()), range.get(), range.get(), range.get()) .filter(b -> mc.player.getEyePos().distanceTo(Vec3d.ofCenter(b)) <= range.get() && !mossMap.containsKey(b)) .map(b -> Pair.of(b.toImmutable(), getMossSpots(b))) .filter(p -> p.getRight() > 10) diff --git a/src/main/java/anticope/rejects/modules/NewChunks.java b/src/main/java/anticope/rejects/modules/NewChunks.java index 35bbc28..ebc2ac0 100644 --- a/src/main/java/anticope/rejects/modules/NewChunks.java +++ b/src/main/java/anticope/rejects/modules/NewChunks.java @@ -14,13 +14,14 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket; import net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket; import net.minecraft.network.packet.s2c.play.ChunkDeltaUpdateS2CPacket; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.Direction; import net.minecraft.world.chunk.WorldChunk; -import java.util.*; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; /* Ported from: https://github.com/BleachDrinker420/BleachHack/blob/master/BleachHack-Fabric-1.16/src/main/java/bleach/hack/module/mods/NewChunks.java diff --git a/src/main/java/anticope/rejects/modules/ObsidianFarm.java b/src/main/java/anticope/rejects/modules/ObsidianFarm.java index 87f406c..931c60b 100644 --- a/src/main/java/anticope/rejects/modules/ObsidianFarm.java +++ b/src/main/java/anticope/rejects/modules/ObsidianFarm.java @@ -1,16 +1,17 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.player.AutoEat; +import meteordevelopment.orbit.EventHandler; import net.minecraft.block.Blocks; import net.minecraft.item.Items; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; + import java.util.ArrayList; import java.util.Comparator; import java.util.List; diff --git a/src/main/java/anticope/rejects/modules/OreSim.java b/src/main/java/anticope/rejects/modules/OreSim.java index b94ec05..d0e878d 100755 --- a/src/main/java/anticope/rejects/modules/OreSim.java +++ b/src/main/java/anticope/rejects/modules/OreSim.java @@ -8,33 +8,21 @@ import anticope.rejects.utils.Ore; import anticope.rejects.utils.seeds.Seed; import anticope.rejects.utils.seeds.Seeds; import baritone.api.BaritoneAPI; +import com.seedfinding.mccore.version.MCVersion; import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.settings.BoolSetting; -import meteordevelopment.meteorclient.settings.EnumSetting; -import meteordevelopment.meteorclient.settings.IntSetting; -import meteordevelopment.meteorclient.settings.Setting; -import meteordevelopment.meteorclient.settings.SettingGroup; +import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; import net.minecraft.client.world.ClientWorld; import net.minecraft.registry.RegistryKeys; import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.*; import net.minecraft.util.math.random.ChunkRandom; import net.minecraft.world.Heightmap; import net.minecraft.world.chunk.ChunkStatus; -import com.seedfinding.mccore.version.MCVersion; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; +import java.util.*; public class OreSim extends Module { @@ -187,7 +175,7 @@ public class OreSim extends Module { .get(chunkKey) .getOrDefault(ore, new HashSet<>()) .stream() - .map((vec3d) -> new BlockPos(vec3d)) + .map(BlockPos::ofFloored) .forEach(baritoneGoals::add); }); return baritoneGoals; diff --git a/src/main/java/anticope/rejects/modules/PacketFly.java b/src/main/java/anticope/rejects/modules/PacketFly.java index bcdebcd..1633974 100644 --- a/src/main/java/anticope/rejects/modules/PacketFly.java +++ b/src/main/java/anticope/rejects/modules/PacketFly.java @@ -1,7 +1,6 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; import meteordevelopment.meteorclient.events.entity.player.SendMovementPacketsEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; @@ -9,6 +8,7 @@ import meteordevelopment.meteorclient.mixin.PlayerPositionLookS2CPacketAccessor; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.PlayerUtils; +import meteordevelopment.orbit.EventHandler; import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import net.minecraft.network.packet.c2s.play.TeleportConfirmC2SPacket; import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; diff --git a/src/main/java/anticope/rejects/modules/Painter.java b/src/main/java/anticope/rejects/modules/Painter.java index 2a44279..d042fcc 100644 --- a/src/main/java/anticope/rejects/modules/Painter.java +++ b/src/main/java/anticope/rejects/modules/Painter.java @@ -2,20 +2,18 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; import anticope.rejects.utils.WorldUtils; -import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.world.BlockUtils; +import meteordevelopment.orbit.EventHandler; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.util.math.BlockPos; -import java.util.ArrayList; - public class Painter extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); diff --git a/src/main/java/anticope/rejects/modules/Rendering.java b/src/main/java/anticope/rejects/modules/Rendering.java index 5a72d72..a6186fd 100644 --- a/src/main/java/anticope/rejects/modules/Rendering.java +++ b/src/main/java/anticope/rejects/modules/Rendering.java @@ -1,16 +1,15 @@ package anticope.rejects.modules; -import java.io.IOException; - import anticope.rejects.MeteorRejectsAddon; -import net.minecraft.client.gl.PostEffectProcessor; -import net.minecraft.util.Identifier; - -import meteordevelopment.meteorclient.settings.EnumSetting; 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.Module; +import net.minecraft.client.gl.PostEffectProcessor; +import net.minecraft.util.Identifier; + +import java.io.IOException; public class Rendering extends Module { diff --git a/src/main/java/anticope/rejects/modules/ShieldBypass.java b/src/main/java/anticope/rejects/modules/ShieldBypass.java index 6c53ff4..5262d01 100644 --- a/src/main/java/anticope/rejects/modules/ShieldBypass.java +++ b/src/main/java/anticope/rejects/modules/ShieldBypass.java @@ -4,7 +4,6 @@ import anticope.rejects.MeteorRejectsAddon; import meteordevelopment.meteorclient.events.entity.player.AttackEntityEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.BoolSetting; -import meteordevelopment.meteorclient.settings.DoubleSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; @@ -20,7 +19,7 @@ public class ShieldBypass extends Module { private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotate towards enemy. Disable if killaura enabled.") + .description("Rotate towards enemy.") .defaultValue(true) .build() ); @@ -43,7 +42,7 @@ public class ShieldBypass extends Module { if (originalPos != null && target != null) { mc.interactionManager.attackEntity(mc.player, target); mc.player.setPosition(originalPos); - if (rotate.get()) Rotations.rotate(-mc.player.getYaw(), mc.player.getPitch()); + if (rotate.get()) Rotations.rotate(-mc.player.getYaw(), mc.player.getPitch(), -10); } originalPos = null; target = null; @@ -64,11 +63,11 @@ public class ShieldBypass extends Module { while (range >= 0) { Vec3d tp = Vec3d.fromPolar(0, mc.player.getYaw()).normalize().multiply(range); Vec3d newPos = tp.add(e.getPos()); - BlockPos pos = new BlockPos(newPos); + BlockPos pos = BlockPos.ofFloored(newPos); for (int i = -2; i <= 2; i++) { if (mc.player.world.getBlockState(pos.up(i)).isAir() && mc.player.world.getBlockState(pos).isAir()) { this.originalPos = originalPos; - if (rotate.get()) Rotations.rotate(-mc.player.getYaw(), mc.player.getPitch()); + if (rotate.get()) Rotations.rotate(-mc.player.getYaw(), mc.player.getPitch(), -10); target = e; event.cancel(); mc.player.setPosition(newPos.add(0, i, 0)); diff --git a/src/main/java/anticope/rejects/modules/SkeletonESP.java b/src/main/java/anticope/rejects/modules/SkeletonESP.java index a9bb3d9..22731eb 100644 --- a/src/main/java/anticope/rejects/modules/SkeletonESP.java +++ b/src/main/java/anticope/rejects/modules/SkeletonESP.java @@ -62,7 +62,6 @@ public class SkeletonESP extends Module { float g = event.tickDelta; RenderSystem.setShader(GameRenderer::getPositionColorProgram); - RenderSystem.disableTexture(); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableDepthTest(); @@ -88,8 +87,8 @@ public class SkeletonESP extends Module { float j = MathHelper.lerpAngleDegrees(g, playerEntity.prevHeadYaw, playerEntity.headYaw); if (mc.player == entity && Rotations.rotationTimer < rotationHoldTicks) j = Rotations.serverYaw; - float q = playerEntity.limbAngle - playerEntity.limbDistance * (1.0F - g); - float p = MathHelper.lerp(g, playerEntity.lastLimbDistance, playerEntity.limbDistance); + float q = playerEntity.limbAnimator.getPos() - playerEntity.limbAnimator.getSpeed() * (1.0F - g); + float p = playerEntity.limbAnimator.getSpeed(g); float o = (float) playerEntity.age + g; float k = j - h; float m = playerEntity.getPitch(g); @@ -186,7 +185,6 @@ public class SkeletonESP extends Module { matrixStack.translate(-footPos.x, -footPos.y, -footPos.z); }); - RenderSystem.enableTexture(); RenderSystem.disableCull(); RenderSystem.disableBlend(); RenderSystem.enableDepthTest(); diff --git a/src/main/java/anticope/rejects/modules/SoundLocator.java b/src/main/java/anticope/rejects/modules/SoundLocator.java index b39692a..cb3b878 100644 --- a/src/main/java/anticope/rejects/modules/SoundLocator.java +++ b/src/main/java/anticope/rejects/modules/SoundLocator.java @@ -1,24 +1,21 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; -import meteordevelopment.orbit.EventHandler; -import meteordevelopment.meteorclient.events.world.PlaySoundEvent; import meteordevelopment.meteorclient.events.render.Render3DEvent; +import meteordevelopment.meteorclient.events.world.PlaySoundEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.renderer.ShapeMode; -import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.settings.*; -import meteordevelopment.meteorclient.systems.modules.Categories; -import meteordevelopment.meteorclient.utils.render.color.SettingColor; +import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.ChatUtils; -import meteordevelopment.meteorclient.settings.SoundEventListSetting; - -import net.minecraft.text.MutableText; -import net.minecraft.text.Text; -import net.minecraft.util.Formatting; +import meteordevelopment.meteorclient.utils.render.color.SettingColor; +import meteordevelopment.orbit.EventHandler; import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.sound.WeightedSoundSet; import net.minecraft.sound.SoundEvent; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; import net.minecraft.util.math.Box; import net.minecraft.util.math.Vec3d; diff --git a/src/main/java/anticope/rejects/modules/TreeAura.java b/src/main/java/anticope/rejects/modules/TreeAura.java index 45a12e8..e1d4133 100644 --- a/src/main/java/anticope/rejects/modules/TreeAura.java +++ b/src/main/java/anticope/rejects/modules/TreeAura.java @@ -1,5 +1,6 @@ package anticope.rejects.modules; +import anticope.rejects.MeteorRejectsAddon; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Module; @@ -20,7 +21,6 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.MathHelper; -import anticope.rejects.MeteorRejectsAddon; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/anticope/rejects/utils/server/MServerInfo.java b/src/main/java/anticope/rejects/utils/server/MServerInfo.java index dbeb8a5..bc4f29c 100644 --- a/src/main/java/anticope/rejects/utils/server/MServerInfo.java +++ b/src/main/java/anticope/rejects/utils/server/MServerInfo.java @@ -18,20 +18,18 @@ public class MServerInfo { public int protocolVersion = SharedConstants.getGameVersion().getProtocolVersion(); public String version = null; public List playerListSummary = Collections.emptyList(); - @Nullable - private String icon; + private byte @Nullable [] icon; public MServerInfo(String name, String address) { this.name = name; this.address = address; } - @Nullable - public String getIcon() { + public byte @Nullable [] getIcon() { return this.icon; } - public void setIcon(@Nullable String string) { - this.icon = string; + public void setIcon(byte @Nullable [] bytes) { + this.icon = bytes; } } diff --git a/src/main/java/anticope/rejects/utils/server/ServerListPinger.java b/src/main/java/anticope/rejects/utils/server/ServerListPinger.java index 2f8b400..a99152b 100644 --- a/src/main/java/anticope/rejects/utils/server/ServerListPinger.java +++ b/src/main/java/anticope/rejects/utils/server/ServerListPinger.java @@ -22,7 +22,6 @@ import net.minecraft.server.ServerMetadata; import net.minecraft.text.Text; import net.minecraft.util.Util; import net.minecraft.util.math.MathHelper; -import org.apache.commons.lang3.ArrayUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -65,6 +64,7 @@ public class ServerListPinger { } } + public void add(final MServerInfo entry, final Runnable runnable) throws UnknownHostException { Timer timeoutTimer = new Timer(); ServerAddress serverAddress = ServerAddress.parse(entry.address); @@ -90,58 +90,44 @@ public class ServerListPinger { clientConnection.disconnect(Text.translatable("multiplayer.status.unrequested")); } else { this.received = true; - ServerMetadata serverMetadata = packet.getServerMetadata(); - if (serverMetadata.getDescription() != null) { - entry.label = serverMetadata.getDescription().getString(); - } else { - entry.label = ""; - } - - if (serverMetadata.getVersion() != null) { - entry.version = serverMetadata.getVersion().getGameVersion(); - entry.protocolVersion = serverMetadata.getVersion().getProtocolVersion(); - } else { + ServerMetadata serverMetadata = packet.metadata(); + entry.label = serverMetadata.description().getString(); + serverMetadata.version().ifPresentOrElse((version) -> { + entry.version = version.gameVersion(); + entry.protocolVersion = version.protocolVersion(); + }, () -> { entry.version = "multiplayer.status.old"; entry.protocolVersion = 0; - } + }); + serverMetadata.players().ifPresentOrElse((players) -> { + entry.playerCountLabel = getPlayerCountLabel(players.online(), players.max()); + entry.playerCount = players.online(); + if (!players.sample().isEmpty()) { + List list = new ArrayList(players.sample().size()); + Iterator var3 = players.sample().iterator(); - if (serverMetadata.getPlayers() != null) { - entry.playerCountLabel = ServerListPinger.getPlayerCountLabel(serverMetadata.getPlayers().getOnlinePlayerCount(), serverMetadata.getPlayers().getPlayerLimit()); - entry.playerCount = serverMetadata.getPlayers().getOnlinePlayerCount(); - entry.playercountMax = serverMetadata.getPlayers().getPlayerLimit(); - List list = Lists.newArrayList(); - if (ArrayUtils.isNotEmpty(serverMetadata.getPlayers().getSample())) { - GameProfile[] var4 = serverMetadata.getPlayers().getSample(); - - for (GameProfile gameProfile : var4) { + while (var3.hasNext()) { + GameProfile gameProfile = (GameProfile) var3.next(); list.add(Text.literal(gameProfile.getName())); } - if (serverMetadata.getPlayers().getSample().length < serverMetadata.getPlayers().getOnlinePlayerCount()) { - list.add(Text.translatable("multiplayer.status.and_more", serverMetadata.getPlayers().getOnlinePlayerCount() - serverMetadata.getPlayers().getSample().length)); + if (players.sample().size() < players.online()) { + list.add(Text.translatable("multiplayer.status.and_more", players.online() - players.sample().size())); } entry.playerListSummary = list; - } - } else { - entry.playerCountLabel = "multiplayer.status.unknown"; - } - - String string = null; - if (serverMetadata.getFavicon() != null) { - String string2 = serverMetadata.getFavicon(); - if (string2.startsWith("data:image/png;base64,")) { - string = string2.substring("data:image/png;base64," .length()); } else { - ServerListPinger.LOGGER.error("Invalid server icon (unknown format)"); + entry.playerListSummary = List.of(); } - } - if (!Objects.equals(string, entry.getIcon())) { - entry.setIcon(string); - runnable.run(); - } + }, () -> entry.playerCountLabel = "multiplayer.status.unknown"); + serverMetadata.favicon().ifPresent((favicon) -> { + if (!Arrays.equals(favicon.iconBytes(), entry.getIcon())) { + entry.setIcon(favicon.iconBytes()); + runnable.run(); + } + }); this.startTime = Util.getMeasuringTimeMs(); clientConnection.send(new QueryPingC2SPacket(this.startTime)); this.sentQuery = true; @@ -168,17 +154,18 @@ public class ServerListPinger { notifyDisconnectListeners(); } - public ClientConnection getConnection() { - return clientConnection; + public boolean isConnectionOpen() { + return clientConnection.isOpen(); } }); try { clientConnection.send(new HandshakeC2SPacket(serverAddress.getAddress(), serverAddress.getPort(), NetworkState.STATUS)); clientConnection.send(new QueryRequestC2SPacket()); - } catch (Throwable var6) { - LOGGER.error("Couldn't send handshake", var6); + } catch (Throwable var8) { + LOGGER.error("Failed to ping server {}", serverAddress, var8); } + } private void ping(final MServerInfo serverInfo) { @@ -187,7 +174,7 @@ public class ServerListPinger { protected void initChannel(Channel channel) { try { channel.config().setOption(ChannelOption.TCP_NODELAY, true); - } catch (ChannelException var3) { + } catch (ChannelException ignored) { } channel.pipeline().addLast(new SimpleChannelInboundHandler() { @@ -199,7 +186,7 @@ public class ServerListPinger { byteBuf.writeByte(254); byteBuf.writeByte(1); byteBuf.writeByte(250); - char[] cs = "MC|PingHost" .toCharArray(); + char[] cs = "MC|PingHost".toCharArray(); byteBuf.writeShort(cs.length); char[] var4 = cs; int var5 = cs.length; @@ -235,7 +222,7 @@ public class ServerListPinger { if (s == 255) { String string = new String(byteBuf.readBytes(byteBuf.readShort() * 2).array(), StandardCharsets.UTF_16BE); String[] strings = Iterables.toArray(ServerListPinger.ZERO_SPLITTER.split(string), String.class); - if ("§1" .equals(strings[0])) { + if ("§1".equals(strings[0])) { String string2 = strings[2]; String string3 = strings[3]; int j = MathHelper.parseInt(strings[4], -1); diff --git a/src/main/java/anticope/rejects/utils/server/ServerPinger.java b/src/main/java/anticope/rejects/utils/server/ServerPinger.java index 7dfb00c..8958eb4 100644 --- a/src/main/java/anticope/rejects/utils/server/ServerPinger.java +++ b/src/main/java/anticope/rejects/utils/server/ServerPinger.java @@ -2,7 +2,6 @@ package anticope.rejects.utils.server; import anticope.rejects.gui.servers.ServerFinderScreen; -import java.net.UnknownHostException; import java.util.ArrayList; import java.util.concurrent.atomic.AtomicInteger; diff --git a/src/main/resources/meteor-rejects.mixins.json b/src/main/resources/meteor-rejects.mixins.json index b681774..6e19a7a 100644 --- a/src/main/resources/meteor-rejects.mixins.json +++ b/src/main/resources/meteor-rejects.mixins.json @@ -14,6 +14,7 @@ "LivingEntityRendererMixin", "MultiplayerScreenAccessor", "MultiplayerScreenMixin", + "PlayerEntityMixin", "PlayerMoveC2SPacketAccessor", "ServerListAccessor", "StructureVoidBlockMixin",