diff --git a/nms/v1_17_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_17/ReflectionManager.java b/nms/v1_17_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_17/ReflectionManager.java
index da4fb8e3..f5086b49 100644
--- a/nms/v1_17_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_17/ReflectionManager.java
+++ b/nms/v1_17_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_17/ReflectionManager.java
@@ -262,10 +262,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/nms/v1_18_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_18_1/ReflectionManager.java b/nms/v1_18_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_18_1/ReflectionManager.java
index e8266a8d..0a91e6f5 100644
--- a/nms/v1_18_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_18_1/ReflectionManager.java
+++ b/nms/v1_18_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_18_1/ReflectionManager.java
@@ -262,10 +262,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/nms/v1_18_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_18_2/ReflectionManager.java b/nms/v1_18_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_18_2/ReflectionManager.java
index 9b7835b6..56be977a 100644
--- a/nms/v1_18_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_18_2/ReflectionManager.java
+++ b/nms/v1_18_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_18_2/ReflectionManager.java
@@ -20,7 +20,6 @@ import me.libraryaddict.disguise.utilities.reflection.ReflectionManagerAbstract;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Registry;
import net.minecraft.core.Vector3f;
-import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket;
import net.minecraft.network.syncher.EntityDataAccessor;
@@ -263,10 +262,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/nms/v1_19_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R1/ReflectionManager.java b/nms/v1_19_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R1/ReflectionManager.java
index 53ad93fd..74cbd948 100644
--- a/nms/v1_19_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R1/ReflectionManager.java
+++ b/nms/v1_19_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R1/ReflectionManager.java
@@ -269,10 +269,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/nms/v1_19_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R2/ReflectionManager.java b/nms/v1_19_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R2/ReflectionManager.java
index 42c95adb..1c59aa69 100644
--- a/nms/v1_19_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R2/ReflectionManager.java
+++ b/nms/v1_19_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R2/ReflectionManager.java
@@ -319,10 +319,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/nms/v1_19_R3/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R3/ReflectionManager.java b/nms/v1_19_R3/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R3/ReflectionManager.java
index 30545c2f..59dbb83c 100644
--- a/nms/v1_19_R3/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R3/ReflectionManager.java
+++ b/nms/v1_19_R3/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_19_R3/ReflectionManager.java
@@ -314,10 +314,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/nms/v1_20_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R1/ReflectionManager.java b/nms/v1_20_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R1/ReflectionManager.java
index 9c302a0e..3a578d47 100644
--- a/nms/v1_20_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R1/ReflectionManager.java
+++ b/nms/v1_20_R1/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R1/ReflectionManager.java
@@ -315,10 +315,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/nms/v1_20_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R2/ReflectionManager.java b/nms/v1_20_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R2/ReflectionManager.java
index 91bd54d7..9805689c 100644
--- a/nms/v1_20_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R2/ReflectionManager.java
+++ b/nms/v1_20_R2/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R2/ReflectionManager.java
@@ -318,10 +318,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fetchProfile(gameProfile.getUUID(), true).profile());
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/nms/v1_20_R3/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R3/ReflectionManager.java b/nms/v1_20_R3/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R3/ReflectionManager.java
index 13540326..22eee500 100644
--- a/nms/v1_20_R3/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R3/ReflectionManager.java
+++ b/nms/v1_20_R3/src/main/java/me/libraryaddict/disguise/utilities/reflection/v1_20_R3/ReflectionManager.java
@@ -319,10 +319,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
}
- public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- DedicatedServer minecraftServer = getMinecraftServer();
- MinecraftSessionService sessionService = minecraftServer.getSessionService();
- return WrappedGameProfile.fromHandle(sessionService.fetchProfile(gameProfile.getUUID(), true).profile());
+ public MinecraftSessionService getMinecraftSessionService() {
+ return getMinecraftServer().getSessionService();
}
public Float getSoundModifier(Object entity) {
diff --git a/plugin/pom.xml b/plugin/pom.xml
index 415ad0d8..7006edf9 100644
--- a/plugin/pom.xml
+++ b/plugin/pom.xml
@@ -277,7 +277,7 @@
com.mojang
authlib
- 3.5.41
+ 5.0.51
provided
diff --git a/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java
index f83d3d29..fe0eca54 100644
--- a/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java
+++ b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java
@@ -3,16 +3,17 @@ package me.libraryaddict.disguise.utilities.reflection;
import com.comphenix.protocol.wrappers.WrappedGameProfile;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.ProfileLookupCallback;
+import lombok.Getter;
+@Getter
public class LibsProfileLookupCaller implements ProfileLookupCallback {
-
private WrappedGameProfile gameProfile;
- public WrappedGameProfile getGameProfile() {
- return gameProfile;
+ @Override
+ public void onProfileLookupFailed(String s, Exception e) {
}
- @Override
+ @Deprecated
public void onProfileLookupFailed(GameProfile gameProfile, Exception arg1) {
}
diff --git a/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java
index adf3a00a..52d3560b 100644
--- a/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java
+++ b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java
@@ -17,6 +17,7 @@ import com.comphenix.protocol.wrappers.WrappedParticle;
import com.comphenix.protocol.wrappers.WrappedWatchableObject;
import com.comphenix.protocol.wrappers.nbt.NbtWrapper;
import com.mojang.authlib.GameProfile;
+import com.mojang.authlib.minecraft.MinecraftSessionService;
import lombok.Getter;
import lombok.SneakyThrows;
import me.libraryaddict.disguise.DisguiseConfig;
@@ -194,6 +195,7 @@ public class ReflectionManager {
private static Field trackedPlayers;
private static Method clearEntityTracker;
private static Method addEntityTracker;
+ private static Method fillProfileProperties;
public static void init() {
try {
@@ -369,6 +371,15 @@ public class ReflectionManager {
entitiesField = getNmsField("EntityTracker", "trackedEntities");
ihmGet = getNmsMethod("IntHashMap", "get", int.class);
}
+
+ for (Method m : MinecraftSessionService.class.getMethods()) {
+ if (!m.getName().equals("fillProfileProperties")) {
+ continue;
+ }
+
+ fillProfileProperties = m;
+ break;
+ }
}
public static boolean hasInvul(Entity entity) {
@@ -1259,22 +1270,26 @@ public class ReflectionManager {
}
public static WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
- if (nmsReflection != null) {
- return nmsReflection.getSkullBlob(gameProfile);
- }
-
try {
- Object minecraftServer = getMinecraftServer();
+ MinecraftSessionService service = null;
- for (Method method : getNmsClass("MinecraftServer").getMethods()) {
- if (method.getReturnType().getSimpleName().equals("MinecraftSessionService")) {
- Object session = method.invoke(minecraftServer);
+ if (nmsReflection != null) {
+ service = nmsReflection.getMinecraftSessionService();
+ } else {
+ Object minecraftServer = getMinecraftServer();
- return WrappedGameProfile.fromHandle(
- session.getClass().getDeclaredMethod("fillProfileProperties", gameProfile.getHandleType(), boolean.class)
- .invoke(session, gameProfile.getHandle(), true));
+ for (Method method : getNmsClass("MinecraftServer").getMethods()) {
+ if (method.getReturnType().getSimpleName().equals("MinecraftSessionService")) {
+ service = (MinecraftSessionService) method.invoke(minecraftServer);
+ }
}
}
+
+ if (fillProfileProperties == null) {
+ return WrappedGameProfile.fromHandle(service.fetchProfile(gameProfile.getUUID(), true).profile());
+ }
+
+ return WrappedGameProfile.fromHandle(fillProfileProperties.invoke(service, gameProfile.getHandle(), true));
} catch (Exception ex) {
ex.printStackTrace();
}
diff --git a/shared/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManagerAbstract.java b/shared/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManagerAbstract.java
index 9830c582..9c14440a 100644
--- a/shared/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManagerAbstract.java
+++ b/shared/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManagerAbstract.java
@@ -6,6 +6,7 @@ import com.comphenix.protocol.wrappers.EnumWrappers;
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
import com.comphenix.protocol.wrappers.WrappedGameProfile;
import com.mojang.authlib.ProfileLookupCallback;
+import com.mojang.authlib.minecraft.MinecraftSessionService;
import org.bukkit.Art;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
@@ -82,7 +83,7 @@ public interface ReflectionManagerAbstract {
float[] getSize(Entity entity);
- WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile);
+ MinecraftSessionService getMinecraftSessionService();
Float getSoundModifier(Object entity);