mirror of
https://github.com/libraryaddict/LibsDisguises.git
synced 2025-02-01 23:22:22 +01:00
Redo sessions service to support authlib update in older versions
This commit is contained in:
parent
c7d8e44169
commit
33cb700aa1
@ -262,10 +262,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -262,10 +262,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -20,7 +20,6 @@ import me.libraryaddict.disguise.utilities.reflection.ReflectionManagerAbstract;
|
|||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Registry;
|
import net.minecraft.core.Registry;
|
||||||
import net.minecraft.core.Vector3f;
|
import net.minecraft.core.Vector3f;
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.network.chat.TextComponent;
|
import net.minecraft.network.chat.TextComponent;
|
||||||
import net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket;
|
import net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket;
|
||||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||||
@ -263,10 +262,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -269,10 +269,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -319,10 +319,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -314,10 +314,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -315,10 +315,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -318,10 +318,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fetchProfile(gameProfile.getUUID(), true).profile());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -319,10 +319,8 @@ public class ReflectionManager implements ReflectionManagerAbstract {
|
|||||||
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
return new float[]{dimensions.width, nmsEntity.getEyeHeight()};
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public MinecraftSessionService getMinecraftSessionService() {
|
||||||
DedicatedServer minecraftServer = getMinecraftServer();
|
return getMinecraftServer().getSessionService();
|
||||||
MinecraftSessionService sessionService = minecraftServer.getSessionService();
|
|
||||||
return WrappedGameProfile.fromHandle(sessionService.fetchProfile(gameProfile.getUUID(), true).profile());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float getSoundModifier(Object entity) {
|
public Float getSoundModifier(Object entity) {
|
||||||
|
@ -277,7 +277,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.mojang</groupId>
|
<groupId>com.mojang</groupId>
|
||||||
<artifactId>authlib</artifactId>
|
<artifactId>authlib</artifactId>
|
||||||
<version>3.5.41</version>
|
<version>5.0.51</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -3,16 +3,17 @@ package me.libraryaddict.disguise.utilities.reflection;
|
|||||||
import com.comphenix.protocol.wrappers.WrappedGameProfile;
|
import com.comphenix.protocol.wrappers.WrappedGameProfile;
|
||||||
import com.mojang.authlib.GameProfile;
|
import com.mojang.authlib.GameProfile;
|
||||||
import com.mojang.authlib.ProfileLookupCallback;
|
import com.mojang.authlib.ProfileLookupCallback;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
public class LibsProfileLookupCaller implements ProfileLookupCallback {
|
public class LibsProfileLookupCaller implements ProfileLookupCallback {
|
||||||
|
|
||||||
private WrappedGameProfile gameProfile;
|
private WrappedGameProfile gameProfile;
|
||||||
|
|
||||||
public WrappedGameProfile getGameProfile() {
|
@Override
|
||||||
return gameProfile;
|
public void onProfileLookupFailed(String s, Exception e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Deprecated
|
||||||
public void onProfileLookupFailed(GameProfile gameProfile, Exception arg1) {
|
public void onProfileLookupFailed(GameProfile gameProfile, Exception arg1) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import com.comphenix.protocol.wrappers.WrappedParticle;
|
|||||||
import com.comphenix.protocol.wrappers.WrappedWatchableObject;
|
import com.comphenix.protocol.wrappers.WrappedWatchableObject;
|
||||||
import com.comphenix.protocol.wrappers.nbt.NbtWrapper;
|
import com.comphenix.protocol.wrappers.nbt.NbtWrapper;
|
||||||
import com.mojang.authlib.GameProfile;
|
import com.mojang.authlib.GameProfile;
|
||||||
|
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import me.libraryaddict.disguise.DisguiseConfig;
|
import me.libraryaddict.disguise.DisguiseConfig;
|
||||||
@ -194,6 +195,7 @@ public class ReflectionManager {
|
|||||||
private static Field trackedPlayers;
|
private static Field trackedPlayers;
|
||||||
private static Method clearEntityTracker;
|
private static Method clearEntityTracker;
|
||||||
private static Method addEntityTracker;
|
private static Method addEntityTracker;
|
||||||
|
private static Method fillProfileProperties;
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
try {
|
try {
|
||||||
@ -369,6 +371,15 @@ public class ReflectionManager {
|
|||||||
entitiesField = getNmsField("EntityTracker", "trackedEntities");
|
entitiesField = getNmsField("EntityTracker", "trackedEntities");
|
||||||
ihmGet = getNmsMethod("IntHashMap", "get", int.class);
|
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) {
|
public static boolean hasInvul(Entity entity) {
|
||||||
@ -1259,22 +1270,26 @@ public class ReflectionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
public static WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) {
|
||||||
if (nmsReflection != null) {
|
|
||||||
return nmsReflection.getSkullBlob(gameProfile);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Object minecraftServer = getMinecraftServer();
|
MinecraftSessionService service = null;
|
||||||
|
|
||||||
for (Method method : getNmsClass("MinecraftServer").getMethods()) {
|
if (nmsReflection != null) {
|
||||||
if (method.getReturnType().getSimpleName().equals("MinecraftSessionService")) {
|
service = nmsReflection.getMinecraftSessionService();
|
||||||
Object session = method.invoke(minecraftServer);
|
} else {
|
||||||
|
Object minecraftServer = getMinecraftServer();
|
||||||
|
|
||||||
return WrappedGameProfile.fromHandle(
|
for (Method method : getNmsClass("MinecraftServer").getMethods()) {
|
||||||
session.getClass().getDeclaredMethod("fillProfileProperties", gameProfile.getHandleType(), boolean.class)
|
if (method.getReturnType().getSimpleName().equals("MinecraftSessionService")) {
|
||||||
.invoke(session, gameProfile.getHandle(), true));
|
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) {
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import com.comphenix.protocol.wrappers.EnumWrappers;
|
|||||||
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
||||||
import com.comphenix.protocol.wrappers.WrappedGameProfile;
|
import com.comphenix.protocol.wrappers.WrappedGameProfile;
|
||||||
import com.mojang.authlib.ProfileLookupCallback;
|
import com.mojang.authlib.ProfileLookupCallback;
|
||||||
|
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||||
import org.bukkit.Art;
|
import org.bukkit.Art;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
@ -82,7 +83,7 @@ public interface ReflectionManagerAbstract {
|
|||||||
|
|
||||||
float[] getSize(Entity entity);
|
float[] getSize(Entity entity);
|
||||||
|
|
||||||
WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile);
|
MinecraftSessionService getMinecraftSessionService();
|
||||||
|
|
||||||
Float getSoundModifier(Object entity);
|
Float getSoundModifier(Object entity);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user