Créer des Crafts
Apprenez à créer différent type de craft avec KubeJS.
Pour commencer il vous faudra créer un nouveau fichier js dans le dossier server_scripts, j'ai pour habitude de créer un fichier craft.js par exemple, et vous pouvez supprimer le fichier example.js.
Le nom du fichier doit être en minuscule sans espace !
❌Mes Crafts.js
✅mes_crafts.js
Vous pouvez néanmoins créer plusieurs page attitré comme furnace.js, stonecutter.js etc... A vous de voir avec votre organisation.
Dans ce fichier .js il vous faudra avoir les infos du code donné ci dessous.
ServerEvents.recipes(event => { //Vous pouvez changer le mot "event" par ce que vous voulez, j'ai pour habitude de juste mettre "e" personnellement.
//Ici sera mon code
})
Tout les exemple donné plus bas serons à mettre dans l'espace "Ici sera mon code" en retirant le double slash.
Le double slash //Mon commentaire est utilisé pour mettre des commentaires, vous pouvez également utilisez /Mon commentaire/
Lorsque vous récupérez les informations d'un item avec la commande /kjs hand, vous avez accès à son id 'minecraft:diamond' mais également à ses tags '#forge:gems/diamond'
Shapeless et Shaped
Les crafts Shapeless sont des crafts qui peuvent être fait dans n'importe quel ordre dans votre table de craft.
//event.shapeless(output, [input])
event.shapeless('minecraft:diamond', '3x minecraft:stone')
//Utilisation des tags
event.shapeless('minecraft:diamond', '5x #forge:ingots')
//event.shapeless(output, [input])
event.shapeless('minecraft:diamond', ['minecraft:dirt', 'minecraft:gravel', 'minecraft:stone'])
Les crafts Shaped sont des crafts avec un emplacement fix sur une table de craft 3x3 ou 2x2.
//event.shaped(output, [shape], {key})
event.shaped('minecraft:diamond',
[
'ABA',
'BCD',
'ADA'
],
{
A: 'minecraft:jungle_log',
B: 'minecraft:birch_log',
C: 'minecraft:cherry_log',
D: 'minecraft:crimson_stem'
}
)
//event.shaped(output, [shape], {key})
event.shaped('minecraft:diamond',
[
'AB',
'BC'
],
{
A: 'minecraft:jungle_log',
B: 'minecraft:birch_log',
C: 'minecraft:cherry_log'
}
)
//event.shaped(output, [shape], {key})
event.shaped('minecraft:diamond',
[
'A',
'B',
'A'
],
{
A: 'minecraft:jungle_log',
B: 'minecraft:birch_log'
}
)
//event.shaped(output, [shape], {key})
event.shaped('minecraft:diamond',
[
'A A',
' B ',
'A A'
],
{
A: 'minecraft:jungle_log',
B: 'minecraft:birch_log'
}
)
Furnace, Blast Furnace, Smoker et Campfire
Les craft pour les différents furnace sont très similaires.
Vous avez néanmoins des paramètres optionnels tel que xp et cookingTime
//event.smelting(output, input, xp, cookingTime)
event.smelting('minecraft:diamond', 'minecraft:birch_button', 0.5, 40)
/*Sans les paramètres optionels*/
event.smelting('minecraft:diamond', 'minecraft:jungle_button')
//event.blasting(output, input, xp, cookingTime)
event.blasting('minecraft:diamond', 'minecraft:birch_button', 0.5, 20)
/*Sans les paramètres optionels*/
event.blasting('minecraft:diamond', 'minecraft:jungle_button')
//event.smoking(output, input, xp, cookingTime)
event.smoking('minecraft:diamond', 'minecraft:birch_button', 0.5, 20)
/*Sans les paramètres optionels*/
event.smoking('minecraft:diamond', 'minecraft:jungle_button')
//event.campfireCooking(output, input, xp, cookingTime)
event.campfireCooking('minecraft:diamond', 'minecraft:birch_button', 0.5, 40)
/*Sans les paramètres optionels*/
event.campfireCooking('minecraft:diamond', 'minecraft:jungle_button')
Le paramètre cookingTime est géré en tick, 20tick = 1second.
Stonecutter
Le craft du Stonecutter est simple à comprendre.
//event.stonecutting(output, input)
event.stonecutting('minecraft:diamond_block', 'minecraft:coal_block')
Smithing Table
Le craft du Smithing Table possède 3 inputs et un output.
//event.smithing(output, template, input, item)
event.smithing('minecraft:netherite_sword', 'minecraft:netherite_upgrade_smithing_template', 'minecraft:wooden_sword', 'minecraft:netherite_ingot')
Custom
Les crafts via le event.custom sont extra, vous avez la possibilité, avec eux, de créer des crafts dans n'importe quel machine de n'importe quel mod.
À la simple condition que le mod en question possède ses crafts sous form de datapack.
//event.custom(ICI le craft récupéré dans un fichier json)
event.custom({
"type": "botania:runic_altar",
"ingredients": [
{
"item": "minecraft:dandelion"
},
{
"item": "minecraft:poppy"
},
{
"item": "minecraft:cornflower"
},
{
"tag": "forge:ingots"
}
],
"mana": 5000,
"output": {
"count": 64,
"item": "minecraft:diamond"
}
})