This commit is contained in:
libraryaddict 2020-11-26 18:36:30 +13:00
parent 8fbeb2a4f7
commit 3f7d824e73

View File

@ -74,8 +74,7 @@ public class ReflectionManager {
private static Enum[] enumGamemode; private static Enum[] enumGamemode;
private static Method getNmsEntityMethod; private static Method getNmsEntityMethod;
private static Enum[] enumItemSlots; private static Enum[] enumItemSlots;
private static Enum[] craftSounds; private static Method soundGetMethod;
private static Field craftSound;
private static Constructor vector3FConstructor; private static Constructor vector3FConstructor;
private static Method enumDirectionFrom; private static Method enumDirectionFrom;
private static Constructor villagerDataConstructor; private static Constructor villagerDataConstructor;
@ -138,9 +137,7 @@ public class ReflectionManager {
enumGamemode = (Enum[]) getNmsClass("EnumGamemode").getEnumConstants(); enumGamemode = (Enum[]) getNmsClass("EnumGamemode").getEnumConstants();
getNmsEntityMethod = getCraftMethod("entity.CraftEntity", "getHandle"); getNmsEntityMethod = getCraftMethod("entity.CraftEntity", "getHandle");
enumItemSlots = (Enum[]) getNmsClass("EnumItemSlot").getEnumConstants(); enumItemSlots = (Enum[]) getNmsClass("EnumItemSlot").getEnumConstants();
craftSounds = (Enum[]) getCraftClass("CraftSound").getEnumConstants(); soundGetMethod = getCraftMethod("CraftSound", "getSound", Sound.class);
craftSound = getCraftClass("CraftSound").getDeclaredField("minecraftKey");
craftSound.setAccessible(true);
vector3FConstructor = getNmsConstructor("Vector3f", float.class, float.class, float.class); vector3FConstructor = getNmsConstructor("Vector3f", float.class, float.class, float.class);
enumDirectionFrom = getNmsMethod("EnumDirection", "fromType1", int.class); enumDirectionFrom = getNmsMethod("EnumDirection", "fromType1", int.class);
getBlockData = getNmsMethod(getNmsClass("Block"), "getBlockData"); getBlockData = getNmsMethod(getNmsClass("Block"), "getBlockData");
@ -1060,15 +1057,9 @@ public class ReflectionManager {
public static Object getSoundString(Sound sound) { public static Object getSoundString(Sound sound) {
try { try {
for (Enum e : craftSounds) { return soundGetMethod.invoke(null, sound);
if (!e.name().equals(sound.name())) { } catch (IllegalAccessException | InvocationTargetException e) {
continue; e.printStackTrace();
}
return craftSound.get(e);
}
} catch (IllegalAccessException illegalAccessException) {
illegalAccessException.printStackTrace();
} }
return null; return null;