mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
60 lines
3.5 KiB
Diff
60 lines
3.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
|
Date: Sun, 23 Jun 2024 11:26:20 +0800
|
|
Subject: [PATCH] Use caffeine cache for kickPermission instead of using
|
|
google.common.cache
|
|
|
|
This patch includes code that references the Caffeine caching library,
|
|
which is licensed under the Apache License, Version 2.0.
|
|
|
|
Caffeine (https://github.com/ben-manes/caffeine)
|
|
Copyright (c) Ben Manes
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
https://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
|
|
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
index 24aca7ba2cc3ec5f05bb4ea7d373feb730d8dd90..c30e017e6cffa6aa828b0f6e8889885dbaaa4680 100644
|
|
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
@@ -330,17 +330,12 @@ public class ServerGamePacketListenerImpl
|
|
}
|
|
|
|
// Purpur start - AFK API
|
|
- private final com.google.common.cache.LoadingCache<org.bukkit.craftbukkit.entity.CraftPlayer, Boolean> kickPermissionCache = com.google.common.cache.CacheBuilder.newBuilder()
|
|
+ // Leaf start - Use caffeine cache for kickPermission instead of using google.common.cache
|
|
+ private final com.github.benmanes.caffeine.cache.LoadingCache<org.bukkit.craftbukkit.entity.CraftPlayer, Boolean> kickPermissionCache = com.github.benmanes.caffeine.cache.Caffeine.newBuilder()
|
|
.maximumSize(1000)
|
|
.expireAfterWrite(1, java.util.concurrent.TimeUnit.MINUTES)
|
|
- .build(
|
|
- new com.google.common.cache.CacheLoader<>() {
|
|
- @Override
|
|
- public Boolean load(org.bukkit.craftbukkit.entity.CraftPlayer player) {
|
|
- return player.hasPermission("purpur.bypassIdleKick");
|
|
- }
|
|
- }
|
|
- );
|
|
+ .build(player -> player.hasPermission("purpur.bypassIdleKick"));
|
|
+ // Leaf end - Use caffeine cache for kickPermission instead of using google.common.cache
|
|
// Purpur end - AFK API
|
|
|
|
public final org.leavesmc.leaves.protocol.syncmatica.exchange.ExchangeTarget exchangeTarget; // Leaves - Syncmatica Protocol
|
|
@@ -405,7 +400,7 @@ public class ServerGamePacketListenerImpl
|
|
&& Util.getMillis() - this.player.getLastActionTime() > this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits
|
|
// Purpur start - AFK API
|
|
this.player.setAfk(true);
|
|
- if (!this.player.level().purpurConfig.idleTimeoutKick || (!Boolean.parseBoolean(System.getenv("PURPUR_FORCE_IDLE_KICK")) && kickPermissionCache.getUnchecked(this.player.getBukkitEntity()))) {
|
|
+ if (!this.player.level().purpurConfig.idleTimeoutKick || (!Boolean.parseBoolean(System.getenv("PURPUR_FORCE_IDLE_KICK")) && kickPermissionCache.get(this.player.getBukkitEntity()))) { // Leaf - Use caffeine cache for kickPermission instead of using google.common.cache
|
|
return;
|
|
}
|
|
// Purpur end - AFK API
|