Setting last input tick of a player when a player becomes active.
This commit is contained in:
@ -4,6 +4,7 @@ import dev.micle.loginprotection.LoginProtection;
|
||||
import dev.micle.loginprotection.network.NetworkManager;
|
||||
import dev.micle.loginprotection.network.ServerPlayerStatePacket;
|
||||
import dev.micle.loginprotection.setup.Config;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
@ -78,15 +79,21 @@ public class ProtectedPlayerManager {
|
||||
* @param playerUUID UUID of player to update the state of.
|
||||
*/
|
||||
public static void updateState(UUID playerUUID) {
|
||||
ProtectedPlayer player = getPlayer(playerUUID);
|
||||
|
||||
ProtectedPlayer protectedPlayer = getPlayer(playerUUID);
|
||||
ServerPlayer player = LoginProtection.getProxy().getServer().getPlayerList().getPlayer(playerUUID);
|
||||
if (player == null) {
|
||||
removePlayer(playerUUID);
|
||||
return;
|
||||
}
|
||||
|
||||
if (protectedPlayer == null) {
|
||||
addPlayer(playerUUID);
|
||||
} else {
|
||||
ProtectedPlayer.State currentState = player.getState();
|
||||
ProtectedPlayer.State currentState = protectedPlayer.getState();
|
||||
if (currentState.equals(ProtectedPlayer.State.JOINING) || currentState.equals(ProtectedPlayer.State.AFK)) {
|
||||
// JOINING, AFK -> ACTIVE
|
||||
player.setState(ProtectedPlayer.State.ACTIVE);
|
||||
protectedPlayer.setState(ProtectedPlayer.State.ACTIVE);
|
||||
protectedPlayer.setLastInputTick(player.tickCount);
|
||||
if (Config.Server.POST_GRACE_ENABLED.get()) {
|
||||
startGracePeriod(playerUUID);
|
||||
} else {
|
||||
@ -94,18 +101,13 @@ public class ProtectedPlayerManager {
|
||||
}
|
||||
} else {
|
||||
// ACTIVE -> AFK
|
||||
player.setState(ProtectedPlayer.State.AFK);
|
||||
protectedPlayer.setState(ProtectedPlayer.State.AFK);
|
||||
}
|
||||
|
||||
// Send state packet to player
|
||||
try {
|
||||
NetworkManager.getChannel().sendTo(new ServerPlayerStatePacket(player.getState()),
|
||||
LoginProtection.getProxy().getServer().getPlayerList().getPlayer(playerUUID).connection.getConnection(),
|
||||
NetworkDirection.PLAY_TO_CLIENT);
|
||||
} catch (NullPointerException e) {
|
||||
removePlayer(playerUUID);
|
||||
}
|
||||
|
||||
NetworkManager.getChannel().sendTo(new ServerPlayerStatePacket(protectedPlayer.getState()),
|
||||
player.connection.getConnection(),
|
||||
NetworkDirection.PLAY_TO_CLIENT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user