From 4fc476a1256bc01e81a90b4cefe425b42818962c Mon Sep 17 00:00:00 2001 From: Dan Mulloy Date: Sun, 20 Jun 2021 12:42:41 -0400 Subject: [PATCH] Use right int 2 object map class for Paper Addresses #1217 --- .../protocol/injector/EntityUtilities.java | 2 +- .../protocol/utility/MinecraftReflection.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) 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; + } + } + } }