Skip to content

Commit

Permalink
Add persistEnchantedBooksOnly config option
Browse files Browse the repository at this point in the history
  • Loading branch information
DonovanDMC committed Jan 26, 2023
1 parent 8483c6a commit bb8ac14
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/main/generation
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,6 @@ public final class Config {
public static final ForgeConfigSpec.ConfigValue<Integer> infiniteFuelCost = Builder.comment("The cost of using the infinite fuel item.").defineInRange("infiniteFuelCost", 128, 1, Integer.MAX_VALUE);
public static final ForgeConfigSpec.ConfigValue<Integer> infiniteFuelBurnTime = Builder.comment("The ticks each usage of the infinite fuel item will give.").defineInRange("infiniteFuelBurnTime", 1600, 1, Integer.MAX_VALUE);
public static final ForgeConfigSpec.ConfigValue<Integer> infiniteSteakCost = Builder.comment("The cost of using the infinite steak item.").defineInRange("infiniteSteakCost", 64, 1, Integer.MAX_VALUE);
public static final ForgeConfigSpec.ConfigValue<Boolean> persistEnchantedBooksOnly = Builder.comment("If ProjectE's processors.EnchantmentProcessor.persistent option should only include enchanted books.").define("persistEnchantedBooksOnly", false);
static { Spec = Builder.build(); }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package cool.furry.mc.forge.projectexpansion.mixin;

import cool.furry.mc.forge.projectexpansion.config.Config;
import moze_intel.projecte.api.ItemInfo;
import moze_intel.projecte.emc.nbt.processor.EnchantmentProcessor;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.item.Items;
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.CallbackInfoReturnable;

@Mixin(EnchantmentProcessor.class)
public class EnchantmentProcessorMixin {
@Inject(at = @At("HEAD"), method = "getPersistentNBT(Lmoze_intel/projecte/api/ItemInfo;)Lnet/minecraft/nbt/CompoundTag;", cancellable = true, remap = false)
public void getPersistentNBT(ItemInfo info, CallbackInfoReturnable<CompoundTag> cir) {
if(Config.persistEnchantedBooksOnly.get() && info.getItem() != Items.ENCHANTED_BOOK) {
cir.setReturnValue(null);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package cool.furry.mc.forge.projectexpansion.mixin;


import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;
33 changes: 17 additions & 16 deletions src/main/resources/projectexpansion.mixins.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
{
"required": true,
"minVersion": "0.8",
"package": "cool.furry.mc.forge.projectexpansion.mixin",
"compatibilityLevel": "JAVA_17",
"refmap": "projectexpansion.refmap.json",
"client": [
"DeleteWeebShitMixin",
"EMCFormatterMixin"
],
"mixins": [
"AlchemicalBagMixin",
"EnchantmentMixin",
"PhilosophersStoneMixin"
],
"injectors": {
"defaultRequire": 1
"required": true,
"minVersion": "0.8",
"package": "cool.furry.mc.forge.projectexpansion.mixin",
"compatibilityLevel": "JAVA_17",
"refmap": "projectexpansion.refmap.json",
"client": [
"DeleteWeebShitMixin",
"EMCFormatterMixin"
],
"mixins": [
"AlchemicalBagMixin",
"EnchantmentMixin",
"EnchantmentProcessorMixin",
"PhilosophersStoneMixin"
],
"injectors": {
"defaultRequire": 1
}
}

0 comments on commit bb8ac14

Please sign in to comment.