2021-06-11 14:02:28 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Aikar <aikar@aikar.co>
|
|
|
|
Date: Tue, 2 Jan 2018 00:31:26 -0500
|
|
|
|
Subject: [PATCH] Fill Profile Property Events
|
|
|
|
|
|
|
|
Allows plugins to populate profile properties from local sources to avoid calls out to Mojang API
|
|
|
|
to fill in textures for example.
|
|
|
|
|
|
|
|
If Mojang API does need to be hit, event fire so you can get the results.
|
|
|
|
|
|
|
|
This is useful for implementing a ProfileCache for Player Skulls
|
|
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
|
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
|
|
--- a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
|
|
|
|
+++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
|
2023-12-06 20:10:59 +01:00
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
package com.destroystokyo.paper.profile;
|
|
|
|
|
|
|
|
import com.mojang.authlib.Environment;
|
|
|
|
+import com.mojang.authlib.GameProfile;
|
|
|
|
import com.mojang.authlib.yggdrasil.ProfileResult;
|
|
|
|
import com.mojang.authlib.yggdrasil.ServicesKeySet;
|
|
|
|
import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
|
2021-06-11 14:02:28 +02:00
|
|
|
@@ -0,0 +0,0 @@ public class PaperMinecraftSessionService extends YggdrasilMinecraftSessionServi
|
2023-12-06 20:10:59 +01:00
|
|
|
super(servicesKeySet, proxy, environment);
|
2023-09-22 04:31:59 +02:00
|
|
|
}
|
2021-06-11 14:02:28 +02:00
|
|
|
|
2023-09-22 04:31:59 +02:00
|
|
|
- @Override
|
|
|
|
+ public @Nullable ProfileResult fetchProfile(GameProfile profile, final boolean requireSecure) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ CraftPlayerProfile playerProfile = (CraftPlayerProfile) CraftPlayerProfile.asBukkitMirror(profile);
|
2023-09-22 04:31:59 +02:00
|
|
|
+ new com.destroystokyo.paper.event.profile.PreFillProfileEvent(playerProfile).callEvent();
|
2021-06-11 14:02:28 +02:00
|
|
|
+ profile = playerProfile.getGameProfile();
|
2023-09-22 04:31:59 +02:00
|
|
|
+ if (profile.getProperties().containsKey("textures")) {
|
|
|
|
+ return new ProfileResult(profile, java.util.Collections.emptySet());
|
|
|
|
+ }
|
|
|
|
+ ProfileResult result = super.fetchProfile(profile.getId(), requireSecure);
|
|
|
|
+ if (result != null) {
|
|
|
|
+ new com.destroystokyo.paper.event.profile.FillProfileEvent(CraftPlayerProfile.asBukkitMirror(result.profile())).callEvent();
|
2021-06-11 14:02:28 +02:00
|
|
|
+ }
|
2023-09-22 04:31:59 +02:00
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override @io.papermc.paper.annotation.DoNotUse @Deprecated
|
|
|
|
public @Nullable ProfileResult fetchProfile(final UUID profileId, final boolean requireSecure) {
|
|
|
|
return super.fetchProfile(profileId, requireSecure);
|
2021-06-11 14:02:28 +02:00
|
|
|
}
|