Skip to content

PlayerProfile cache completions perform web requests #14219

Description

@Krakenied

Expected behavior

Image

Observed/Actual behavior

Image

Steps/models to reproduce

Just use the method

Plugin and Datapack List

null

Paper version

ver
[04:24:47 INFO]: This server is running Paper version 26.2-120-main@1797fbc (2026-08-28T19:56:08Z) (Implementing API version 26.2.build.120-stable)
You are running the latest version

Other

Possibly:

diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
--- a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java    (revision 26b94ad553e32a4fb8f7790e3eef3a6c32b77953)
+++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java    (date 1787969857353)
@@ -236,7 +236,7 @@
             if (onlineMode) {
                 profile = server.services().paper().filledProfileCache().getIfCached(name);
                 if (profile == null && lookupUUID) {
-                    NameAndId nameAndId = server.services().nameToIdCache().get(name).orElse(null);
+                    NameAndId nameAndId = server.services().nameToIdCache().getIfCached(name);
                     if (nameAndId != null) {
                         profile = nameAndId.toUncompletedGameProfile();
                     }

However I think that there's need to actually rethink the entire method body. I'm not even sure why there's textures check:

        if ((profile.name().isEmpty() || !hasTextures()) && this.getId() != null) {
            GameProfile profile = server.services().paper().filledProfileCache().getIfCached(this.profile.id());
            if (profile == null) {

Also, additional overload would be nice to have if the textures check is actually meant to be there, for example:

public boolean completeFromCache(boolean lookupUUID, boolean textures, boolean onlineMode) {

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions