Skip to content

Fix Spigot/Paper skin forwarding for Connect tunnels#27

Merged
robinbraemer merged 1 commit into
connectfrom
fix/spigot-forward-skin-properties
May 14, 2026
Merged

Fix Spigot/Paper skin forwarding for Connect tunnels#27
robinbraemer merged 1 commit into
connectfrom
fix/spigot-forward-skin-properties

Conversation

@robinbraemer
Copy link
Copy Markdown
Member

Summary

  • Preserve Connect session profile properties when constructing Spigot authlib GameProfiles so direct Paper/Spigot joins keep player skins.
  • Update Paper's PreFillProfileEvent fallback to use real Connect profile properties instead of always inserting an empty textures property.
  • Add Spigot tests covering signed texture conversion for authlib and Paper profile properties.

Compatibility notes

  • Supports old authlib versions with mutable GameProfile#getProperties().
  • Supports newer Paper/authlib record-style GameProfile#properties() and immutable PropertyMap by constructing a populated PropertyMap through reflection.
  • Avoids Shadow relocating the server authlib Guava class lookup by building the com.google.common.collect package string dynamically.

Verification

  • ./gradlew build
  • git diff --check
  • Runtime check against Paper 1.21.11 authlib 7.0.61 using the shaded Spigot jar: signed textures property preserved.
  • Live comparison with custom skin:
    • Velocity path with Connect on Velocity: skin visible.
    • Direct Paper with released 0.7.4: skin not visible.
    • Direct Paper with this patched Spigot jar: skin visible.

@robinbraemer robinbraemer merged commit b898894 into connect May 14, 2026
1 check passed
@robinbraemer robinbraemer deleted the fix/spigot-forward-skin-properties branch May 14, 2026 21:26
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