diff --git a/src/main/java/com/comphenix/protocol/injector/EntityUtilities.java b/src/main/java/com/comphenix/protocol/injector/EntityUtilities.java index 4b44e777..2b3f5e7d 100644 --- a/src/main/java/com/comphenix/protocol/injector/EntityUtilities.java +++ b/src/main/java/com/comphenix/protocol/injector/EntityUtilities.java @@ -164,7 +164,7 @@ class EntityUtilities { FuzzyFieldContract.newBuilder() .banModifier(Modifier.STATIC) .requirePublic() - .typeExact(org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.ints.Int2ObjectMap.class) + .typeExact(MinecraftReflection.getInt2ObjectMapClass()) .build() ) ); diff --git a/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java b/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java index 263197d5..570f221b 100644 --- a/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java +++ b/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java @@ -2248,4 +2248,18 @@ public class MinecraftReflection { public static Class getAttributeBase() { return getMinecraftClass("world.entity.ai.attributes.AttributeBase", "AttributeBase"); } + + public static Class getInt2ObjectMapClass() { + try { + return getMinecraftLibraryClass("it.unimi.dsi.fastutil.ints.Int2ObjectMap"); + } catch (RuntimeException ex) { + try { + Class clazz = getMinecraftLibraryClass("org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.ints.Int2ObjectMap"); + setMinecraftLibraryClass("it.unimi.dsi.fastutil.ints.Int2ObjectMap", clazz); + return clazz; + } catch (RuntimeException ignored) { + throw ex; + } + } + } }