Skip to content

Commit

Permalink
Allow Removing Armor Plus Fragment Drops
Browse files Browse the repository at this point in the history
  • Loading branch information
IntegerLimit committed Feb 16, 2025
1 parent 86c00b9 commit 6e14c06
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 0 deletions.
9 changes: 9 additions & 0 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,9 @@ dependencies {
// Solar Flux Reborn (from CurseForge)
compileOnly rfg.deobf("curse.maven:solar-flux-reborn-246974:3050838") // Version 12.4.11

// Armor Plus (from CurseForge)
compileOnly rfg.deobf("curse.maven:armor-plus-237366:2803109") // Version 11.25.1.62

/* -------------------------------- Soft Deps, Multiple Runtime Declaration -------------------------------- */
if (project.enable_draconic.toBoolean() || project.enable_thermal.toBoolean()) {
runtimeOnly "curse.maven:redstone-flux-270789:2920436" // Version 2.1.1.1
Expand Down Expand Up @@ -328,4 +331,10 @@ dependencies {
if (project.enable_solar.toBoolean()) {
runtimeOnly "curse.maven:solar-flux-reborn-246974:3050838" // Version 12.4.11
}

if (project.enable_armor_plus.toBoolean()) {
// The Dragon Lib, runtime dep (from CurseForge)
runtimeOnly "curse.maven:the-dragon-lib-248055:2580332" // Version 5.3.0
runtimeOnly "curse.maven:armor-plus-237366:2803109" // Version 11.25.1.62
}
}
3 changes: 3 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -317,3 +317,6 @@ enable_mouse_tweaks = false

# Whether to enable Solar Flux Reborn in runtime. Improves performance of large solar fields.
enable_solar = false

# Whether to enable Armor Plus in runtime.
enable_armor_plus = false
1 change: 1 addition & 0 deletions src/main/java/com/nomiceu/nomilabs/LabsValues.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,5 @@ public class LabsValues {
public static final String FIND_ME_MODID = "findme";
public static final String REDSTONE_FLUX_MODID = "redstoneflux";
public static final String SOLAR_FLUX_MODID = "solarflux";
public static final String ARMOR_PLUS_MODID = "armorplus";
}
6 changes: 6 additions & 0 deletions src/main/java/com/nomiceu/nomilabs/config/LabsConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,12 @@ public static class ModIntegration {
@Config.LangKey("config.nomilabs.mod_integration.screwdrive_aa_relays")
public boolean gtScrewdriveAARelays = false;

@Config.Comment({
"Whether to disable drops of Armor Plus Fragments from the Ender Dragon, Wither and Elder Guardian.",
"[default: false]" })
@Config.LangKey("config.nomilabs.mod_integration.disable_armor_plus_frag_drops")
public boolean disableArmorPlusFragDrops = false;

@Config.Comment("AE2 Terminal Options")
@Config.LangKey("config.nomilabs.mod_integration.ae2_terminal")
@Config.Name("ae2 terminal options")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public class LabsLateMixinLoader implements ILateMixinLoader {
.put(LabsValues.STORAGE_DRAWERS_MODID, true)
.put(LabsValues.SOLAR_FLUX_MODID,
LabsConfig.modIntegration.solarFluxPerformanceOptions.enableSolarFluxPerformance)
.put(LabsValues.ARMOR_PLUS_MODID, true)
.build();

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.nomiceu.nomilabs.mixin.armorplus;

import net.minecraft.item.ItemStack;
import net.minecraftforge.event.entity.living.LivingDropsEvent;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import com.nomiceu.nomilabs.config.LabsConfig;
import com.sofodev.armorplus.common.events.CommonEventHandler;
import com.sofodev.armorplus.common.registry.items.ItemFragment;

/**
* Allows disabling of fragment drops.
*/
@Mixin(value = CommonEventHandler.class, remap = false)
public class CommonEventHandlerMixin {

@Inject(method = "registerMobDrop", at = @At("HEAD"), cancellable = true)
private static void disableFragmentDrops(LivingDropsEvent event, boolean enableDrop, ItemStack drop,
CallbackInfo ci) {
if (LabsConfig.modIntegration.disableArmorPlusFragDrops && drop.getItem() instanceof ItemFragment)
ci.cancel();
}
}
1 change: 1 addition & 0 deletions src/main/resources/assets/nomilabs/lang/en_us.lang
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ config.nomilabs.mod_integration.top_addons=Enable TOP Addons Integration
config.nomilabs.mod_integration.jei_ing_empty_line=Add JEI Ingredient Tooltip Empty Line
config.nomilabs.mod_integration.bqu_fluid_task_fixes=Enable BQu Fluid Task Fixes
config.nomilabs.mod_integration.screwdrive_aa_relays=Allow GT Screwdrivers for AA Laser Relays
config.nomilabs.mod_integration.disable_armor_plus_frag_drops=Disable Armor Plus Fragment Drops

config.nomilabs.mod_integration.effortlessbuilding=Effortless Building Integration Settings
config.nomilabs.mod_integration.effortlessbuilding.enable=Enable Effortless Building Integration
Expand Down
12 changes: 12 additions & 0 deletions src/main/resources/mixins.nomilabs.armorplus.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"package": "com.nomiceu.nomilabs.mixin.armorplus",
"refmap": "mixins.nomilabs.refmap.json",
"target": "@env(DEFAULT)",
"minVersion": "0.8",
"compatibilityLevel": "JAVA_8",
"mixins": [
"CommonEventHandlerMixin"
],
"client": [],
"server": []
}

0 comments on commit 6e14c06

Please sign in to comment.