Créer des Crafts

This page has not been translated yet — showing the French version.

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.

craft.jsjavascript
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.

3 stone = 1 diamondjavascript
//event.shapeless(output, [input])
event.shapeless('minecraft:diamond', '3x minecraft:stone')

//Utilisation des tags
event.shapeless('minecraft:diamond', '5x #forge:ingots')
1 dirt + 1 stone + 1 gravel = diamondjavascript
//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.

javascript
//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'
    }
)
javascript
//event.shaped(output, [shape], {key})
event.shaped('minecraft:diamond',
    [
        'AB',
        'BC'
    ],
    {
        A: 'minecraft:jungle_log',
        B: 'minecraft:birch_log',
        C: 'minecraft:cherry_log'
    }
)
javascript
//event.shaped(output, [shape], {key})
event.shaped('minecraft:diamond',
    [
        'A',
        'B',
        'A'
    ],
    {
        A: 'minecraft:jungle_log',
        B: 'minecraft:birch_log'
    }
)
javascript
//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

javascript
//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')
javascript
//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')
javascript
//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')
javascript
//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.

javascript
//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.

javascript
//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.

javascript
//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"
    }
})