Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

LiquidBounce Forum

  1. Home
  2. Kotlin/Java
  3. [Kotlin] HackerDetector

[Kotlin] HackerDetector

Scheduled Pinned Locked Moved Kotlin/Java
11 Posts 9 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • qwq LiulihaocaiQ Offline
    qwq LiulihaocaiQ Offline
    qwq Liulihaocai
    wrote on last edited by
    #1

    DETECT SIGMA HATARS

    code below...

    package net.ccbluex.liquidbounce.features.module.modules.player
    
    import net.ccbluex.liquidbounce.event.EventTarget
    import net.ccbluex.liquidbounce.event.PacketEvent
    import net.ccbluex.liquidbounce.event.WorldEvent
    import net.ccbluex.liquidbounce.features.module.Module
    import net.ccbluex.liquidbounce.features.module.ModuleCategory
    import net.ccbluex.liquidbounce.features.module.ModuleInfo
    import net.ccbluex.liquidbounce.utils.EntityUtils
    import net.ccbluex.liquidbounce.utils.timer.MSTimer
    import net.ccbluex.liquidbounce.value.BoolValue
    import net.ccbluex.liquidbounce.value.IntegerValue
    import net.minecraft.client.Minecraft
    import net.minecraft.entity.Entity
    import net.minecraft.entity.EntityLivingBase
    import net.minecraft.entity.player.EntityPlayer
    import net.minecraft.network.play.server.S0BPacketAnimation
    import net.minecraft.network.play.server.S14PacketEntity
    import net.minecraft.network.play.server.S18PacketEntityTeleport
    import net.minecraft.network.play.server.S19PacketEntityStatus
    import net.minecraft.potion.Potion
    import net.minecraft.util.AxisAlignedBB
    import kotlin.math.abs
    import kotlin.math.atan2
    import kotlin.math.pow
    import kotlin.math.sqrt
    
    
    @ModuleInfo(name = "HackerDetector", description = "Detect SIGMA Hackers.", category = ModuleCategory.PLAYER)
    class HackerDetector : Module() {
        private val GRAVITY_FRICTION = 0.9800000190734863
    
        private val combatCheck=BoolValue("Combat",true)
        private val movementCheck=BoolValue("Movement",true)
        private val debugMode=BoolValue("Debug",false)
        private val report=BoolValue("AutoReport",true)
        private val vlValue=IntegerValue("VL",300,100,500)
    
        private val datas=HashMap<EntityPlayer,HackerData>()
        private val hackers=ArrayList<String>()
    
    //    @EventTarget
    //    fun onUpdate(event: UpdateEvent){
    //        //this takes a bit time so we do it async
    //        if(movementCheck.get()) {
    //            Thread { checkMove() }.start()
    //        }
    //    }
    
        @EventTarget
        fun onPacket(event: PacketEvent){
            if(event.packet is S19PacketEntityStatus){
                val packet=event.packet
                if(combatCheck.get()&&packet.opCode.toInt()==2){
                    Thread { checkCombatHurt(packet.getEntity(mc.theWorld)) }.start()
                }
            }else if(event.packet is S0BPacketAnimation){
                val packet=event.packet
                val entity=mc.theWorld.getEntityByID(packet.entityID)
                if(entity !is EntityPlayer||packet.animationType!=0) return
                val data=datas[entity] ?: return
                data.tempAps++
            }else if(movementCheck.get()){
                if(event.packet is S18PacketEntityTeleport){
                    val packet=event.packet
                    val entity=mc.theWorld.getEntityByID(packet.entityId)
                    if(entity !is EntityPlayer) return
                    Thread{ checkPlayer(entity) }.start()
                }else if(event.packet is S14PacketEntity){
                    val packet=event.packet
                    val entity=packet.getEntity(mc.theWorld)
                    if(entity !is EntityPlayer) return
                    Thread{ checkPlayer(entity) }.start()
                }
            }
        }
    
        override fun onEnable() {
            datas.clear()
            hackers.clear()
        }
    
        @EventTarget
        fun onWorld(event: WorldEvent){
            datas.clear()
        }
    
        fun isHacker(entity: EntityLivingBase):Boolean{
            if(entity !is EntityPlayer) return false
            return hackers.contains(entity.name)
        }
    
        //onupdate
    //    private fun checkMove(){
    //        for(entity in mc.theWorld.loadedEntityList){
    //            if(entity !is EntityPlayer) continue
    //            checkPlayer(entity)
    //        }
    //    }
    
        private fun checkPlayer(player: EntityPlayer){
            if(player.equals(mc.thePlayer)||EntityUtils.isFriend(player)) return
            if(datas[player]==null) datas[player] = HackerData(player)
            val data=datas[player] ?: return
            data.update()
            if(data.aliveTicks<20) return
    
            //settings
            var minAirTicks = 10
            if(player.isPotionActive(Potion.jump)){
                minAirTicks+=player.getActivePotionEffect(Potion.jump).amplifier*3
            }
            val maxMotionY = 0.47 //for strict check u can change this to 0.42
            val maxOffset = 0.07
            var passed=true
            
            if(player.hurtTime>0){
                //velocity
                if (player.hurtResistantTime in 7..11
                    && player.prevPosX == player.posX && player.posZ == player.lastTickPosZ
                    && !mc.theWorld.checkBlockCollision(player.entityBoundingBox.expand(0.05, 0.0, 0.05))) {
                    flag("velocity",50,data,"NO KNOCKBACK")
                }
                if (player.hurtResistantTime in 7..11
                    && player.lastTickPosY == player.posY) {
                    flag("velocity",50,data,"NO KNOCKBACK")
                }
                return
            }
    
            //phase
    //        if(mc.theWorld.checkBlockCollision(player.entityBoundingBox)){
    //            flag("phase",50,data,"COLLIDE")
    //            passed=false
    //        }
    
            //killaura from jigsaw
            if (data.aps >= 10) {
                flag("killaura",30,data,"HIGH APS(aps=${data.aps})")
                passed=false
            }
            if (data.aps > 2 && data.aps == data.preAps && data.aps != 0) {
                flag("killaura",30,data,"STRANGE APS(aps=${data.aps})")
                passed=false
            }
            if (abs(player.rotationYaw - player.prevRotationYaw) > 50 && player.swingProgress != 0F
                && data.aps >= 3) {
                flag("killaura",30,data,"YAW RATE(aps=${data.aps},yawRot=${abs(player.rotationYaw - player.prevRotationYaw)})")
                passed=false
            }
    
            //flight
            if(player.ridingEntity==null&&data.airTicks>(minAirTicks/2)){
                if (abs(data.motionY - data.lastMotionY) < (if(data.airTicks >= 115){1E-3}else{5E-3})){
                    flag("fly",20,data,"GLIDE(diff=${abs(data.motionY - data.lastMotionY)})")
                    passed=false
                }
                if(data.motionY > maxMotionY){
                    flag("fly",20,data,"YAXIS(motY=${data.motionY})")
                    passed=false
                }
                if(data.airTicks > minAirTicks&&data.motionY>0){
                    flag("fly",30,data,"YAXIS(motY=${data.motionY})")
                    passed=false
                }
                //gravity check from ACR
    //            val gravitatedY = (data.lastMotionY - 0.08) * GRAVITY_FRICTION
    //            val offset = abs(gravitatedY - data.motionY)
    //            if (offset > maxOffset) {
    //                flag("fly",15,data,"GRAVITY(offset=$offset)")
    //                passed=false
    //            }
            }
    
            //speed
            val distanceXZ=abs(data.motionXZ)
            if(data.airTicks==0){ //onGround
                var limit = 0.37
                if(data.groundTicks < 5) limit += 0.1
                if(player.isBlocking) limit *= 0.45
                if(player.isSneaking) limit *= 0.68
                if(player.isPotionActive(Potion.moveSpeed)){ //server will send real player potionData?i hope that
                    limit += player.getActivePotionEffect(Potion.moveSpeed).amplifier
                    limit *= 1.5
                }
                if (distanceXZ > limit) {
                    flag("speed",20,data,"GROUND SPEED(speed=$distanceXZ,limit=$limit)")
                }
            }else{
                val multiplier = 0.985
                var predict = 0.36 * multiplier.pow(data.airTicks + 1)
                if (data.airTicks >= 115)
                    predict = 0.08.coerceAtLeast(predict);
                var limit=0.05
                if(player.isPotionActive(Potion.moveSpeed)){
                    predict += player.getActivePotionEffect(Potion.moveSpeed).amplifier * 0.05
                    limit *= 1.2
                }
                if(player.isPotionActive(Potion.jump)) {
                    predict += player.getActivePotionEffect(Potion.jump).amplifier * 0.05
                }
                if(player.isBlocking)
                    predict *= 0.7
    
                if (distanceXZ - predict > limit) {
                    flag("speed",20,data,"AIR SPEED(speed=$distanceXZ,limit=$limit,predict=$predict)")
                }
            }
    //        if (abs(data.motionX) > 0.42
    //            || abs(data.motionZ) > 0.42){
    //            flag("speed",30,data,"HIGH SPEED")
    //            passed=false
    //        }
    //        if (player.isBlocking && (abs(data.motionX) > 0.2 || abs(data.motionZ) > 0.2)) {
    //            flag("speed",30,data,"HIGH SPEED(BLOCKING)") //blocking is just noslow lol
    //            passed=false
    //        }
    
            //reduce vl
            if(passed){
                data.vl-=1
            }
        }
    
        private fun flag(type: String,vl: Int,data: HackerData,msg: String){
            if(!data.useHacks.contains(type)) data.useHacks.add(type)
            //display debug message
            if(debugMode.get()){
                chat("§f${data.player.name} §euse §2$type §7$msg §c${data.vl}+${vl}")
            }
            data.vl+=vl
    
            if(data.vl>vlValue.get()){
                var use=""
                for(typ in data.useHacks){
                    use+="§a$typ§2,"
                }
                use=use.substring(0,use.length-3)
                chat("§f${data.player.name} §eusing hack $use")
                data.vl=-vlValue.get()
    
                //autoreport only redesky
                val name=data.player.name
                if(report.get()&&!hackers.contains(name)){
                    mc.thePlayer.sendChatMessage("/reportar $name")
                    hackers.add(name)
                }
            }
        }
    
        private fun checkCombatHurt(entity: Entity){
            if(entity !is EntityLivingBase) return
            var attacker:EntityPlayer?=null
            var attackerCount=0
    
            for(worldEntity in mc.theWorld.loadedEntityList){
                if(worldEntity !is EntityPlayer||worldEntity.getDistanceToEntity(entity)>7||worldEntity.equals(entity)) continue
                attackerCount++
                attacker=worldEntity
            }
    
            //multi attacker may cause false result
            if(attackerCount!=1) return
            if(attacker!! == entity||EntityUtils.isFriend(attacker)) return //i and my friend is hacker lol
            val data=datas[attacker] ?: return
    
            //reach check
            val reach=attacker.getDistanceToEntity(entity)
            if(reach>3.7){
                flag("killaura",70,data,"(reach=$reach)")
            }
    
            //aim check
            val yawDiff=calculateYawDifference(attacker,entity)
            if(yawDiff>50){
                flag("killaura",100,data,"(yawDiff=$yawDiff)")
            }
        }
    
        private fun calculateYawDifference(from: EntityLivingBase, to: EntityLivingBase): Double {
            val x = to.posX - from.posX
            val z = to.posZ - from.posZ
            return if (x == 0.0 && z == 0.0) {
                from.rotationYaw.toDouble()
            } else {
                val theta = atan2(-x, z)
                val yaw=Math.toDegrees((theta + 6.283185307179586) % 6.283185307179586)
                abs(180 - abs(abs(yaw - from.rotationYaw) - 180));
            }
        }
    }
    
    class HackerData(val player:EntityPlayer){
        var aliveTicks=0
        // Ticks in air
        var airTicks = 0
    
        // Ticks on ground
        var groundTicks = 0
    
        // motion of the movement
        var motionX = 0.0
        var motionY = 0.0
        var motionZ = 0.0
        var motionXZ = 0.0
    
        // Previous motion of the movement
        var lastMotionX = 0.0
        var lastMotionY = 0.0
        var lastMotionZ = 0.0
        var lastMotionXZ = 0.0
    
        // combat check
        var aps = 0
        var preAps = 0
        var tempAps = 0
        private val apsTimer=MSTimer()
    
        var vl=0
        var useHacks=ArrayList<String>()
    
        fun update(){
            aliveTicks++
            if (apsTimer.hasTimePassed(1000)) {
                preAps = aps;
                aps = tempAps;
                tempAps = 0;
            }
    
            if(calculateGround()){
                groundTicks++
                airTicks=0
            }else{
                airTicks++
                groundTicks=0
            }
    
            this.lastMotionX = this.motionX
            this.lastMotionY = this.motionY
            this.lastMotionZ = this.motionZ
            this.lastMotionXZ = this.motionXZ
            this.motionX = player.posX-player.prevPosX
            this.motionY = player.posY-player.prevPosY
            this.motionZ = player.posZ-player.prevPosZ
            this.motionXZ = sqrt(motionX*motionX + motionZ*motionZ)
        }
    
        private fun calculateGround(): Boolean {
            val playerBoundingBox = player.entityBoundingBox
            val blockHeight = 1
            val customBox = AxisAlignedBB(playerBoundingBox.maxX, player.posY-blockHeight, playerBoundingBox.maxZ, playerBoundingBox.minX, player.posY, playerBoundingBox.minZ)
            return Minecraft.getMinecraft().theWorld.checkBlockCollision(customBox)
        }
    }
    
    
    DreamWasFuckedD ENDER1355E 2 Replies Last reply
    3
    • qwq LiulihaocaiQ qwq Liulihaocai

      DETECT SIGMA HATARS

      code below...

      package net.ccbluex.liquidbounce.features.module.modules.player
      
      import net.ccbluex.liquidbounce.event.EventTarget
      import net.ccbluex.liquidbounce.event.PacketEvent
      import net.ccbluex.liquidbounce.event.WorldEvent
      import net.ccbluex.liquidbounce.features.module.Module
      import net.ccbluex.liquidbounce.features.module.ModuleCategory
      import net.ccbluex.liquidbounce.features.module.ModuleInfo
      import net.ccbluex.liquidbounce.utils.EntityUtils
      import net.ccbluex.liquidbounce.utils.timer.MSTimer
      import net.ccbluex.liquidbounce.value.BoolValue
      import net.ccbluex.liquidbounce.value.IntegerValue
      import net.minecraft.client.Minecraft
      import net.minecraft.entity.Entity
      import net.minecraft.entity.EntityLivingBase
      import net.minecraft.entity.player.EntityPlayer
      import net.minecraft.network.play.server.S0BPacketAnimation
      import net.minecraft.network.play.server.S14PacketEntity
      import net.minecraft.network.play.server.S18PacketEntityTeleport
      import net.minecraft.network.play.server.S19PacketEntityStatus
      import net.minecraft.potion.Potion
      import net.minecraft.util.AxisAlignedBB
      import kotlin.math.abs
      import kotlin.math.atan2
      import kotlin.math.pow
      import kotlin.math.sqrt
      
      
      @ModuleInfo(name = "HackerDetector", description = "Detect SIGMA Hackers.", category = ModuleCategory.PLAYER)
      class HackerDetector : Module() {
          private val GRAVITY_FRICTION = 0.9800000190734863
      
          private val combatCheck=BoolValue("Combat",true)
          private val movementCheck=BoolValue("Movement",true)
          private val debugMode=BoolValue("Debug",false)
          private val report=BoolValue("AutoReport",true)
          private val vlValue=IntegerValue("VL",300,100,500)
      
          private val datas=HashMap<EntityPlayer,HackerData>()
          private val hackers=ArrayList<String>()
      
      //    @EventTarget
      //    fun onUpdate(event: UpdateEvent){
      //        //this takes a bit time so we do it async
      //        if(movementCheck.get()) {
      //            Thread { checkMove() }.start()
      //        }
      //    }
      
          @EventTarget
          fun onPacket(event: PacketEvent){
              if(event.packet is S19PacketEntityStatus){
                  val packet=event.packet
                  if(combatCheck.get()&&packet.opCode.toInt()==2){
                      Thread { checkCombatHurt(packet.getEntity(mc.theWorld)) }.start()
                  }
              }else if(event.packet is S0BPacketAnimation){
                  val packet=event.packet
                  val entity=mc.theWorld.getEntityByID(packet.entityID)
                  if(entity !is EntityPlayer||packet.animationType!=0) return
                  val data=datas[entity] ?: return
                  data.tempAps++
              }else if(movementCheck.get()){
                  if(event.packet is S18PacketEntityTeleport){
                      val packet=event.packet
                      val entity=mc.theWorld.getEntityByID(packet.entityId)
                      if(entity !is EntityPlayer) return
                      Thread{ checkPlayer(entity) }.start()
                  }else if(event.packet is S14PacketEntity){
                      val packet=event.packet
                      val entity=packet.getEntity(mc.theWorld)
                      if(entity !is EntityPlayer) return
                      Thread{ checkPlayer(entity) }.start()
                  }
              }
          }
      
          override fun onEnable() {
              datas.clear()
              hackers.clear()
          }
      
          @EventTarget
          fun onWorld(event: WorldEvent){
              datas.clear()
          }
      
          fun isHacker(entity: EntityLivingBase):Boolean{
              if(entity !is EntityPlayer) return false
              return hackers.contains(entity.name)
          }
      
          //onupdate
      //    private fun checkMove(){
      //        for(entity in mc.theWorld.loadedEntityList){
      //            if(entity !is EntityPlayer) continue
      //            checkPlayer(entity)
      //        }
      //    }
      
          private fun checkPlayer(player: EntityPlayer){
              if(player.equals(mc.thePlayer)||EntityUtils.isFriend(player)) return
              if(datas[player]==null) datas[player] = HackerData(player)
              val data=datas[player] ?: return
              data.update()
              if(data.aliveTicks<20) return
      
              //settings
              var minAirTicks = 10
              if(player.isPotionActive(Potion.jump)){
                  minAirTicks+=player.getActivePotionEffect(Potion.jump).amplifier*3
              }
              val maxMotionY = 0.47 //for strict check u can change this to 0.42
              val maxOffset = 0.07
              var passed=true
              
              if(player.hurtTime>0){
                  //velocity
                  if (player.hurtResistantTime in 7..11
                      && player.prevPosX == player.posX && player.posZ == player.lastTickPosZ
                      && !mc.theWorld.checkBlockCollision(player.entityBoundingBox.expand(0.05, 0.0, 0.05))) {
                      flag("velocity",50,data,"NO KNOCKBACK")
                  }
                  if (player.hurtResistantTime in 7..11
                      && player.lastTickPosY == player.posY) {
                      flag("velocity",50,data,"NO KNOCKBACK")
                  }
                  return
              }
      
              //phase
      //        if(mc.theWorld.checkBlockCollision(player.entityBoundingBox)){
      //            flag("phase",50,data,"COLLIDE")
      //            passed=false
      //        }
      
              //killaura from jigsaw
              if (data.aps >= 10) {
                  flag("killaura",30,data,"HIGH APS(aps=${data.aps})")
                  passed=false
              }
              if (data.aps > 2 && data.aps == data.preAps && data.aps != 0) {
                  flag("killaura",30,data,"STRANGE APS(aps=${data.aps})")
                  passed=false
              }
              if (abs(player.rotationYaw - player.prevRotationYaw) > 50 && player.swingProgress != 0F
                  && data.aps >= 3) {
                  flag("killaura",30,data,"YAW RATE(aps=${data.aps},yawRot=${abs(player.rotationYaw - player.prevRotationYaw)})")
                  passed=false
              }
      
              //flight
              if(player.ridingEntity==null&&data.airTicks>(minAirTicks/2)){
                  if (abs(data.motionY - data.lastMotionY) < (if(data.airTicks >= 115){1E-3}else{5E-3})){
                      flag("fly",20,data,"GLIDE(diff=${abs(data.motionY - data.lastMotionY)})")
                      passed=false
                  }
                  if(data.motionY > maxMotionY){
                      flag("fly",20,data,"YAXIS(motY=${data.motionY})")
                      passed=false
                  }
                  if(data.airTicks > minAirTicks&&data.motionY>0){
                      flag("fly",30,data,"YAXIS(motY=${data.motionY})")
                      passed=false
                  }
                  //gravity check from ACR
      //            val gravitatedY = (data.lastMotionY - 0.08) * GRAVITY_FRICTION
      //            val offset = abs(gravitatedY - data.motionY)
      //            if (offset > maxOffset) {
      //                flag("fly",15,data,"GRAVITY(offset=$offset)")
      //                passed=false
      //            }
              }
      
              //speed
              val distanceXZ=abs(data.motionXZ)
              if(data.airTicks==0){ //onGround
                  var limit = 0.37
                  if(data.groundTicks < 5) limit += 0.1
                  if(player.isBlocking) limit *= 0.45
                  if(player.isSneaking) limit *= 0.68
                  if(player.isPotionActive(Potion.moveSpeed)){ //server will send real player potionData?i hope that
                      limit += player.getActivePotionEffect(Potion.moveSpeed).amplifier
                      limit *= 1.5
                  }
                  if (distanceXZ > limit) {
                      flag("speed",20,data,"GROUND SPEED(speed=$distanceXZ,limit=$limit)")
                  }
              }else{
                  val multiplier = 0.985
                  var predict = 0.36 * multiplier.pow(data.airTicks + 1)
                  if (data.airTicks >= 115)
                      predict = 0.08.coerceAtLeast(predict);
                  var limit=0.05
                  if(player.isPotionActive(Potion.moveSpeed)){
                      predict += player.getActivePotionEffect(Potion.moveSpeed).amplifier * 0.05
                      limit *= 1.2
                  }
                  if(player.isPotionActive(Potion.jump)) {
                      predict += player.getActivePotionEffect(Potion.jump).amplifier * 0.05
                  }
                  if(player.isBlocking)
                      predict *= 0.7
      
                  if (distanceXZ - predict > limit) {
                      flag("speed",20,data,"AIR SPEED(speed=$distanceXZ,limit=$limit,predict=$predict)")
                  }
              }
      //        if (abs(data.motionX) > 0.42
      //            || abs(data.motionZ) > 0.42){
      //            flag("speed",30,data,"HIGH SPEED")
      //            passed=false
      //        }
      //        if (player.isBlocking && (abs(data.motionX) > 0.2 || abs(data.motionZ) > 0.2)) {
      //            flag("speed",30,data,"HIGH SPEED(BLOCKING)") //blocking is just noslow lol
      //            passed=false
      //        }
      
              //reduce vl
              if(passed){
                  data.vl-=1
              }
          }
      
          private fun flag(type: String,vl: Int,data: HackerData,msg: String){
              if(!data.useHacks.contains(type)) data.useHacks.add(type)
              //display debug message
              if(debugMode.get()){
                  chat("§f${data.player.name} §euse §2$type §7$msg §c${data.vl}+${vl}")
              }
              data.vl+=vl
      
              if(data.vl>vlValue.get()){
                  var use=""
                  for(typ in data.useHacks){
                      use+="§a$typ§2,"
                  }
                  use=use.substring(0,use.length-3)
                  chat("§f${data.player.name} §eusing hack $use")
                  data.vl=-vlValue.get()
      
                  //autoreport only redesky
                  val name=data.player.name
                  if(report.get()&&!hackers.contains(name)){
                      mc.thePlayer.sendChatMessage("/reportar $name")
                      hackers.add(name)
                  }
              }
          }
      
          private fun checkCombatHurt(entity: Entity){
              if(entity !is EntityLivingBase) return
              var attacker:EntityPlayer?=null
              var attackerCount=0
      
              for(worldEntity in mc.theWorld.loadedEntityList){
                  if(worldEntity !is EntityPlayer||worldEntity.getDistanceToEntity(entity)>7||worldEntity.equals(entity)) continue
                  attackerCount++
                  attacker=worldEntity
              }
      
              //multi attacker may cause false result
              if(attackerCount!=1) return
              if(attacker!! == entity||EntityUtils.isFriend(attacker)) return //i and my friend is hacker lol
              val data=datas[attacker] ?: return
      
              //reach check
              val reach=attacker.getDistanceToEntity(entity)
              if(reach>3.7){
                  flag("killaura",70,data,"(reach=$reach)")
              }
      
              //aim check
              val yawDiff=calculateYawDifference(attacker,entity)
              if(yawDiff>50){
                  flag("killaura",100,data,"(yawDiff=$yawDiff)")
              }
          }
      
          private fun calculateYawDifference(from: EntityLivingBase, to: EntityLivingBase): Double {
              val x = to.posX - from.posX
              val z = to.posZ - from.posZ
              return if (x == 0.0 && z == 0.0) {
                  from.rotationYaw.toDouble()
              } else {
                  val theta = atan2(-x, z)
                  val yaw=Math.toDegrees((theta + 6.283185307179586) % 6.283185307179586)
                  abs(180 - abs(abs(yaw - from.rotationYaw) - 180));
              }
          }
      }
      
      class HackerData(val player:EntityPlayer){
          var aliveTicks=0
          // Ticks in air
          var airTicks = 0
      
          // Ticks on ground
          var groundTicks = 0
      
          // motion of the movement
          var motionX = 0.0
          var motionY = 0.0
          var motionZ = 0.0
          var motionXZ = 0.0
      
          // Previous motion of the movement
          var lastMotionX = 0.0
          var lastMotionY = 0.0
          var lastMotionZ = 0.0
          var lastMotionXZ = 0.0
      
          // combat check
          var aps = 0
          var preAps = 0
          var tempAps = 0
          private val apsTimer=MSTimer()
      
          var vl=0
          var useHacks=ArrayList<String>()
      
          fun update(){
              aliveTicks++
              if (apsTimer.hasTimePassed(1000)) {
                  preAps = aps;
                  aps = tempAps;
                  tempAps = 0;
              }
      
              if(calculateGround()){
                  groundTicks++
                  airTicks=0
              }else{
                  airTicks++
                  groundTicks=0
              }
      
              this.lastMotionX = this.motionX
              this.lastMotionY = this.motionY
              this.lastMotionZ = this.motionZ
              this.lastMotionXZ = this.motionXZ
              this.motionX = player.posX-player.prevPosX
              this.motionY = player.posY-player.prevPosY
              this.motionZ = player.posZ-player.prevPosZ
              this.motionXZ = sqrt(motionX*motionX + motionZ*motionZ)
          }
      
          private fun calculateGround(): Boolean {
              val playerBoundingBox = player.entityBoundingBox
              val blockHeight = 1
              val customBox = AxisAlignedBB(playerBoundingBox.maxX, player.posY-blockHeight, playerBoundingBox.maxZ, playerBoundingBox.minX, player.posY, playerBoundingBox.minZ)
              return Minecraft.getMinecraft().theWorld.checkBlockCollision(customBox)
          }
      }
      
      
      DreamWasFuckedD Offline
      DreamWasFuckedD Offline
      DreamWasFucked
      wrote on last edited by
      #2

      @qwq-liulihaocai YEEES SIGMA ANTICHEET NO MORA SIGMA HATARS!!

      1 Reply Last reply
      0
      • Advanced SkidderA Offline
        Advanced SkidderA Offline
        Advanced Skidder
        wrote on last edited by
        #3

        Hi hackerman 😄 (i know you are hackerman feat: an fdp user)

        ? HackermanH 2 Replies Last reply
        1
        • Advanced SkidderA Advanced Skidder

          Hi hackerman 😄 (i know you are hackerman feat: an fdp user)

          ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #4

          @advanced-skidder said in [Kotlin] HackerDetector:

          Hi hackerman 😄 (i know you are hackerman feat: an fdp user)

          you are mega retarded hackerman is dumb asf

          Advanced SkidderA 1 Reply Last reply
          1
          • ? A Former User

            @advanced-skidder said in [Kotlin] HackerDetector:

            Hi hackerman 😄 (i know you are hackerman feat: an fdp user)

            you are mega retarded hackerman is dumb asf

            Advanced SkidderA Offline
            Advanced SkidderA Offline
            Advanced Skidder
            wrote on last edited by
            #5

            @chocopiexd Capture.PNG
            sure?

            ? 1 Reply Last reply
            0
            • Advanced SkidderA Advanced Skidder

              @chocopiexd Capture.PNG
              sure?

              ? Offline
              ? Offline
              A Former User
              wrote on last edited by
              #6

              @advanced-skidder said in [Kotlin] HackerDetector:

              @chocopiexd Capture.PNG
              sure?

              liulihaocai 100% isn't hackerman

              1 Reply Last reply
              0
              • Advanced SkidderA Advanced Skidder

                Hi hackerman 😄 (i know you are hackerman feat: an fdp user)

                HackermanH Offline
                HackermanH Offline
                Hackerman
                wrote on last edited by
                #7

                @advanced-skidder yes thats definitely me

                Advanced SkidderA 1 Reply Last reply
                0
                • HackermanH Hackerman

                  @advanced-skidder yes thats definitely me

                  Advanced SkidderA Offline
                  Advanced SkidderA Offline
                  Advanced Skidder
                  wrote on last edited by
                  #8

                  @hackerman POG

                  1 Reply Last reply
                  0
                  • BobikHatarB Offline
                    BobikHatarB Offline
                    BobikHatar
                    wrote on last edited by
                    #9

                    HATAR DETECTOR EZ

                    1 Reply Last reply
                    0
                    • qwq LiulihaocaiQ qwq Liulihaocai

                      DETECT SIGMA HATARS

                      code below...

                      package net.ccbluex.liquidbounce.features.module.modules.player
                      
                      import net.ccbluex.liquidbounce.event.EventTarget
                      import net.ccbluex.liquidbounce.event.PacketEvent
                      import net.ccbluex.liquidbounce.event.WorldEvent
                      import net.ccbluex.liquidbounce.features.module.Module
                      import net.ccbluex.liquidbounce.features.module.ModuleCategory
                      import net.ccbluex.liquidbounce.features.module.ModuleInfo
                      import net.ccbluex.liquidbounce.utils.EntityUtils
                      import net.ccbluex.liquidbounce.utils.timer.MSTimer
                      import net.ccbluex.liquidbounce.value.BoolValue
                      import net.ccbluex.liquidbounce.value.IntegerValue
                      import net.minecraft.client.Minecraft
                      import net.minecraft.entity.Entity
                      import net.minecraft.entity.EntityLivingBase
                      import net.minecraft.entity.player.EntityPlayer
                      import net.minecraft.network.play.server.S0BPacketAnimation
                      import net.minecraft.network.play.server.S14PacketEntity
                      import net.minecraft.network.play.server.S18PacketEntityTeleport
                      import net.minecraft.network.play.server.S19PacketEntityStatus
                      import net.minecraft.potion.Potion
                      import net.minecraft.util.AxisAlignedBB
                      import kotlin.math.abs
                      import kotlin.math.atan2
                      import kotlin.math.pow
                      import kotlin.math.sqrt
                      
                      
                      @ModuleInfo(name = "HackerDetector", description = "Detect SIGMA Hackers.", category = ModuleCategory.PLAYER)
                      class HackerDetector : Module() {
                          private val GRAVITY_FRICTION = 0.9800000190734863
                      
                          private val combatCheck=BoolValue("Combat",true)
                          private val movementCheck=BoolValue("Movement",true)
                          private val debugMode=BoolValue("Debug",false)
                          private val report=BoolValue("AutoReport",true)
                          private val vlValue=IntegerValue("VL",300,100,500)
                      
                          private val datas=HashMap<EntityPlayer,HackerData>()
                          private val hackers=ArrayList<String>()
                      
                      //    @EventTarget
                      //    fun onUpdate(event: UpdateEvent){
                      //        //this takes a bit time so we do it async
                      //        if(movementCheck.get()) {
                      //            Thread { checkMove() }.start()
                      //        }
                      //    }
                      
                          @EventTarget
                          fun onPacket(event: PacketEvent){
                              if(event.packet is S19PacketEntityStatus){
                                  val packet=event.packet
                                  if(combatCheck.get()&&packet.opCode.toInt()==2){
                                      Thread { checkCombatHurt(packet.getEntity(mc.theWorld)) }.start()
                                  }
                              }else if(event.packet is S0BPacketAnimation){
                                  val packet=event.packet
                                  val entity=mc.theWorld.getEntityByID(packet.entityID)
                                  if(entity !is EntityPlayer||packet.animationType!=0) return
                                  val data=datas[entity] ?: return
                                  data.tempAps++
                              }else if(movementCheck.get()){
                                  if(event.packet is S18PacketEntityTeleport){
                                      val packet=event.packet
                                      val entity=mc.theWorld.getEntityByID(packet.entityId)
                                      if(entity !is EntityPlayer) return
                                      Thread{ checkPlayer(entity) }.start()
                                  }else if(event.packet is S14PacketEntity){
                                      val packet=event.packet
                                      val entity=packet.getEntity(mc.theWorld)
                                      if(entity !is EntityPlayer) return
                                      Thread{ checkPlayer(entity) }.start()
                                  }
                              }
                          }
                      
                          override fun onEnable() {
                              datas.clear()
                              hackers.clear()
                          }
                      
                          @EventTarget
                          fun onWorld(event: WorldEvent){
                              datas.clear()
                          }
                      
                          fun isHacker(entity: EntityLivingBase):Boolean{
                              if(entity !is EntityPlayer) return false
                              return hackers.contains(entity.name)
                          }
                      
                          //onupdate
                      //    private fun checkMove(){
                      //        for(entity in mc.theWorld.loadedEntityList){
                      //            if(entity !is EntityPlayer) continue
                      //            checkPlayer(entity)
                      //        }
                      //    }
                      
                          private fun checkPlayer(player: EntityPlayer){
                              if(player.equals(mc.thePlayer)||EntityUtils.isFriend(player)) return
                              if(datas[player]==null) datas[player] = HackerData(player)
                              val data=datas[player] ?: return
                              data.update()
                              if(data.aliveTicks<20) return
                      
                              //settings
                              var minAirTicks = 10
                              if(player.isPotionActive(Potion.jump)){
                                  minAirTicks+=player.getActivePotionEffect(Potion.jump).amplifier*3
                              }
                              val maxMotionY = 0.47 //for strict check u can change this to 0.42
                              val maxOffset = 0.07
                              var passed=true
                              
                              if(player.hurtTime>0){
                                  //velocity
                                  if (player.hurtResistantTime in 7..11
                                      && player.prevPosX == player.posX && player.posZ == player.lastTickPosZ
                                      && !mc.theWorld.checkBlockCollision(player.entityBoundingBox.expand(0.05, 0.0, 0.05))) {
                                      flag("velocity",50,data,"NO KNOCKBACK")
                                  }
                                  if (player.hurtResistantTime in 7..11
                                      && player.lastTickPosY == player.posY) {
                                      flag("velocity",50,data,"NO KNOCKBACK")
                                  }
                                  return
                              }
                      
                              //phase
                      //        if(mc.theWorld.checkBlockCollision(player.entityBoundingBox)){
                      //            flag("phase",50,data,"COLLIDE")
                      //            passed=false
                      //        }
                      
                              //killaura from jigsaw
                              if (data.aps >= 10) {
                                  flag("killaura",30,data,"HIGH APS(aps=${data.aps})")
                                  passed=false
                              }
                              if (data.aps > 2 && data.aps == data.preAps && data.aps != 0) {
                                  flag("killaura",30,data,"STRANGE APS(aps=${data.aps})")
                                  passed=false
                              }
                              if (abs(player.rotationYaw - player.prevRotationYaw) > 50 && player.swingProgress != 0F
                                  && data.aps >= 3) {
                                  flag("killaura",30,data,"YAW RATE(aps=${data.aps},yawRot=${abs(player.rotationYaw - player.prevRotationYaw)})")
                                  passed=false
                              }
                      
                              //flight
                              if(player.ridingEntity==null&&data.airTicks>(minAirTicks/2)){
                                  if (abs(data.motionY - data.lastMotionY) < (if(data.airTicks >= 115){1E-3}else{5E-3})){
                                      flag("fly",20,data,"GLIDE(diff=${abs(data.motionY - data.lastMotionY)})")
                                      passed=false
                                  }
                                  if(data.motionY > maxMotionY){
                                      flag("fly",20,data,"YAXIS(motY=${data.motionY})")
                                      passed=false
                                  }
                                  if(data.airTicks > minAirTicks&&data.motionY>0){
                                      flag("fly",30,data,"YAXIS(motY=${data.motionY})")
                                      passed=false
                                  }
                                  //gravity check from ACR
                      //            val gravitatedY = (data.lastMotionY - 0.08) * GRAVITY_FRICTION
                      //            val offset = abs(gravitatedY - data.motionY)
                      //            if (offset > maxOffset) {
                      //                flag("fly",15,data,"GRAVITY(offset=$offset)")
                      //                passed=false
                      //            }
                              }
                      
                              //speed
                              val distanceXZ=abs(data.motionXZ)
                              if(data.airTicks==0){ //onGround
                                  var limit = 0.37
                                  if(data.groundTicks < 5) limit += 0.1
                                  if(player.isBlocking) limit *= 0.45
                                  if(player.isSneaking) limit *= 0.68
                                  if(player.isPotionActive(Potion.moveSpeed)){ //server will send real player potionData?i hope that
                                      limit += player.getActivePotionEffect(Potion.moveSpeed).amplifier
                                      limit *= 1.5
                                  }
                                  if (distanceXZ > limit) {
                                      flag("speed",20,data,"GROUND SPEED(speed=$distanceXZ,limit=$limit)")
                                  }
                              }else{
                                  val multiplier = 0.985
                                  var predict = 0.36 * multiplier.pow(data.airTicks + 1)
                                  if (data.airTicks >= 115)
                                      predict = 0.08.coerceAtLeast(predict);
                                  var limit=0.05
                                  if(player.isPotionActive(Potion.moveSpeed)){
                                      predict += player.getActivePotionEffect(Potion.moveSpeed).amplifier * 0.05
                                      limit *= 1.2
                                  }
                                  if(player.isPotionActive(Potion.jump)) {
                                      predict += player.getActivePotionEffect(Potion.jump).amplifier * 0.05
                                  }
                                  if(player.isBlocking)
                                      predict *= 0.7
                      
                                  if (distanceXZ - predict > limit) {
                                      flag("speed",20,data,"AIR SPEED(speed=$distanceXZ,limit=$limit,predict=$predict)")
                                  }
                              }
                      //        if (abs(data.motionX) > 0.42
                      //            || abs(data.motionZ) > 0.42){
                      //            flag("speed",30,data,"HIGH SPEED")
                      //            passed=false
                      //        }
                      //        if (player.isBlocking && (abs(data.motionX) > 0.2 || abs(data.motionZ) > 0.2)) {
                      //            flag("speed",30,data,"HIGH SPEED(BLOCKING)") //blocking is just noslow lol
                      //            passed=false
                      //        }
                      
                              //reduce vl
                              if(passed){
                                  data.vl-=1
                              }
                          }
                      
                          private fun flag(type: String,vl: Int,data: HackerData,msg: String){
                              if(!data.useHacks.contains(type)) data.useHacks.add(type)
                              //display debug message
                              if(debugMode.get()){
                                  chat("§f${data.player.name} §euse §2$type §7$msg §c${data.vl}+${vl}")
                              }
                              data.vl+=vl
                      
                              if(data.vl>vlValue.get()){
                                  var use=""
                                  for(typ in data.useHacks){
                                      use+="§a$typ§2,"
                                  }
                                  use=use.substring(0,use.length-3)
                                  chat("§f${data.player.name} §eusing hack $use")
                                  data.vl=-vlValue.get()
                      
                                  //autoreport only redesky
                                  val name=data.player.name
                                  if(report.get()&&!hackers.contains(name)){
                                      mc.thePlayer.sendChatMessage("/reportar $name")
                                      hackers.add(name)
                                  }
                              }
                          }
                      
                          private fun checkCombatHurt(entity: Entity){
                              if(entity !is EntityLivingBase) return
                              var attacker:EntityPlayer?=null
                              var attackerCount=0
                      
                              for(worldEntity in mc.theWorld.loadedEntityList){
                                  if(worldEntity !is EntityPlayer||worldEntity.getDistanceToEntity(entity)>7||worldEntity.equals(entity)) continue
                                  attackerCount++
                                  attacker=worldEntity
                              }
                      
                              //multi attacker may cause false result
                              if(attackerCount!=1) return
                              if(attacker!! == entity||EntityUtils.isFriend(attacker)) return //i and my friend is hacker lol
                              val data=datas[attacker] ?: return
                      
                              //reach check
                              val reach=attacker.getDistanceToEntity(entity)
                              if(reach>3.7){
                                  flag("killaura",70,data,"(reach=$reach)")
                              }
                      
                              //aim check
                              val yawDiff=calculateYawDifference(attacker,entity)
                              if(yawDiff>50){
                                  flag("killaura",100,data,"(yawDiff=$yawDiff)")
                              }
                          }
                      
                          private fun calculateYawDifference(from: EntityLivingBase, to: EntityLivingBase): Double {
                              val x = to.posX - from.posX
                              val z = to.posZ - from.posZ
                              return if (x == 0.0 && z == 0.0) {
                                  from.rotationYaw.toDouble()
                              } else {
                                  val theta = atan2(-x, z)
                                  val yaw=Math.toDegrees((theta + 6.283185307179586) % 6.283185307179586)
                                  abs(180 - abs(abs(yaw - from.rotationYaw) - 180));
                              }
                          }
                      }
                      
                      class HackerData(val player:EntityPlayer){
                          var aliveTicks=0
                          // Ticks in air
                          var airTicks = 0
                      
                          // Ticks on ground
                          var groundTicks = 0
                      
                          // motion of the movement
                          var motionX = 0.0
                          var motionY = 0.0
                          var motionZ = 0.0
                          var motionXZ = 0.0
                      
                          // Previous motion of the movement
                          var lastMotionX = 0.0
                          var lastMotionY = 0.0
                          var lastMotionZ = 0.0
                          var lastMotionXZ = 0.0
                      
                          // combat check
                          var aps = 0
                          var preAps = 0
                          var tempAps = 0
                          private val apsTimer=MSTimer()
                      
                          var vl=0
                          var useHacks=ArrayList<String>()
                      
                          fun update(){
                              aliveTicks++
                              if (apsTimer.hasTimePassed(1000)) {
                                  preAps = aps;
                                  aps = tempAps;
                                  tempAps = 0;
                              }
                      
                              if(calculateGround()){
                                  groundTicks++
                                  airTicks=0
                              }else{
                                  airTicks++
                                  groundTicks=0
                              }
                      
                              this.lastMotionX = this.motionX
                              this.lastMotionY = this.motionY
                              this.lastMotionZ = this.motionZ
                              this.lastMotionXZ = this.motionXZ
                              this.motionX = player.posX-player.prevPosX
                              this.motionY = player.posY-player.prevPosY
                              this.motionZ = player.posZ-player.prevPosZ
                              this.motionXZ = sqrt(motionX*motionX + motionZ*motionZ)
                          }
                      
                          private fun calculateGround(): Boolean {
                              val playerBoundingBox = player.entityBoundingBox
                              val blockHeight = 1
                              val customBox = AxisAlignedBB(playerBoundingBox.maxX, player.posY-blockHeight, playerBoundingBox.maxZ, playerBoundingBox.minX, player.posY, playerBoundingBox.minZ)
                              return Minecraft.getMinecraft().theWorld.checkBlockCollision(customBox)
                          }
                      }
                      
                      
                      ENDER1355E Offline
                      ENDER1355E Offline
                      ENDER1355
                      wrote on last edited by
                      #10

                      @qwq-liulihaocai YES ANTIHATAR RELEASED OMG

                      END3R1355E 1 Reply Last reply
                      0
                      • ENDER1355E ENDER1355

                        @qwq-liulihaocai YES ANTIHATAR RELEASED OMG

                        END3R1355E Offline
                        END3R1355E Offline
                        END3R1355
                        wrote on last edited by
                        #11

                        @ender1355 no

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        About
                        • Terms of Service
                        • Privacy Policy
                        • Status
                        • Contact Us
                        Downloads
                        • Releases
                        • Source code
                        • License
                        Docs
                        • Tutorials
                        • CustomHUD
                        • AutoSettings
                        • ScriptAPI
                        Community
                        • Forum
                        • Guilded
                        • YouTube
                        • Twitter
                        • D.Tube
                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups