Fix issues when passing non-item materials to recipe util functions

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
This commit is contained in:
Irmo van den Berge committed 2024-06-25 23:51:50 +02:00
1 parent 1557acdc24
commit da76f2ecc7
3 files changed
+21

No files matched your search

@@ -40,6 +40,10 @@ public abstract class CraftMagicNumbersHandle extends Template.Handle {
return T.getDataVersion.invoker.invoke(null);
}
public static boolean isItemMaterial(Material material) {
return T.isItemMaterial.invoker.invoke(null,material);
}
public static com.bergerkiller.generated.net.minecraft.world.level.block.state.IBlockDataHandle getBlockDataFromMaterial(org.bukkit.Material material) {
return com.bergerkiller.generated.net.minecraft.world.level.block.BlockHandle.T.getBlockData.invoke(getBlockFromMaterial(material));
}
@@ -53,6 +57,7 @@ public abstract class CraftMagicNumbersHandle extends Template.Handle {
public final Template.StaticMethod<Object> getItemFromMaterial = new Template.StaticMethod<Object>();
public final Template.StaticMethod<Object> getBlockFromMaterial = new Template.StaticMethod<Object>();
public final Template.StaticMethod<Integer> getDataVersion = new Template.StaticMethod<Integer>();
public final Template.StaticMethod<Boolean> isItemMaterial = new Template.StaticMethod<Boolean>();
}
@@ -13,6 +13,7 @@ import com.bergerkiller.generated.net.minecraft.world.item.crafting.FurnaceRecip
import com.bergerkiller.generated.net.minecraft.world.item.crafting.IRecipeHandle;
import com.bergerkiller.generated.net.minecraft.world.item.crafting.RecipesFurnaceHandle;
import com.bergerkiller.generated.net.minecraft.world.level.block.entity.TileEntityFurnaceHandle;
import com.bergerkiller.generated.org.bukkit.craftbukkit.util.CraftMagicNumbersHandle;
import com.bergerkiller.mountiplex.conversion.type.DuplexConverter;
import com.bergerkiller.mountiplex.conversion.util.ConvertingSet;
@@ -61,6 +62,9 @@ public class RecipeUtil {
}
public static int getFuelTime(Material material) {
if (!CraftMagicNumbersHandle.isItemMaterial(material)) {
return 0; // Invalid item
}
return getFuelTime(new ItemStack(material, 1));
}
@@ -89,6 +93,9 @@ public class RecipeUtil {
}
public static org.bukkit.inventory.ItemStack getFurnaceResult(org.bukkit.Material cookedType) {
if (!CraftMagicNumbersHandle.isItemMaterial(cookedType)) {
return null; // Causes errors otherwise
}
return getFurnaceResult(new ItemStack(cookedType, 1));
}
@@ -137,6 +137,15 @@ class CraftMagicNumbers {
return com.bergerkiller.generated.net.minecraft.world.level.block.BlockHandle.T.getBlockData.invoke(getBlockFromMaterial(material));
}
</code>
public static boolean isItemMaterial(org.bukkit.Material material) {
#if version >= 1.12.2
return material.isItem();
#else
//TODO: How do we fix this?
return true;
#endif
}
}
class CraftChatMessage {