mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 13:16:45 +01:00
Apply patch by @SirYwell to construct the ResourceKey without consulting the DimensionManager
This commit is contained in:
parent
48d3c2105d
commit
6c9b73b100
@ -63,11 +63,11 @@ public class OfflinePlayerUtil {
|
|||||||
Object profile = newGameProfile(id, name);
|
Object profile = newGameProfile(id, name);
|
||||||
Class<?> entityPlayerClass = getNmsClass("EntityPlayer");
|
Class<?> entityPlayerClass = getNmsClass("EntityPlayer");
|
||||||
Constructor entityPlayerConstructor =
|
Constructor entityPlayerConstructor =
|
||||||
makeConstructor(entityPlayerClass, getNmsClass("MinecraftServer"),
|
makeConstructor(entityPlayerClass, getNmsClass("MinecraftServer"),
|
||||||
getNmsClass("WorldServer"), getUtilClass("com.mojang.authlib.GameProfile"),
|
getNmsClass("WorldServer"), getUtilClass("com.mojang.authlib.GameProfile"),
|
||||||
getNmsClass("PlayerInteractManager"));
|
getNmsClass("PlayerInteractManager"));
|
||||||
Object entityPlayer =
|
Object entityPlayer =
|
||||||
callConstructor(entityPlayerConstructor, server, worldServer, profile, interactManager);
|
callConstructor(entityPlayerConstructor, server, worldServer, profile, interactManager);
|
||||||
return (Player) getBukkitEntity(entityPlayer);
|
return (Player) getBukkitEntity(entityPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,12 +100,21 @@ public class OfflinePlayerUtil {
|
|||||||
public static Object getWorldServer116() {
|
public static Object getWorldServer116() {
|
||||||
Object server = getMinecraftServer();
|
Object server = getMinecraftServer();
|
||||||
Class<?> minecraftServerClass = getNmsClass("MinecraftServer");
|
Class<?> minecraftServerClass = getNmsClass("MinecraftServer");
|
||||||
Class<?> dimensionManager = getNmsClass("DimensionManager");
|
|
||||||
Class<?> genericResourceKey = getNmsClass("ResourceKey");
|
Class<?> genericResourceKey = getNmsClass("ResourceKey");
|
||||||
Object overworld = getField(makeField(dimensionManager, "OVERWORLD"), null);
|
Class<?> minecraftKey = getNmsClass("MinecraftKey");
|
||||||
|
// MinecraftKey + MinecraftKey -> ResourceKey
|
||||||
|
Method constructResourceKey = makeMethod(genericResourceKey, "a", minecraftKey, minecraftKey);
|
||||||
|
// MinecraftKey(String)
|
||||||
|
Constructor<Object> minecraftKeyConstructor = makeConstructor(minecraftKey, String.class);
|
||||||
|
// minecraft:overworld
|
||||||
|
Object overworldKey = callConstructor(minecraftKeyConstructor, "overworld");
|
||||||
|
// minecraft:dimension
|
||||||
|
Object dimensionKey = callConstructor(minecraftKeyConstructor, "dimension");
|
||||||
|
// ResourceKey[minecraft:dimension / minecraft:overworld]
|
||||||
|
Object resourceKey = callMethod(constructResourceKey, null, dimensionKey, overworldKey);
|
||||||
Method getWorldServer =
|
Method getWorldServer =
|
||||||
makeMethod(minecraftServerClass, "getWorldServer", genericResourceKey);
|
makeMethod(minecraftServerClass, "getWorldServer", genericResourceKey);
|
||||||
return callMethod(getWorldServer, server, overworld);
|
return callMethod(getWorldServer, server, resourceKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Object getWorldServerNew() {
|
public static Object getWorldServerNew() {
|
||||||
|
Loading…
Reference in New Issue
Block a user