Had to drop some hunks modifying getEntities, as those methods were rewritten by Mojang in 1.17
40 lines
1.4 KiB
Diff
40 lines
1.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: oxygencraft <21054297+oxygencraft@users.noreply.github.com>
|
|
Date: Sun, 25 Oct 2020 18:34:50 +1100
|
|
Subject: [PATCH] Add getOfflinePlayerIfCached(String)
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index c4d7ac8abd7d86e8a4e2d8a3340d04f8710e925c..0d29e3163a637c742d100129cb650f53635ef765 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -1612,6 +1612,28 @@ public final class CraftServer implements Server {
|
|
return result;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ @Nullable
|
|
+ public OfflinePlayer getOfflinePlayerIfCached(String name) {
|
|
+ Validate.notNull(name, "Name cannot be null");
|
|
+ Validate.notEmpty(name, "Name cannot be empty");
|
|
+
|
|
+ OfflinePlayer result = getPlayerExact(name);
|
|
+ if (result == null) {
|
|
+ GameProfile profile = console.getProfileCache().getProfileIfCached(name);
|
|
+
|
|
+ if (profile != null) {
|
|
+ result = getOfflinePlayer(profile);
|
|
+ }
|
|
+ } else {
|
|
+ offlinePlayers.remove(result.getUniqueId());
|
|
+ }
|
|
+
|
|
+ return result;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public OfflinePlayer getOfflinePlayer(UUID id) {
|
|
Validate.notNull(id, "UUID cannot be null");
|