@@ -5,8 +5,7 @@ import com.lambda.event.listener.SafeListener.Companion.listener
55import com.lambda.module.Module
66import com.lambda.module.tag.ModuleTag
77import com.lambda.threading.runSafe
8- import com.lambda.util.Communication.info
9- import net.minecraft.entity.Entity
8+ import com.lambda.util.KeyCode
109import net.minecraft.entity.projectile.FireworkRocketEntity
1110import net.minecraft.network.packet.c2s.common.CommonPongC2SPacket
1211import net.minecraft.network.packet.s2c.play.EntitiesDestroyS2CPacket
@@ -15,10 +14,13 @@ import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket
1514object RocketExtend : Module(
1615 name = " RocketExtend" ,
1716 description = " Extends rocket length on grim" ,
18- defaultTags = setOf(ModuleTag .MOVEMENT )
17+ defaultTags = setOf(ModuleTag .MOVEMENT ),
18+ defaultKeybind = KeyCode .GraveAccent
1919) {
2020 private var extendedRockets = mutableListOf<FireworkRocketEntity >()
2121 private var pingPacket: CommonPongC2SPacket ? = null
22+ private var lastPingTime = - 1L
23+ private val keepAliveTime by setting(" Keepalive timeout seconds" , 45 , 0 .. 60 , 1 )
2224
2325 init {
2426 listener<PacketEvent .Receive .Pre > { event ->
@@ -35,6 +37,14 @@ object RocketExtend : Module(
3537
3638 listener<PacketEvent .Send .Pre > { event ->
3739 if (event.packet !is CommonPongC2SPacket ) return @listener
40+ if (extendedRockets.isEmpty()) {
41+ lastPingTime = System .currentTimeMillis()
42+ return @listener
43+ }
44+ if (System .currentTimeMillis() - lastPingTime > keepAliveTime * 1000 ) {
45+ reset()
46+ return @listener
47+ }
3848 pingPacket = event.packet
3949 event.cancel()
4050 }
@@ -47,5 +57,6 @@ object RocketExtend : Module(
4757 extendedRockets.clear()
4858 pingPacket?.let (connection::sendPacket)
4959 pingPacket = null
60+ lastPingTime = System .currentTimeMillis()
5061 }
5162}
0 commit comments