From 0e829630da67c91d2b5a91ea4b65eb033f868e76 Mon Sep 17 00:00:00 2001 From: LexManos Date: Fri, 3 May 2024 14:09:21 -0700 Subject: [PATCH] Fix canApplyAtEnchantingTable null pointer, Closes #9956 Bump SecureModules for package info and multi-release jar fixes. --- .../world/item/enchantment/EnchantmentHelper.java.patch | 2 +- settings.gradle | 4 ++-- .../minecraftforge/common/extensions/IForgeEnchantment.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/item/enchantment/EnchantmentHelper.java.patch b/patches/minecraft/net/minecraft/world/item/enchantment/EnchantmentHelper.java.patch index 23d6e7896a..791ec9c1d7 100644 --- a/patches/minecraft/net/minecraft/world/item/enchantment/EnchantmentHelper.java.patch +++ b/patches/minecraft/net/minecraft/world/item/enchantment/EnchantmentHelper.java.patch @@ -48,7 +48,7 @@ && (!enchantment.isTreasureOnly() || p_44820_) && enchantment.isDiscoverable() - && (flag || enchantment.canEnchant(p_44819_) && enchantment.isPrimaryItem(p_44819_))) { -+ && ((flag && enchantment.isAllowedOnBooks()) || enchantment.canApplyAtEnchatingTable(p_44819_))) { ++ && ((flag && enchantment.isAllowedOnBooks()) || enchantment.canApplyAtEnchantingTable(p_44819_))) { for (int i = enchantment.getMaxLevel(); i > enchantment.getMinLevel() - 1; i--) { if (p_44818_ >= enchantment.getMinCost(i) && p_44818_ <= enchantment.getMaxCost(i)) { list.add(new EnchantmentInstance(enchantment, i)); diff --git a/settings.gradle b/settings.gradle index 346ad785ff..04dd62a314 100644 --- a/settings.gradle +++ b/settings.gradle @@ -27,7 +27,7 @@ dependencyResolutionManagement { libs { library('forgespi', 'net.minecraftforge:forgespi:7.1.4') // Needs modlauncher library('modlauncher', 'net.minecraftforge:modlauncher:10.2.1') // Needs securemodules - library('securemodules', 'net.minecraftforge:securemodules:2.2.14') // Needs unsafe + library('securemodules', 'net.minecraftforge:securemodules:2.2.19') // Needs unsafe library('unsafe', 'net.minecraftforge:unsafe:0.9.2') library('accesstransformers', 'net.minecraftforge:accesstransformers:8.2.0') library('coremods', 'net.minecraftforge:coremods:5.1.6') @@ -45,7 +45,7 @@ dependencyResolutionManagement { library('jimfs', 'com.google.jimfs:jimfs:1.3.0') bundle('jimfs', ['guava', 'failureaccess']) - version('bootstrap', '2.1.0') + version('bootstrap', '2.1.1') library('bootstrap', 'net.minecraftforge', 'bootstrap' ).versionRef('bootstrap') // Needs modlauncher library('bootstrap-api', 'net.minecraftforge', 'bootstrap-api' ).versionRef('bootstrap') library('bootstrap-dev', 'net.minecraftforge', 'bootstrap-dev' ).versionRef('bootstrap') diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeEnchantment.java b/src/main/java/net/minecraftforge/common/extensions/IForgeEnchantment.java index 5751324ed1..0995282b4e 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeEnchantment.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeEnchantment.java @@ -39,7 +39,7 @@ public interface IForgeEnchantment { * This applies specifically to applying at the enchanting table. The other method {@link #canEnchant(ItemStack)} * applies for all possible enchantments. */ - default boolean canApplyAtEnchatingTable(ItemStack stack) { - return stack.canApplyAtEnchantingTable(null); + default boolean canApplyAtEnchantingTable(ItemStack stack) { + return stack.canApplyAtEnchantingTable(self()); } }