Skip to content

Commit febe4c3

Browse files
committed
new Modules
1 parent 31348d8 commit febe4c3

File tree

6 files changed

+175
-1
lines changed

6 files changed

+175
-1
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ public void onInitialize() {
5656
Modules.get().add(new Bookchat());
5757
Modules.get().add(new StrongholdFinder());
5858
Modules.get().add(new Fling());
59+
Modules.get().add(new Girlboss());
60+
Modules.get().add(new PermJukebox());
61+
Modules.get().add(new AntiNbtBypasser());
5962

6063

6164
// Commands
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.dark.zewo2.mixin;
2+
3+
import com.dark.zewo2.modules.Girlboss;
4+
import com.mojang.authlib.GameProfile;
5+
import meteordevelopment.meteorclient.systems.modules.Modules;
6+
import net.minecraft.client.network.message.MessageHandler;
7+
import net.minecraft.network.message.MessageSignatureData;
8+
import net.minecraft.network.message.MessageType;
9+
import net.minecraft.network.message.SignedMessage;
10+
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.injection.At;
12+
import org.spongepowered.asm.mixin.injection.Inject;
13+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14+
15+
import java.nio.ByteBuffer;
16+
17+
@Mixin(MessageHandler.class)
18+
public class MixinMessageHandler {
19+
20+
@Inject(method = "onChatMessage", at = @At("HEAD"))
21+
public void onChatMessage(final SignedMessage message, final GameProfile sender, final MessageType.Parameters params, final CallbackInfo ci) {
22+
if (message.signature() == null) {
23+
return;
24+
}
25+
26+
if (!Modules.get().get(Girlboss.class).isActive()) return;
27+
28+
Girlboss.receivedMessage(message.signature().toByteBuffer());
29+
for (final MessageSignatureData lastSeen : message.signedBody().lastSeenMessages().entries()) {
30+
final ByteBuffer signatureByteBuffer = lastSeen.toByteBuffer();
31+
Girlboss.addSeenSignature(sender.getId(), signatureByteBuffer);
32+
}
33+
}
34+
35+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.events.packets.PacketEvent;
5+
import meteordevelopment.meteorclient.settings.BoolSetting;
6+
import meteordevelopment.meteorclient.settings.Setting;
7+
import meteordevelopment.meteorclient.settings.SettingGroup;
8+
import meteordevelopment.meteorclient.systems.modules.Module;
9+
import meteordevelopment.orbit.EventHandler;
10+
import net.minecraft.item.ItemStack;
11+
import net.minecraft.item.Items;
12+
import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket;
13+
14+
public class AntiNbtBypasser extends Module {
15+
private final SettingGroup sgGeneral = settings.getDefaultGroup();
16+
private final Setting<Boolean> reset = sgGeneral.add(new BoolSetting.Builder().name("Overwrite").defaultValue(false).build());
17+
public AntiNbtBypasser() {
18+
super(Addon.CATEGORY, "AntiNbtBypasser", "Bypass some nbt restrictions");
19+
}
20+
21+
@EventHandler
22+
private void onsent(PacketEvent.Send event){
23+
if (event.packet instanceof CreativeInventoryActionC2SPacket packet) {
24+
ItemStack spoofed = packet.getItemStack();
25+
if (spoofed.getItem() == Items.AIR) {
26+
return;
27+
}
28+
if (reset.get()) {
29+
toggle();
30+
mc.player.networkHandler.sendPacket(new CreativeInventoryActionC2SPacket(36, new ItemStack(Items.AIR, 0)));
31+
toggle();
32+
if (mc.player.getMainHandStack().getItem() != Items.AIR) {
33+
toggle();
34+
mc.player.networkHandler.sendPacket(new CreativeInventoryActionC2SPacket(36 + mc.player.getInventory().selectedSlot, new ItemStack(Items.AIR, 0)));
35+
toggle();
36+
}
37+
}
38+
spoofed.setCount(1);
39+
event.cancel();
40+
toggle();
41+
mc.player.networkHandler.sendPacket(new CreativeInventoryActionC2SPacket(-999, spoofed));
42+
toggle();
43+
}
44+
}
45+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.systems.modules.Category;
5+
import meteordevelopment.meteorclient.systems.modules.Module;
6+
import com.google.common.collect.Multimap;
7+
import com.google.common.collect.MultimapBuilder;
8+
import net.minecraft.client.MinecraftClient;
9+
import net.minecraft.entity.player.PlayerEntity;
10+
import net.minecraft.text.Text;
11+
12+
import java.nio.ByteBuffer;
13+
import java.util.*;
14+
15+
public class Girlboss extends Module {
16+
public Girlboss() {
17+
super(Addon.CATEGORY, "Girlboss", "Detect when someone privately messages a person");
18+
}
19+
20+
private static final Multimap<ByteBuffer, UUID> signatures = MultimapBuilder.hashKeys().hashSetValues().build();
21+
private static final Set<ByteBuffer> seen = new HashSet<>();
22+
private static final Set<String> alertsSent = new HashSet<>();
23+
private static int alertsClearedTick = -1;
24+
private static boolean hasSentFirstAlert = false;
25+
26+
public static void receivedMessage(final ByteBuffer signature) {
27+
seen.add(signature);
28+
}
29+
30+
public static void addSeenSignature(final UUID sender, final ByteBuffer signature) {
31+
if (seen.contains(signature) || signatures.containsEntry(signature, sender)) {
32+
return;
33+
}
34+
35+
signatures.put(signature, sender);
36+
if (MinecraftClient.getInstance().world == null) {
37+
return;
38+
}
39+
40+
final Collection<UUID> uuids = signatures.get(signature);
41+
final List<String> names = new ArrayList<>();
42+
for (final UUID uuid : uuids) {
43+
final PlayerEntity playerEntity = MinecraftClient.getInstance().world.getPlayerByUuid(uuid);
44+
if (playerEntity != null) {
45+
names.add(playerEntity.getName().getString());
46+
}
47+
}
48+
49+
final int last = names.size() - 1;
50+
final String joinedNames = String.join(" and ", String.join(", ", names.subList(0, last)), names.get(last));
51+
final String verb = names.size() > 1 ? "have" : "has";
52+
53+
final String message = "§a[Girlboss] §7" + (names.size() == 1 ? names.get(0) : joinedNames) + " " + verb + " seen a message you haven't!";
54+
if (MinecraftClient.getInstance().player.age != alertsClearedTick) {
55+
alertsClearedTick = MinecraftClient.getInstance().player.age;
56+
alertsSent.clear();
57+
}
58+
if (alertsSent.add(message) && hasSentFirstAlert) {
59+
MinecraftClient.getInstance().player.sendMessage(Text.literal(message));
60+
}
61+
hasSentFirstAlert = true;
62+
}
63+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.events.packets.PacketEvent;
5+
import meteordevelopment.meteorclient.systems.modules.Category;
6+
import meteordevelopment.meteorclient.systems.modules.Module;
7+
import meteordevelopment.orbit.EventHandler;
8+
import net.minecraft.block.JukeboxBlock;
9+
import net.minecraft.item.MusicDiscItem;
10+
import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket;
11+
12+
public class PermJukebox extends Module {
13+
public PermJukebox() {
14+
super(Addon.CATEGORY, "PermJukebox", "Make the jukebox play permanently");
15+
}
16+
17+
@EventHandler
18+
private void onpacket(PacketEvent.Send event){
19+
if (event.packet instanceof PlayerInteractBlockC2SPacket packet){
20+
if ((mc.world.getBlockState(packet.getBlockHitResult().getBlockPos()).getBlock() instanceof JukeboxBlock) && (mc.player.getInventory().getMainHandStack().getItem() instanceof MusicDiscItem)) {
21+
toggle();
22+
mc.player.networkHandler.sendPacket(packet);
23+
toggle();
24+
}
25+
}
26+
}
27+
}

src/main/resources/zewo2.mixins.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"MultiplayerScreenMixin",
88
"RenderCapes",
99
"SessionMixin",
10-
"Interface.INClientPlayerInteractionManagerMixin"
10+
"Interface.INClientPlayerInteractionManagerMixin",
11+
"MixinMessageHandler"
1112
],
1213
"injectors": {
1314
"defaultRequire": 1

0 commit comments

Comments
 (0)