Skip to content

Latest commit

 

History

History
 
 

setup

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

index

Setup

Lets set up the framework of using voodoo this is still more boilerplate than i wish to use, How to contribute

gradle setup

Setting up a Voodoo project/workspace

Easy

fork sample project

Manual

sample project

required gradle version is 5
recommended: 5.1.1

build.gradle.kts

plugins {
    id("voodoo") version "0.4.5-SNAPSHOT"
}

voodoo {

// for configuration of folders
// these are the defaults

//    rootDir = project.rootDir
//    generatedSource = { rootDir -> rootDir.resolve(".voodoo") }
//    packDirectory = { ootDir -> rootDir.resolve("packs") }

// task shorthands
    addTask(name = "build", parameters = listOf("build"))
    addTask(name = "testMMC", parameters = listOf("test mmc"))
    addTask(name = "sk", parameters = listOf("pack sk"))
    addTask(name = "packServer", parameters = listOf("pack server"))
    addTask(name = "buildAndPackAll", parameters = listOf("build", "pack sk", "pack server", "pack mmc"))
}

gradle wrapper --gradle-version 5.0 --distribution-type all

sadly ou still have to add quite a bit to the pluginManagement block, but i think this is the most compatible solution still

settings.gradle.kts

pluginManagement {
    repositories {
        maven(url = "https://dl.bintray.com/kotlin/kotlin-eap") { name = "Kotlin EAP" }
        maven(url = "https://kotlin.bintray.com/kotlinx") { name = "kotlinx" }
        maven(url = "https://repo.elytradev.com") { name = "elytradev" }
        maven(url = "https://jitpack.io") { name = "jitpack" }
        gradlePluginPortal()
    }
}
rootProject.name = "YourModpackname"

Modpack File

Creatng a new modpack within the workspace

Automatic

let the plugin automatically generate a pack skeleton

./gradlew createpack --id awesomepack --mcVersion 1.12.2 --title "Awesome Pack Demo"

Manual

packs/awesomepack.voodoo.kts

import voodoo.*
import voodoo.data.*
import voodoo.data.curse.*
import voodoo.data.nested.*
import voodoo.provider.*
import voodoo.releaseTypes
import voodoo.rootEntry
import voodoo.withDefaultMain

mcVersion = "1.12.2"
title = "Awesome Pack Demo"
forge = Forge.mc1_12_2_recommended
authors = listOf("insert-author-name")
root = rootEntry(CurseProvider) {
    TODO("to be implemented")
}

continue with the Basics