/* * KubaTech - Gregtech Addon * Copyright (C) 2022 kuba6000 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * */ package kubatech.api.utils; import atomicstryker.infernalmobs.common.InfernalMobsCore; import atomicstryker.infernalmobs.common.mods.api.ModifierLoader; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @SuppressWarnings("unchecked") public class InfernalHelper { private static Method isClassAllowed = null; public static boolean isClassAllowed(EntityLivingBase e) { try { if (isClassAllowed == null) { isClassAllowed = InfernalMobsCore.class.getDeclaredMethod("isClassAllowed", EntityLivingBase.class); isClassAllowed.setAccessible(true); } return (boolean) isClassAllowed.invoke(InfernalMobsCore.instance(), e); } catch (Throwable exception) { exception.printStackTrace(); } return false; } private static Method checkEntityClassForced = null; public static boolean checkEntityClassForced(EntityLivingBase e) { try { if (checkEntityClassForced == null) { checkEntityClassForced = InfernalMobsCore.class.getDeclaredMethod("checkEntityClassForced", EntityLivingBase.class); checkEntityClassForced.setAccessible(true); } return (boolean) checkEntityClassForced.invoke(InfernalMobsCore.instance(), e); } catch (Throwable exception) { exception.printStackTrace(); } return false; } private static Field modifierLoaders = null; public static ArrayList> getModifierLoaders() { try { if (modifierLoaders == null) { modifierLoaders = InfernalMobsCore.class.getDeclaredField("modifierLoaders"); modifierLoaders.setAccessible(true); } return (ArrayList>) modifierLoaders.get(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return new ArrayList<>(); } private static Field eliteRarity; public static int getEliteRarity() { try { if (eliteRarity == null) { eliteRarity = InfernalMobsCore.class.getDeclaredField("eliteRarity"); eliteRarity.setAccessible(true); } return eliteRarity.getInt(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return 15; } private static Field ultraRarity; public static int getUltraRarity() { try { if (ultraRarity == null) { ultraRarity = InfernalMobsCore.class.getDeclaredField("ultraRarity"); ultraRarity.setAccessible(true); } return ultraRarity.getInt(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return 15; } private static Field infernoRarity; public static int getInfernoRarity() { try { if (infernoRarity == null) { infernoRarity = InfernalMobsCore.class.getDeclaredField("infernoRarity"); infernoRarity.setAccessible(true); } return infernoRarity.getInt(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return 15; } private static Field minEliteModifiers; public static int getMinEliteModifiers() { try { if (minEliteModifiers == null) { minEliteModifiers = InfernalMobsCore.class.getDeclaredField("minEliteModifiers"); minEliteModifiers.setAccessible(true); } return minEliteModifiers.getInt(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return 15; } private static Field minUltraModifiers; public static int getMinUltraModifiers() { try { if (minUltraModifiers == null) { minUltraModifiers = InfernalMobsCore.class.getDeclaredField("minUltraModifiers"); minUltraModifiers.setAccessible(true); } return minUltraModifiers.getInt(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return 15; } private static Field minInfernoModifiers; public static int getMinInfernoModifiers() { try { if (minInfernoModifiers == null) { minInfernoModifiers = InfernalMobsCore.class.getDeclaredField("minInfernoModifiers"); minInfernoModifiers.setAccessible(true); } return minInfernoModifiers.getInt(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return 15; } private static Field dimensionBlackList; public static ArrayList getDimensionBlackList() { try { if (dimensionBlackList == null) { dimensionBlackList = InfernalMobsCore.class.getDeclaredField("dimensionBlackList"); dimensionBlackList.setAccessible(true); } return (ArrayList) dimensionBlackList.get(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return new ArrayList<>(); } private static Field dropIdListElite; public static ArrayList getDropIdListElite() { try { if (dropIdListElite == null) { dropIdListElite = InfernalMobsCore.class.getDeclaredField("dropIdListElite"); dropIdListElite.setAccessible(true); } return (ArrayList) dropIdListElite.get(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return new ArrayList<>(); } private static Field dropIdListUltra; public static ArrayList getDropIdListUltra() { try { if (dropIdListUltra == null) { dropIdListUltra = InfernalMobsCore.class.getDeclaredField("dropIdListUltra"); dropIdListUltra.setAccessible(true); } return (ArrayList) dropIdListUltra.get(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return new ArrayList<>(); } private static Field dropIdListInfernal; public static ArrayList getDropIdListInfernal() { try { if (dropIdListInfernal == null) { dropIdListInfernal = InfernalMobsCore.class.getDeclaredField("dropIdListInfernal"); dropIdListInfernal.setAccessible(true); } return (ArrayList) dropIdListInfernal.get(InfernalMobsCore.instance()); } catch (Throwable exception) { exception.printStackTrace(); } return new ArrayList<>(); } }