Removed OnPlayerTickEventHandler and added client-sided last input tick field with getter and setter to proxy.

This commit is contained in:
2022-06-05 13:49:17 +01:00
parent 1931f491a0
commit a440fcc1ab
2 changed files with 9 additions and 22 deletions

View File

@ -1,21 +0,0 @@
package dev.micle.loginprotection.events;
import dev.micle.loginprotection.data.ProtectedPlayer;
import dev.micle.loginprotection.data.ProtectedPlayerManager;
import dev.micle.loginprotection.setup.Config;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
public class OnPlayerTickEventHandler {
@SubscribeEvent
public void onPlayerTickEvent(TickEvent.PlayerTickEvent event) {
ProtectedPlayer protectedPlayer = ProtectedPlayerManager.getPlayer(event.player.getUUID());
if (protectedPlayer == null) {
return;
}
if (protectedPlayer.getState().equals(ProtectedPlayer.State.ACTIVE) && Config.Server.AFK_PROTECTION_ENABLED.get() &&
event.player.tickCount - protectedPlayer.getLastInputTick() >= Config.Server.AFK_TIME_THRESHOLD.get() * 20) {
ProtectedPlayerManager.updateState(protectedPlayer.getPlayerUUID());
}
}
}

View File

@ -45,7 +45,6 @@ public class Proxy implements IProxy {
MinecraftForge.EVENT_BUS.register(new OnPlayerDamageEventHandler());
MinecraftForge.EVENT_BUS.register(new OnPlayerJoinEventHandler());
MinecraftForge.EVENT_BUS.register(new OnPlayerLeaveEventHandler());
MinecraftForge.EVENT_BUS.register(new OnPlayerTickEventHandler());
}
private static void setup(FMLCommonSetupEvent event) {}
@ -83,6 +82,7 @@ public class Proxy implements IProxy {
// Client setup
public static class Client extends Proxy {
private static ProtectedPlayer.State playerState;
private static int lastInputTick;
public Client() {
// Register mod event bus listeners
@ -106,6 +106,14 @@ public class Proxy implements IProxy {
playerState = newPlayerState;
}
public static int getLastInputTick() {
return lastInputTick;
}
public static void setLastInputTick(int newLastInputTick) {
lastInputTick = newLastInputTick;
}
@Override
@OnlyIn(Dist.CLIENT)
public Player getClientPlayer() {