From 6d436a2c6a5d9b51070b8399c4fdb196603a8e82 Mon Sep 17 00:00:00 2001 From: Jakub <53441451+kuba6000@users.noreply.github.com> Date: Sun, 14 Aug 2022 15:19:13 +0200 Subject: Add "Mob Drops" NEI page + Extreme Extermination Chamber (#1) * First commit * Mixins * Merge the same items with diffrent damage * Faster random in NEI * More accuracy ? * Update ClientProxy.java * Renaming * Update buildscript * Use reserved MTE ID's * EEC work * Rework NEI page * Fix inaccurate chances * Basic equipment spawn * Add config options * Translations * Add infernal drops * Witchery fix * Forestry fixes * More fixes * Default blacklist * NEI sorting * Comment out testing deps * Clientsided check * Blood Magic support * LoaderReference * Check if peacefull is allowed * Add some XP output * Add recipe * Send Server config to Client * Add command to reload config * Translations * Process MT additions --- .../mixins/minecraft/EnchantmentHelperMixin.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/java/kubatech/mixin/mixins/minecraft/EnchantmentHelperMixin.java (limited to 'src/main/java/kubatech/mixin/mixins') diff --git a/src/main/java/kubatech/mixin/mixins/minecraft/EnchantmentHelperMixin.java b/src/main/java/kubatech/mixin/mixins/minecraft/EnchantmentHelperMixin.java new file mode 100644 index 0000000000..e07c0d335a --- /dev/null +++ b/src/main/java/kubatech/mixin/mixins/minecraft/EnchantmentHelperMixin.java @@ -0,0 +1,40 @@ +package kubatech.mixin.mixins.minecraft; + +import static kubatech.loaders.MobRecipeLoader.randomEnchantmentDetectedString; + +import java.util.Random; +import kubatech.api.utils.FastRandom; +import kubatech.loaders.MobRecipeLoader; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagInt; +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.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@SuppressWarnings("unused") +@Mixin(value = EnchantmentHelper.class) +public class EnchantmentHelperMixin { + + private static final Random rnd = new FastRandom(); + + @Inject(method = "addRandomEnchantment", at = @At("HEAD"), require = 1) + private static void addRandomEnchantmentDetector( + Random random, + ItemStack itemStack, + int enchantabilityLevel, + CallbackInfoReturnable callbackInfoReturnable) { + if (MobRecipeLoader.isInGenerationProcess && random instanceof MobRecipeLoader.fakeRand) { + itemStack.setTagInfo(randomEnchantmentDetectedString, new NBTTagInt(enchantabilityLevel)); + } + } + + @ModifyVariable(method = "addRandomEnchantment", at = @At("HEAD"), ordinal = 0, argsOnly = true, require = 1) + private static Random addRandomEnchantmentModifier(Random random) { + if (!MobRecipeLoader.isInGenerationProcess) return random; + if (random instanceof MobRecipeLoader.fakeRand) return rnd; + return random; + } +} -- cgit