Skip to content

Commit

Permalink
Merge pull request #11 from stefexec/1.21
Browse files Browse the repository at this point in the history
1.21
  • Loading branch information
stefexec authored Aug 3, 2024
2 parents 07a2ea7 + e07e834 commit 8c2445c
Show file tree
Hide file tree
Showing 33 changed files with 635 additions and 366 deletions.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,15 @@
# Features
## Modules
- `Bedrock ESP` - Renders illegally placed bedrock blocks through walls.
- `AutoItemMove` - Automatically moves items from the player's inventory into opened containers.
- `BlastGuard` - Uses different methods to teleport away from explosions.
- `BoomESP` - Renders a box around about-to-explode things.
- `DubCounter` - Count the amount of double chests in render distance.
- `NoChestRender` - Disables rendering of chests completely to improve performance.
- `Gurkfly` - Fly like in creative mode. Only works on servers without anti-cheat.
- `Gurkwalk` - Bypasses the anti-human plugin on the LO server.
- `LO Bypasses` - Bypasses the multiple nag/demo-screens on the LO Server.
- `NoChestRender` - Disables rendering of chests completely to improve performance.
- `NoCollision` - Removes Client-Side collision with blocks and the world border.
- `NoWorldBorder` - Disables the world border client side allowing you to walk through.
- `Packet Logger` - A very basic packet logger.
- `WorldGuard Bypass` - Easily move inside WorldGuard protected areas. Now with FlyKick Bypass!
- `WorldGuardBypass` - Easily move inside WorldGuard protected areas. Now with FlyKick Bypass!

## Commands
- `CamClip` - Clip to the y coordinate your freecam is pointing at.
Expand Down
8 changes: 6 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
plugins {
id 'fabric-loom' version '0.12-SNAPSHOT'
id 'fabric-loom' version '1.7-SNAPSHOT'
}

sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_21

archivesBaseName = project.archives_base_name
version = project.mod_version
Expand Down Expand Up @@ -35,6 +35,10 @@ processResources {
}
}

loom {
accessWidenerPath = file("src/main/resources/gurkensgadgetry.accesswidener")
}

tasks.withType(JavaCompile).configureEach {
it.options.encoding("UTF-8")
}
11 changes: 6 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
org.gradle.jvmargs=-Xmx2G

# Fabric (https://fabricmc.net/develop)
minecraft_version=1.20.1
yarn_mappings=1.20.1+build.1
loader_version=0.14.21
minecraft_version=1.21
yarn_mappings=1.21+build.2
loader_version=0.15.11
fapi_version=0.100.3+1.21

# Mod Properties
mod_version=1.3.2
mod_version=1.4.0
maven_group=de.gurkenwerfer
archives_base_name=gurkens-gadgetry

# Dependencies

# Meteor (https://maven.meteordev.org/)
meteor_version=0.5.3
meteor_version=0.5.8-SNAPSHOT
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package de.gurkenwerfer.toolkit;
package de.gurkenwerfer.gurkensgadgetry;

import com.mojang.logging.LogUtils;

import de.gurkenwerfer.toolkit.commands.AutoClip;
import de.gurkenwerfer.toolkit.commands.CamClip;
import de.gurkenwerfer.toolkit.modules.*;
import de.gurkenwerfer.toolkit.modules.BedrockESP.BedrockESP;
import de.gurkenwerfer.gurkensgadgetry.commands.AutoClip;
import de.gurkenwerfer.gurkensgadgetry.commands.CamClip;
import de.gurkenwerfer.gurkensgadgetry.modules.*;
import de.gurkenwerfer.gurkensgadgetry.modules.BedrockESP.BedrockESP;
import meteordevelopment.meteorclient.addons.MeteorAddon;
import meteordevelopment.meteorclient.commands.Commands;
import meteordevelopment.meteorclient.systems.modules.Category;
Expand All @@ -23,14 +23,14 @@ public void onInitialize() {
// Modules
Modules.get().add(new NoChestRender());
Modules.get().add(new DubCounter());
Modules.get().add(new AutoItemMove());
Modules.get().add(new BedrockESP());
Modules.get().add(new Gurkwalk());
Modules.get().add(new Gurkfly());
Modules.get().add(new PacketLogger());
Modules.get().add(new FakeCreativeBypass());
Modules.get().add(new WorldGuardBypass());

Modules.get().add(new BoomESP());
Modules.get().add(new BlastGuard());
Modules.get().add(new NoCollision());
Modules.get().add(new NoWorldBorder());
// Commands
Commands.add(new CamClip());
Commands.add(new AutoClip());
Expand All @@ -45,6 +45,6 @@ public void onRegisterCategories() {
}
@Override
public String getPackage() {
return "de.gurkenwerfer.toolkit";
return "de.gurkenwerfer.gurkensgadgetry";
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package de.gurkenwerfer.toolkit.commands;
package de.gurkenwerfer.gurkensgadgetry.commands;

import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import de.gurkenwerfer.toolkit.mixins.ClientConnectionAccessor;
import de.gurkenwerfer.gurkensgadgetry.mixins.ClientConnectionAccessor;
import meteordevelopment.meteorclient.commands.Command;
import net.minecraft.command.CommandSource;
import net.minecraft.entity.Entity;
Expand All @@ -11,9 +11,6 @@
import net.minecraft.text.Text;
import net.minecraft.util.math.BlockPos;

import static com.mojang.brigadier.Command.SINGLE_SUCCESS;
import static meteordevelopment.meteorclient.MeteorClient.mc;

public class AutoClip extends Command {
public AutoClip() {
super("autoclip", "Tries to clip to the first available position below you.");
Expand Down Expand Up @@ -48,12 +45,12 @@ public void build(LiteralArgumentBuilder<CommandSource> builder) {

for (int packetNumber = 0; packetNumber < (packetsRequired - 1); packetNumber++) {
Packet<?> positionPacket = new VehicleMoveC2SPacket(boat);
((ClientConnectionAccessor) mc.getNetworkHandler().getConnection())._sendImmediately(positionPacket, null);
((ClientConnectionAccessor) mc.getNetworkHandler().getConnection())._send(positionPacket, null);
}

boat.updatePosition(boat.getX(), y, boat.getZ());
Packet<?> positionPacket = new VehicleMoveC2SPacket(boat);
((ClientConnectionAccessor) mc.getNetworkHandler().getConnection())._sendImmediately(positionPacket, null);
((ClientConnectionAccessor) mc.getNetworkHandler().getConnection())._send(positionPacket, null);

} else {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package de.gurkenwerfer.toolkit.commands;
package de.gurkenwerfer.gurkensgadgetry.commands;

import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import meteordevelopment.meteorclient.commands.Command;
import net.minecraft.command.CommandSource;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.text.Text;

import static com.mojang.brigadier.Command.SINGLE_SUCCESS;
import static meteordevelopment.meteorclient.MeteorClient.mc;

public class CamClip extends Command {
public CamClip() {
super("camclip", "Gets your camera's Y position and tries to clip there vertically.");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.gurkenwerfer.toolkit.mixins;
package de.gurkenwerfer.gurkensgadgetry.mixins;

import io.netty.channel.Channel;
import net.minecraft.network.ClientConnection;
Expand All @@ -15,7 +15,9 @@ public interface ClientConnectionAccessor {
@Accessor("channel")
Channel getChannel();

@Invoker("sendImmediately")
void _sendImmediately(Packet<?> packet, @Nullable PacketCallbacks callbacks);
}
//@Invoker("sendImmediately")
//void _sendImmediately(Packet<?> packet, @Nullable PacketCallbacks callbacks);

@Invoker("send")
void _send(Packet<?> packet, @Nullable PacketCallbacks callbacks);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
/*
* This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client).
* Copyright (c) Meteor Development.
*/

package de.gurkenwerfer.gurkensgadgetry.mixins;

import de.gurkenwerfer.gurkensgadgetry.modules.NoCollision;
import de.gurkenwerfer.gurkensgadgetry.modules.NoWorldBorder;
import meteordevelopment.meteorclient.systems.modules.Modules;
import meteordevelopment.meteorclient.systems.modules.world.Collisions;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.shape.VoxelShape;
import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.world.border.WorldBorder;
import net.minecraft.world.border.WorldBorderListener;
import net.minecraft.world.border.WorldBorderStage;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import java.util.List;

@Mixin(WorldBorder.class)
public abstract class WorldBorderMixin {
@Inject(method = "canCollide", at = @At("HEAD"), cancellable = true)
private void canCollide(CallbackInfoReturnable<Boolean> info) {
if (Modules.get().get(Collisions.class).ignoreBorder()) info.setReturnValue(false);
}

@Inject(method = "contains(Lnet/minecraft/util/math/BlockPos;)Z", at = @At("HEAD"), cancellable = true)
private void contains(CallbackInfoReturnable<Boolean> info) {
if (Modules.get().get(Collisions.class).ignoreBorder()) info.setReturnValue(true);
}

@Shadow
private double centerX;
@Shadow private double centerZ;

@Shadow private WorldBorder.Area area;
@Shadow protected abstract List<WorldBorderListener> getListeners();

@Inject(method = "asVoxelShape", at = @At("HEAD"), cancellable = true)
private void onAsVoxelShape(CallbackInfoReturnable<VoxelShape> info) {
if (Modules.get().isActive(NoWorldBorder.class) || Modules.get().isActive(NoCollision.class) && Modules.get().get(NoCollision.class).shouldCancelBorderCollision()) {
info.setReturnValue(VoxelShapes.empty());
}
}

@Inject(method = "canCollide", at = @At("HEAD"), cancellable = true)
private void onCanCollide(Entity entity, Box box, CallbackInfoReturnable<Boolean> info) {
if (Modules.get().isActive(NoWorldBorder.class) || Modules.get().isActive(NoCollision.class) && Modules.get().get(NoCollision.class).shouldCancelBorderCollision()) {
info.setReturnValue(false);
} else if (Modules.get().get(Collisions.class).ignoreBorder()) {
info.setReturnValue(false);
}
}

// No World Border

@Inject(method = "getCenterX", at = @At("HEAD"), cancellable = true)
private void onGetCenterX(CallbackInfoReturnable<Double> info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
info.setReturnValue(0.0D);
}
}

@Inject(method = "getCenterZ", at = @At("HEAD"), cancellable = true)
private void onGetCenterZ(CallbackInfoReturnable<Double> info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
info.setReturnValue(0.0D);
}
}

@Inject(method = "setCenter", at = @At("HEAD"), cancellable = true)
private void onSetCenter(double x, double z, CallbackInfo info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
this.centerX = 0.0D;
this.centerZ = 0.0D;

this.area.onCenterChanged();

for (WorldBorderListener listener : this.getListeners()) {
listener.onCenterChanged(MinecraftClient.getInstance().world.getWorldBorder(), 0.0D, 0.0D);
}

info.cancel();
}
}

// Size & Stage

@Inject(method = "getSize", at = @At("HEAD"), cancellable = true)
private void onGetSize(CallbackInfoReturnable<Double> info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
info.setReturnValue(Double.MAX_VALUE);
}
}

@Inject(method = "getStage", at = @At("HEAD"), cancellable = true)
private void onGetStage(CallbackInfoReturnable<WorldBorderStage> info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
info.setReturnValue(WorldBorderStage.STATIONARY);
}
}

// Bounds

@Inject(method = "getBoundWest", at = @At("HEAD"), cancellable = true)
private void onGetBoundsWest(CallbackInfoReturnable<Double> info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
info.setReturnValue(MathHelper.clamp(-Double.MAX_VALUE / 2.0, -Double.MAX_VALUE, Double.MAX_VALUE));
}
}

@Inject(method = "getBoundNorth", at = @At("HEAD"), cancellable = true)
private void onGetBoundsNorth(CallbackInfoReturnable<Double> info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
info.setReturnValue(MathHelper.clamp(-Double.MAX_VALUE / 2.0, -Double.MAX_VALUE, Double.MAX_VALUE));
}
}

@Inject(method = "getBoundEast", at = @At("HEAD"), cancellable = true)
private void onGetBoundsEast(CallbackInfoReturnable<Double> info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
info.setReturnValue(MathHelper.clamp(Double.MAX_VALUE / 2.0, -Double.MAX_VALUE, Double.MAX_VALUE));
}
}

@Inject(method = "getBoundSouth", at = @At("HEAD"), cancellable = true)
private void onGetBoundsSouth(CallbackInfoReturnable<Double> info) {
if (Modules.get().isActive(NoWorldBorder.class)) {
info.setReturnValue(MathHelper.clamp(Double.MAX_VALUE / 2.0, -Double.MAX_VALUE, Double.MAX_VALUE));
}
}
}
Loading

0 comments on commit 8c2445c

Please sign in to comment.