LagNotifier > Kotlin

This commit is contained in:
Bella 2020-05-06 17:33:55 -04:00
parent b01c57968b
commit fe5a734854
No known key found for this signature in database
GPG Key ID: DBD4A6030080C8B3
2 changed files with 70 additions and 68 deletions

View File

@ -1,68 +0,0 @@
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.zeroeightsix.kami.gui.rgui.render.font.FontRenderer;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import me.zeroeightsix.kami.util.Wrapper;
import net.minecraft.client.gui.GuiChat;
import static me.zeroeightsix.kami.gui.kami.DisplayGuiScreen.getScale;
import static me.zeroeightsix.kami.util.MathsUtils.round;
import static me.zeroeightsix.kami.util.WebHelper.isDown;
/**
* @author dominikaaaa
* Thanks Brady and cooker and leij for helping me not be completely retarded
*
* Updated by dominikaaaa on 19/04/20
*/
@Module.Info(
name = "LagNotifier",
description = "Displays a warning when the server is lagging",
category = Module.Category.PLAYER
)
public class LagNotifier extends Module {
private Setting<Double> timeout = register(Settings.doubleBuilder().withName("Timeout").withValue(1.0).withMinimum(0.0).withMaximum(10.0).build());
private long serverLastUpdated;
String text = "Server Not Responding! ";
@Override
public void onRender() {
if (mc.currentScreen != null && !(mc.currentScreen instanceof GuiChat)) return;
if (!(timeout.getValue() * 1000L <= System.currentTimeMillis() - serverLastUpdated)) return;
if (shouldPing()) {
if (isDown("1.1.1.1", 80, 1000)) {
text = "Your internet is offline! ";
} else {
text = "Server Not Responding! ";
}
}
text = text.replaceAll("! .*", "! " + timeDifference() + "s");
FontRenderer renderer = Wrapper.getFontRenderer();
int divider = getScale();
/* 217 is the offset to make it go high, bigger = higher, with 0 being center */
renderer.drawStringWithShadow(mc.displayWidth / divider / 2 - renderer.getStringWidth(text) / 2, mc.displayHeight / divider / 2 - 217, 255, 85, 85, text);
}
@EventHandler
private Listener<PacketEvent.Receive> receiveListener = new Listener<>(event -> serverLastUpdated = System.currentTimeMillis());
private double timeDifference() {
return round((System.currentTimeMillis() - serverLastUpdated) / 1000d, 1);
}
private static long startTime = 0;
private boolean shouldPing() {
if (startTime == 0) startTime = System.currentTimeMillis();
if (startTime + 1000 <= System.currentTimeMillis()) { // 1 second
startTime = System.currentTimeMillis();
return true;
}
return false;
}
}

View File

@ -0,0 +1,70 @@
package me.zeroeightsix.kami.module.modules.player
import me.zero.alpine.listener.EventHandler
import me.zero.alpine.listener.EventHook
import me.zero.alpine.listener.Listener
import me.zeroeightsix.kami.event.events.PacketEvent.Receive
import me.zeroeightsix.kami.gui.kami.DisplayGuiScreen
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
import me.zeroeightsix.kami.util.MathsUtils
import me.zeroeightsix.kami.util.WebHelper
import me.zeroeightsix.kami.util.Wrapper
import net.minecraft.client.gui.GuiChat
/**
* @author dominikaaaa
* Thanks Brady and cooker and leij for helping me not be completely retarded
*
* Updated by dominikaaaa on 19/04/20
*/
@Module.Info(
name = "LagNotifier",
description = "Displays a warning when the server is lagging",
category = Module.Category.PLAYER
)
class LagNotifier : Module() {
private val timeout = register(Settings.doubleBuilder().withName("Timeout").withValue(2.0).withMinimum(0.0).withMaximum(10.0).build())
private var serverLastUpdated: Long = 0
var text = "Server Not Responding! "
override fun onRender() {
if (mc.currentScreen != null && mc.currentScreen !is GuiChat) return
if (1000L * timeout.value.toDouble() > System.currentTimeMillis() - serverLastUpdated) return
if (shouldPing()) {
text = if (WebHelper.isDown("1.1.1.1", 80, 1000)) {
"Your internet is offline! "
} else {
"Server Not Responding! "
}
}
text = text.replace("! .*".toRegex(), "! " + timeDifference() + "s")
val renderer = Wrapper.getFontRenderer()
val divider = DisplayGuiScreen.getScale()
/* 217 is the offset to make it go high, bigger = higher, with 0 being center */
renderer.drawStringWithShadow(mc.displayWidth / divider / 2 - renderer.getStringWidth(text) / 2, mc.displayHeight / divider / 2 - 217, 255, 85, 85, text)
}
@EventHandler
private val receiveListener = Listener(EventHook { event: Receive? -> serverLastUpdated = System.currentTimeMillis() })
private fun timeDifference(): Double {
return MathsUtils.round((System.currentTimeMillis() - serverLastUpdated) / 1000.0, 1)
}
private fun shouldPing(): Boolean {
if (startTime == 0L) startTime = System.currentTimeMillis()
if (startTime + 1000 <= System.currentTimeMillis()) { // 1 second
startTime = System.currentTimeMillis()
return true
}
return false
}
companion object {
private var startTime: Long = 0
}
}