fix freecam

This commit is contained in:
Ridan Vandenbergh 2018-08-10 12:47:33 +02:00
parent 40e98bd959
commit e2383856d5
5 changed files with 83 additions and 32 deletions

View File

@ -139,5 +139,9 @@ public class ForgeEventProcessor {
public void onEntityJoinWorldEvent(EntityJoinWorldEvent entityJoinWorldEvent) {
KamiMod.EVENT_BUS.post(entityJoinWorldEvent);
}
@SubscribeEvent
public void onPlayerPush(PlayerSPPushOutOfBlocksEvent event) {
KamiMod.EVENT_BUS.post(event);
}
}

View File

@ -0,0 +1,53 @@
package me.zeroeightsix.kami.event.events;
import me.zeroeightsix.kami.event.KamiEvent;
import net.minecraft.entity.MoverType;
import net.minecraft.util.math.BlockPos;
/**
* @author 086
*/
public class PlayerMoveEvent extends KamiEvent {
MoverType type;
double x, y, z;
public PlayerMoveEvent(MoverType type, double x, double y, double z) {
this.type = type;
this.x = x;
this.y = y;
this.z = z;
}
public MoverType getType() {
return type;
}
public void setType(MoverType type) {
this.type = type;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public double getZ() {
return z;
}
public void setX(double x) {
this.x = x;
}
public void setY(double y) {
this.y = y;
}
public void setZ(double z) {
this.z = z;
}
}

View File

@ -1,12 +1,18 @@
package me.zeroeightsix.kami.mixin.client;
import me.zeroeightsix.kami.KamiMod;
import me.zeroeightsix.kami.event.KamiEvent;
import me.zeroeightsix.kami.event.events.PlayerMoveEvent;
import me.zeroeightsix.kami.module.ModuleManager;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.MoverType;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
/**
* Created by 086 on 12/12/2017.
@ -24,4 +30,11 @@ public class MixinEntityPlayerSP {
if (ModuleManager.isModuleEnabled("PortalChat")) return;
}
@Inject(method = "move", at = @At("HEAD"), cancellable = true)
public void move(MoverType type, double x, double y, double z, CallbackInfo info) {
PlayerMoveEvent event = new PlayerMoveEvent(type, x, y, z);
KamiMod.EVENT_BUS.post(event);
if (event.isCancelled()) info.cancel();
}
}

View File

@ -34,20 +34,4 @@ public class MixinStateImplementation {
block.addCollisionBoxToList(state, worldIn, pos, entityBox, collidingBoxes, entityIn, isActualState);
}
// @Inject(method = "shouldSideBeRendered", at = @At("HEAD"), cancellable = true)
// public void shouldSideBeRendered(IBlockAccess blockAccess, BlockPos pos, EnumFacing facing, CallbackInfoReturnable callbackInfoReturnable) {
// if (ModuleManager.isModuleEnabled("Xray")) {
// callbackInfoReturnable.setReturnValue(Xray.isXrayBlock(block));
// callbackInfoReturnable.cancel();
// }
// }
//
// @Inject(method = "getLightValue()I", at = @At("HEAD"), cancellable = true)
// public void getLightValue(CallbackInfoReturnable callbackInfoReturnable) {
// if (ModuleManager.isModuleEnabled("Xray")) {
// callbackInfoReturnable.setReturnValue(16);
// callbackInfoReturnable.cancel();
// }
// }
}

View File

@ -2,7 +2,8 @@ package me.zeroeightsix.kami.module.modules.player;
import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.event.events.PacketEvent;
import me.zero.alpine.type.Cancellable;
import me.zeroeightsix.kami.event.events.*;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import net.minecraft.client.entity.EntityOtherPlayerMP;
@ -11,6 +12,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.play.client.CPacketInput;
import net.minecraft.network.play.client.CPacketPlayer;
import net.minecraft.network.play.server.SPacketPlayerPosLook;
import net.minecraftforge.client.event.PlayerSPPushOutOfBlocksEvent;
/**
* Created by 086 on 22/12/2017.
@ -23,9 +25,6 @@ public class Freecam extends Module {
private double posX, posY, posZ;
private float pitch, yaw;
private double startPosX, startPosY, startPosZ;
private float startPitch, startYaw;
private EntityOtherPlayerMP clonedPlayer;
private boolean isRidingEntity;
@ -88,6 +87,16 @@ public class Freecam extends Module {
mc.player.fallDistance = 0;
}
@EventHandler
private Listener<PlayerMoveEvent> moveListener = new Listener<>(event -> {
mc.player.noClip = true;
});
@EventHandler
private Listener<PlayerSPPushOutOfBlocksEvent> pushListener = new Listener<>(event -> {
event.setCanceled(true);
});
@EventHandler
private Listener<PacketEvent.Send> sendListener = new Listener<>(event -> {
if(event.getPacket() instanceof CPacketPlayer || event.getPacket() instanceof CPacketInput) {
@ -95,16 +104,4 @@ public class Freecam extends Module {
}
});
@EventHandler
private Listener<PacketEvent.Receive> receiveListener = new Listener<>(event -> {
if (event.getPacket() instanceof SPacketPlayerPosLook) {
SPacketPlayerPosLook packet = (SPacketPlayerPosLook) event.getPacket();
startPosX = packet.getX();
startPosY = packet.getY();
startPosZ = packet.getZ();
startPitch = packet.getPitch();
startYaw = packet.getYaw();
}
});
}