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) {

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions