Skip to content

Commit

Permalink
Add support for GVCLib dependents
Browse files Browse the repository at this point in the history
  • Loading branch information
MikhailTapio committed Apr 2, 2023
1 parent 281c09f commit eddf94e
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 5 deletions.
6 changes: 5 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -98,6 +98,9 @@ repositories {
includeGroup "curse.maven"
}
}
flatDir {
dir 'libs'
}
}

dependencies {
Expand All @@ -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
Expand Down
Binary file added libs/gvclib-5.4.2.jar
Binary file not shown.
29 changes: 25 additions & 4 deletions src/main/java/committee/nova/skillsfirearms/SkillsFirearms.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<Class<?>> SUPPORTED = new HashSet<>();
private static Function<EntityDamageSourceIndirect, EntityPlayerMP> 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);
Expand All @@ -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");
Expand Down Expand Up @@ -114,13 +113,31 @@ public void postInit(FMLPostInitializationEvent event) {
return null;
});
SUPPORTED.add(pubg);
final Class<? extends EntityDamageSourceIndirect> GUN = (Class<? extends EntityDamageSourceIndirect>)
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
Expand Down Expand Up @@ -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;
}
}

0 comments on commit eddf94e

Please sign in to comment.