diff --git a/build.gradle b/build.gradle index d750a31..ce392c9 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ apply plugin: 'net.minecraftforge.gradle' group = 'committee.nova' -version = '1.1.2' +version = '1.1.3' def mcVersion = "1.12.2" java { @@ -98,6 +98,9 @@ repositories { includeGroup "curse.maven" } } + flatDir { + dir 'libs' + } } dependencies { @@ -111,6 +114,7 @@ dependencies { //implementation fg.deobf("curse.maven:vics-modern-warfare-mod-243788:4415481") implementation fg.deobf("curse.maven:configuration-444699:3241921") implementation fg.deobf("curse.maven:pubgmc-mod-297074:3285714") + implementation fg.deobf("gvclib:gvclib:5.4.2") // Real mod deobf dependency examples - these get remapped to your current mappings // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Adds the full JEI mod as a runtime dependency diff --git a/libs/gvclib-5.4.2.jar b/libs/gvclib-5.4.2.jar new file mode 100644 index 0000000..d99ec99 Binary files /dev/null and b/libs/gvclib-5.4.2.jar differ diff --git a/src/main/java/committee/nova/skillsfirearms/SkillsFirearms.java b/src/main/java/committee/nova/skillsfirearms/SkillsFirearms.java index ad22e25..ccbeb1a 100644 --- a/src/main/java/committee/nova/skillsfirearms/SkillsFirearms.java +++ b/src/main/java/committee/nova/skillsfirearms/SkillsFirearms.java @@ -43,9 +43,9 @@ public class SkillsFirearms { private static final String CGM = "com.mrcrayfish.guns.entity.EntityProjectile"; private static final String MW = "com.vicmatskiv.weaponlib.EntityProjectile"; private static final String PUBG = "dev.toma.pubgmc.common.entity.EntityBullet"; + private static final String GVC = "gvclib.entity.EntityBBase"; private static final Set> SUPPORTED = new HashSet<>(); - private static Function PUBG_COMPAT = e -> null; private static final ResourceLocation FA_OLD = new ResourceLocation("skillscgm", "firearm"); public static final ISkill FIREARM = new Skill(new ResourceLocation(MODID, "firearm"), 100, BossInfo.Color.BLUE, (int i) -> i * 200); @@ -57,7 +57,6 @@ public void preInit(FMLPreInitializationEvent event) { } @EventHandler - @SuppressWarnings("unchecked") public void postInit(FMLPostInitializationEvent event) { if (CompatConfig.cgm) { LOGGER.info("Try registering cgm compatibility"); @@ -114,13 +113,31 @@ public void postInit(FMLPostInitializationEvent event) { return null; }); SUPPORTED.add(pubg); - final Class GUN = (Class) - Class.forName("dev.toma.pubgmc.init.DamageSourceGun"); LOGGER.info("Successfully registered PUBGMC compatibility!"); } catch (ClassNotFoundException | NoSuchMethodException ignored) { LOGGER.error("Failed to register PUBGMC compatibility..."); } } + if (CompatConfig.gvc) { + LOGGER.info("Try registering compatibility for GVCLib dependents"); + try { + final Class gvc = Class.forName(GVC); + final Method p = gvc.getDeclaredMethod("getThrower"); + p.setAccessible(true); + strategies.put(GVC, e -> { + try { + return (Entity) p.invoke(e); + } catch (IllegalAccessException | InvocationTargetException ex) { + ex.printStackTrace(); + } + return null; + }); + SUPPORTED.add(gvc); + LOGGER.info("Successfully registered compatibility for GVCLib dependents!"); + } catch (ClassNotFoundException | NoSuchMethodException ignored) { + LOGGER.error("Failed to register compatibility for GVCLib dependents..."); + } + } } @SubscribeEvent @@ -209,5 +226,9 @@ public static final class CompatConfig { @Config.Comment("Enable compat for PUBGMC") @Config.RequiresMcRestart public static boolean pubg = true; + + @Config.Comment("Enable compat for GVBLib dependents") + @Config.RequiresMcRestart + public static boolean gvc = true; } }