Skip to content

Commit 8e6d908

Browse files
committed
modules
1 parent 0b5a0a2 commit 8e6d908

File tree

9 files changed

+258
-3
lines changed

9 files changed

+258
-3
lines changed

src/main/java/com/dark/zewo2/Addon.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ public void onInitialize() {
6262
Modules.get().add(new PingSpoof());
6363
Modules.get().add(new ForceField());
6464
Modules.get().add(new SitModule());
65-
65+
Modules.get().add(new AutoWordReact());
66+
Modules.get().add(new StorageVoider());
6667

6768
// Commands
6869
Commands.add(new CheckCMD());
@@ -79,6 +80,7 @@ public void onInitialize() {
7980
Commands.add(new ReloadCapes());
8081
Commands.add(new SpamCommand());
8182
Commands.add(new CrackedOpSpamCommand());
83+
Commands.add(new MinefortJoin());
8284

8385
// HUD
8486
// Hud.get().register(HudExample.INFO);
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package com.dark.zewo2.commands;
2+
3+
import com.google.gson.JsonArray;
4+
import com.google.gson.JsonElement;
5+
import com.google.gson.JsonObject;
6+
import com.google.gson.JsonParser;
7+
import com.mojang.brigadier.arguments.StringArgumentType;
8+
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
9+
import io.netty.util.Signal;
10+
import meteordevelopment.meteorclient.commands.Command;
11+
import meteordevelopment.meteorclient.commands.arguments.PlayerArgumentType;
12+
import meteordevelopment.meteorclient.utils.Utils;
13+
import meteordevelopment.meteorclient.utils.network.Http;
14+
import meteordevelopment.meteorclient.utils.player.ChatUtils;
15+
import meteordevelopment.meteorclient.utils.player.PlayerUtils;
16+
import net.minecraft.client.gui.screen.ingame.InventoryScreen;
17+
import net.minecraft.command.CommandSource;
18+
import net.minecraft.command.argument.TextArgumentType;
19+
import net.minecraft.text.Text;
20+
21+
import java.util.HashMap;
22+
import java.util.concurrent.CompletableFuture;
23+
24+
import static com.mojang.brigadier.Command.SINGLE_SUCCESS;
25+
26+
public class MinefortJoin extends Command {
27+
28+
public MinefortJoin() {
29+
super("minefort", "Join another player on minefort >> @just_jakob", "mf");
30+
}
31+
32+
@Override
33+
public void build(LiteralArgumentBuilder<CommandSource> builder) {
34+
builder.then(literal("join").then(argument("player", StringArgumentType.string()).executes(context -> {
35+
String player = StringArgumentType.getString(context, "player");
36+
37+
info("Searching...");
38+
39+
find(player).thenAccept((ser) -> {
40+
if(ser == null)
41+
error("Player not found!");
42+
else {
43+
info(Text.literal(player + " found on " + ser + ", attempting server switch!"));
44+
ChatUtils.sendPlayerMsg("/server " + ser);
45+
}
46+
});
47+
48+
return SINGLE_SUCCESS;
49+
})));
50+
51+
builder.then(literal("find").then(argument("player", StringArgumentType.string()).executes(context -> {
52+
String player = StringArgumentType.getString(context, "player");
53+
54+
info("Searching...");
55+
56+
find(player).thenAccept((ser) -> {
57+
if(ser == null)
58+
error("Player not found!");
59+
else
60+
info(player + " is on " + ser);
61+
});
62+
63+
return SINGLE_SUCCESS;
64+
})));
65+
}
66+
67+
public CompletableFuture<String> find(String player) {
68+
return CompletableFuture.supplyAsync(() -> {
69+
try {
70+
71+
String uuid = JsonParser.parseString(Http.get("https://playerdb.co/api/player/minecraft/" + player).sendString()).getAsJsonObject()
72+
.getAsJsonObject("data").getAsJsonObject("player").get("id").getAsString();
73+
74+
String str = Http.post("https://api.minefort.com/v1/servers/list").bodyJson("{\"pagination\": { \"skip\": 0, \"limit\": 500 }, \"sort\": { \"field\": \"players.online\", \"order\": \"desc\" }}").sendString();
75+
76+
JsonArray obj = JsonParser.parseString(str).getAsJsonObject().get("result").getAsJsonArray();
77+
78+
for (JsonElement jsonElement : obj) {
79+
for (JsonElement p : jsonElement.getAsJsonObject().getAsJsonObject("players").getAsJsonArray("list")) {
80+
if(p.getAsJsonObject().get("uuid").getAsString().equalsIgnoreCase(uuid)) {
81+
return jsonElement.getAsJsonObject().get("serverName").getAsString();
82+
}
83+
}
84+
}
85+
86+
return null;
87+
} catch (Exception e) {
88+
error("Something went wrong! " + e.getMessage());
89+
return null;
90+
}
91+
});
92+
}
93+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.dark.zewo2.mixin;
2+
3+
import com.dark.zewo2.modules.AntiBorder;
4+
import meteordevelopment.meteorclient.systems.modules.Modules;
5+
import net.minecraft.entity.Entity;
6+
import net.minecraft.util.math.Box;
7+
import net.minecraft.world.border.WorldBorder;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Redirect;
11+
12+
@Mixin(Entity.class)
13+
public abstract class EntityMixin {
14+
@Redirect(method = "adjustMovementForCollisions(Lnet/minecraft/entity/Entity;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Box;Lnet/minecraft/world/World;Ljava/util/List;)Lnet/minecraft/util/math/Vec3d;", at = @At(value = "INVOKE", target = "net/minecraft/world/border/WorldBorder.canCollide(Lnet/minecraft/entity/Entity;Lnet/minecraft/util/math/Box;)Z"))
15+
private static boolean Collision(WorldBorder instance, Entity entity, Box box) {
16+
return !Modules.get().get(AntiBorder.class).isActive() && instance.canCollide(entity, box);
17+
}
18+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.dark.zewo2.mixin;
2+
3+
import com.dark.zewo2.modules.StorageVoider;
4+
import meteordevelopment.meteorclient.systems.modules.Modules;
5+
import meteordevelopment.meteorclient.systems.modules.misc.InventoryTweaks;
6+
import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
7+
import net.minecraft.client.gui.screen.ingame.HandledScreen;
8+
import net.minecraft.client.gui.screen.ingame.ScreenHandlerProvider;
9+
import net.minecraft.client.gui.widget.ButtonWidget;
10+
import net.minecraft.entity.player.PlayerInventory;
11+
import net.minecraft.screen.GenericContainerScreenHandler;
12+
import net.minecraft.text.Text;
13+
import org.spongepowered.asm.mixin.Mixin;
14+
15+
@Mixin(GenericContainerScreen.class)
16+
public abstract class GenericContainerScreenMixin extends HandledScreen<GenericContainerScreenHandler> implements ScreenHandlerProvider<GenericContainerScreenHandler> {
17+
public GenericContainerScreenMixin(GenericContainerScreenHandler container, PlayerInventory playerInventory, Text name) {
18+
super(container, playerInventory, name);
19+
}
20+
21+
@Override
22+
protected void init() {
23+
super.init();
24+
25+
StorageVoider storageVoider = Modules.get().get(StorageVoider.class);
26+
27+
if (storageVoider.isActive()) {
28+
addDrawableChild(
29+
new ButtonWidget.Builder(Text.literal("Voider"), button -> storageVoider.voider(handler))
30+
.position(x + backgroundWidth - 150, y + -15)
31+
.size(50, 12)
32+
.build()
33+
);
34+
}
35+
}
36+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.systems.modules.Module;
5+
6+
public class AntiBorder extends Module {
7+
public AntiBorder() {
8+
super(Addon.CATEGORY, "AntiBorder", "Remove collisions from the world border");
9+
}
10+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import com.dark.zewo2.Utils.Utils;
5+
import meteordevelopment.meteorclient.events.game.ReceiveMessageEvent;
6+
import meteordevelopment.meteorclient.settings.IntSetting;
7+
import meteordevelopment.meteorclient.settings.Setting;
8+
import meteordevelopment.meteorclient.settings.SettingGroup;
9+
import meteordevelopment.meteorclient.settings.StringSetting;
10+
import meteordevelopment.meteorclient.systems.modules.Category;
11+
import meteordevelopment.meteorclient.systems.modules.Module;
12+
import meteordevelopment.meteorclient.utils.player.ChatUtils;
13+
import meteordevelopment.orbit.EventHandler;
14+
import net.minecraft.text.Text;
15+
16+
public class AutoWordReact extends Module {
17+
public AutoWordReact() {
18+
super(Addon.CATEGORY, "AutoWordReact", "Automatically say word reactions");
19+
}
20+
21+
private final SettingGroup sgGeneral = this.settings.getDefaultGroup();
22+
private final Setting<String> text = sgGeneral.add(
23+
new StringSetting.Builder().name("text").description("unformatted text before word to look for").defaultValue("").build());
24+
25+
private final Setting<Integer> delay = sgGeneral.add(new IntSetting.Builder()
26+
.name("delay")
27+
.description("The delay. (ms)")
28+
.defaultValue(0)
29+
.min(0)
30+
.sliderMax(1000)
31+
.build()
32+
);
33+
@EventHandler
34+
private void onmessage(ReceiveMessageEvent event){
35+
String check = String.valueOf(Text.literal(event.getMessage().getString()));
36+
String message = check.substring(check.indexOf(text.get()) + text.get().length() + 1, check.length()).split(" ")[0];
37+
38+
if (check.contains(text.get())) {
39+
new Thread(() -> {
40+
try {
41+
Thread.sleep(delay.get());
42+
} catch (InterruptedException e) {
43+
throw new RuntimeException(e);
44+
}
45+
mc.player.networkHandler.sendChatMessage(message);
46+
}).start();
47+
}
48+
}
49+
}

src/main/java/com/dark/zewo2/modules/SitModule.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package com.dark.zewo2.modules;
22

33
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.events.packets.PacketEvent;
45
import meteordevelopment.meteorclient.events.world.TickEvent;
56
import meteordevelopment.meteorclient.systems.modules.Category;
67
import meteordevelopment.meteorclient.systems.modules.Module;
78
import meteordevelopment.orbit.EventHandler;
89
import net.minecraft.entity.Entity;
910
import net.minecraft.entity.player.PlayerEntity;
1011
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
12+
import net.minecraft.network.packet.s2c.play.DeathMessageS2CPacket;
1113
import net.minecraft.util.hit.EntityHitResult;
1214
import net.minecraft.util.hit.HitResult;
1315

@@ -26,7 +28,7 @@ public void onActivate() {
2628
@EventHandler
2729
private void ontick(TickEvent.Pre event){
2830
if (target != null) {
29-
mc.player.setPosition(target.getPos().x, target.getPos().y + target.getHeight(), target.getPos().z);
31+
mc.player.setPosition(target.getPos().x, target.getPos().y + target.getHeight() + 0.04, target.getPos().z);
3032
mc.player.setVelocity(0,0,0);
3133

3234
if (kickdelay <= 0) {
@@ -47,4 +49,12 @@ private void ontick(TickEvent.Pre event){
4749
target = null;
4850
}
4951
}
52+
53+
@EventHandler
54+
private void onPacketReceive(PacketEvent.Receive event) {
55+
if (event.packet instanceof DeathMessageS2CPacket packet) {
56+
Entity entity = mc.world.getEntityById(packet.getEntityId());
57+
target = null;
58+
}
59+
}
5060
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.settings.SettingGroup;
5+
import meteordevelopment.meteorclient.systems.modules.Categories;
6+
import meteordevelopment.meteorclient.systems.modules.Module;
7+
import meteordevelopment.meteorclient.utils.network.MeteorExecutor;
8+
import net.minecraft.screen.GenericContainerScreenHandler;
9+
import net.minecraft.screen.ScreenHandler;
10+
import net.minecraft.screen.slot.SlotActionType;
11+
12+
public class StorageVoider extends Module {
13+
14+
ScreenHandler handler;
15+
public StorageVoider() {
16+
super(Addon.CATEGORY, "Storage Voider", "Void everything in a storage block");
17+
}
18+
private final SettingGroup sgGeneral = settings.getDefaultGroup();
19+
20+
private int getRows(ScreenHandler handler) {
21+
return (handler instanceof GenericContainerScreenHandler ? ((GenericContainerScreenHandler) handler).getRows() : 3);
22+
}
23+
private void moveSlots(ScreenHandler handler, int start, int end) {
24+
for (int i = start; i < end; i++) {
25+
if (!handler.getSlot(i).hasStack()) continue;
26+
27+
// Exit if user closes screen
28+
if (mc.currentScreen == null) break;
29+
mc.interactionManager.clickSlot(mc.player.currentScreenHandler.syncId, i, 50, SlotActionType.SWAP, mc.player);
30+
}
31+
}
32+
33+
public void voider(ScreenHandler handler) {
34+
MeteorExecutor.execute(() -> moveSlots(handler, 0, getRows(handler) * 9));
35+
}
36+
}

src/main/resources/zewo2.mixins.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
"RenderCapes",
99
"SessionMixin",
1010
"Interface.INClientPlayerInteractionManagerMixin",
11-
"PlayerListEntryMixin"
11+
"PlayerListEntryMixin",
12+
"GenericContainerScreenMixin"
1213
],
1314
"injectors": {
1415
"defaultRequire": 1

0 commit comments

Comments
 (0)