43 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								@@ -0,0 +0,0 @@
							 | 
						||
| 
								 | 
							
								 package com.destroystokyo.paper.profile;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 import com.mojang.authlib.Environment;
							 | 
						||
| 
								 | 
							
								+import com.destroystokyo.paper.event.profile.FillProfileEvent;
							 | 
						||
| 
								 | 
							
								+import com.destroystokyo.paper.event.profile.PreFillProfileEvent;
							 | 
						||
| 
								 | 
							
								 import com.mojang.authlib.GameProfile;
							 | 
						||
| 
								 | 
							
								 import com.mojang.authlib.minecraft.MinecraftProfileTexture;
							 | 
						||
| 
								 | 
							
								 import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
							 | 
						||
| 
								 | 
							
								@@ -0,0 +0,0 @@ public class PaperMinecraftSessionService extends YggdrasilMinecraftSessionServi
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								     @Override
							 | 
						||
| 
								 | 
							
								     public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) {
							 | 
						||
| 
								 | 
							
								-        return super.fillProfileProperties(profile, requireSecure);
							 | 
						||
| 
								 | 
							
								+        CraftPlayerProfile playerProfile = (CraftPlayerProfile) CraftPlayerProfile.asBukkitMirror(profile);
							 | 
						||
| 
								 | 
							
								+        new PreFillProfileEvent(playerProfile).callEvent();
							 | 
						||
| 
								 | 
							
								+        profile = playerProfile.getGameProfile();
							 | 
						||
| 
								 | 
							
								+        if (profile.isComplete() && profile.getProperties().containsKey("textures")) {
							 | 
						||
| 
								 | 
							
								+            return profile;
							 | 
						||
| 
								 | 
							
								+        }
							 | 
						||
| 
								 | 
							
								+        GameProfile gameProfile = super.fillProfileProperties(profile, requireSecure);
							 | 
						||
| 
								 | 
							
								+        new FillProfileEvent(CraftPlayerProfile.asBukkitMirror(gameProfile)).callEvent();
							 | 
						||
| 
								 | 
							
								+        return gameProfile;
							 | 
						||
| 
								 | 
							
								     }
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								     @Override
							 |