@@ -21,18 +21,21 @@ import com.lambda.event.events.PacketEvent
2121import com.lambda.event.events.PlayerEvent
2222import com.lambda.event.events.RenderEvent
2323import com.lambda.event.listener.SafeListener.Companion.listen
24+ import com.lambda.graphics.renderer.gui.FontRenderer
2425import com.lambda.module.Module
2526import com.lambda.module.tag.ModuleTag
2627import com.lambda.util.Communication.info
2728import com.lambda.util.collections.LimitedDecayQueue
28- import com.mojang.blaze3d.systems.RenderSystem
29- import net.minecraft.client.gui.DrawContext
30- import net.minecraft.client.gui.screen.ingame.HandledScreen
29+ import com.lambda.util.math.Vec2d
30+ import net.minecraft.client.gui.screen.ingame.GenericContainerScreen
3131import net.minecraft.network.packet.c2s.common.CommonPongC2SPacket
3232import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket
33- import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket.*
33+ import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket.Full
34+ import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket.LookAndOnGround
35+ import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket.OnGroundOnly
36+ import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket.PositionAndOnGround
3437import net.minecraft.network.packet.c2s.play.TeleportConfirmC2SPacket
35- import net.minecraft.text.Text
38+ import java.awt.Color
3639import kotlin.math.floor
3740
3841// ToDo: HUD info
@@ -92,34 +95,33 @@ object PacketLimiter : Module(
9295 }
9396 }
9497
95- // [email protected] ("Packet sent: ${it.packet::class.simpleName} (${packetQueue.size} / $limit) ${Instant.now()}")98+ // [email protected] ("Packet sent: ${it.packet::class.simpleName} (${packetQueue.size} / $limit) ${Instant.now()}")9699 if (packetQueue.add(it)) return @listen
97100
98101 it.cancel()
99102 this @PacketLimiter.info(" Packet limit reached, dropping packet: ${it.packet::class .simpleName} (${packetQueue.size} / $limit )" )
100103 }
101104
102- listen<PlayerEvent .SlotClick >{
105+ listen<PlayerEvent .SlotClick > {
103106 if (! limitClickPackets) return @listen
104107 if (! canSendClickPackets(1 )) {
105108 it.cancel()
106109 return @listen
107110 }
108111 }
109112
110- listen<RenderEvent .GUI .Container > {
111- if (! limitClickRender) return @listen
112- val renderScreen: HandledScreen <* > = it.genericContainerScreen
113- val context: DrawContext = it.drawContext
114- val x = renderScreen.x
115- val y = renderScreen.y
116-
117- RenderSystem .disableDepthTest()
113+ listen<RenderEvent .GUI .Fixed > {
114+ if (! limitClickRender) {
115+ return @listen
116+ }
117+ val sh = mc.currentScreen as ? GenericContainerScreen ? : return @listen
118118 val remainingText = " Clicks Remaining: $clickPacketsRemaining "
119- context.drawText(renderScreen.textRenderer, Text .literal(remainingText), x + renderScreen.backgroundWidth, y, 4210752 , false )
120- RenderSystem .enableDepthTest()
119+ val mcScale = mc.window.scaleFactor
120+ val fontScale = mcScale * 1.5
121+ val fontHeight = FontRenderer .getHeight(fontScale)
122+ FontRenderer .drawString(remainingText, Vec2d (sh.x * mcScale, sh.y * mcScale - fontHeight), Color (0x9DFFFF ), fontScale, false )
121123 }
122124 }
123125
124- fun canSendClickPackets (packets : Int ) = clickPacketQueue.size + packets < clickPacketsWindowAmount
126+ fun canSendClickPackets (packets : Int ) = clickPacketQueue.size + packets <= clickPacketsWindowAmount
125127}
0 commit comments