From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: tr7zw Date: Wed, 5 Aug 2020 14:25:50 -0500 Subject: [PATCH] Add GameProfileLookupEvent diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java index dd96dd296d042c0625e527b50b3acfc19a2bf43e..2a67013f6d2656a3d89cb042ba401bcaeb731d83 100644 --- a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java @@ -185,13 +185,24 @@ public class CraftPlayerProfile implements PlayerProfile { boolean isCompleteFromCache = this.completeFromCache(true, onlineMode); if (onlineMode && (!isCompleteFromCache || textures && !hasTextures())) { - GameProfile result = server.getMinecraftSessionService().fillProfileProperties(profile, true); - if (result != null) { - copyProfileProperties(result, this.profile, true); - } - if (this.profile.isComplete()) { - server.getUserCache().saveProfile(this.profile); + // Yatopia start + dev.tr7zw.yatopia.events.GameProfileLookupEvent event = new + dev.tr7zw.yatopia.events.GameProfileLookupEvent( + !org.bukkit.Bukkit.isPrimaryThread(), profile.getId(), profile.getName()); + org.bukkit.Bukkit.getPluginManager().callEvent(event); + GameProfile eventProfile = event.getGameProfile(); + if (eventProfile != null) { + this.profile = eventProfile; + } else { + GameProfile result = server.getMinecraftSessionService().fillProfileProperties(profile, true); + if (result != null) { + copyProfileProperties(result, this.profile, true); + } + if (this.profile.isComplete()) { + server.getUserCache().saveProfile(this.profile); + } } + // Yatopia end } return profile.isComplete() && (!onlineMode || !textures || hasTextures()); } diff --git a/src/main/java/net/minecraft/server/TileEntitySkull.java b/src/main/java/net/minecraft/server/TileEntitySkull.java index 579a81e521fdfabfa0318d06c6760a8ab7a88c1e..ab553f408b31cb7e2d281cc3d8fe42e19dc717d9 100644 --- a/src/main/java/net/minecraft/server/TileEntitySkull.java +++ b/src/main/java/net/minecraft/server/TileEntitySkull.java @@ -77,7 +77,18 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa if ( property == null ) { + // Yatopia start + dev.tr7zw.yatopia.events.GameProfileLookupEvent event = + new dev.tr7zw.yatopia.events.GameProfileLookupEvent( + !org.bukkit.Bukkit.isPrimaryThread(), profile.getId(), profile.getName()); + org.bukkit.Bukkit.getPluginManager().callEvent(event); + GameProfile eventProfile = event.getGameProfile(); + if (eventProfile != null) { + profile = eventProfile; + } else { profile = TileEntitySkull.sessionService.fillProfileProperties( profile, true ); + } + // Yatopia end } }