--- a/net/minecraft/server/players/ProfileResolver.java
+++ b/net/minecraft/server/players/ProfileResolver.java
@@ -25,7 +_,7 @@
         private final LoadingCache<String, Optional<GameProfile>> profileCacheByName;
         final LoadingCache<UUID, Optional<GameProfile>> profileCacheById;
 
-        public Cached(final MinecraftSessionService sessionService, final UserNameToIdResolver resolver) {
+        public Cached(final MinecraftSessionService sessionService, final UserNameToIdResolver resolver, final io.papermc.paper.profile.PaperFilledProfileCache paperCache) { // Paper - add paperCache
             this.profileCacheById = CacheBuilder.newBuilder()
                 .expireAfterAccess(Duration.ofMinutes(10L))
                 .maximumSize(256L)
@@ -33,7 +_,13 @@
                     @Override
                     public Optional<GameProfile> load(UUID uuid) {
                         ProfileResult profileResult = sessionService.fetchProfile(uuid, true);
-                        return Optional.ofNullable(profileResult).map(ProfileResult::profile);
+                        // Paper start - update paper cache
+                        return Optional.ofNullable(profileResult).map(ProfileResult::profile)
+                            .map(profile -> {
+                                paperCache.add(profile);
+                                return profile;
+                            });
+                        // Paper end - update paper cache
                     }
                 });
             this.profileCacheByName = CacheBuilder.newBuilder()
