Add environment variable to bypass idle kick permission

This commit is contained in:
granny
2023-04-13 23:22:36 -07:00
parent f69b21de45
commit 9429820ef6

View File

@@ -73,7 +73,7 @@ index d59e49a4958ebfb2ce0b9ca127b5a98fc5d88804..71905201cd42094fa3f545f29ada0f7e
return this.stats;
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index b125779217ef3adcc865c50ac9c5f5cfd747db50..febae4d31eb82945765fa7606515a570d3f111ce 100644
index b125779217ef3adcc865c50ac9c5f5cfd747db50..d119a15532220432fe0d595bed56f51ba305671e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -339,6 +339,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -103,7 +103,7 @@ index b125779217ef3adcc865c50ac9c5f5cfd747db50..febae4d31eb82945765fa7606515a570
if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) (this.server.getPlayerIdleTimeout() * 1000 * 60) && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits.
+ // Purpur start
+ this.player.setAfk(true);
+ if (!this.player.level.purpurConfig.idleTimeoutKick || kickPermissionCache.getUnchecked(this.player.getBukkitEntity())) {
+ if (!this.player.level.purpurConfig.idleTimeoutKick || (!Boolean.parseBoolean(System.getenv("PURPUR_FORCE_IDLE_KICK")) && kickPermissionCache.getUnchecked(this.player.getBukkitEntity()))) {
+ return;
+ }
+ // Purpur end