Fix craft remain item crash (#711)

This commit is contained in:
IzzelAliz 2022-09-07 10:17:46 +08:00
parent dbb2358985
commit 2048e70e31
No known key found for this signature in database
GPG Key ID: EE50E123A11D8338

View File

@ -12,6 +12,7 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.FallingBlock; import net.minecraft.world.level.block.FallingBlock;
import net.minecraftforge.registries.ForgeRegistries;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
@ -207,8 +208,8 @@ public abstract class MaterialMixin implements MaterialBridge {
@Inject(method = "getCraftingRemainingItem", cancellable = true, at = @At("HEAD")) @Inject(method = "getCraftingRemainingItem", cancellable = true, at = @At("HEAD"))
private void arclight$getCraftingRemainingItem(CallbackInfoReturnable<Material> cir) { private void arclight$getCraftingRemainingItem(CallbackInfoReturnable<Material> cir) {
if (arclight$spec != null) { if (arclight$spec != null && arclight$spec.craftingRemainingItem != null) {
cir.setReturnValue(Material.getMaterial(arclight$spec.craftingRemainingItem)); cir.setReturnValue(CraftMagicNumbers.getMaterial(ForgeRegistries.ITEMS.getValue(new ResourceLocation(arclight$spec.craftingRemainingItem))));
} }
} }
@ -352,7 +353,7 @@ public abstract class MaterialMixin implements MaterialBridge {
} }
if (arclight$spec.craftingRemainingItem == null) { if (arclight$spec.craftingRemainingItem == null) {
// noinspection deprecation // noinspection deprecation
arclight$spec.craftingRemainingItem = item != null && item.hasCraftingRemainingItem() ? CraftMagicNumbers.getMaterial(item.getCraftingRemainingItem()).name() : null; arclight$spec.craftingRemainingItem = item != null && item.hasCraftingRemainingItem() ? ForgeRegistries.ITEMS.getKey(item.getCraftingRemainingItem()).toString() : null;
} }
if (arclight$spec.itemMetaType == null) { if (arclight$spec.itemMetaType == null) {
arclight$spec.itemMetaType = "UNSPECIFIC"; arclight$spec.itemMetaType = "UNSPECIFIC";