Skip to content

Commit a74c28a

Browse files
committed
fix lithium crash
1 parent 7956ca9 commit a74c28a

File tree

12 files changed

+319
-42
lines changed

12 files changed

+319
-42
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.dark.zewo2.commands.*;
44
import com.dark.zewo2.modules.*;
5+
import com.dark.zewo2.modules.Boykisser;
56
import com.mojang.logging.LogUtils;
67
import meteordevelopment.meteorclient.addons.MeteorAddon;
78
import meteordevelopment.meteorclient.commands.Commands;
@@ -51,13 +52,15 @@ public void onInitialize() {
5152
Modules.get().add(new AutoHorn());
5253
Modules.get().add(new AntiSpawnpoint());
5354
Modules.get().add(new phase());
54-
Modules.get().add(new AntiBorder());
5555
Modules.get().add(new Bookchat());
5656
Modules.get().add(new StrongholdFinder());
5757
Modules.get().add(new Fling());
5858
Modules.get().add(new PermJukebox());
5959
Modules.get().add(new AntiNbtBypasser());
6060
Modules.get().add(new SignGriefer());
61+
Modules.get().add(new Boykisser());
62+
Modules.get().add(new PingSpoof());
63+
Modules.get().add(new ForceField());
6164

6265

6366
// Commands

src/main/java/com/dark/zewo2/mixin/EntityMixin.java

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.dark.zewo2.mixin;
2+
3+
import meteordevelopment.meteorclient.utils.misc.input.KeyBinds;
4+
import net.minecraft.client.option.KeyBinding;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.Overwrite;
7+
8+
@Mixin(value = KeyBinds.class, remap = false)
9+
10+
public class NoKeybindsModule {
11+
12+
@Overwrite
13+
public static KeyBinding[] apply(KeyBinding[] binds) {
14+
return binds;
15+
}
16+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.dark.zewo2.mixin;
2+
3+
import com.dark.zewo2.modules.Boykisser;
4+
import com.mojang.authlib.GameProfile;
5+
import meteordevelopment.meteorclient.systems.modules.Modules;
6+
import net.minecraft.client.network.PlayerListEntry;
7+
import net.minecraft.util.Identifier;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.Shadow;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import org.spongepowered.asm.mixin.injection.Inject;
12+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
13+
14+
@Mixin(PlayerListEntry.class)
15+
public abstract class PlayerListEntryMixin {
16+
@Shadow
17+
public abstract GameProfile getProfile();
18+
19+
@Inject(method = "getSkinTexture", at = @At("HEAD"), cancellable = true)
20+
private void onGetTexture(CallbackInfoReturnable<Identifier> info) {
21+
if (Modules.get().get(Boykisser.class).isActive()) {
22+
info.setReturnValue(Boykisser.boykisser);
23+
}
24+
}
25+
}

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

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.events.render.Render3DEvent;
5+
import meteordevelopment.meteorclient.events.world.TickEvent;
6+
import meteordevelopment.meteorclient.renderer.GL;
7+
import meteordevelopment.meteorclient.renderer.Renderer2D;
8+
import meteordevelopment.meteorclient.renderer.Renderer3D;
9+
import meteordevelopment.meteorclient.systems.modules.Category;
10+
import meteordevelopment.meteorclient.systems.modules.Module;
11+
import meteordevelopment.meteorclient.utils.render.color.Color;
12+
import meteordevelopment.orbit.EventHandler;
13+
import net.minecraft.client.util.math.MatrixStack;
14+
import net.minecraft.entity.player.PlayerEntity;
15+
import net.minecraft.util.Identifier;
16+
17+
public class Boykisser extends Module {
18+
public Boykisser() {
19+
super(Addon.CATEGORY, "Boykisser", "Makes everyone a boykisser :3");
20+
}
21+
22+
public static final Identifier boykisser = new Identifier("zewo2","boykisserskin.png");
23+
}
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.events.entity.player.AttackEntityEvent;
5+
import meteordevelopment.meteorclient.events.packets.PacketEvent;
6+
import meteordevelopment.meteorclient.events.world.TickEvent;
7+
import meteordevelopment.meteorclient.mixininterface.IPlayerInteractEntityC2SPacket;
8+
import meteordevelopment.meteorclient.settings.*;
9+
import meteordevelopment.meteorclient.systems.friends.Friends;
10+
import meteordevelopment.meteorclient.systems.modules.Category;
11+
import meteordevelopment.meteorclient.systems.modules.Module;
12+
import meteordevelopment.meteorclient.utils.entity.SortPriority;
13+
import meteordevelopment.meteorclient.utils.entity.TargetUtils;
14+
import meteordevelopment.meteorclient.utils.player.PlayerUtils;
15+
import meteordevelopment.meteorclient.utils.player.Rotations;
16+
import meteordevelopment.orbit.EventHandler;
17+
import net.minecraft.entity.Entity;
18+
import net.minecraft.entity.LivingEntity;
19+
import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket;
20+
import net.minecraft.network.packet.c2s.play.CommandExecutionC2SPacket;
21+
import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket;
22+
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
23+
import net.minecraft.entity.Entity;
24+
import net.minecraft.entity.EntityType;
25+
import net.minecraft.entity.LivingEntity;
26+
import net.minecraft.entity.Tameable;
27+
import net.minecraft.entity.mob.EndermanEntity;
28+
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
29+
import net.minecraft.entity.passive.AnimalEntity;
30+
import net.minecraft.entity.passive.LlamaEntity;
31+
import net.minecraft.entity.passive.WolfEntity;
32+
import net.minecraft.entity.player.PlayerEntity;
33+
import net.minecraft.item.AxeItem;
34+
import net.minecraft.item.ItemStack;
35+
import net.minecraft.item.SwordItem;
36+
import net.minecraft.network.packet.c2s.play.UpdateSelectedSlotC2SPacket;
37+
import net.minecraft.util.Hand;
38+
import net.minecraft.util.math.Box;
39+
import net.minecraft.util.math.MathHelper;
40+
import net.minecraft.world.GameMode;
41+
42+
import java.util.ArrayList;
43+
import java.util.List;
44+
import java.util.Set;
45+
import java.util.function.Predicate;
46+
47+
import java.util.ArrayList;
48+
import java.util.List;
49+
50+
public class ForceField extends Module {
51+
private final List<Entity> targets = new ArrayList<>();
52+
public ForceField() {
53+
super(Addon.CATEGORY, "ForceField", "tries to keep mobs away.");
54+
}
55+
56+
private final SettingGroup sgTargeting = settings.createGroup("Targeting");
57+
private final Setting<Set<EntityType<?>>> entities = sgTargeting.add(new EntityTypeListSetting.Builder()
58+
.name("entities")
59+
.description("Entities to attack.")
60+
.onlyAttackable()
61+
.defaultValue(EntityType.PLAYER)
62+
.build()
63+
);
64+
65+
private final Setting<Integer> maxTargets = sgTargeting.add(new IntSetting.Builder()
66+
.name("max-targets")
67+
.description("How many entities to target at once.")
68+
.defaultValue(1)
69+
.min(1)
70+
.sliderRange(1, 5)
71+
.build()
72+
);
73+
74+
private final Setting<Double> range = sgTargeting.add(new DoubleSetting.Builder()
75+
.name("range")
76+
.description("The maximum range the entity can be to attack it.")
77+
.defaultValue(4.5)
78+
.min(0)
79+
.sliderMax(6)
80+
.build()
81+
);
82+
83+
private final Setting<Boolean> rotate = sgTargeting.add(new BoolSetting.Builder()
84+
.name("rotate")
85+
.description("Look at the entity your attacking.")
86+
.defaultValue(true)
87+
.build()
88+
);
89+
90+
private final Setting<Boolean> extramkb = sgTargeting.add(new BoolSetting.Builder()
91+
.name("extra knockback")
92+
.description("Deal extra knockback to the attacked entity.")
93+
.defaultValue(true)
94+
.build()
95+
);
96+
97+
@EventHandler
98+
private void onsend(TickEvent.Pre event){
99+
targets.clear();
100+
TargetUtils.getList(targets, this::entityCheck, SortPriority.ClosestAngle, maxTargets.get());
101+
if (targets.isEmpty()) return;
102+
103+
Entity primary = targets.get(0);
104+
105+
if (rotate.get()) Rotations.rotate(Rotations.getYaw(primary), Rotations.getPitch(primary));
106+
if (extramkb.get()) mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_SPRINTING));
107+
108+
mc.interactionManager.attackEntity(mc.player, primary);
109+
}
110+
111+
private boolean entityCheck(Entity entity) {
112+
if (entity.equals(mc.player) || entity.equals(mc.cameraEntity)) return false;
113+
if ((entity instanceof LivingEntity && ((LivingEntity) entity).isDead()) || !entity.isAlive()) return false;
114+
115+
Box hitbox = entity.getBoundingBox();
116+
if (!PlayerUtils.isWithin(
117+
MathHelper.clamp(mc.player.getX(), hitbox.minX, hitbox.maxX),
118+
MathHelper.clamp(mc.player.getY(), hitbox.minY, hitbox.maxY),
119+
MathHelper.clamp(mc.player.getZ(), hitbox.minZ, hitbox.maxZ),
120+
range.get()
121+
)) return false;
122+
123+
if (!entities.get().contains(entity.getType())) return false;
124+
125+
if (entity instanceof PlayerEntity player) {
126+
if (player.isCreative()) return false;
127+
if (!Friends.get().shouldAttack(player)) return false;
128+
}
129+
return !(entity instanceof AnimalEntity animal) || !animal.isBaby();
130+
}
131+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package com.dark.zewo2.modules;
2+
3+
import com.dark.zewo2.Addon;
4+
import meteordevelopment.meteorclient.events.packets.PacketEvent;
5+
import meteordevelopment.meteorclient.events.world.TickEvent;
6+
import meteordevelopment.meteorclient.settings.EnumSetting;
7+
import meteordevelopment.meteorclient.settings.IntSetting;
8+
import meteordevelopment.meteorclient.settings.Setting;
9+
import meteordevelopment.meteorclient.settings.SettingGroup;
10+
import meteordevelopment.meteorclient.systems.modules.Module;
11+
import meteordevelopment.orbit.EventHandler;
12+
import net.minecraft.network.packet.Packet;
13+
import net.minecraft.client.util.math.MatrixStack;
14+
import net.minecraft.network.packet.Packet;
15+
import net.minecraft.network.packet.c2s.play.KeepAliveC2SPacket;
16+
import net.minecraft.network.packet.c2s.play.PlayPongC2SPacket;
17+
18+
import java.util.ArrayList;
19+
import java.util.List;
20+
21+
public class PingSpoof extends Module {
22+
final List<PacketEntry> entries = new ArrayList<>();
23+
final List<Packet<?>> dontRepeat = new ArrayList<>();
24+
25+
private final SettingGroup sgGeneral = settings.getDefaultGroup();
26+
private final Setting<Mode> mode = sgGeneral.add(new EnumSetting.Builder<Mode>()
27+
.name("mode")
28+
.description("The mode to use.")
29+
.defaultValue(Mode.Spoof)
30+
.build()
31+
);
32+
33+
private final Setting<Integer> delay = sgGeneral.add(new IntSetting.Builder()
34+
.name("delay")
35+
.description("The delay.")
36+
.defaultValue(50)
37+
.min(0)
38+
.sliderMax(1000)
39+
.build()
40+
);
41+
42+
public PingSpoof() {
43+
super(Addon.CATEGORY, "PingSpoof", "Spoof your ping to the given value");
44+
}
45+
46+
@Override
47+
public void onActivate() {
48+
entries.clear();
49+
dontRepeat.clear();
50+
}
51+
52+
@EventHandler
53+
private void onsendpacket(PacketEvent.Send event){
54+
if (!dontRepeat.contains(event.packet) && shouldDelayPacket(event.packet)) {
55+
event.setCancelled(true);
56+
entries.add(new PacketEntry(event.packet, delay.get(), System.currentTimeMillis()));
57+
} else {
58+
dontRepeat.remove(event.packet);
59+
}
60+
}
61+
62+
boolean shouldDelayPacket(Packet<?> p) {
63+
if (mode.get() == Mode.Delay) {
64+
return true; // if we want to delay everything, say yes
65+
} else {
66+
return p instanceof PlayPongC2SPacket || p instanceof KeepAliveC2SPacket; // if we want to fake it, say yes if its a pong or keepalive
67+
}
68+
}
69+
70+
@EventHandler
71+
private void ontick(TickEvent.Pre event){
72+
if (mc.getNetworkHandler() == null) {
73+
toggle();
74+
return;
75+
}
76+
long c = System.currentTimeMillis();
77+
for (PacketEntry entry : entries.toArray(new PacketEntry[0])) {
78+
if (entry.entryTime + entry.delay <= c) {
79+
dontRepeat.add(entry.packet);
80+
entries.remove(entry);
81+
mc.getNetworkHandler().sendPacket(entry.packet);
82+
}
83+
}
84+
}
85+
86+
public enum Mode{
87+
Delay, Spoof
88+
}
89+
90+
record PacketEntry(Packet<?> packet, double delay, long entryTime) {
91+
92+
}
93+
}

0 commit comments

Comments
 (0)