SlashBlade JS

Quick rating

Community listing page, reviews here may not be monitored by the author.

SlashBlade JS

By mrqx0195Owner

No reviews yet

An mod that facilitates developers in editing and creating recipes for Slashblade: Resharped using KubeJS scripts, along with utilizing its events.

Mod Loaders
Minecraft

About

Description

Slashblade JS

An mod that facilitates developers in editing and creating recipes for Slashblade: Resharped using KubeJS scripts, along with utilizing its events.

What Can It Do?

Here's a ready-to-use example:

// priority: 0

/* Server Side */

// When Slashblade checks power state: If not powered, consume 10 ProudSoul to enter charged state
SlashBladeJSEvents.powerBlade(event => {
    let state = BladeState.of(event.blade)
    let proudsoul = state.proudSoulCount
    if (!event.isPowered() && proudsoul >= 10) {
        state.setProudSoulCount(proudsoul - 10)
        event.setPowered(true)
    }
    event.user.tell("ProudSoul: " + proudsoul) // Notify player of current ProudSoul value
})

// A custom Slashblade recipe
ServerEvents.recipes(event => {
    event.recipes.slashblade.slashblade_shaped_recipe("slashblade:slashblade", [
        "ABA",
        "CSC",
        "ABC"
    ], {
        "S": SlashBladeIngredient.of(
            SlashBladeRequestDefinition.name("slashblade:fox_black") // Required base blade
                .killCount(233) // Kill count requirement
                .proudSoul(114514) // ProudSoul requirement
                .refineCount(10) // Refinement count requirement
                .addEnchantment(SBEnchantmentDefinition.of("minecraft:power", 2)) // Enchantment requirement
                .build() // Don't forget to .build()
        ),
        "A": "minecraft:golden_apple", // Other materials (like vanilla recipes)
        "B": "#forge:bones",
        "C": "minecraft:cake",
    }, "slashblade:fox_white"/* Resulting blade ID */)
})

// Create your custom blade
ServerEvents.highPriorityData(event => {
    let customBlade = SBSlashBladeDefinition.of("kubejs:test_blade", // Your blade ID
        SBRenderDefinition.newInstance() // Render properties
            .effectColor(2039347) // Blade effect color (hex RGB to decimal)
            .standbyRenderType(SBCarryType.DEFAULT) // Sheathed position
            .modelName("kubejs:model/named/test_blade.obj") // Path: ./kubejs/assets/kubejs/model/named/test_blade.obj
            .textureName("kubejs:model/named/test_blade.png") // Path: ./kubejs/assets/kubejs/model/named/test_blade.png
            .build(), // Don't forget to .build()
        SBPropertiesDefinition.newInstance()
            .maxDamage(666) // Max durability
            .baseAttackModifier(999) // Base attack damage
            .slashArtsType("slashblade:void_slash") // Set special attack
            .addSpecialEffect("slashblade:wither_edge") // Add special effect
            .defaultSwordType([SBSwordType.FIERCEREDGE, SBSwordType.BEWITCHED]) // Set blade types
            .build(), // Don't forget to .build()
        [ // Default enchantments
            SBEnchantmentDefinition.of("minecraft:power", 5),
            SBEnchantmentDefinition.of("minecraft:unbreaking", 10)
        ]
    )

    // Register to game
    event.addJson("kubejs:slashblade/named_blades/test_blade.json", SBSlashBladeDefinition.toJSON(customBlade))
})

License

This mod is open-source under the GPL v3.0 License.

You may include it in your modpacks/servers as long as you comply with the license terms.

Slashblade JS

An mod that facilitates developers in editing and creating recipes for Slashblade: Resharped using KubeJS scripts, along with utilizing its events.

What Can It Do?

Here's a ready-to-use example:

// priority: 0

/* Server Side */

// When Slashblade checks power state: If not powered, consume 10 ProudSoul to enter charged state
SlashBladeJSEvents.powerBlade(event => {
    let state = BladeState.of(event.blade)
    let proudsoul = state.proudSoulCount
    if (!event.isPowered() && proudsoul >= 10) {
        state.setProudSoulCount(proudsoul - 10)
        event.setPowered(true)
    }
    event.user.tell("ProudSoul: " + proudsoul) // Notify player of current ProudSoul value
})

// A custom Slashblade recipe
ServerEvents.recipes(event => {
    event.recipes.slashblade.slashblade_shaped_recipe("slashblade:slashblade", [
        "ABA",
        "CSC",
        "ABC"
    ], {
        "S": SlashBladeIngredient.of(
            SlashBladeRequestDefinition.name("slashblade:fox_black") // Required base blade
                .killCount(233) // Kill count requirement
                .proudSoul(114514) // ProudSoul requirement
                .refineCount(10) // Refinement count requirement
                .addEnchantment(SBEnchantmentDefinition.of("minecraft:power", 2)) // Enchantment requirement
                .build() // Don't forget to .build()
        ),
        "A": "minecraft:golden_apple", // Other materials (like vanilla recipes)
        "B": "#forge:bones",
        "C": "minecraft:cake",
    }, "slashblade:fox_white"/* Resulting blade ID */)
})

// Create your custom blade
ServerEvents.highPriorityData(event => {
    let customBlade = SBSlashBladeDefinition.of("kubejs:test_blade", // Your blade ID
        SBRenderDefinition.newInstance() // Render properties
            .effectColor(2039347) // Blade effect color (hex RGB to decimal)
            .standbyRenderType(SBCarryType.DEFAULT) // Sheathed position
            .modelName("kubejs:model/named/test_blade.obj") // Path: ./kubejs/assets/kubejs/model/named/test_blade.obj
            .textureName("kubejs:model/named/test_blade.png") // Path: ./kubejs/assets/kubejs/model/named/test_blade.png
            .build(), // Don't forget to .build()
        SBPropertiesDefinition.newInstance()
            .maxDamage(666) // Max durability
            .baseAttackModifier(999) // Base attack damage
            .slashArtsType("slashblade:void_slash") // Set special attack
            .addSpecialEffect("slashblade:wither_edge") // Add special effect
            .defaultSwordType([SBSwordType.FIERCEREDGE, SBSwordType.BEWITCHED]) // Set blade types
            .build(), // Don't forget to .build()
        [ // Default enchantments
            SBEnchantmentDefinition.of("minecraft:power", 5),
            SBEnchantmentDefinition.of("minecraft:unbreaking", 10)
        ]
    )

    // Register to game
    event.addJson("kubejs:slashblade/named_blades/test_blade.json", SBSlashBladeDefinition.toJSON(customBlade))
})

License

This mod is open-source under the GPL v3.0 License.

You may include it in your modpacks/servers as long as you comply with the license terms.