parent
c31133c20f
commit
cc95e19ba4
|
@ -73,6 +73,11 @@ public final class MinecraftReflection {
|
||||||
// Cache of getBukkitEntity
|
// Cache of getBukkitEntity
|
||||||
private static final Map<Class<?>, MethodAccessor> BUKKIT_ENTITY_CACHE = new HashMap<>();
|
private static final Map<Class<?>, MethodAccessor> BUKKIT_ENTITY_CACHE = new HashMap<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Entity package in Forge 1.5.2
|
||||||
|
*/
|
||||||
|
private static final String FORGE_ENTITY_PACKAGE = "net.minecraft.entity";
|
||||||
|
|
||||||
// Package private for the purpose of unit testing
|
// Package private for the purpose of unit testing
|
||||||
static CachedPackage minecraftPackage;
|
static CachedPackage minecraftPackage;
|
||||||
static CachedPackage craftbukkitPackage;
|
static CachedPackage craftbukkitPackage;
|
||||||
|
@ -171,7 +176,28 @@ public final class MinecraftReflection {
|
||||||
Method getHandle = getCraftEntityClass().getMethod("getHandle");
|
Method getHandle = getCraftEntityClass().getMethod("getHandle");
|
||||||
MINECRAFT_FULL_PACKAGE = getHandle.getReturnType().getPackage().getName();
|
MINECRAFT_FULL_PACKAGE = getHandle.getReturnType().getPackage().getName();
|
||||||
|
|
||||||
setDynamicPackageMatcher(MINECRAFT_CLASS_NAME_REGEX);
|
// Pretty important invariant
|
||||||
|
if (!MINECRAFT_FULL_PACKAGE.startsWith(MINECRAFT_PREFIX_PACKAGE)) {
|
||||||
|
// See if we got the Forge entity package
|
||||||
|
if (MINECRAFT_FULL_PACKAGE.equals(FORGE_ENTITY_PACKAGE)) {
|
||||||
|
// Use the standard NMS versioned package
|
||||||
|
MINECRAFT_FULL_PACKAGE = CachedPackage.combine(MINECRAFT_PREFIX_PACKAGE, packageVersion);
|
||||||
|
} else {
|
||||||
|
// Assume they're the same instead
|
||||||
|
MINECRAFT_PREFIX_PACKAGE = MINECRAFT_FULL_PACKAGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The package is usually flat, so go with that assumption
|
||||||
|
String matcher =
|
||||||
|
(MINECRAFT_PREFIX_PACKAGE.length() > 0 ? Pattern.quote(MINECRAFT_PREFIX_PACKAGE + ".") : "") + CANONICAL_REGEX;
|
||||||
|
|
||||||
|
// We'll still accept the default location, however
|
||||||
|
setDynamicPackageMatcher("(" + matcher + ")|(" + MINECRAFT_CLASS_NAME_REGEX + ")");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Use the standard matcher
|
||||||
|
setDynamicPackageMatcher(MINECRAFT_CLASS_NAME_REGEX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return MINECRAFT_FULL_PACKAGE;
|
return MINECRAFT_FULL_PACKAGE;
|
||||||
|
|
Loading…
Reference in New Issue