daemoniclabs / voodoo Goto Github PK
View Code? Open in Web Editor NEWModpack building magic. Maintained by Nikky.
License: MIT License
Modpack building magic. Maintained by Nikky.
License: MIT License
im trying to setup voodoo
but cant get the boostrap @NikkyAI
any help would be much appreciated
Voodoo can't be used on Java 9 or higher because javax.xml.bind.DatatypeConverter
was removed from the JDK. It causes a crash when using MultiMC experimental.
Is there is any way to tell Voodoo to download "Preferred Release Type" of mods? I mean if i want to have Release versions of mods, but some mods still in Beta or Alpha and Voodoo seems like throw error if it can't find specified type. For example Twitch Launcher have "Preferred Release Type" option and it will download exactly specified release type, but if mod don't have that release type, it will download Beta or Alpha. Same thing applies to mod dependencies. I mean it seems like i can actually use "curseReleaseTypes: [...]" to specify release type for every mod, but this will require to check every mod on Curse and it will be a problem if i have a modpack with a lot of mods.
example:
stellar sky requires stellar API, but when bundled normally, minecraft complains and won't launch, since the latest version of stellar API is ahead of the latest version of stellar sky
theoretically, if I were to grab the release versions of both, it would all be fine, but no matter how i do it, the dependency version of stellar API seems to overwrite the manually added version, and it still grabs the latest (alpha) version
I suppose this also brings up another issue too: that manually added mods should overwrite automatically added mods, so if stellar API is added both as an automatic dependency and manually, the manual addition should take precedent
anything that voodoo generates that is informational.. and human readable
[pea@pea stoneforge]$ voodoo build stoneforge.pack.hjson -o stoneforge.lock.hjson --updateAll
13:41:53.319 [main] INFO voodoo.util.Directories - Using XDG directories
13:41:53.361 [main] INFO voodoo.Bootstrap - Downloading the voodoo binary...
13:42:07.466 [main] INFO voodoo.Bootstrap - lastSuccessfulBuild: 127
13:42:07.466 [main] DEBUG voodoo.Bootstrap - looking for ^[Vv]oodoo(-[^-]*)?(?!-fat)\.jar$
13:42:07.467 [main] DEBUG voodoo.Bootstrap - bootstrap-hex-127.jar
13:42:07.467 [main] DEBUG voodoo.Bootstrap - bootstrap-voodoo-127.jar
13:42:07.467 [main] DEBUG voodoo.Bootstrap - voodoo-127.jar
13:42:07.467 [main] INFO voodoo.Bootstrap - Loaded /home/pea/.cache/voodoo/voodoo-bootstrap/elytra_Voodoo_rewrite/voodoo-127.jar
13:42:07.468 [main] DEBUG voodoo.Bootstrap - running "/usr/lib/java/openjdk8/jre/bin/java" "-jar" "/home/pea/.cache/voodoo/voodoo-bootstrap/elytra_Voodoo_rewrite/voodoo-127.jar" "build" "stoneforge.pack.hjson" "-o" "stoneforge.lock.hjson" "--updateAll"
13:42:07.691 [main] INFO voodoo.util.Directories - Using XDG directories
13:42:07.715 [main] INFO voodoo.util.Directories - Using XDG directories
13:42:07.717 [main] INFO voodoo.util.Directories - Using XDG directories
13:42:07.718 [main] INFO voodoo.util.Directories - Using XDG directories
13:42:07.718 [main] INFO voodoo.util.Directories - Using XDG directories
13:42:07.719 [main] INFO voodoo.util.Directories - Using XDG directories
13:42:07.743 [main] INFO voodoo.Voodoo - build, stoneforge.pack.hjson, -o, stoneforge.lock.hjson, --updateAll
13:42:07.836 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: SwingThroughGrass,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.845 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: FastWorkbench,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.846 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Sound Filters",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.846 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Charset Storage - Barrels",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.847 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Passable Leaves",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.847 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: FastFurnace,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.848 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Aquaculture,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.848 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Wearable Backpacks",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.849 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Better Foliage",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.849 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Serene Seasons",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.850 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Stellar Sky",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
RELEASE
]
}
13:42:07.851 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Dynamic Trees",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.851 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: VanillaFix,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.852 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: ConnectedTexturesMod,
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.852 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Dynamic Surroundings",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.852 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Better With Mods",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.856 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: JustEnoughIDs,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.856 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Familiar Fauna",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.857 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Quark,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.857 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Streams,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.858 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Bamboozled,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.858 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "FoamFix for Minecraft",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.858 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Proportional Destruction Particles",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.859 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Stellar API",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
RELEASE
]
}
13:42:07.859 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: BetterFps,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.860 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Traverse,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.860 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Fragile Glass and Thin Ice",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.861 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Repose,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.861 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Ore Stone Variants",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.862 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Hardcore Darkness",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.862 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Corpse Complex",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.863 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Dynamic Trees - Traverse Compat",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.864 [main] INFO voodoo.Builder - id: SwingThroughGrass entry: Entry(provider=CURSE, id=SwingThroughGrass, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: FastWorkbench entry: Entry(provider=CURSE, id=FastWorkbench, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: Sound Filters entry: Entry(provider=CURSE, id=Sound Filters, name=, folder=mods, comment=, description=, feature=null, side=CLIENT, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: Charset Storage - Barrels entry: Entry(provider=CURSE, id=Charset Storage - Barrels, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: Passable Leaves entry: Entry(provider=CURSE, id=Passable Leaves, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: FastFurnace entry: Entry(provider=CURSE, id=FastFurnace, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: Aquaculture entry: Entry(provider=CURSE, id=Aquaculture, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: Wearable Backpacks entry: Entry(provider=CURSE, id=Wearable Backpacks, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: Better Foliage entry: Entry(provider=CURSE, id=Better Foliage, name=, folder=mods, comment=, description=, feature=null, side=CLIENT, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: Serene Seasons entry: Entry(provider=CURSE, id=Serene Seasons, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.864 [main] INFO voodoo.Builder - id: Stellar Sky entry: Entry(provider=CURSE, id=Stellar Sky, name=, folder=mods, comment=, description=, feature=null, side=CLIENT, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: Dynamic Trees entry: Entry(provider=CURSE, id=Dynamic Trees, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: VanillaFix entry: Entry(provider=CURSE, id=VanillaFix, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: ConnectedTexturesMod entry: Entry(provider=CURSE, id=ConnectedTexturesMod, name=, folder=mods, comment=, description=, feature=null, side=CLIENT, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: Dynamic Surroundings entry: Entry(provider=CURSE, id=Dynamic Surroundings, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: Better With Mods entry: Entry(provider=CURSE, id=Better With Mods, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: JustEnoughIDs entry: Entry(provider=CURSE, id=JustEnoughIDs, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: Familiar Fauna entry: Entry(provider=CURSE, id=Familiar Fauna, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: Quark entry: Entry(provider=CURSE, id=Quark, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.865 [main] INFO voodoo.Builder - id: Streams entry: Entry(provider=CURSE, id=Streams, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: Bamboozled entry: Entry(provider=CURSE, id=Bamboozled, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: FoamFix for Minecraft entry: Entry(provider=CURSE, id=FoamFix for Minecraft, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: Proportional Destruction Particles entry: Entry(provider=CURSE, id=Proportional Destruction Particles, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: Stellar API entry: Entry(provider=CURSE, id=Stellar API, name=, folder=mods, comment=, description=, feature=null, side=CLIENT, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: BetterFps entry: Entry(provider=CURSE, id=BetterFps, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: Traverse entry: Entry(provider=CURSE, id=Traverse, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: Fragile Glass and Thin Ice entry: Entry(provider=CURSE, id=Fragile Glass and Thin Ice, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: Repose entry: Entry(provider=CURSE, id=Repose, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.866 [main] INFO voodoo.Builder - id: Ore Stone Variants entry: Entry(provider=CURSE, id=Ore Stone Variants, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.867 [main] INFO voodoo.Builder - id: Hardcore Darkness entry: Entry(provider=CURSE, id=Hardcore Darkness, name=, folder=mods, comment=, description=, feature=null, side=CLIENT, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.867 [main] INFO voodoo.Builder - id: Corpse Complex entry: Entry(provider=CURSE, id=Corpse Complex, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.867 [main] INFO voodoo.Builder - id: Dynamic Trees - Traverse Compat entry: Entry(provider=CURSE, id=Dynamic Trees - Traverse Compat, name=, folder=mods, comment=, description=, feature=null, side=BOTH, websiteUrl=, dependencies={}, replaceDependencies={}, packageType=MOD, transient=false, version=, fileName=null, fileNameRegex=.*(?<!-sources\.jar)(?<!-api\.jar)(?<!-deobf\.jar)(?<!-lib\.jar)(?<!-slim\.jar)$, validMcVersions=[1.12, 1.12.2], curseMetaUrl=https://curse.nikky.moe/api, curseReleaseTypes=[BETA, ALPHA, RELEASE], curseOptionalDependencies=false, curseProjectID=-1, curseFileID=-1, url=, useUrlTxt=true, jenkinsUrl=, job=, buildNumber=-1, fileSrc=, updateJson=, updateChannel=RECOMMENDED, template=)
13:42:07.871 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: SwingThroughGrass,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.872 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: FastWorkbench,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.872 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Sound Filters",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.873 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Charset Storage - Barrels",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.873 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Passable Leaves",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.873 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: FastFurnace,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.874 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Aquaculture,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.874 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Wearable Backpacks",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.874 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Better Foliage",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.875 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Serene Seasons",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.875 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Stellar Sky",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
RELEASE
]
}
13:42:07.876 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Dynamic Trees",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.876 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: VanillaFix,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.877 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: ConnectedTexturesMod,
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.877 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Dynamic Surroundings",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.878 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Better With Mods",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.878 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: JustEnoughIDs,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.879 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Familiar Fauna",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.879 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Quark,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.879 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Streams,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.880 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Bamboozled,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.880 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "FoamFix for Minecraft",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.881 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Proportional Destruction Particles",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.881 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Stellar API",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
RELEASE
]
}
13:42:07.882 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: BetterFps,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.882 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Traverse,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.882 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Fragile Glass and Thin Ice",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.883 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: Repose,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.883 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Ore Stone Variants",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.884 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Hardcore Darkness",
side: CLIENT,
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.884 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Corpse Complex",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.884 [main] INFO voodoo.data.flat.Entry - loading: {
provider: CURSE,
id: "Dynamic Trees - Traverse Compat",
validMcVersions: [
1.12,
1.12.2
],
curseReleaseTypes: [
BETA,
ALPHA,
RELEASE
]
}
13:42:07.910 [main] INFO voodoo.builder.Resolve - unresolved: [SwingThroughGrass, FastWorkbench, Sound Filters, Charset Storage - Barrels, Passable Leaves, FastFurnace, Aquaculture, Wearable Backpacks, Better Foliage, Serene Seasons, Stellar Sky, Dynamic Trees, VanillaFix, ConnectedTexturesMod, Dynamic Surroundings, Better With Mods, JustEnoughIDs, Familiar Fauna, Quark, Streams, Bamboozled, FoamFix for Minecraft, Proportional Destruction Particles, Stellar API, BetterFps, Traverse, Fragile Glass and Thin Ice, Repose, Ore Stone Variants, Hardcore Darkness, Corpse Complex, Dynamic Trees - Traverse Compat]
13:42:07.919 [main] INFO voodoo.builder.Resolve - started job resolve SwingThroughGrass
13:42:07.923 [pool-1] INFO voodoo.builder.Resolve - resolving: SwingThroughGrass
13:42:07.997 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:08.034 [main] INFO voodoo.builder.Resolve - started job resolve FastWorkbench
13:42:08.034 [pool-2] INFO voodoo.builder.Resolve - resolving: FastWorkbench
13:42:08.136 [main] INFO voodoo.builder.Resolve - started job resolve Sound Filters
13:42:08.136 [pool-3] INFO voodoo.builder.Resolve - resolving: Sound Filters
13:42:08.239 [main] INFO voodoo.builder.Resolve - started job resolve Charset Storage - Barrels
13:42:08.239 [pool-4] INFO voodoo.builder.Resolve - resolving: Charset Storage - Barrels
13:42:08.348 [main] INFO voodoo.builder.Resolve - started job resolve Passable Leaves
13:42:08.348 [pool-5] INFO voodoo.builder.Resolve - resolving: Passable Leaves
13:42:08.449 [main] INFO voodoo.builder.Resolve - started job resolve FastFurnace
13:42:08.552 [main] INFO voodoo.builder.Resolve - started job resolve Aquaculture
13:42:08.656 [main] INFO voodoo.builder.Resolve - started job resolve Wearable Backpacks
13:42:08.759 [main] INFO voodoo.builder.Resolve - started job resolve Better Foliage
13:42:08.862 [main] INFO voodoo.builder.Resolve - started job resolve Serene Seasons
13:42:08.966 [main] INFO voodoo.builder.Resolve - started job resolve Stellar Sky
13:42:09.069 [main] INFO voodoo.builder.Resolve - started job resolve Dynamic Trees
13:42:09.172 [main] INFO voodoo.builder.Resolve - started job resolve VanillaFix
13:42:09.276 [main] INFO voodoo.builder.Resolve - started job resolve ConnectedTexturesMod
13:42:09.379 [main] INFO voodoo.builder.Resolve - started job resolve Dynamic Surroundings
13:42:09.482 [main] INFO voodoo.builder.Resolve - started job resolve Better With Mods
13:42:09.586 [main] INFO voodoo.builder.Resolve - started job resolve JustEnoughIDs
13:42:09.689 [main] INFO voodoo.builder.Resolve - started job resolve Familiar Fauna
13:42:09.793 [main] INFO voodoo.builder.Resolve - started job resolve Quark
13:42:09.896 [main] INFO voodoo.builder.Resolve - started job resolve Streams
13:42:09.999 [main] INFO voodoo.builder.Resolve - started job resolve Bamboozled
13:42:10.103 [main] INFO voodoo.builder.Resolve - started job resolve FoamFix for Minecraft
13:42:10.206 [main] INFO voodoo.builder.Resolve - started job resolve Proportional Destruction Particles
13:42:10.309 [main] INFO voodoo.builder.Resolve - started job resolve Stellar API
13:42:10.412 [main] INFO voodoo.builder.Resolve - started job resolve BetterFps
13:42:10.516 [main] INFO voodoo.builder.Resolve - started job resolve Traverse
13:42:10.619 [main] INFO voodoo.builder.Resolve - started job resolve Fragile Glass and Thin Ice
13:42:10.722 [main] INFO voodoo.builder.Resolve - started job resolve Repose
13:42:10.826 [main] INFO voodoo.builder.Resolve - started job resolve Ore Stone Variants
13:42:10.929 [main] INFO voodoo.builder.Resolve - started job resolve Hardcore Darkness
13:42:11.032 [main] INFO voodoo.builder.Resolve - started job resolve Corpse Complex
13:42:11.136 [main] INFO voodoo.builder.Resolve - started job resolve Dynamic Trees - Traverse Compat
13:42:20.804 [pool-2] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.804 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.805 [pool-3] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.807 [pool-1] INFO voodoo.builder.Resolve - resolving: FastFurnace
13:42:20.807 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.807 [pool-3] INFO voodoo.builder.Resolve - resolving: Aquaculture
13:42:20.807 [pool-3] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.808 [pool-3] INFO voodoo.builder.Resolve - resolving: Wearable Backpacks
13:42:20.808 [pool-3] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.811 [pool-4] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.812 [pool-5] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.812 [pool-1] INFO voodoo.builder.Resolve - resolving: Better Foliage
13:42:20.812 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.812 [pool-2] INFO voodoo.builder.Resolve - resolving: Serene Seasons
13:42:20.812 [pool-2] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.813 [pool-1] INFO voodoo.builder.Resolve - resolving: VanillaFix
13:42:20.813 [pool-2] INFO voodoo.builder.Resolve - resolving: Dynamic Trees
13:42:20.813 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.813 [pool-2] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.813 [pool-5] INFO voodoo.builder.Resolve - resolving: Stellar Sky
13:42:20.813 [pool-5] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.814 [pool-5] INFO voodoo.builder.Resolve - resolving: ConnectedTexturesMod
13:42:20.814 [pool-5] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.817 [pool-4] INFO voodoo.builder.Resolve - resolving: Dynamic Surroundings
13:42:20.817 [pool-3] INFO voodoo.builder.Resolve - resolving: Better With Mods
13:42:20.817 [pool-3] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.817 [pool-4] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.819 [pool-4] INFO voodoo.builder.Resolve - resolving: JustEnoughIDs
13:42:20.819 [pool-4] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.819 [pool-5] INFO voodoo.builder.Resolve - resolving: Familiar Fauna
13:42:20.819 [pool-5] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.820 [pool-2] INFO voodoo.builder.Resolve - resolving: Quark
13:42:20.820 [pool-2] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.824 [pool-5] INFO voodoo.builder.Resolve - resolving: Streams
13:42:20.824 [pool-5] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.824 [pool-4] INFO voodoo.builder.Resolve - resolving: Bamboozled
13:42:20.824 [pool-4] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.825 [pool-3] INFO voodoo.builder.Resolve - resolving: FoamFix for Minecraft
13:42:20.825 [pool-3] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.825 [pool-5] INFO voodoo.builder.Resolve - resolving: Proportional Destruction Particles
13:42:20.825 [pool-5] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.827 [pool-1] INFO voodoo.builder.Resolve - resolving: Stellar API
13:42:20.827 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.828 [pool-1] INFO voodoo.builder.Resolve - resolving: BetterFps
13:42:20.828 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.829 [pool-1] INFO voodoo.builder.Resolve - resolving: Traverse
13:42:20.829 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.830 [pool-1] INFO voodoo.builder.Resolve - resolving: Fragile Glass and Thin Ice
13:42:20.830 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.831 [pool-1] INFO voodoo.builder.Resolve - resolving: Repose
13:42:20.831 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.832 [pool-1] INFO voodoo.builder.Resolve - resolving: Ore Stone Variants
13:42:20.832 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.833 [pool-1] INFO voodoo.builder.Resolve - resolving: Hardcore Darkness
13:42:20.833 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.834 [pool-1] INFO voodoo.builder.Resolve - resolving: Corpse Complex
13:42:20.834 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:42:20.835 [pool-1] INFO voodoo.builder.Resolve - resolving: Dynamic Trees - Traverse Compat
13:42:20.835 [pool-1] DEBUG voodoo.curse.CurseClient - post https://curse.nikky.moe/graphql
13:43:04.281 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.281 [pool-2] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.282 [pool-2] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.283 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.283 [pool-1] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.284 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.285 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.285 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.285 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.285 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.285 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.285 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.285 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.284 [pool-4] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.286 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.289 [pool-2] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.289 [pool-1] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.289 [pool-3] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.290 [pool-4] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.290 [pool-3] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.290 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.291 [pool-2] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.291 [pool-1] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.293 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.293 [pool-3] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.293 [pool-4] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.294 [pool-2] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.294 [pool-4] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.294 [pool-1] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.294 [pool-5] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.294 [pool-3] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
13:43:04.294 [pool-4] ERROR voodoo.curse.CurseClient - url: https://curse.nikky.moe/graphql
io.ktor.client.engine.cio.ConnectException: Connect timed out
at io.ktor.client.engine.cio.Endpoint.connect(Endpoint.kt:189)
at io.ktor.client.engine.cio.Endpoint$connect$1.doResume(Endpoint.kt)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:42)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resumeWithException(CoroutineImpl.kt:47)
at kotlinx.coroutines.experimental.ResumeModeKt.resumeUninterceptedWithExceptionMode(ResumeMode.kt:56)
at kotlinx.coroutines.experimental.TimeoutCoroutine.onCompletionInternal$kotlinx_coroutines_core(Scheduled.kt:87)
at kotlinx.coroutines.experimental.JobSupport.completeStateFinalization(JobSupport.kt:307)
at kotlinx.coroutines.experimental.JobSupport.tryFinalizeStateActually(JobSupport.kt:265)
at kotlinx.coroutines.experimental.JobSupport.tryFinalizeCancellingState(JobSupport.kt:189)
at kotlinx.coroutines.experimental.JobSupport.tryFinalizeState(JobSupport.kt:158)
at kotlinx.coroutines.experimental.JobSupport.makeCompletingInternal(JobSupport.kt:684)
at kotlinx.coroutines.experimental.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:668)
at kotlinx.coroutines.experimental.AbstractCoroutine.resumeWithException(AbstractCoroutine.kt:112)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resumeWithException(CoroutineImpl.kt:47)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resumeWithException(CoroutineImpl.kt:47)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resumeWithException(CoroutineImpl.kt:47)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resumeWithException(CoroutineImpl.kt:47)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resumeWithException(CoroutineImpl.kt:47)
at kotlinx.coroutines.experimental.DispatchedTask$DefaultImpls.run(Dispatched.kt:143)
at kotlinx.coroutines.experimental.AbstractContinuation.run(AbstractContinuation.kt:19)
at io.ktor.network.util.IOCoroutineDispatcher$IODispatchedTask.run(IOCoroutineDispatcher.kt)
at io.ktor.network.util.IOCoroutineDispatcher$IOThread$run$1.doResume(IOCoroutineDispatcher.kt:73)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:42)
at kotlinx.coroutines.experimental.DispatchedTask$DefaultImpls.run(Dispatched.kt:149)
at kotlinx.coroutines.experimental.DispatchedContinuation.run(Dispatched.kt:13)
at kotlinx.coroutines.experimental.EventLoopBase.processNextEvent(EventLoop.kt:140)
at kotlinx.coroutines.experimental.BlockingCoroutine.joinBlocking(Builders.kt:70)
at kotlinx.coroutines.experimental.BuildersKt__BuildersKt.runBlocking(Builders.kt:46)
at kotlinx.coroutines.experimental.BuildersKt.runBlocking(Unknown Source)
at io.ktor.network.util.IOCoroutineDispatcher$IOThread.run(IOCoroutineDispatcher.kt:68)
Suppressed: io.ktor.client.engine.cio.ConnectException: Connect timed out
... 30 more
Suppressed: io.ktor.client.engine.cio.ConnectException: Connect timed out
... 30 more
[pea@pea stoneforge]$
maybe should be in NikkyAI/CurseProxy, not sure, but I didn't see the graphql API documented there so i went for here instead, tell me if it needs moving
EDIT: accidentally pasted more than i meant to, cleaned up
create modpacks that can be uploaded to curseforge / downloaded by curse and twitch client
Currently multimc support is handled by a pre-launch command preparing and updating a instance for multimc
i hope this will change and this logic can move into multimc itself
I made a repo now: HardcoreBytes @ addb827
Command run:
./gradlew hardcorebytes_build
Full log: voodoo.log
e: /home/copygirl/projects/minecraft/Hardcore Bytes/packs/hardcorebytes.voodoo.kts: (75, 5): Unresolved reference: group
ScriptDiagnostic(message=Unresolved reference: +, severity=ERROR, sourcePath=/home/copygirl/projects/minecraft/Hardcore Bytes/packs/hardcorebytes.voodoo.kts, location=Location(start=Position(line=82, col=9, absolutePos=null), end=null), exception=null)
e: /home/copygirl/projects/minecraft/Hardcore Bytes/packs/hardcorebytes.voodoo.kts: (82, 9): Unresolved reference: +
ScriptDiagnostic(message=Unresolved reference: +, severity=ERROR, sourcePath=/home/copygirl/projects/minecraft/Hardcore Bytes/packs/hardcorebytes.voodoo.kts, location=Location(start=Position(line=83, col=9, absolutePos=null), end=null), exception=null)
compile mods from source
example
provider: SOURCE
git: https://github.com/elytra/MatterLink.git
commit/branch: master # or commit hash / tag
command: gradlew setupCiWorkspace clean build
archive: 'build/libs/*.jar'
will clone the repo, run the command and then copy the result, basically like jenkins
figure out a way to make sure to only grab the mod and not the sources, api or other unwanted binaries
maybe error when there is multiple files matching the regex
requires: git library and calling gradlew
goal is to get rid of monumental flat entry lists
keeping the nested yaml format
but the flatten step will be creating single files for each entry
the build step will then create lockfiles for each entry next to the entry definitions
version and feature cache will be dropped (most likely)
mods/WearableBackpacks.hjson
{
"provider": "CURSE",
"name": "WearableBackpacks"
}
mods/MatterLink.hjson
{
"provider": "CURSE",
"name": "MatterLink",
"side": "SERVER"
}
mods/MatterLink.hjson
{
"provider": "CURSE",
"name": "Unity",
"side": "CLIENT",
"filename": "Unity.zip"
}
to add them later into a feature
config/foamfix.cfg.entry.hjson
{
"entry": "foamfix_cfg"
}
config/RPG-HUD.entry.hjson
{
"entry": "RPG-HUD_cfg"
}
root:
- side: CLIENT
entries:
- name: OpenEye
feature:
selected: true
recommendation: starred
files:
- "config/OpenEye.json"
is the nested format for creating a feature lik so
{
"features": {
"OpenEye": {
"selected": false,
"recommendation": "starred",
"entries": ["OpenEye"],
"files": ["config/OpenEye.json"] //can also accept folders
}
}
}
After running the server-install jar, there is a forge.jar as well as a forge[version].jar
Instead, there should be only a single jar, with the file name reflecting the forge version, pack name and version:
[packShortName]-[packVersion]-server-forge-[forgeVersion].jar
~/.../build/vp >>> ./gradlew createPack --id vtest15 --mcVersion 1.15.2 --title "Test paczki 1.15 przez Voodoo"
> Task :createpack FAILED
GetSlugIDPairs
url: https://curse.nikky.moe/graphql
cUrl: curl -i -X POST -d "{\"query\":\"{ addons(gameID: 432, gameVersions: [\\"1.15.2\\"], section: \\"Mods\\") { id slug }}\",\"operationName\":\"GetSlugIDPairs\",\"variables\":{}}" -H "User-Agent:voodoo/0.4.7 (https://github.com/DaemonicLabs/Voodoo)" -H "Content-Type:application/json" https://curse.nikky.moe/graphql
request: --> POST https://curse.nikky.moe/graphql
Body : {"query":"{ addons(gameID: 432, gameVersions: [\"1.15.2\"], section: \"Mods\") { id slug }}","operationName":"GetSlugIDPairs","variables":{}}
Headers : (2)
User-Agent : voodoo/0.4.7 (https://github.com/DaemonicLabs/Voodoo)
Content-Type : application/json
response: <-- -1 http://.
Response :
Length : 0
Body : (empty)
Headers : (0)
could not request slug-id pairs
com.github.kittinunf.fuel.core.HttpException: HTTP Exception 500 Internal Server Error
at com.github.kittinunf.fuel.core.requests.SuspendableRequest.prepareResponse(SuspendableRequest.kt:32)
at com.github.kittinunf.fuel.core.requests.SuspendableRequest.awaitResult(SuspendableRequest.kt:43)
at com.github.kittinunf.fuel.core.DeserializableKt.awaitResponseResult(Deserializable.kt:250)
at voodoo.curse.CurseClient$graphQLRequest$$inlined$awaitObjectResponseResult$1.invokeSuspend(Coroutines.kt:68)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32)
at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:233)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742)
--> POST https://curse.nikky.moe/graphql
Body : {"query":"{ addons(gameID: 432, gameVersions: [\"1.15.2\"], section: \"Mods\") { id slug }}","operationName":"GetSlugIDPairs","variables":{}}
Headers : (2)
User-Agent : voodoo/0.4.7 (https://github.com/DaemonicLabs/Voodoo)
Content-Type : application/json
FAILURE: Build failed with an exception.
cUrl has 2 issues: gameID should be gameId and gameVersions: ["..."] should be gameVersion: "..."
Looks like search api changed...
The log outputs
Using XDG directories
Downloading the multimc-installer binary...
And stuck there
https://mcforge.readthedocs.io/en/latest/gettingstarted/autoupdate/#update-json-format
to install forge i already use their format
http://files.minecraftforge.net/maven/net/minecraftforge/forge/json
foamfix, charset and other update json files
https://asie.pl/files/minecraft/update/foamfix.json
https://asie.pl/files/minecraft/update/charset.json
https://github.com/williewillus/Botania/blob/master/version/update.json
foamfix and charset require a url template
forge has a vastly different structure
it defines webpath
for the url template +1
promos keys are standard, but they point to the "number" mapping containing
a artifact/build object with the following useful values:
mcversion
forgeversion
branch
a code snippets says more then a thousand words.. well not quite.. but lets try anyway
var longVersion = "${mcversion}-${forgeVersion}"
if (branch != null) {
longVersion += "-$branch"
}
val fileName = "forge-${longVersion]-installer.jar"
val url = "${webpath}/${longVersion}/${fileName}"
these do notdefine a webpath
or enough information to put together a url template
worst case the only contains promos
which leads to a version string eg. "0.9.1"
and user input is required
http://asie.pl/files/mods/FoamFix/foamfix-${version}-${mcversion}-anarchy.jar
look at more examples
it seems like there is only 2 formats.. just forge doing their own extension / thing which could be supported by setting the url template to a magic value
but there might be more mods doing their own standards
missing:
Voodoo build: 118
Workspace setup:
java -jar bootstrap-voodoo.jar
./gradlew createPack --id hardcorebytes --mcVersion 1.12.2 --title "Hardcore Bytes"
Pack file: hardcorebytes.voodoo.jar
Command run:
java -jar bootstrap-voodoo.jar packs/hardcorebytes.voodoo.kts build - test mmc
Full output: voodoo.log
11:00:54.956 [main] .(Directories.kt:91) INFO - Using XDG directories
11:00:54.975 [main] .(Voodoo.kt:74) DEBUG - id: hardcorebytes
Exception in thread "main" kotlin.UninitializedPropertyAccessException: lateinit property default has not been initialized
at voodoo.util.SharedFolders$RootDir.getDefault(SharedFolders.kt:13)
at voodoo.util.SharedFolders$RootDir$resolver$1.invoke(SharedFolders.kt:14)
at voodoo.util.SharedFolders$RootDir$resolver$1.invoke(SharedFolders.kt:11)
at voodoo.util.SharedFolders$RootDir.get(SharedFolders.kt:15)
at voodoo.Voodoo.main(Voodoo.kt:76)
export the server as a minified package that can be uploaded and installed to the server host
using
currently mods
and config
folder are wiped and replaced on install
for being able to package multimc packs with voodoo, we need to extract the pack installing logic and GUI and interaction from sklauncher into a seperate jar that can be executed as a pre-launch command
sidenote: while we are at it lets also build a pure cursepack importer that way
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.