aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech/mixin/mixins
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2022-08-14 15:19:13 +0200
committerGitHub <noreply@github.com>2022-08-14 15:19:13 +0200
commit6d436a2c6a5d9b51070b8399c4fdb196603a8e82 (patch)
tree0ac08abe69626ad89e25eb9b0c7aadb7e5243dac /src/main/java/kubatech/mixin/mixins
parentd8d8a462a25a29a9640f6c038ced50a570255e6e (diff)
downloadGT5-Unofficial-6d436a2c6a5d9b51070b8399c4fdb196603a8e82.tar.gz
GT5-Unofficial-6d436a2c6a5d9b51070b8399c4fdb196603a8e82.tar.bz2
GT5-Unofficial-6d436a2c6a5d9b51070b8399c4fdb196603a8e82.zip
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
Diffstat (limited to 'src/main/java/kubatech/mixin/mixins')
-rw-r--r--src/main/java/kubatech/mixin/mixins/minecraft/EnchantmentHelperMixin.java40
1 files changed, 40 insertions, 0 deletions
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<ItemStack> 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;
+ }
+}