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