mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-11-27 05:05:14 +01:00
8b7008c3a2
* Patch cleanup This is more like a maintenance commit rather than a one that adds functionallity. Server owners can skip updating to this, although it is recommended as I implemented a version checker. * Fix wrong predicate import * More useless diff removed
65 lines
3.5 KiB
Diff
65 lines
3.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: tr7zw <tr7zw@live.de>
|
|
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
|
|
}
|
|
}
|
|
|