replaceIngredients doesn't work server side only
jjjuk opened this issue · 7 comments
Minecraft Version
1.18.2
KubeJS Version
1802.5.4-build.506
Rhino Version
1802.1.14-build.190
Architectury Version
4.5.75
Forge/Fabric Version
0.14.8
Describe your issue
Hello everyone! The following code adds recipes, but doesn't replaces minecarts with regular ones.
onEvent('recipes', (e) => {
e.shapeless('minecraft:hopper', [
'minecraft:hopper_minecart',
]).replaceIngredient(0, 'minecraft:minecart')
e.shapeless('minecraft:chest', [
'minecraft:chest_minecart',
]).replaceIngredient(0, 'minecraft:minecart')
e.shapeless('minecraft:tnt', [
'minecraft:tnt_minecart',
]).replaceIngredient(0, 'minecraft:minecart')
console.info(`[TWEAKED] Added minecart recipes`)
})
Is this a bug or a limitation of server-only or is there a way to overcome this problem?
Will play for now without replacement)
Regards.
Crash report/logs
No response
Replace ingredient and co rely on a couple of custom recipe types, so I think this is just a limitation of server only mode.
You should still be able to use the item.crafted event, however that can be wierd when doing multiple crafts.
Yep, ingredient actions rely on us being able to add a custom recipe type for the time being, so they aren't available in server only mode I'm afraid... Sorry about that!
KubeJS does use the default Minecraft recipe types when in server only mode.
These types do not support things like replaceInredients and so those cannot work while in server only mode.
Thank you for your reply! Is it hard to fix kubejs to use default recipe serializer with server only mode? I think it must be possible
KubeJS does use the default Minecraft recipe types when in server only mode. These types do not support things like replaceInredients and so those cannot work while in server only mode.
I mean the same way as buckets and bottles work, are they kind of special?
Yes, those are special.
Those use container items (the water, lava and milk buckets container items are all a bucket), and an item can only have one container item.
Any recipe you use a water bucket in will return its container item (a bucket) after crafting.
It is not possible to change container items using KubeJS, and likely wouldn't be possible server side only, if KubeJS did add support for that.