Skip to content

Release 3.22.3 - #3064

Open
tastybento wants to merge 4 commits into
masterfrom
develop
Open

Release 3.22.3#3064
tastybento wants to merge 4 commits into
masterfrom
develop

Conversation

@tastybento

Copy link
Copy Markdown
Member

No description provided.

tastybento and others added 4 commits August 10, 2026 07:56
A PlayerProfile that has a UUID and a name but no textures property makes the
server resolve it against the Mojang session server every time the head is
shown. On a top ten panel that is ten lookups per open, which quickly returns
HTTP 429 and still renders a default skin.

HeadGetter created exactly that profile whenever its own texture fetch failed,
and handed it to requesters anyway: the "only if the texture is usable" check
tested for a null profile, which createProfile never returns. The failed lookup
also overwrote any good cached entry, so a single rate limited call cost a
working head for the whole cache period and kept the loop running.

- HeadCache gains hasTexture() and only calls setOwnerProfile when a skin is
  actually known, so a failed lookup yields a plain head instead of one the
  server keeps trying to resolve.
- HeadGetter only notifies requesters when the texture is usable, and no longer
  lets a failed fetch evict a cached head that has one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014HtnKzNE649pBrCdqMm7nw
Do not put texture-less profiles on player heads
@sonarqubecloud

Copy link
Copy Markdown

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant