We flagged, info the player and add to packet queue to bypass BadPacketsN.
This should not autotoggle, since everything that has been used
with disabler would still be enabled.
*/
packetQueue.add(DelayData(packet, System.currentTimeMillis()))
chat(markAsError(translation("liquidbounce.module.disabler.messages.grimSpectateMessage")))
}
}
if (delay) {
// it's not really good idea to delay our packets for way too long, let's just release it after a while
// idk this is fine for minemalia ig.
// if (timer.hasElapsed(seconds.toLong() * 1000L)) {
// packetQueue.forEach() { handlePacket(it.packet) }
// packetQueue.clear()
//
// delay = false
// timer.reset()
// }
// delay transaction of course so the server will think we still have the flying ablities.
if (packet is CommonPingS2CPacket) {
packetQueue.add(DelayData(packet, System.currentTimeMillis()))
event.cancelEvent()
// Prevent you from getting timed out, it will not work if your version is below 1.17
network.sendPacket(CommonPongC2SPacket(0))
}
Describe the bypass and how to replicate it
//OK this source form liquidbounce nextgen.and it's can work on 1.12.2-1.20.4 cheat client
package net.ccbluex.liquidbounce.features.module.modules.exploit.disabler.disablers
import net.ccbluex.liquidbounce.config.ToggleableConfigurable import net.ccbluex.liquidbounce.event.events.PacketEvent import net.ccbluex.liquidbounce.event.events.TransferOrigin import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.fakelag.DelayData import net.ccbluex.liquidbounce.features.module.modules.exploit.disabler.ModuleDisabler import net.ccbluex.liquidbounce.lang.translation import net.ccbluex.liquidbounce.utils.client.* import net.minecraft.network.packet.c2s.common.CommonPongC2SPacket import net.minecraft.network.packet.s2c.common.CommonPingS2CPacket import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket
/**
I will try my best to explain everything. */ internal object DisablerGrimSpectate : ToggleableConfigurable(ModuleDisabler, "GrimSpectate", false) {
private val packetQueue = LinkedHashSet()
private var delay = false
override fun enable() { chat(warning(translation("liquidbounce.module.disabler.messages.grimSpectateEnableMessage"))) super.enable() }
override fun disable() { if (inGame) { packetQueue.forEach { handlePacket(it.packet) } }
}
/**
https://github.com/GrimAnticheat/Grim/blob/2.0/src/main/java/ac/grim/grimac/events/packets/PacketPlayerAbilities.java */ @Suppress("unused") val packetHandler = handler { event ->
val packet = event.packet
if (player.age < 20) { packetQueue.clear() return@handler }
if (event.origin != TransferOrigin.RECEIVE) { return@handler }
/**
if (delay) { // it's not really good idea to delay our packets for way too long, let's just release it after a while // idk this is fine for minemalia ig. // if (timer.hasElapsed(seconds.toLong() * 1000L)) { // packetQueue.forEach() { handlePacket(it.packet) } // packetQueue.clear() // // delay = false // timer.reset() // }
} } }
Grim version
Latest build still has this problem
Server version
spigot 1.8-1.20.4
Plugins
grimac spartan