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:
1 parent
1557acdc24
commit
da76f2ecc7
3 files changed
+21
No files matched your search
+5
@@ -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 {
|
||||
|
||||
Reference in new issue
Block a user