Version 1.0.19b

This commit is contained in:
Adrian Marquis
2023-05-29 13:49:34 +00:00
parent 5386f164b9
commit b5ede55eba
927 changed files with 92525 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
ServerEvents.recipes(event => {
if (global.chunk) {
event.remove({id:'mekanism:dimensional_stabilizer'})
event.remove({id:'ae2:network/blocks/spatial_anchor'})
}
})

View File

@@ -0,0 +1,23 @@
BlockEvents.rightClicked(event => {
if (global.nuke) {
if (event.item == 'ftbic:nuke') {
event.cancel()
}
if (event.item == 'industrialforegoing:infinity_nuke') {
event.cancel()
event.entity.inventoryMenu.broadcastFullState()
}
}
})
BlockEvents.placed('ftbic:nuke', event => {
if (global.nuke) {
event.cancel()
}
})
EntityEvents.spawned('industrialforegoing:infinity_nuke', event => {
if (global.nuke) {
event.cancel()
}
})

View File

@@ -0,0 +1,244 @@
ServerEvents.tags('item', event => {
event.add('blue_skies:planks', /blue_skies:.+?_planks/)
event.add('byg:planks', /byg:.+?_planks/)
let chestsMissingTags = ['hexerei:willow_chest', 'hexerei:mahogany_chest', 'ars_nouveau:archwood_chest', 'ad_astra:strophar_chest', 'ad_astra:aeronos_chest']
event.add('forge:chests', chestsMissingTags)
event.add('forge:chests/wooden', chestsMissingTags)
// remove dye tag from flowers with double dye tag
event.remove('byg:purple_dye', 'byg:tall_allium')
event.remove('byg:pink_dye', ['byg:japanese_orchid', 'byg:tall_pink_allium'])
})
ServerEvents.recipes(event => {
/* Fix Overlapping Recipes
/polymorph conflicts
*/
// Sleeping Bags / Wool Slabs
// sleeping bags
event.forEachRecipe({ type: 'minecraft:crafting_shaped', id: /comforts:sleeping_bag_.+/ }, recipe => {
let out = recipe.json.get('result')
let input = recipe.json.get('key').get('a')
event.shaped(Item.of(out), [' ', ' ', 'aaa'], { a: Ingredient.of(input) }).noMirror().noShrink().id(`kubejs:${recipe.getId().replace(':', '/')}`)
event.remove({ id: recipe.getId() })
})
// wool slabs
event.forEachRecipe({ type: 'minecraft:crafting_shaped', id: /absentbydesign:slab_wool_.+/ }, recipe => {
let out = recipe.json.get('result')
let input = recipe.json.get('key').get('#')
event.shaped(Item.of(out), [' ', '###', ' '], { '#': Ingredient.of(input) }).noMirror().noShrink().id(`kubejs:${recipe.getId().replace(':', '/')}`)
event.remove({ id: recipe.getId() })
})
// Structurize / Construction Wand
event.remove({ id: 'structurize:sceptergold' })
event.shaped('structurize:sceptergold', ['C ', ' S ', ' S'], { C: '#minecraft:stone_crafting_materials', S: '#forge:rods/wooden' }).noMirror().id(`kubejs:structurize/sceptergold`)
event.remove({ id: 'constructionwand:stone_wand' })
event.shaped('constructionwand:stone_wand', [' C', ' S ', 'S '], { C: '#minecraft:stone_crafting_materials', S: '#forge:rods/wooden' }).noMirror().id(`kubejs:constructionwand/stone_wand`)
event.remove({ id: 'structurize:sceptersteel' })
event.shaped('structurize:sceptersteel', ['C ', ' S ', ' S'], { C: '#forge:ingots/iron', S: '#forge:rods/wooden' }).noMirror().id(`kubejs:structurize/sceptersteel`)
event.remove({ id: 'constructionwand:iron_wand' })
event.shaped('constructionwand:iron_wand', [' C', ' S ', 'S '], { C: '#forge:ingots/iron', S: '#forge:rods/wooden' }).noMirror().id(`kubejs:constructionwand/iron_wand`)
// Blue Skies tools
let planks = Ingredient.of('#minecraft:planks').subtract(Ingredient.of('#blue_skies:planks'))
event.forEachRecipe({ id: /minecraft:wooden_(hoe|shovel|pickaxe|sword|axe)/ }, recipe => {
let json = recipe.json
let key = json.get('key')
key.add('X', planks.toJson())
json.add('key', key)
recipe.json = json
})
event.forEachRecipe({ id: 'minecraft:stick' }, recipe => {
let json = recipe.json
let key = json.get('key')
key.add('#', planks.toJson())
json.add('key', key)
recipe.json = json
})
let cobble = Ingredient.of('#quark:stone_tool_materials').subtract(Ingredient.of('#blue_skies:cobblestone'))
event.forEachRecipe({ id: /quark:tweaks\/crafting\/utility\/tools\/stone_(hoe|shovel|pickaxe|sword|axe)/ }, recipe => {
let json = recipe.json
let key = json.get('key')
key.add('X', cobble.toJson())
json.add('key', key)
recipe.json = json
})
// So many crafting tables
let tablePlanks = planks.subtract(Ingredient.of('#byg:planks'))
event.forEachRecipe({ id: 'minecraft:crafting_table' }, recipe => {
let json = recipe.json
let key = json.get('key')
key.add('#', tablePlanks.toJson())
json.add('key', key)
recipe.json = json
})
// Basic Chest readdition for planks without chests
let hasChest = Ingredient.of([
'#blue_skies:planks',
'#hexerei:willow_planks',
'#hexerei:mahogany_planks',
'ad_astra:strophar_planks',
'ad_astra:aeronos_planks',
'ars_nouveau:archwood_planks',
'quark:blossom_planks',
'quark:azalea_planks',
'quark:ancient_planks',
'minecraft:oak_planks',
'minecraft:spruce_planks',
'minecraft:birch_planks',
'minecraft:jungle_planks',
'minecraft:acacia_planks',
'minecraft:dark_oak_planks',
'minecraft:crimson_planks',
'minecraft:warped_planks',
'minecraft:mangrove_planks',
'twilightforest:twilight_oak_planks',
'twilightforest:canopy_planks',
'twilightforest:mangrove_planks',
'twilightforest:dark_planks',
'twilightforest:time_planks',
'twilightforest:transformation_planks',
'twilightforest:mining_planks',
'twilightforest:sorting_planks',
])
let chestPlanks = Ingredient.of('#minecraft:planks').subtract(hasChest)
event.shaped('minecraft:chest', ['PPP', 'P P', 'PPP'], { P: chestPlanks }).id('kubejs:chest')
// add chest to plain chest recipes
event.remove({ id: 'quark:building/crafting/chests/chest_revert' })
event.remove({ id: 'ars_nouveau:archwood_to_chest' })
let convertableChests = Ingredient.of('#forge:chests/wooden').subtract(Ingredient.of('#forge:chests/trapped')).subtract('minecraft:chest')
event.shapeless('minecraft:chest', convertableChests).id('kubejs:chest/plain')
// Rechiseled Chisel / Croptopia Knife
event.remove({ id: 'rechiseled:chisel' })
event.shaped('rechiseled:chisel', ['C ', ' S'], { C: '#forge:ingots/iron', S: '#forge:rods/wooden' }).noMirror().id(`kubejs:rechiseled/chisel`)
event.remove({ id: 'croptopia:knife' })
event.shaped('croptopia:knife', [' C', 'S '], { C: '#forge:ingots/iron', S: '#forge:rods/wooden' }).noMirror().id(`kubejs:croptopia/knife`)
// Mangrove ABD plank wall (match other plank wall recipes)
event.remove({ id: 'absentbydesign:wall_mangrove_planks' })
event.shaped('absentbydesign:wall_mangrove_planks', [' ', '###', '# #'], { '#': 'minecraft:mangrove_planks' })
// Remove minecraft recipes, mods add better versions
event.remove({ id: 'minecraft:cake' })
event.remove({ id: 'minecraft:daylight_detector' })
event.remove({ id: 'minecraft:comparator' })
event.remove({ id: 'minecraft:beehive' })
// Tiny Coal
event.remove({ id: 'additional_lights:fire_for_standing_torch_s' })
event.shaped('additional_lights:fire_for_standing_torch_s', ['S', 'C'], { S: '#forge:rods/wooden', C: '#minecraft:coals' })
// Spirit soul sand 1x
event.remove({ id: 'spirit:crafting/compressed_soul_sand' })
event.remove({ id: 'spirit:crafting/decompressed_soul_sand' })
event.custom({
"type": "spirit:soul_engulfing",
"input": {
"ingredient": { "item": "minecraft:iron_block" },
"multiblock": {
"pattern": [
[
" ",
" @ ",
" "
],
[
" S ",
"SXS",
" S "
]
],
"keys": {
"S": {
"block": "spirit:compressed_soul_powder_block"
},
"X": {
"block": "allthecompressed:soul_sand_block_1x"
}
}
}
},
"duration": 60,
"outputItem": "spirit:soul_steel_block"
}).id('spirit:soul_engulfing/soul_steel_block')
// quark's log to stick recipe, but botania safe
let logSticks = Ingredient.of('#minecraft:logs').subtract(Ingredient.of(['#botania:livingwood_logs', '#botania:dreamwood_logs']))
event.shaped('16x minecraft:stick', ['s', 's'], { s: logSticks }).id('kubejs:easy_sticks')
// duplicate and misspelled recipes?
let bygRemovals = [
'byg:rainbow_eucalpytus_door',
'byg:rainbow_eucalpytus_trapdoor',
'byg:jacaranda_boookshelf',
]
bygRemovals.forEach(removeId => {
event.remove({ id: removeId })
})
// thermium lamp same recipe as lantern
event.remove({ id: 'byg:therium_lamp' })
event.shaped('byg:therium_lamp',
['NRN', 'RTR', 'NRN'],
{ N: '#forge:nuggets/iron', R: '#forge:dusts/redstone', T: 'byg:therium_crystal_shard' }
).id('kubejs:byg/therium_lamp')
// duplicate abd and quark
let abdRemovals = [
'absentbydesign:slab_tuff',
'absentbydesign:stairs_tuff',
'absentbydesign:wall_tuff',
'absentbydesign:wall_calcite',
'absentbydesign:stairs_calcite',
'absentbydesign:slab_calcite'
]
abdRemovals.forEach(removeId => {
event.remove({ id: removeId })
})
// ad astra
event.remove({id: 'ad_astra:recipes/moon_stone_brick_slab'})
event.shaped('6x ad_astra:moon_stone_brick_slab', ['BBB'], {B:'ad_astra:moon_stone_bricks'}).id('kubejs:ad_astra/recipes/moon_stone_brick_slab');
// stone -> polished -> bricks
['mercury_stone', 'glacio_stone','moon_stone', 'venus_stone', 'mars_stone', 'permafrost'].forEach(stone => {
event.remove({id:`ad_astra:recipes/${stone}_bricks`})
event.shaped(`4x ad_astra:${stone}_bricks`, ['BB','BB'], {B:`ad_astra:polished_${stone}`}).id(`kubejs:ad_astra/recipes/${stone}_bricks`)
})
})
// convert abd blocks to quark on break
ServerEvents.blockLootTables(event => {
['calcite', 'tuff'].forEach(material => {
['stairs', 'wall'].forEach(type => {
event.modifyBlock(`absentbydesign:${type}_${material}`, loot => {
loot.clearPools()
loot.addPool(pool => {
pool.addItem(`quark:${material}_${type}`)
pool.survivesExplosion()
})
})
})
event.modifyBlock(`absentbydesign:slab_${material}`, loot => {
loot.clearPools()
loot.addPool(pool => {
let entry = pool.addItem(`quark:${material}_slab`)
entry.addFunction({ function: "minecraft:explosion_decay" })
entry.addConditionalFunction(func => {
func.addFunction({ function: 'minecraft:set_count', count: 2 })
func.addCondition({
"condition": "minecraft:block_state_property",
"block": `absentbydesign:slab_${material}`,
"properties": { "type": "double"}
})
})
})
})
})
})

View File

@@ -0,0 +1,216 @@
ServerEvents.highPriorityData(event => {
// Create compat for BYG Mangrove Logs (removed due to MC adding mangrove)
['mangrove_log', 'mangrove_wood', 'stripped_mangrove_log', 'stripped_mangrove_wood'].forEach(wood => {
event.addJson(`create:recipes/cutting/compat/byg/${wood}`, {
type: "create:cutting",
conditions: [
{ type: "forge:false" }
]
})
});
// ATC recipe for energizing compress blaze rods in powah
['block', '1x', '2x', '3x'].forEach(tier => {
event.addJson(`powah:recipes/energizing/allthecompressed/blazing_crystal/${tier}`, {
type: "powah:energizing",
conditions: [
{ type: "forge:false" }
]
})
});
event.addJson('ftbic:recipes/shapeless/sulfur_from_hammer', {
type: "minecraft:crafting_shapeless",
conditions: [
{ type: "forge:false" }
]
})
event.addJson('biggerreactors:recipes/compat/mekanism/rotary/superheated_sodium', {
type: "mekanism:rotary",
conditions: [
{ type: "forge:false" }
]
})
// wrong recipe type
event.addJson('croptopia:recipes/banana_cream_pie', {
"type": "minecraft:crafting_shapeless",
"ingredients": [
{
"tag": "forge:bananas"
},
{
"tag": "forge:vanilla"
},
{
"item": "minecraft:sugar"
},
{
"item": "minecraft:egg"
},
{
"tag": "forge:milks"
},
{
"item": "croptopia:frying_pan"
}
],
"result": {
"item": "croptopia:banana_cream_pie",
"count": 1
}
})
// item doesn't seem to exist yet, add a check
event.addJson('advgenerators:recipes/modules/gas_input', {
"type": "minecraft:crafting_shaped",
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "mekanism"
},
{
"type": "forge:item_exists",
"item": "advgenerators:gas_input"
}
],
"pattern": [
"S S",
"FPF",
" W "
],
"key": {
"S": {
"tag": "forge:ingots/steel"
},
"F": {
"item": "advgenerators:iron_frame"
},
"W": {
"item": "advgenerators:iron_tubing"
},
"P": {
"item": "minecraft:piston"
}
},
"result": {
"item": "advgenerators:gas_input"
}
})
// add check for mod to be loaded
event.addJson('deeperdarker:recipes/sculk_affinity', {
"type": "jeed:effect_provider",
"effect": {
"idi": "deeperdarker:sculk_affinity"
},
"providers": [
{
"item": "deeperdarker:soul_dust"
}
],
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "jeed"
}
]
})
// productive bees missing reagent for botania bee
event.addJson('productivebees:recipes/botania/pure_bee', {
"type": "botania:petal_apothecary",
"ingredients": [
{
"tag": "botania:petals/white"
},
{
"tag": "botania:petals/white"
},
{
"tag": "botania:petals/white"
},
{
"tag": "botania:petals/white"
},
{
"item": "minecraft:bee_spawn_egg"
}
],
"output": {
"type": "forge:nbt",
"item": "productivebees:spawn_egg_configurable_bee",
"nbt": "{EntityTag:{type:\"productivebees:pure\"}}"
},
"reagent": {
"tag": "botania:seed_apothecary_reagent"
},
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "botania"
},
{
"type": "productivebees:bee_exists",
"bee": "productivebees:pure"
}
]
});
// sophisticated storage / quark chest compat
['acacia', 'birch', 'crimson', 'dark_oak', 'jungle', 'oak', 'spruce', 'warped'].forEach(wood => {
event.addJson(`sophisticatedstorage:recipes/${wood}_chest_from_quark_${wood}_chest`, {
"type": "minecraft:crafting_shapeless",
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "quark"
},
{
"type": "sophisticatedcore:item_enabled",
"itemRegistryName": "sophisticatedstorage:chest"
}
],
"ingredients": [
{
"item": `quark:${wood}_chest`
},
{
"item": "minecraft:redstone_torch"
}
],
"result": {
"item": "sophisticatedstorage:chest",
"nbt": `{woodType:\"${wood}\"}`
}
})
});
// create / hexcasting compat (akashic log renamed)
['wood', 'log'].forEach(variety => {
event.addJson(`create:recipes/cutting/compat/hexcasting/akashic_${variety}`, {
"type": "create:cutting",
"ingredients": [
{
"item": `hexcasting:edified_${variety}`
}
],
"processingTime": 50,
"results": [
{
"item": `hexcasting:stripped_edified_${variety}`
}
]
})
event.addJson(`create:recipes/cutting/compat/hexcasting/akashic_${variety}_stripped`, {
"type": "create:cutting",
"ingredients": [
{
"item": `hexcasting:stripped_edified_${variety}`
}
],
"processingTime": 50,
"results": [
{
"count": 6,
"item": "hexcasting:edified_planks"
}
]
})
})
// Fix farmers delight / botany pot recipes
// TODO
})

View File

@@ -0,0 +1,111 @@
ServerEvents.recipes(event => {
// Sword, All recipes are Top-middle and go clockwise
event.custom({
"type": "ars_nouveau:enchanting_apparatus",
"keepNbtOfReagent": true,
"output": Item.of("allthemodium:alloy_sword").toJson(),
"pedestalItems": [
{"item": Ingredient.of('#forge:ingots/unobtainium').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/allthemodium').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()}
],
"reagent": [Item.of("allthemodium:allthemodium_sword").toJson()],
"sourceCost": 5000
}).id('kubejs:allthemodium/alloy_sword')
// Pickaxe
event.custom({
"type": "ars_nouveau:enchanting_apparatus",
"keepNbtOfReagent": true,
"output": Item.of("allthemodium:alloy_pick").toJson(),
"pedestalItems": [
{"item": Ingredient.of('#forge:ingots/unobtainium').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/allthemodium').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()}
],
"reagent": [Item.of("allthemodium:allthemodium_pickaxe").toJson()],
"sourceCost": 5000
}).id('kubejs:allthemodium/alloy_pick')
// Shovel
event.custom({
"type": "ars_nouveau:enchanting_apparatus",
"keepNbtOfReagent": true,
"output": Item.of("allthemodium:alloy_shovel").toJson(),
"pedestalItems": [
{"item": Ingredient.of('#forge:ingots/unobtainium').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/allthemodium').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()}
],
"reagent": [Item.of("allthemodium:allthemodium_shovel").toJson()],
"sourceCost": 5000
}).id('kubejs:allthemodium/alloy_shovel')
// Axe
event.custom({
"type": "ars_nouveau:enchanting_apparatus",
"keepNbtOfReagent": true,
"output": Item.of("allthemodium:alloy_axe").toJson(),
"pedestalItems": [
{"item": Ingredient.of('#forge:ingots/unobtainium').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/allthemodium').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium_allthemodium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/vibranium').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()},
{"item": Ingredient.of('#forge:ingots/unobtainium_vibranium_alloy').toJson()}
],
"reagent": [Item.of("allthemodium:allthemodium_axe").toJson()],
"sourceCost": 5000
}).id('kubejs:allthemodium/alloy_axe')
// Paxel
event.custom({
"type": "ars_nouveau:enchanting_apparatus",
"keepNbtOfReagent": true,
"output": Item.of("allthemodium:alloy_paxel").toJson(),
"pedestalItems": [
{"item": Ingredient.of('allthemodium:alloy_sword').toJson()},
{"item": Ingredient.of('allthemodium:alloy_pick').toJson()},
{"item": Ingredient.of('allthemodium:alloy_shovel').toJson()},
{"item": Ingredient.of('allthemodium:alloy_axe').toJson()},
],
"reagent": [Item.of("mysticalagradditions:awakened_supremium_paxel").toJson()],
"sourceCost": 10000
}).id('kubejs:allthemodium/alloy_paxel')
})

View File

@@ -0,0 +1,229 @@
ServerEvents.recipes(event => {
//Powah
//
// ATM-Vibranium Ingot
event.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('allthemodium:allthemodium_ingot').toJson(),
Ingredient.of('allthemodium:piglich_heart').toJson(),
Ingredient.of('allthemodium:vibranium_ingot').toJson()
],
energy: '1000000000',
result: Item.of('allthemodium:vibranium_allthemodium_alloy_ingot').toJson()
}).id(`kubejs:energizing/allthemodium_vibranium_allthemodium_alloy_ingot`)
// ATM-Vibranium Block
event.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('allthemodium:allthemodium_block').toJson(),
Ingredient.of('kubejs:piglich_heart_block').toJson(),
Ingredient.of('allthemodium:vibranium_block').toJson()
],
energy: '8100000000',
result: Item.of('allthemodium:vibranium_allthemodium_alloy_block').toJson()
}).id(`kubejs:energizing/allthemodium_vibranium_allthemodium_alloy_block`)
// ATM-Unobtainium Ingot
event.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('allthemodium:allthemodium_ingot').toJson(),
Ingredient.of('allthemodium:piglich_heart').toJson(),
Ingredient.of('allthemodium:unobtainium_ingot').toJson()
],
energy: '1000000000',
result: Item.of('allthemodium:unobtainium_allthemodium_alloy_ingot').toJson()
}).id(`kubejs:energizing/allthemodium_unobtainium_allthemodium_alloy_ingot`)
// ATM-Unobtainium Block
event.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('allthemodium:allthemodium_block').toJson(),
Ingredient.of('kubejs:piglich_heart_block').toJson(),
Ingredient.of('allthemodium:unobtainium_block').toJson()
],
energy: '8100000000',
result: Item.of('allthemodium:unobtainium_allthemodium_alloy_block').toJson()
}).id(`kubejs:energizing/allthemodium_unobtainium_allthemodium_alloy_block`)
// Unobtainium-Vibranium Ingot
event.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('allthemodium:vibranium_ingot').toJson(),
Ingredient.of('allthemodium:piglich_heart').toJson(),
Ingredient.of('allthemodium:unobtainium_ingot').toJson()
],
energy: '1000000000',
result: Item.of('allthemodium:unobtainium_vibranium_alloy_ingot').toJson()
}).id(`kubejs:energizing/allthemodium_unobtainium_vibranium_alloy_ingot`)
// Unobtainium-Vibranium Block
event.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('allthemodium:vibranium_block').toJson(),
Ingredient.of('kubejs:piglich_heart_block').toJson(),
Ingredient.of('allthemodium:unobtainium_block').toJson()
],
energy: '8100000000',
result: Item.of('allthemodium:unobtainium_vibranium_alloy_block').toJson()
}).id(`kubejs:energizing/allthemodium_unobtainium_vibranium_alloy_block`)
// Unobtainium-Vibranium Awakened Block
event.custom({
"type": "mysticalagriculture:awakening",
"essences": {
"air": 40,
"earth": 40,
"water": 40,
"fire": 40
},
"input": {
"item": "allthemodium:unobtainium_vibranium_alloy_block"
},
"ingredients": [
{
"item": "allthemodium:vibranium_block"
},
{
"item": "allthemodium:unobtainium_block"
},
{
"item": "allthemodium:vibranium_block"
},
{
"item": "allthemodium:unobtainium_block"
}
],
"result":
Item.of('allthemodium:unobtainium_vibranium_alloy_block', "{HideFlags:1,display:{Name:'[{\"text\":\"Awakened Unobtainium-Vibranium Alloy Block\",\"italic\":false}]'}}").enchant('unbreaking', 1).toJson()
}).id(`kubejs:awakening/awakened_unobtainium_vibranium_alloy_block`)
//Botania
//
//allthemodium-vibranium ingot
event.custom({
"type": "botania:terra_plate",
"ingredients": [
{
"item": "allthemodium:allthemodium_ingot"
},
{
"item": "allthemodium:piglich_heart"
},
{
"item": "allthemodium:vibranium_ingot"
}
],
"mana": 1000000,
"result": {
"item": "allthemodium:vibranium_allthemodium_alloy_ingot"
}
}).id(`kubejs:terra/allthemodium_vibranium_allthemodium_alloy_ingot`)
//allthemodium-unobtainium ingot
event.custom({
"type": "botania:terra_plate",
"ingredients": [
{
"item": "allthemodium:allthemodium_ingot"
},
{
"item": "allthemodium:piglich_heart"
},
{
"item": "allthemodium:unobtainium_ingot"
}
],
"mana": 1000000,
"result": {
"item": "allthemodium:unobtainium_allthemodium_alloy_ingot"
}
}).id(`kubejs:terra/allthemodium_unobtainium_allthemodium_alloy_ingot`)
//unobtainium-vibranium ingot
event.custom({
"type": "botania:terra_plate",
"ingredients": [
{
"item": "allthemodium:unobtainium_ingot"
},
{
"item": "allthemodium:piglich_heart"
},
{
"item": "allthemodium:vibranium_ingot"
}
],
"mana": 1000000,
"result": {
"item": "allthemodium:unobtainium_vibranium_alloy_ingot"
}
}).id(`kubejs:terra/allthemodium_unobtainium_vibranium_alloy_ingot`)
//allthemodium-vibranium block
event.custom({
"type": "botania:terra_plate",
"ingredients": [
{
"item": "allthemodium:allthemodium_block"
},
{
"item": "kubejs:piglich_heart_block"
},
{
"item": "allthemodium:vibranium_block"
}
],
"mana": 8100000,
"result": {
"item": "allthemodium:vibranium_allthemodium_alloy_block"
}
}).id(`kubejs:terra/allthemodium_vibranium_allthemodium_alloy_block`)
//allthemodium-unobtainium block
event.custom({
"type": "botania:terra_plate",
"ingredients": [
{
"item": "allthemodium:allthemodium_block"
},
{
"item": "kubejs:piglich_heart_block"
},
{
"item": "allthemodium:unobtainium_block"
}
],
"mana": 8100000,
"result": {
"item": "allthemodium:unobtainium_allthemodium_alloy_block"
}
}).id(`kubejs:terra/allthemodium_unobtainium_allthemodium_alloy_block`)
//unobtainium-vibranium block
event.custom({
"type": "botania:terra_plate",
"ingredients": [
{
"item": "allthemodium:unobtainium_block"
},
{
"item": "kubejs:piglich_heart_block"
},
{
"item": "allthemodium:vibranium_block"
}
],
"mana": 8100000,
"result": {
"item": "allthemodium:unobtainium_vibranium_alloy_block"
}
}).id(`kubejs:terra/allthemodium_unobtainium_vibranium_alloy_block`)
})

View File

@@ -0,0 +1,30 @@
ServerEvents.recipes(e => {
let shard = ('allthetweaks:atm_star_shard')
//#SilentGear
e.shapeless('32x allthetweaks:allthecatalystium', shard)
//#Pipez
e.shaped('16x pipez:infinity_upgrade', ['ABA', 'BCB', 'ADA'], {
A: 'allthemodium:unobtainium_ingot',
B: 'minecraft:redstone_block',
C: 'pipez:ultimate_upgrade',
D: shard
})
//#Thermal
e.shaped('thermal:machine_efficiency_creative_augment', ['ABA', 'CDC', 'AEA'], {
A: 'thermal:upgrade_augment_3',
B: 'powah:charged_snowball',
C: 'thermal:energy_cell',
D: shard,
E: 'thermal:lightning_charge'
})
/*
//#waterstrainer
e.shaped('waterstrainer:super_worm', ['DSD', 'DWD', 'DDD'], {
D: '#forge:dirt',
S: shard,
W: 'waterstrainer:worm'
}).id('kubejs:waterstrainer/super_worm')
*/
})

View File

@@ -0,0 +1,54 @@
ServerEvents.recipes(event => {
event.custom({
type: "create:mechanical_crafting",
pattern: [
' A ',
' AJA ',
'AAAJFJAAA',
'AJJCDEJJA',
' AMBIHMA ',
' AKGLA ',
' AJJAJJA ',
'AJJA AJJA',
'AAA AAA'
],
key: {
A: Ingredient.of('allthemodium:unobtainium_allthemodium_alloy_block').toJson(),
B: Ingredient.of('allthetweaks:nexium_emitter').toJson(),
C: Ingredient.of('allthetweaks:dragon_soul').toJson(),
D: Ingredient.of('allthetweaks:withers_compass').toJson(),
E: Ingredient.of('allthetweaks:pulsating_black_hole').toJson(),
F: Ingredient.of('allthetweaks:oblivion_shard').toJson(),
G: Ingredient.of('allthetweaks:improbable_probability_device').toJson(),
H: Ingredient.of('allthetweaks:dimensional_seed').toJson(),
I: Ingredient.of('allthetweaks:patrick_star').toJson(),
J: Ingredient.of('allthecompressed:nether_star_block_3x').toJson(),
K: Ingredient.of('allthetweaks:philosophers_fuel').toJson(),
L: Ingredient.of('mysticalagradditions:creative_essence').toJson(),
M: Item.of('allthemodium:unobtainium_vibranium_alloy_block', "{HideFlags:1,display:{Name:'[{\"text\":\"Awakened Unobtainium-Vibranium Alloy Block\",\"italic\":false}]'}}").enchant('unbreaking', 1).strongNBT().toJson()
},
result: Ingredient.of('allthetweaks:atm_star').toJson(),
acceptMirrored: false
}).id('kubejs:allthetweaks/atm_star')
event.custom({
type: "create:mechanical_crafting",
pattern: [
' S ',
' SSS ',
'SSSSSSSSS',
'SSSSSSSSS',
' SSSPSSS ',
' SSSSS ',
' SSSSSSS ',
'SSSS SSSS',
'SSS SSS'
],
key: {
S: Ingredient.of('allthetweaks:atm_star_shard').toJson(),
P: Ingredient.of('allthetweaks:patrick_star').toJson(),
},
result: Ingredient.of('allthetweaks:atm_star').toJson(),
acceptMirrored: false
}).id('kubejs:allthetweaks/atm_shard_star')
})

View File

@@ -0,0 +1,336 @@
/*
Authored by Mitchell52, EnigmaQuip
for AllTheMods 8
*/
ServerEvents.recipes(e => {
function pressure(inputs, result, rCount, pressure) {
e.custom({
type: 'pneumaticcraft:pressure_chamber',
inputs: inputs,
pressure: pressure,
results: [{
item: result,
count: rCount
}]
}).id(`kubejs:pressure/${result.replace(':', '/')}`)
}
///# AE2
e.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('ae2:dense_energy_cell').toJson(),
Ingredient.of('ae2:dense_energy_cell').toJson(),
Ingredient.of('allthetweaks:atm_star').toJson(),
Ingredient.of('ae2:dense_energy_cell').toJson(),
Ingredient.of('ae2:dense_energy_cell').toJson(),
],
energy: '2147483647',
result: Item.of('ae2:creative_energy_cell').toJson()
}).id(`kubejs:energizing/ae2_creative_energy_cell`)
///# Ars Noveau
e.shaped(Item.of('ars_nouveau:creative_spell_book', {
mode: 0,
spells: 'intangible,ignite,flare,strength,craft,cold_snap,rune,snare,slowfall,freeze,split,crush,smelt,summon_steed,accelerate,summon_vex,lightning,grow,dampen,touch,invisibility,extract,delay,light,duration_down,exchange,place_block,summon_wolves,shield,conjure_water,cut,harm,interact,blink,amplify,phantom_block,fell,extend_time,heal,leap,redstone_signal,pierce,harvest,fortune,break,pickup,launch,dispel,haste,ender_inventory,pull,explosion,fangs,aoe,gravity,self,aquatic,projectile,wither,gust'
}),
['BSG', 'GGE', 'EER'],
{
B: Ingredient.of('ars_nouveau:archmage_spell_book').toJson(),
S: Ingredient.of('allthetweaks:atm_star').toJson(),
G: Ingredient.of('ars_nouveau:source_gem_block').toJson(),
E: Ingredient.of('minecraft:ender_eye').toJson(),
R: Ingredient.of('tombstone:soul_receptacle').toJson()
}
)
e.shaped('ars_nouveau:creative_source_jar', ['GMG', 'GSG', 'GGG'], {
G: '#forge:glass',
S: 'allthetweaks:atm_star',
M: 'ars_nouveau:source_gem_block'
})
///# Botania
e.shaped('botania:creative_pool', ['RMR', 'MSM', 'RMR'], {
S: 'allthetweaks:atm_star',
M: 'botania:mana_pool',
R: '#botania:runes'
}).id('kubejs:botania/creative_pool')
e.shaped(Item.of('botania:mana_tablet', '{creative:1b,mana:500000}'), ['RMR', 'MSM', 'RMR'], {
S: 'allthetweaks:atm_star',
M: 'botania:mana_tablet',
R: '#botania:runes'
}).id('kubejs:botania/creative_tablet')
///# Create
e.custom({
type: "create:mechanical_crafting",
pattern: ['CLC', 'HSH', 'LGL'],
key: {
C: Ingredient.of('create:cogwheel').toJson(),
L: Ingredient.of('create:large_cogwheel').toJson(),
H: Ingredient.of('create:shaft').toJson(),
S: Ingredient.of('allthetweaks:atm_star').toJson(),
G: Ingredient.of('create:gearbox').toJson()
},
result: Ingredient.of('create:creative_motor').toJson(),
acceptMirrored: false
}).id('kubejs:create/creative_motor')
e.custom({
type: 'create:mixing',
ingredients: [
Ingredient.of('create:blaze_cake').toJson(),
Ingredient.of('allthetweaks:atm_star').toJson(),
Ingredient.of('croptopia:tres_leche_cake').toJson()
],
results: [Ingredient.of('create:creative_blaze_cake').toJson()],
heatRequirement: 'superheated'
})
e.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('create:flywheel',).toJson(),
Ingredient.of('allthetweaks:atm_star').toJson(),
Ingredient.of('createaddition:alternator',).toJson()
],
energy: '2147483647',
result: Item.of('createaddition:creative_energy').toJson()
}).id(`kubejs:energizing/createaddition_creative_energy`)
///# Elementalcraft
e.custom({
"type": "elementalcraft:binding",
"element_amount": 60000,
"element_type": "fire",
"ingredients": [
{"item": "allthetweaks:atm_star"},
{"item": "elementalcraft:firecrystal"},
{"item": "elementalcraft:reservoir_fire"},
Item.of('elementalcraft:container', '{BlockEntityTag:{element_storage:{element_amount:100000,element_capacity:100000,element_type:"fire"}}}').strongNBT().toJson(),
{"item": "elementalcraft:reservoir_fire"},
{"item": "elementalcraft:firecrystal"}
],
"output": Item.of('elementalcraft:creative_container', '{BlockEntityTag:{element_storage:{element_amount:1000000,element_capacity:1000000,element_type:"fire"}}}').toJson()
}).id('kubejs:elementalcraft/creative_fire_container')
e.custom({
"type": "elementalcraft:binding",
"element_amount": 60000,
"element_type": "water",
"ingredients": [
{"item": "allthetweaks:atm_star"},
{"item": "elementalcraft:watercrystal"},
{"item": "elementalcraft:reservoir_water"},
Item.of('elementalcraft:container', '{BlockEntityTag:{element_storage:{element_amount:100000,element_capacity:100000,element_type:"water"}}}').strongNBT().toJson(),
{"item": "elementalcraft:reservoir_water"},
{"item": "elementalcraft:watercrystal"}
],
"output": Item.of('elementalcraft:creative_container', '{BlockEntityTag:{element_storage:{element_amount:1000000,element_capacity:1000000,element_type:"water"}}}').toJson()
}).id('kubejs:elementalcraft/creative_water_container')
e.custom({
"type": "elementalcraft:binding",
"element_amount": 60000,
"element_type": "earth",
"ingredients": [
{"item": "allthetweaks:atm_star"},
{"item": "elementalcraft:earthcrystal"},
{"item": "elementalcraft:reservoir_earth"},
Item.of('elementalcraft:container', '{BlockEntityTag:{element_storage:{element_amount:100000,element_capacity:100000,element_type:"earth"}}}').strongNBT().toJson(),
{"item": "elementalcraft:reservoir_earth"},
{"item": "elementalcraft:earthcrystal"}
],
"output": Item.of('elementalcraft:creative_container', '{BlockEntityTag:{element_storage:{element_amount:1000000,element_capacity:1000000,element_type:"earth"}}}').toJson()
}).id('kubejs:elementalcraft/creative_earth_container')
e.custom({
"type": "elementalcraft:binding",
"element_amount": 60000,
"element_type": "air",
"ingredients": [
{"item": "allthetweaks:atm_star"},
{"item": "elementalcraft:aircrystal"},
{"item": "elementalcraft:reservoir_air"},
Item.of('elementalcraft:container', '{BlockEntityTag:{element_storage:{element_amount:100000,element_capacity:100000,element_type:"air"}}}').strongNBT().toJson(),
{"item": "elementalcraft:reservoir_air"},
{"item": "elementalcraft:aircrystal"}
],
"output": Item.of('elementalcraft:creative_container', '{BlockEntityTag:{element_storage:{element_amount:1000000,element_capacity:1000000,element_type:"air"}}}').toJson()
}).id('kubejs:elementalcraft/creative_air_container')
///# Integrated Dynamics
e.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('integrateddynamics:energy_battery').toJson(),
Ingredient.of('integrateddynamics:energy_battery').toJson(),
Ingredient.of('allthetweaks:atm_star').toJson(),
Ingredient.of('integrateddynamics:energy_battery').toJson(),
Ingredient.of('integrateddynamics:energy_battery').toJson(),
],
energy: '2147483647',
result: Item.of('integrateddynamics:energy_battery_creative').toJson()
}).id(`kubejs:energizing/integrateddynamics_energy_battery_creative`)
///# IronJetpacks
e.shaped(Item.of('ironjetpacks:cell', { Id: "ironjetpacks:creative" }).strongNBT(), [
' A ',
'BCB',
' A '
], {
A: '#forge:storage_blocks/redstone',
B: 'allthemodium:unobtainium_block',
C: 'powah:battery_nitro'
}).id('kubejs:ironjetpacks_creative_cell')
e.shaped(Item.of('ironjetpacks:thruster', { Id: "ironjetpacks:creative" }).strongNBT(), [
'ABA',
'BCB',
'ADA'
], {
A: 'allthemodium:unobtainium_block',
B: 'powah:nitro_crystal_block',
C: Item.of('ironjetpacks:cell', { Id: "ironjetpacks:creative" }).strongNBT(),
D: 'ironfurnaces:unobtainium_furnace'
}).id('kubejs:ironjetpacks_creative_thruster')
e.shaped(Item.of('ironjetpacks:capacitor', { Id: "ironjetpacks:creative" }), [
'ACA',
'BDB',
'AEA'
], {
A: 'allthemodium:unobtainium_block',
B: 'mekanism:sps_casing',
C: 'powah:reactor_nitro',
D: 'mekanism:ultimate_induction_cell',
E: 'powah:reactor_nitro'
}).id('kubejs:ironjetpacks_creative_capacator')
e.shaped(Item.of('ironjetpacks:jetpack', { Id: "ironjetpacks:creative" }).strongNBT(), [
'ACA',
'BFB',
'DED'
], {
A: 'mysticalagradditions:creative_essence',
B: 'allthemodium:vibranium_allthemodium_alloy_block',
C: Item.of('ironjetpacks:capacitor', { Id: "ironjetpacks:creative" }).strongNBT(),
D: Item.of('ironjetpacks:thruster', { Id: "ironjetpacks:creative" }).strongNBT(),
E: 'allthetweaks:atm_star',
F: Item.of('ironjetpacks:jetpack', { Id: "ironjetpacks:emerald" }).strongNBT()
}).id('kubejs:ironjetpacks_creative_jetpack')
///#Mekanism
e.shaped('mekanism:creative_energy_cube', ['ATA', 'UCU', 'ATA'], {
A: 'mekanism:alloy_atomic',
T: 'mekanism:energy_tablet',
U: 'allthemodium:unobtainium_block',
C: 'mekanism:ultimate_energy_cube'
}).id('kubejs:mekanism/creative_energy_cube')
e.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('mekanism:creative_energy_cube',).toJson(),
Ingredient.of('mekanism:creative_energy_cube',).toJson(),
Ingredient.of('allthetweaks:atm_star').toJson(),
Ingredient.of('mekanism:creative_energy_cube',).toJson(),
Ingredient.of('mekanism:creative_energy_cube',).toJson(),
],
energy: '2147483647',
result: Item.of('mekanism:creative_energy_cube', '{mekData:{EnergyContainers:[{Container:0b,stored:"18446744073709551615.9999"}]}}').toJson()
}).id(`kubejs:energizing/mekanism_creative_energy_cube`)
///# Powah
e.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('powah:energy_cell_nitro').toJson(),
Ingredient.of('powah:energy_cell_nitro').toJson(),
Ingredient.of('allthetweaks:atm_star').toJson(),
Ingredient.of('powah:energy_cell_nitro').toJson(),
Ingredient.of('powah:energy_cell_nitro').toJson(),
],
energy: '2147483647',
result: Item.of('powah:energy_cell_creative').toJson()
}).id(`kubejs:energizing/powah_energy_cell_creative`)
///# Pnc
pressure([
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:advanced_pressure_tube', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:electrostatic_compressor', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:advanced_pressure_tube', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:flux_compressor', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'allthetweaks:atm_star', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:advanced_air_compressor', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:advanced_pressure_tube', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:advanced_liquid_compressor', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:advanced_pressure_tube', 'count': 64 }
], 'pneumaticcraft:creative_compressor', 1, 4.9)
pressure([
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:compressed_iron_block', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:compressed_iron_block', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:compressed_iron_block', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:compressed_iron_block', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'allthetweaks:atm_star', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:compressed_iron_block', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:compressed_iron_block', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:compressed_iron_block', 'count': 64 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:compressed_iron_block', 'count': 64 }
], 'pneumaticcraft:creative_compressed_iron_block', 1, 4.9)
///# Refined storage
e.custom({
type: 'powah:energizing',
ingredients: [Ingredient.of('refinedstorage:wireless_grid').toJson()],
energy: '2147483647',
result: Item.of('refinedstorage:creative_wireless_grid').toJson()
}).id(`kubejs:energizing/refinedstorage_creative_wireless_grid`)
e.custom({
type: 'powah:energizing',
ingredients: [Ingredient.of('refinedstorage:wireless_fluid_grid').toJson()],
energy: '2147483647',
result: Item.of('refinedstorage:creative_wireless_fluid_grid').toJson()
}).id(`kubejs:energizing/refinedstorage_creative_wireless_fluid_grid`)
e.custom({
type: 'powah:energizing',
ingredients: [Ingredient.of('refinedstorage:wireless_crafting_monitor').toJson()],
energy: '2147483647',
result: Item.of('refinedstorage:creative_wireless_crafting_monitor').toJson()
}).id(`kubejs:energizing/refinedstorage_creative_wireless_crafting_monitor`)
e.custom({
type: 'powah:energizing',
ingredients: [Ingredient.of('refinedstorageaddons:wireless_crafting_grid').toJson()],
energy: '2147483647',
result: Item.of('refinedstorageaddons:creative_wireless_crafting_grid').toJson()
}).id(`kubejs:energizing/refinedstorage_creative_wireless_crafting_grid`)
e.custom({
type: 'powah:energizing',
ingredients: [Ingredient.of('refinedstorage:portable_grid').toJson()],
energy: '2147483647',
result: Item.of('refinedstorage:creative_portable_grid').toJson()
}).id(`kubejs:energizing/refinedstorage_creative_portable_grid`)
e.custom({
type: 'powah:energizing',
ingredients: [
Ingredient.of('refinedstorage:controller').toJson(),
Ingredient.of('allthetweaks:atm_star').toJson()
],
energy: '2147483647',
result: Item.of('refinedstorage:creative_controller').toJson()
}).id(`kubejs:energizing/refinedstorage_creative_controller`)
///# Universal Grid
e.shaped('universalgrid:creative_wireless_universal_grid', ['ABA', 'CBD', 'ABA'], {
A: 'allthemodium:unobtainium_ingot',
B: 'refinedstorage:quartz_enriched_iron',
C: 'refinedstorageaddons:creative_wireless_crafting_grid',
D: 'universalgrid:wireless_universal_grid'
}).id('kubejs:universalgrid/creative_wireless_universal_grid')
})

View File

@@ -0,0 +1,164 @@
ServerEvents.recipes(event => {
// Dragon Soul
// Alfred's Proposal
event.shaped('allthetweaks:dragon_soul', ['CDA', 'SNI', 'BGE'], {
C: 'mysticalagradditions:dragon_scale',
D: 'occultism:soul_gem',
A: 'quark:dragon_scale',
S: [Item.of('blue_skies:poison_arc', '{ArcLevel:1}').strongNBT(),Item.of('blue_skies:poison_arc', '{ArcLevel:2}').strongNBT(),'twilightforest:snow_queen_trophy'],
N: 'allthemodium:piglich_heart',
I: [Item.of('blue_skies:nature_arc', '{ArcLevel:1}').strongNBT(),Item.of('blue_skies:nature_arc', '{ArcLevel:2}').strongNBT(),'twilightforest:snow_queen_trophy'],
B: 'minecraft:dragon_breath',
G: 'productivebees:inactive_dragon_egg',
E: 'ars_nouveau:summon_focus'
}).id('kubejs:allthetweaks/dragon_soul')
// Dimensional Seed Recipe
event.custom({
"type": "spirit:soul_engulfing",
"input": {
"ingredient": {
"item": "mysticalagriculture:soulium_seed_base"
},
"multiblock": {
"pattern": [
[
" F ", //bottom
"E@ ", //middle
" G " //top
],
[
"ACI",
"BXD",
"AHJ"
]
],
"keys": {
"A": {
"block": "occultism:storage_controller"
},
"B": {
"block": "allthecompressed:netherrack_block_6x"
},
"C": {
"block": "allthecompressed:obsidian_block_5x"
},
"D": {
"block": "allthemodium:teleport_pad"
},
"E": {
"block": "allthetweaks:mini_nether"
},
"F": {
"block": "allthetweaks:mini_exit"
},
"G": {
"block": "allthetweaks:mini_end"
},
"H": {
"block": "allthecompressed:end_stone_block_5x"
},
"I": {
"block": "allthecompressed:emerald_block_5x"
},
"J": {
"block": "allthecompressed:diamond_block_4x"
},
"X": {
"block": "allthecompressed:soul_sand_block_5x"
}
}
}
},
"duration": 30,
"destroysStructure": true,
"outputItem": "allthetweaks:dimensional_seed"
}).id('kubejs:allthetweaks/dimensional_seed')
// Withers Compass
// Alfred's Proposal
event.shaped('allthetweaks:withers_compass', ['DCD', 'ABA', 'DED'], {
A: 'mekanism:module_gravitational_modulating_unit',
B: 'industrialforegoing:wither_builder',
C: 'deeperdarker:heart_of_the_deep',
D: 'ftbic:antimatter_crystal',
E: 'mekanism:module_gravitational_modulating_unit'
}).id('kubejs:allthetweaks/withers_compass')
// Philosopher's Fuel
// Alfred's Proposal
event.shaped('allthetweaks:philosophers_fuel', ['ABC', 'DEF', 'GHI'], {
A: 'chemlib:oganesson',
B: 'mekanism:pellet_antimatter',
C: Item.of('ftbic:quad_uranium_fuel_rod', '{Damage:0}').strongNBT(),
D: Item.of('evilcraft:flesh_rejuvenated', '{Fluid:{Amount:0,FluidName:"minecraft:empty"},capacity:10000}'),
E: 'mysticalagradditions:insanium_coal_block',
F: 'elementalcraft:fireite_ingot',
G: 'mysticalagriculture:awakened_supremium_furnace',
H: 'twilightforest:twilight_portal_miniature_structure',
I: 'ftbic:nuclear_reactor'
}).id('kubejs:allthetweaks/philosophers_fuel')
// Improbable Probaility Device
// Alfred's Proposal
event.shaped('allthetweaks:improbable_probability_device', ['ABA', 'CGE', 'FDF'], {
A: 'mekanismgenerators:module_solar_recharging_unit',
B: 'computercraft:pocket_computer_advanced',
C: ['extradisks:1048576k_storage_part', 'extradisks:1048576k_fluid_storage_part', 'megacells:cell_component_256m'],
D: 'advgenerators:power_capacitor_tier3',
E: 'rftoolsutility:flight_module',
F: Item.of('powah:battery_nitro', '{powah_tile_data:{energy_stored_main_energy:2000000000L}}').strongNBT(),
G: 'ftbic:nuke'
}).id('kubejs:allthetweaks/improbable_probability_device')
// Nexium Emitter
// Alfred's Proposal
event.shaped('allthetweaks:nexium_emitter', ['A B', ' CF', 'GED'], {
A: 'powah:player_transmitter_nitro',
B: [Item.of('ae2wtlib:wireless_universal_terminal', '{crafting:1b,internalMaxPower:4800000.0d,pattern_access:1b,pattern_encoding:1b}'), Item.of('universalgrid:wireless_universal_grid', '{gridType:0}')],
C: 'mekanism:supercharged_coil',
D: 'ftbic:ev_solar_panel',
E: 'ae2:singularity',
F: 'mekanismgenerators:module_solar_recharging_unit',
G: 'immersiveengineering:tesla_coil'
}).id('kubejs:allthetweaks/nexium_emitter')
// Pulsating Black Hole
// Alfred's Proposal
event.custom({
type: 'pneumaticcraft:pressure_chamber',
inputs: [
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'ftbic:nuke', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'ae2:quantum_ring', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'pneumaticcraft:micromissiles', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'mekanism:pellet_antimatter', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'minecraft:nether_star', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'ftbic:antimatter', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'industrialforegoing:infinity_nuke', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'apotheosis:vial_of_expulsion', 'count': 1 },
{ 'type': 'pneumaticcraft:stacked_item', 'item': 'evilcraft:lightning_bomb', 'count': 1 }
],
pressure: 4.9,
results: [
{
'item': 'allthetweaks:pulsating_black_hole'
}
]
}).id('kubejs:pressure/allthetweaks/pulsating_black_hole')
// Oblivion Shard
// Alfred's Proposal
event.shaped('allthetweaks:oblivion_shard', [' AB', 'ACA', 'BA '], {
A: 'spirit:soul_steel_block',
C: 'naturesaura:end_flower',
B: 'naturesaura:chunk_loader'
}).id('kubejs:allthetweaks/oblivion_shard')
// Creative Essence
event.shaped('mysticalagradditions:creative_essence', ['CAC', 'ABA', 'CAC'], {
A: 'mysticalagradditions:insanium_block',
C: 'mysticalagradditions:insanium_gemstone_block',
B: 'mysticalagriculture:master_infusion_crystal'
}).id('kubejs:allthetweaks/creative_essence')
})

View File

@@ -0,0 +1,9 @@
ServerEvents.recipes(event => {
//removal of recipes due to dupe bug
//https://github.com/JoeFoxe/Hexerei-1.19/issues/36
event.remove({ id: 'hexerei:mahogany_drying_rack'})
event.remove({ id: 'hexerei:witch_hazel_drying_rack'})
event.remove({ id: 'hexerei:willow_drying_rack'})
event.remove({ id:'securitycraft:projector'})
})

View File

@@ -0,0 +1,148 @@
ServerEvents.recipes(event => {
// Twilight Mini Structure
event.custom({
"type": "mysticalagriculture:awakening",
"essences": {
"air": 40,
"earth": 40,
"water": 40,
"fire": 40
},
"input": {
"item": "twilightforest:snow_queen_trophy"
},
"ingredients": [
{
"item": "twilightforest:fiery_block"
},
{
"item": "twilightforest:knightmetal_block"
},
{
"item": "twilightforest:steeleaf_block"
},
{
"item": "twilightforest:carminite_block"
}
],
"result": {
"item": "twilightforest:twilight_portal_miniature_structure"
}
}).id(`kubejs:awakening/twilight_portal_miniature_structure`)
// Mini Nether
event.shaped('allthetweaks:mini_nether', ['ADA', 'BCB', 'AEA'], {
A: 'minecraft:obsidian',
B: 'minecraft:nether_star',
C: Item.of('mekanism:teleportation_core', "{HideFlags:1,display:{Name:'[{\"text\":\"Nether Infused Teleportation Core\",\"italic\":false}]'}}").enchant('unbreaking', 1).strongNBT().toJson(),
D: 'minecraft:wither_skeleton_skull',
E: 'minecraft:warped_nylium'
}).id('kubejs:allthetweaks/mini_nether')
// Nether Infused Teleportation Core
event.custom({
"type": "elementalcraft:binding",
"element_amount": 10000,
"element_type": "fire",
"ingredients": [
{
"item": "mekanism:teleportation_core"
},
{
"item": "elementalcraft:purecrystal"
},
{
"item": "minecraft:netherite_block"
},
Item.of('elementalcraft:jewel', '{elementalcraft:{jewel:"elementalcraft:piglin"}}').strongNBT().toJson(),
{
"item": "minecraft:netherite_block"
},
{
"item": "elementalcraft:purecrystal"
}
],
"output": Item.of('mekanism:teleportation_core', "{HideFlags:1,display:{Name:'[{\"text\":\"Nether Infused Teleportation Core\",\"italic\":false}]'}}").enchant('unbreaking', 1).toJson()
}).id('kubejs:allthetweaks/nether_core')
// Mini End
event.shaped('allthetweaks:mini_end', ['ABA', 'BCB', 'ABA'], {
A: 'additional_lights:fire_pit_s_end_stone',
B: 'minecraft:ender_eye',
C: Item.of('mekanism:teleportation_core', "{HideFlags:1,display:{Name:'[{\"text\":\"Ender Infused Teleportation Core\",\"italic\":false}]'}}").enchant('unbreaking', 1).strongNBT().toJson()
}).id('kubejs:allthetweaks/mini_end')
// Ender Infused Teleportation Core
event.custom({
"type": "elementalcraft:binding",
"element_amount": 10000,
"element_type": "air",
"ingredients": [
{
"item": "mekanism:teleportation_core"
},
{
"item": "elementalcraft:purecrystal"
},
{
"item": "allthetweaks:ender_pearl_block"
},
Item.of('elementalcraft:jewel', '{elementalcraft:{jewel:"elementalcraft:demigod"}}').strongNBT().toJson(),
{
"item": "allthetweaks:ender_pearl_block"
},
{
"item": "elementalcraft:purecrystal"
}
],
"output": Item.of('mekanism:teleportation_core', "{HideFlags:1,display:{Name:'[{\"text\":\"Ender Infused Teleportation Core\",\"italic\":false}]'}}").enchant('unbreaking', 1).toJson()
}).id('kubejs:allthetweaks/ender_core')
// Mini Exit
event.shaped('allthetweaks:mini_exit', ['ABA', 'DCD', 'ADA'], {
A: 'additional_lights:fire_pit_s_end_stone',
B: 'minecraft:dragon_egg',
C: Item.of('mekanism:teleportation_core', "{HideFlags:1,display:{Name:'[{\"text\":\"Draconic Infused Teleportation Core\",\"italic\":false}]'}}").enchant('unbreaking', 1).strongNBT().toJson(),
D: 'minecraft:end_crystal'
}).id('kubejs:allthetweaks/mini_exit')
// Draconic Infused Teleportation Core
event.custom({
"type": "elementalcraft:binding",
"element_amount": 10000,
"element_type": "fire",
"ingredients": [
{
"item": "mekanism:teleportation_core"
},
{
"item": "elementalcraft:purecrystal"
},
{
"item": "minecraft:dragon_egg"
},
Item.of('elementalcraft:jewel', '{elementalcraft:{jewel:"elementalcraft:phoenix"}}').strongNBT().toJson(),
{
"item": "minecraft:dragon_egg"
},
{
"item": "elementalcraft:purecrystal"
}
],
"output": Item.of('mekanism:teleportation_core', "{HideFlags:1,display:{Name:'[{\"text\":\"Draconic Infused Teleportation Core\",\"italic\":false}]'}}").enchant('unbreaking', 1).toJson()
}).id('kubejs:allthetweaks/draco_core')
})

View File

@@ -0,0 +1,123 @@
///# What are you doing in here?
ServerEvents.recipes(e => {
//Vanilla
e.shaped('minecraft:music_disc_otherside',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'mysticalagriculture:creeper_essence',
S: 'mysticalagriculture:skeleton_essence',
D: 'minecraft:blue_dye'
}).id('kubejs:minecraft/music_disk_otherside')
//Ars Nouveau
e.shaped('ars_nouveau:music_disc_aria_biblio',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'ars_nouveau:mendosteen_pod',
S: 'ars_nouveau:bombegranate_pod',
D: 'ars_nouveau:source_gem'
}).id('kubejs:ars_nouveau/music_disc_aria_biblio')
//botania
e.shaped('botania:record_gaia_1',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'botania:manasteel_nugget',
S: 'mysticalagriculture:mystical_flower_essence',
D: 'botania:gray_petal'
}).id('kubejs:botania/record_gaia_1')
e.shaped('botania:record_gaia_2',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'botania:manasteel_nugget',
S: 'mysticalagriculture:mystical_flower_essence',
D: 'botania:black_petal'
}).id('kubejs:botania/record_gaia_2')
//Blue skies
e.shaped('blue_skies:blinding_rage',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'blue_skies:aquite',
S: 'minecraft:gray_dye',
D: 'minecraft:blue_dye'
}).id('kubejs:blue_skies/blinding_rage')
e.shaped('blue_skies:defying_starlight',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'blue_skies:aquite',
S: 'minecraft:green_dye',
D: 'minecraft:yellow_dye'
}).id('kubejs:blue_skies/defying_starlight')
e.shaped('blue_skies:venomous_encounter',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'blue_skies:aquite',
S: 'minecraft:magenta_dye',
D: 'minecraft:purple_dye'
}).id('kubejs:blue_skies/venomous_encounter')
e.shaped('blue_skies:population',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'blue_skies:aquite',
S: 'minecraft:cyan_dye',
D: 'minecraft:magenta_dye'
}).id('kubejs:blue_skies/population')
//Quark
e.shaped('quark:music_disc_endermosh',['MC', 'SD'],{
M: 'mysticalagriculture:blank_record',
C: 'quark:red_corundum_cluster',
S: 'minecraft:purple_dye',
D: 'minecraft:red_dye'
}).id('kubejs:quark/endermosh')
//Twilight
e.shaped('twilightforest:music_disc_radiance',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:yellow_dye'
}).id('kubejs:twilightforest/music_disc_radiance')
e.shaped('twilightforest:music_disc_steps',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:cyan_dye'
}).id('kubejs:twilightforest/music_disc_steps')
e.shaped('twilightforest:music_disc_superstitious',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:purple_dye'
}).id('kubejs:twilightforest/music_disc_superstitious')
e.shaped('twilightforest:music_disc_home',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:pink_dye'
}).id('kubejs:twilightforest/music_disc_home')
e.shaped('twilightforest:music_disc_wayfarer',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:blue_dye'
}).id('kubejs:twilightforest/music_disc_wayfarer')
e.shaped('twilightforest:music_disc_findings',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:orange_dye'
}).id('kubejs:twilightforest/music_disc_findings')
e.shaped('twilightforest:music_disc_maker',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:magenta_dye'
}).id('kubejs:twilightforest/music_disc_maker')
e.shaped('twilightforest:music_disc_thread',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:red_dye'
}).id('kubejs:twilightforest/music_disc_thread')
e.shaped('twilightforest:music_disc_motion',['MC','SD'],{
M: 'mysticalagriculture:blank_record',
C: 'twilightforest:raven_feather',
S: 'twilightforest:torchberries',
D: 'minecraft:light_blue_dye'
}).id('kubejs:twilightforest/music_disc_motion')
})

View File

@@ -0,0 +1,27 @@
ServerEvents.recipes(event => {
event.custom({
type: "create:mechanical_crafting",
pattern: [
' B ',
' BCA ',
'BBBGCABBB',
'ACGCGGGCA',
' AAGGGBA ',
' EDDDE ',
' EFEDEFE ',
'BEDD DDEB',
'AAA AAA'
],
key: {
A: Ingredient.of('minecraft:magenta_concrete').toJson(),
B: Ingredient.of('minecraft:pink_concrete').toJson(),
C: Ingredient.of('minecraft:pink_concrete_powder').toJson(),
D: Ingredient.of('minecraft:green_concrete').toJson(),
E: Ingredient.of('minecraft:green_concrete_powder').toJson(),
F: Ingredient.of('minecraft:lime_concrete').toJson(),
G: Ingredient.of('minecraft:magenta_concrete_powder').toJson()
},
result: Ingredient.of('allthetweaks:patrick_star').toJson(),
acceptMirrored: false
}).id('kubejs:allthetweaks/patrick_star')
})

View File

@@ -0,0 +1,11 @@
ServerEvents.recipes(e=> {
e.remove({ id: 'ad_astra:recipes/steel_ingot_from_blasting_iron_ingot'})
//oil is oil
e.custom({
type: "ad_astra:fuel_conversion",
input: "#forge:crude_oil",
output: "ad_astra:fuel",
conversion_ratio: 1.0,
})
})

View File

@@ -0,0 +1,9 @@
ServerEvents.recipes(event => {
event.remove({ id: 'aeinfinitybooster:infinity_card' })
event.shaped('aeinfinitybooster:infinity_card', ['EBE', 'BUB', 'NNN'], {
U: '#forge:ingots/unobtainium',
B: 'ae2:wireless_booster',
E: '#forge:plates/enderium',
N: 'minecraft:netherite_ingot'
}).id('kubejs:aeinfinitybooster/infinity_card')
})

View File

@@ -0,0 +1,20 @@
ServerEvents.recipes(event => {
let patterns = { helmet: ['XXX', 'XYX'], chestplate: ['XYX', 'XXX', 'XXX'], leggings: ['XXX', 'XYX', 'X X'], boots: ['XYX', 'X X'] }
let tiers = [
{ material: '#forge:ingots/iron', previous: 'minecraft:leather', makes: 'minecraft:iron' },
{ material: '#forge:gems/diamond', previous: 'minecraft:iron', makes: 'minecraft:diamond' },
]
for (const tier of tiers) {
for (const [armorItem, armorPattern] of Object.entries(patterns)) {
event.custom({
type: 'allthemodium:atmshaped_crafting',
pattern: armorPattern,
key: {
X: Ingredient.of(tier.material).toJson(),
Y: Item.of(`${tier.previous}_${armorItem}`).toJson()
},
result: Item.of(`${tier.makes}_${armorItem}`).toJson()
}).id(`kubejs:keep_enchants/${tier.previous.replace(':', '/')}_${armorItem}_upgrade`)
}
}
})

View File

@@ -0,0 +1,6 @@
ServerEvents.recipes(event => {
event.shaped('kubejs:piglich_heart_block', ['HHH','HHH','HHH'],{
H: 'allthemodium:piglich_heart'
}).id('kubejs:shaped_heart_block')
event.shapeless('9x allthemodium:piglich_heart', 'kubejs:piglich_heart_block').id('kubejs:shapeless_piglich_heart')
})

View File

@@ -0,0 +1,27 @@
ServerEvents.recipes(event => {
event.remove({id: 'angelring:diamond_ring'})
event.shaped('angelring:diamond_ring', [
'DND',
'VEU',
'DAD'
], {
D: '#forge:storage_blocks/diamond',
N: '#forge:storage_blocks/netherite',
V: '#forge:storage_blocks/vibranium',
U: '#forge:storage_blocks/unobtainium',
A: '#forge:storage_blocks/allthemodium',
E: '#forge:elytra'
})
event.remove({id: 'angelring:angel_ring'})
event.shaped('angelring:angel_ring', [
'CAC',
'ARA',
'DGD'
], {
C: 'ironfurnaces:allthemodium_furnace',
A: '#forge:storage_blocks/unobtainium',
R: 'angelring:diamond_ring',
D: '#forge:nether_stars',
G: '#forge:storage_blocks/unobtainium'
})
})

View File

@@ -0,0 +1,3 @@
ServerEvents.recipes(event => {
event.remove({ id: 'ars_nouveau:glyph_animate_block'})
})

View File

@@ -0,0 +1,10 @@
ServerEvents.recipes(event => {
event.remove({ id: 'buildinggadgets:gadget_exchanging' })
event.shaped('buildinggadgets:gadget_exchanging', ['IRI', 'DLD', 'IAI'], {
I: '#forge:ingots/iron',
R: '#forge:dusts/redstone',
L: '#forge:gems/lapis',
D: '#forge:gems/diamond',
A: '#forge:nuggets/allthemodium'
}).id('kubejs:buildinggadgets/gadget_exchanging')
})

View File

@@ -0,0 +1,45 @@
const ItemRegistry = Java.loadClass('com.smashingmods.chemlib.registry.ItemRegistry')
// List Gen
/*
/chemlibhelper
OP permission required
only should need to be run on mod changes,
generates a new chemlibCompat.json file
helps add chemlib tooltips to items unified away from chemlib
*/
ServerEvents.commandRegistry(event => {
const { commands: Commands, arguments: Arguments, builtinSuggestions: Suggestions } = event;
event.register(
Commands.literal("chemlibhelper")
.requires(source => source.getServer().isSingleplayer() || source.hasPermission(2))
.executes((ctx) => Chemlib(ctx.source))
)
})
function Chemlib(source) {
let replaced = {}
// dust, nugget, ingot, plate, storage_block
let tags = global.auTags.filter(function (val) {
return /forge:(dust|nugget|ingot|plate|storage_block)s/.test(val)
})
tags.forEach(tagString => {
let material = tagString.replace(/forge:(dust|nugget|ingot|plate|storage_block)s\//, '')
let oElement = ItemRegistry.getElementByName(material)
if (oElement.isPresent()) {
let element = oElement.get()
let tooltip = []
tooltip.push(Text.of(`${element.getAbbreviation()} (${element.getAtomicNumber()})`).aqua())
let group = element.getGroupName()
if (group != "") {
tooltip.push(Text.of(group).gray())
}
let item = AlmostUnified.getPreferredItemForTag(tagString)
if (!item.isEmpty() && item.idLocation.namespace != 'chemlib') {
replaced[item.id] = tooltip
}
}
})
JsonIO.write('kubejs/client_scripts/chemlibCompat.json', replaced)
return 1
}

View File

@@ -0,0 +1,16 @@
ServerEvents.recipes(event => {
event.remove({ id: 'advancedperipherals:chunk_controller' })
event.remove({ id: 'computercraft:turtle_normal' })
event.remove({ id: 'computercraft:turtle_advanced' })
event.remove({ id: 'computercraft:turtle_advanced_upgrade' })
event.shaped('computercraft:turtle_advanced', ['III', 'ICI', 'IAI'], {
I: '#forge:ingots/gold',
C: 'computercraft:computer_advanced',
A: '#forge:ingots/allthemodium'
}).id('kubejs:computercraft/turtle_advanced')
event.shaped('computercraft:turtle_normal', ['III', 'ICI', 'IAI'], {
I: '#forge:ingots/iron',
C: 'computercraft:computer_normal',
A: '#forge:ingots/allthemodium'
}).id('kubejs:computercraft/turtle_normal')
})

View File

@@ -0,0 +1,19 @@
//missing crushed platinum handling
ServerEvents.recipes(event => {
event.smelting('alltheores:platinum_ingot', 'create:crushed_platinum_ore').xp(0.1).id('kubejs:create/smelting/platinum_ingot_from_crushed')
event.blasting('alltheores:platinum_ingot', 'create:crushed_platinum_ore').xp(0.1).id('kubejs:create/blasting/platinum_ingot_from_crushed')
event.custom({
type: 'create:splashing',
ingredients: [
{
'item': 'create:crushed_platinum_ore'
}
],
results: [
{
'count': 9,
'item': 'alltheores:platinum_nugget'
}
]
}).id('kubejs:create/splashing/crushed_platinum_ore')
})

View File

@@ -0,0 +1,45 @@
let EccentricTome = Item.of('eccentrictome:tome',
{
"eccentrictome:mods": {
advancedperipherals: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "advancedperipherals:manual" } } },
adastra:{ 0: { Count:1, id: "ad_astra:astrodux"} },
alchemistry: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "alchemistry:alchemistry_book" } } },
allthemodium: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "allthemodium:allthemodium" } } },
apotheosis: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "apotheosis:apoth_chronicle" } } },
ars_nouveau: { 0: { Count: 1, id: "ars_nouveau:worn_notebook" } },
botania: { 0: { Count: 1, id: "botania:lexicon" } },
byg: { 0: { Count: 1, id: "byg:biomepedia" } },
croptopia: { 0: { Count: 1, id: "croptopia:guide" } },
deeperdarker: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "deeperdarker:wanderers_notebook" } } },
elementalcraft: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "elementalcraft:element_book" } } },
engineersdecor: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "engineersdecor:engineersdecor_manual" } } },
ftbic: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "ftbic:ftbic_guide" } } },
ftbquests: { 0: { Count: 1, id: "ftbquests:book" } },
hexcasting: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "hexcasting:thehexbook" } } },
immersiveengineering: { 0: { Count: 1, id: "immersiveengineering:manual" } },
industrialforegoing: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "industrialforegoing:industrial_foregoing" } } },
integrateddynamics: { 0: { Count: 1, id: "integrateddynamics:on_the_dynamics_of_integration" } },
laserio: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "laserio:laseriobook" } } },
littlelogistics: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "littlelogistics:guide" } } },
modonomicon: { 0: { Count: 1, id: "modonomicon:modonomicon", tag: { "modonomicon:book_id": "theurgy:the_hermetica" } } },
modularrouters: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "modularrouters:book" } } },
mysticalagriculture: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "mysticalagriculture:guide" } } },
naturesaura: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "naturesaura:book" } } },
occultism: { 0: { Count: 1, id: "occultism:dictionary_of_spirits", tag: { "modonomicon:book_id": "occultism:dictionary_of_spirits" } } },
pneumaticcraft: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "pneumaticcraft:book" } } },
powah: { 0: { Count: 1, id: "powah:book" } },
productivebees: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "productivebees:guide" } } },
rebornstorage: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "rebornstorage:rs_book" } } },
rftoolsbase: { 0: { Count: 1, id: "rftoolsbase:manual" } },
sebastrnlib: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "sebastrnlib:sebastrn_mods_guide_book" } } },
securitycraft: { 0: { Count: 1, id: "securitycraft:sc_manual" } },
solcarrot: { 0: { Count: 1, id: "solcarrot:food_book" } },
thermal: { 0: { Count: 1, id: "patchouli:guide_book", tag: { "patchouli:book": "thermal:guidebook" } } }
},
"eccentrictome:version": 1
}
)
ServerEvents.recipes(event => {
event.shapeless(EccentricTome, ['eccentrictome:tome', 'minecraft:stick']).id('kubejs:full_tome')
})

View File

@@ -0,0 +1,14 @@
ServerEvents.recipes(event => {
event.remove({ id: 'entangled:block' })
event.remove({ id: 'entangled:item' })
event.shaped('entangled:block', ['UEU', 'ECE', 'UEU'], {
U: '#forge:ingots/unobtainium',
E: '#forge:ender_pearls',
C: 'minecraft:ender_chest'
})
event.shaped('entangled:item', [' EC', ' UE', 'U '], {
U: '#forge:ingots/unobtainium',
E: '#forge:ender_pearls',
C: 'minecraft:ender_chest'
})
})

View File

@@ -0,0 +1,86 @@
ServerEvents.recipes(e=> {
e.custom({
type: 'mekanism:crushing',
input: {
ingredient: Ingredient.of('evilcraft:dark_gem').toJson()
},
output: Ingredient.of('evilcraft:dark_gem_crushed').toJson()
}).id('kubejs:mekanism/evilcraft_dark_gem_crushed')
e.custom({
"type": "immersiveengineering:crusher",
"secondaries": [],
"result": {
"item": "evilcraft:dark_gem_crushed",
"count": 1
},
"input": {
"item": "evilcraft:dark_gem"
},
"energy": 3200
}).id('kubejs:immersiveengineering/evilcraft_dark_gem_crushed')
e.custom({
"type": "create:crushing",
"ingredients": [
{
"item": "evilcraft:dark_gem"
}
],
"results": [
{
"item": "evilcraft:dark_gem_crushed",
"count": 1
}
],
"processingTime": 100
}).id('kubejs:create/evilcraft_dark_gem_crushed')
e.custom({
"type": "ftbic:macerating",
"inputItems": [
{
"ingredient": {
"item": "evilcraft:dark_gem"
},
"count": 1
}
],
"outputItems": [
{
"item": "evilcraft:dark_gem_crushed",
"count": 1
}
]
}).id('kubejs:ftbic/evilcraft_dark_gem_crushed')
//Thermal
e.custom({
"type": "thermal:pulverizer",
"ingredient": {
"value": [
{
"item": "evilcraft:dark_gem"
}
],
"count": 1
},
"result": [
{
"item": "evilcraft:dark_gem_crushed",
"count": 1
}
],
"experience": 0.1
}).id('kubejs:ftbic/evilcraft_dark_gem_crushed')
e.custom({ //crushing spirit
"type": "occultism:crushing",
"ingredient": Ingredient.of('evilcraft:dark_gem').toJson(),
"result": Item.of('evilcraft:dark_gem_crushed', 1).toJson(),
"crushing_time": 100,
"ignore_crushing_multiplier": true
}).id(`kubejs:occultcrushing/dark_gem_crushed`)
})

View File

@@ -0,0 +1,19 @@
ServerEvents.recipes(event => {
event.forEachRecipe({type:"farmersdelight:cutting"}, recipe => {
let recipeJson = recipe.json
let ingredients = recipeJson.getAsJsonArray('ingredients')
// deployer recipe can only have 2 inputs, the item and the held item
// (this shouldn't ever be true as the cutting board can only take a single item as well)
if (ingredients.size() > 1) {return;}
let item = Ingredient.of(ingredients.get(0))
let tool = Ingredient.of(recipeJson.get('tool'))
let results = recipeJson.get('result')
// deployer can only have 4 different outputs
if (results.size() > 4) {return;}
event.custom({
type: 'create:deploying',
ingredients: [item.toJson(), tool.toJson()],
results: results
}).id(`kubejs:createcompat/${recipe.getId().replace(':','/')}`)
})
})

View File

@@ -0,0 +1,70 @@
/*
farming for blockheads custom market additions
authored by EnigmaQuip
for use in ATM8
List Gen
/markethelper
OP permission required
only should need to be run on mod changes,
generates a new marketitems.json file
*/
ServerEvents.commandRegistry(event => {
const { commands: Commands, arguments: Arguments, builtinSuggestions: Suggestions } = event;
event.register(
Commands.literal("markethelper")
.requires(source => source.getServer().isSingleplayer() || source.hasPermission(2))
.executes((ctx) => Market(ctx.source))
)
})
function Market(source) {
let saplings = {}
let seeds = {}
let flowers = {}
let taggedSeeds = Ingredient.of('#forge:seeds').stacks
taggedSeeds.forEach(seed => {
let mod = seed.idLocation.namespace
if (seeds[mod] == null) {
seeds[mod] = []
}
seeds[mod].push(seed.id)
})
let taggedSaplings = Ingredient.of('#minecraft:saplings').stacks
taggedSaplings.forEach(sapling => {
let mod = sapling.idLocation.namespace
if (saplings[mod] == null) {
saplings[mod] = []
}
saplings[mod].push(sapling.id)
})
let taggedFlowers = Ingredient.of('#minecraft:flowers').stacks
taggedFlowers.forEach(flower => {
let mod = flower.idLocation.namespace
if (mod == 'botania') {
if (!flower.id.contains('mystical_flower')) {
return
}
}
if (flowers[mod] == null) {
flowers[mod] = []
}
flowers[mod].push(flower.id)
})
JsonIO.write('kubejs/server_scripts/mods/farmingforblockheads/marketitems.json', { saplings: saplings, seeds: seeds, flowers: flowers })
return 1
}
const FFBAPI = Java.loadClass('net.blay09.mods.farmingforblockheads.api.FarmingForBlockheadsAPI')
// Datapack Gen
ServerEvents.highPriorityData(event => {
event.addJson('kubejs:farmingforblockheads_compat/atm.json', {
groupOverrides: {
"Croptopia Seeds": {
enabled: false
}
}
})
})

View File

@@ -0,0 +1,421 @@
{
"saplings": {
"byg": [
"byg:maple_sapling",
"byg:skyris_sapling",
"byg:orchard_sapling",
"byg:orange_birch_sapling",
"byg:palm_sapling",
"byg:lament_sapling",
"byg:green_enchanted_sapling",
"byg:ebony_sapling",
"byg:aspen_sapling",
"byg:holly_sapling",
"byg:araucaria_sapling",
"byg:red_oak_sapling",
"byg:indigo_jacaranda_sapling",
"byg:brown_oak_sapling",
"byg:cypress_sapling",
"byg:jacaranda_sapling",
"byg:brown_birch_sapling",
"byg:pine_sapling",
"byg:yellow_spruce_sapling",
"byg:withering_oak_sapling",
"byg:orange_spruce_sapling",
"byg:red_maple_sapling",
"byg:fir_sapling",
"byg:ether_sapling",
"byg:rainbow_eucalyptus_sapling",
"byg:white_mangrove_sapling",
"byg:brown_zelkova_sapling",
"byg:zelkova_sapling",
"byg:joshua_sapling",
"byg:redwood_sapling",
"byg:nightshade_sapling",
"byg:orange_oak_sapling",
"byg:pink_cherry_sapling",
"byg:white_cherry_sapling",
"byg:red_spruce_sapling",
"byg:willow_sapling",
"byg:cika_sapling",
"byg:witch_hazel_sapling",
"byg:blue_spruce_sapling",
"byg:silver_maple_sapling",
"byg:mahogany_sapling",
"byg:palo_verde_sapling",
"byg:baobab_sapling",
"byg:red_birch_sapling",
"byg:yellow_birch_sapling",
"byg:blue_enchanted_sapling"
],
"minecraft": [
"minecraft:mangrove_propagule",
"minecraft:flowering_azalea",
"minecraft:birch_sapling",
"minecraft:azalea",
"minecraft:spruce_sapling",
"minecraft:jungle_sapling",
"minecraft:acacia_sapling",
"minecraft:dark_oak_sapling",
"minecraft:oak_sapling"
],
"croptopia": [
"croptopia:orange_sapling",
"croptopia:apricot_sapling",
"croptopia:date_sapling",
"croptopia:apple_sapling",
"croptopia:plum_sapling",
"croptopia:peach_sapling",
"croptopia:coconut_sapling",
"croptopia:persimmon_sapling",
"croptopia:cashew_sapling",
"croptopia:pear_sapling",
"croptopia:nutmeg_sapling",
"croptopia:nectarine_sapling",
"croptopia:cherry_sapling",
"croptopia:avocado_sapling",
"croptopia:almond_sapling",
"croptopia:lime_sapling",
"croptopia:dragonfruit_sapling",
"croptopia:cinnamon_sapling",
"croptopia:kumquat_sapling",
"croptopia:fig_sapling",
"croptopia:lemon_sapling",
"croptopia:pecan_sapling",
"croptopia:starfruit_sapling",
"croptopia:walnut_sapling",
"croptopia:mango_sapling",
"croptopia:banana_sapling",
"croptopia:grapefruit_sapling"
],
"silentgear": [
"silentgear:netherwood_sapling"
],
"blue_skies": [
"blue_skies:starlit_sapling",
"blue_skies:lunar_sapling",
"blue_skies:maple_sapling",
"blue_skies:crescent_fruit_sapling",
"blue_skies:dusk_sapling",
"blue_skies:frostbright_sapling",
"blue_skies:cherry_sapling",
"blue_skies:bluebright_sapling"
],
"ars_nouveau": [
"ars_nouveau:blue_archwood_sapling",
"ars_nouveau:green_archwood_sapling",
"ars_nouveau:purple_archwood_sapling",
"ars_nouveau:red_archwood_sapling"
],
"allthemodium": [
"allthemodium:demonic_sapling",
"allthemodium:ancient_sapling",
"allthemodium:soul_sapling"
],
"quark": [
"quark:blue_blossom_sapling",
"quark:orange_blossom_sapling",
"quark:red_blossom_sapling",
"quark:lavender_blossom_sapling",
"quark:pink_blossom_sapling",
"quark:yellow_blossom_sapling",
"quark:ancient_sapling"
],
"evilcraft": [
"evilcraft:undead_sapling"
],
"hexerei": [
"hexerei:willow_sapling",
"hexerei:mahogany_sapling"
],
"twilightforest": [
"twilightforest:transformation_sapling",
"twilightforest:twilight_oak_sapling",
"twilightforest:time_sapling",
"twilightforest:darkwood_sapling",
"twilightforest:sorting_sapling",
"twilightforest:canopy_sapling",
"twilightforest:rainbow_oak_sapling",
"twilightforest:mining_sapling",
"twilightforest:hollow_oak_sapling",
"twilightforest:mangrove_sapling"
],
"occultism": [
"occultism:otherworld_sapling_natural",
"occultism:otherworld_sapling"
],
"integrateddynamics": [
"integrateddynamics:menril_sapling"
],
"ars_elemental": [
"ars_elemental:yellow_archwood_sapling"
],
"myrtrees": [
"myrtrees:rubberwood_sapling"
]
},
"seeds": {
"croptopia": [
"croptopia:artichoke_seed",
"croptopia:cauliflower_seed",
"croptopia:peanut_seed",
"croptopia:greenbean_seed",
"croptopia:pepper_seed",
"croptopia:cranberry_seed",
"croptopia:broccoli_seed",
"croptopia:elderberry_seed",
"croptopia:hops_seed",
"croptopia:turmeric_seed",
"croptopia:corn_seed",
"croptopia:onion_seed",
"croptopia:oat_seed",
"croptopia:eggplant_seed",
"croptopia:zucchini_seed",
"croptopia:blackberry_seed",
"croptopia:blueberry_seed",
"croptopia:sweetpotato_seed",
"croptopia:coffee_seed",
"croptopia:strawberry_seed",
"croptopia:saguaro_seed",
"croptopia:cantaloupe_seed",
"croptopia:kiwi_seed",
"croptopia:tea_seed",
"croptopia:cucumber_seed",
"croptopia:ginger_seed",
"croptopia:vanilla_seeds",
"croptopia:bellpepper_seed",
"croptopia:celery_seed",
"croptopia:barley_seed",
"croptopia:asparagus_seed",
"croptopia:chile_pepper_seed",
"croptopia:mustard_seed",
"croptopia:soybean_seed",
"croptopia:pineapple_seed",
"croptopia:yam_seed",
"croptopia:olive_seed",
"croptopia:spinach_seed",
"croptopia:blackbean_seed",
"croptopia:rice_seed",
"croptopia:currant_seed",
"croptopia:greenonion_seed",
"croptopia:rutabaga_seed",
"croptopia:tomato_seed",
"croptopia:raspberry_seed",
"croptopia:garlic_seed",
"croptopia:grape_seed",
"croptopia:tomatillo_seed",
"croptopia:basil_seed",
"croptopia:honeydew_seed",
"croptopia:rhubarb_seed",
"croptopia:cabbage_seed",
"croptopia:squash_seed",
"croptopia:radish_seed",
"croptopia:lettuce_seed",
"croptopia:kale_seed",
"croptopia:turnip_seed",
"croptopia:leek_seed"
],
"thermal": [
"thermal:eggplant_seeds",
"thermal:sadiroot_seeds",
"thermal:bell_pepper_seeds",
"thermal:amaranth_seeds",
"thermal:flax_seeds",
"thermal:strawberry_seeds",
"thermal:spinach_seeds",
"thermal:tea_seeds",
"thermal:frost_melon_seeds",
"thermal:radish_seeds",
"thermal:barley_seeds",
"thermal:corn_seeds",
"thermal:green_bean_seeds",
"thermal:rice_seeds",
"thermal:onion_seeds",
"thermal:peanut_seeds",
"thermal:tomato_seeds",
"thermal:hops_seeds",
"thermal:coffee_seeds"
],
"immersiveengineering": [
"immersiveengineering:seed"
],
"minecraft": [
"minecraft:beetroot_seeds",
"minecraft:pumpkin_seeds",
"minecraft:melon_seeds",
"minecraft:wheat_seeds"
],
"ars_nouveau": [
"ars_nouveau:magebloom_crop"
],
"delightful": [
"delightful:salmonberry_pips"
],
"supplementaries": [
"supplementaries:flax_seeds"
],
"silentgear": [
"silentgear:fluffy_seeds",
"silentgear:flax_seeds"
],
"farmersdelight": [
"farmersdelight:tomato_seeds",
"farmersdelight:cabbage_seeds",
"farmersdelight:rice"
],
"blue_skies": [
"blue_skies:pine_fruit_seeds",
"blue_skies:winter_leaf_seeds",
"blue_skies:fiery_bean_seeds",
"blue_skies:scalefruit_seeds"
],
"occultism": [
"occultism:datura_seeds"
],
"hexerei": [
"hexerei:sage_seed"
]
},
"flowers": {
"minecraft": [
"minecraft:lily_of_the_valley",
"minecraft:red_tulip",
"minecraft:cornflower",
"minecraft:pink_tulip",
"minecraft:white_tulip",
"minecraft:flowering_azalea_leaves",
"minecraft:sunflower",
"minecraft:dandelion",
"minecraft:oxeye_daisy",
"minecraft:mangrove_propagule",
"minecraft:flowering_azalea",
"minecraft:allium",
"minecraft:peony",
"minecraft:poppy",
"minecraft:orange_tulip",
"minecraft:wither_rose",
"minecraft:blue_orchid",
"minecraft:azure_bluet",
"minecraft:rose_bush",
"minecraft:lilac"
],
"botania": [
"botania:lime_mystical_flower",
"botania:yellow_mystical_flower",
"botania:black_mystical_flower",
"botania:white_mystical_flower",
"botania:green_mystical_flower",
"botania:brown_mystical_flower",
"botania:light_gray_mystical_flower",
"botania:pink_mystical_flower",
"botania:red_mystical_flower",
"botania:purple_mystical_flower",
"botania:magenta_mystical_flower",
"botania:orange_mystical_flower",
"botania:blue_mystical_flower",
"botania:gray_mystical_flower",
"botania:cyan_mystical_flower",
"botania:light_blue_mystical_flower"
],
"byg": [
"byg:amaranth",
"byg:violet_leather_flower",
"byg:allium_flower_bush",
"byg:green_tulip",
"byg:orange_daisy",
"byg:japanese_orchid",
"byg:silver_vase_flower",
"byg:flowering_palo_verde_leaves",
"byg:torch_ginger",
"byg:thereal_bellflower",
"byg:flowering_nightshade_leaves",
"byg:cyan_rose",
"byg:golden_spined_cactus",
"byg:protea_flower",
"byg:guzmania",
"byg:hydrangea_bush",
"byg:black_rose",
"byg:daffodil",
"byg:peach_leather_flower",
"byg:purple_tulip",
"byg:cyan_amaranth",
"byg:prairie_grass",
"byg:blue_rose_bush",
"byg:angelica",
"byg:orange_amaranth",
"byg:pink_anemone",
"byg:yellow_daffodil",
"byg:fairy_slipper",
"byg:yellow_tulip",
"byg:winter_rose",
"byg:lollipop_flower",
"byg:magenta_amaranth",
"byg:purple_sage",
"byg:winter_cyclamen",
"byg:osiria_rose",
"byg:white_anemone",
"byg:delphinium",
"byg:pink_daffodil",
"byg:cyan_tulip",
"byg:lazarus_bellflower",
"byg:magenta_tulip",
"byg:flowering_jacaranda_bush",
"byg:white_sage",
"byg:tall_pink_allium",
"byg:california_poppy",
"byg:iris",
"byg:incan_lily",
"byg:blue_sage",
"byg:flowering_jacaranda_leaves",
"byg:bistort",
"byg:flowering_indigo_jacaranda_leaves",
"byg:alpine_bellflower",
"byg:hydrangea_hedge",
"byg:pink_allium",
"byg:tall_allium",
"byg:flowering_indigo_jacaranda_bush",
"byg:kovan_flower",
"byg:purple_amaranth",
"byg:rose",
"byg:foxglove",
"byg:begonia",
"byg:pink_allium_flower_bush",
"byg:snowdrops",
"byg:richea",
"byg:firecracker_flower_bush",
"byg:crocus",
"byg:winter_scilla",
"byg:flowering_orchard_leaves"
],
"blue_skies": [
"blue_skies:chillweed",
"blue_skies:briskbloom",
"blue_skies:polar_posy",
"blue_skies:moonlit_bloom",
"blue_skies:crystal_flower",
"blue_skies:muckweed",
"blue_skies:blush_blossom",
"blue_skies:lucentroot",
"blue_skies:snowbloom",
"blue_skies:midday_bayhop",
"blue_skies:frose",
"blue_skies:flare_floret",
"blue_skies:blaze_bud",
"blue_skies:nightcress",
"blue_skies:camellia",
"blue_skies:brittlebush"
],
"farmersdelight": [
"farmersdelight:wild_tomatoes",
"farmersdelight:wild_potatoes",
"farmersdelight:wild_rice",
"farmersdelight:wild_onions",
"farmersdelight:wild_beetroots",
"farmersdelight:wild_cabbages",
"farmersdelight:wild_carrots"
],
"supplementaries": [
"supplementaries:wild_flax"
]
}
}

View File

@@ -0,0 +1,3 @@
ServerEvents.recipes(event => {
event.shapeless(Item.of('patchouli:guide_book', '{"patchouli:book":"ftbic:ftbic_guide"}'), ['minecraft:book', 'ftbic:industrial_grade_metal'])
})

View File

@@ -0,0 +1,21 @@
/*
temporary dupe fix for Hexerei drying racks
until fixed upstream (current v0.3.0)
authored by EnigmaQuip
for ATM8
*/
BlockEvents.broken(event => {
const { block } = event
if (/hexerei:.+?_drying_rack/.test(block.id)) {
if (block.entityId == 'hexerei:drying_rack_entity') {
let te = block.entity
// remove from storage before block broken
for (let i = 0; i < 3; i++) {
let dropItem = te.removeItem(i, te.getMaxStackSize())
block.popItem(dropItem)
}
}
}
})

View File

@@ -0,0 +1,50 @@
ServerEvents.recipes(e=> {
e.remove({id: 'hostilenetworks:living_matter/extraterrestrial/nether_star'})
e.remove({id: 'hostilenetworks:living_matter/hellish/blaze_rod'})
e.shaped('4x reliquary:zombie_heart', ['AAA','APA','AAA'],{
A: 'hostilenetworks:nether_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:zombie"}}').strongNBT()
})
e.shaped('2x reliquary:squid_beak', ['A A',' P ','A A'],{
A: 'hostilenetworks:overworld_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:squid"}}').strongNBT()
})
e.shaped('4x reliquary:rib_bone', ['A A',' P ','A A'],{
A: 'hostilenetworks:overworld_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:skeleton"}}').strongNBT()
})
e.shaped('2x reliquary:catalyzing_gland', ['A A',' P ','A A'],{
A: 'hostilenetworks:overworld_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:creeper"}}').strongNBT()
})
e.shaped('4x reliquary:chelicerae', ['A A',' P ','A A'],{
A: 'hostilenetworks:overworld_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:spider"}}').strongNBT()
})
e.shaped('2x reliquary:slime_pearl', ['A A',' P ','A A'],{
A: 'hostilenetworks:overworld_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:slime"}}').strongNBT()
})
e.shaped('4x reliquary:bat_wing', ['A A',' P ','A A'],{
A: 'hostilenetworks:overworld_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:witch"}}').strongNBT()
})
e.shaped('6x reliquary:withered_rib', ['A A','APA','A A'],{
A: 'hostilenetworks:nether_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:wither_skeleton"}}').strongNBT()
})
e.shaped('2x reliquary:molten_core', ['A A','APA','A A'],{
A: 'hostilenetworks:nether_prediction',
P: [Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:blaze"}}').strongNBT(), Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:magma_cube"}}').strongNBT()]
})
e.shaped('reliquary:nebulous_heart', ['AAA','APA','AAA'],{
A: 'hostilenetworks:end_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:enderman"}}').strongNBT()
})
e.shaped('minecraft:dragon_head', ['AAA','BPB','AAA'],{
A: 'hostilenetworks:end_prediction',
P: Item.of('hostilenetworks:prediction', '{data_model:{id:"hostilenetworks:ender_dragon"}}').strongNBT(),
B: 'minecraft:dragon_breath'
})
})

View File

@@ -0,0 +1,12 @@
ServerEvents.recipes(event => {
event.custom({
"type": "industrialforegoing:fluid_extractor",
"input": {
"item": "integrateddynamics:menril_log"
},
"result": "integrateddynamics:menril_log_stripped",
"breakChance": 0.010,
"output": "{FluidName:\"integrateddynamics:menril_resin\",Amount:2}",
"defaultRecipe": false
}).id('kubejs:industrialforegoing/fluid_extractor/menril')
})

View File

@@ -0,0 +1,11 @@
ServerEvents.recipes(e=> {
e.remove({id: 'industrialforegoing:ore_laser_base'})
e.shaped('industrialforegoing:ore_laser_base', ['PTP','OFO','GRG'],{
P: 'industrialforegoing:plastic',
T: 'allthemodium:allthemodium_pickaxe',
O: '#forge:ores/iron',
F: 'industrialforegoing:machine_frame_advanced',
G: '#forge:gears/vibranium',
R: 'minecraft:redstone'
}).id('kubejs:industrialforegoings/ore_laser_drill')
})

View File

@@ -0,0 +1,22 @@
ServerEvents.recipes(e => {
e.remove({ id: 'mekanism:atomic_disassembler' })
e.shaped('mekanism:atomic_disassembler', ['ITI', 'IAI', ' P '], {
I: 'mekanism:alloy_infused',
T: 'mekanism:energy_tablet',
A: 'mekanism:alloy_atomic',
P: 'allthemodium:allthemodium_pickaxe'
})
e.remove({ id: 'mekanism:meka_tool' })
e.shaped('mekanism:meka_tool', ['UCU', 'TDT', 'PBP'], {
U: 'mekanism:ultimate_control_circuit',
C: 'mekanism:configurator',
T: '#forge:plates/unobtainium',
D: 'mekanism:atomic_disassembler',
B: 'mekanism:basic_induction_cell',
P: 'mekanism:pellet_polonium'
})
e.remove({ id: 'mekanism:upgrade/anchor' })
// remove combiner recipes for ores
e.remove({ type: 'mekanism:combining', id: /ore/ })
})

View File

@@ -0,0 +1,305 @@
/*
Mekanism recipes for processing stack
Authored by EnigmaQuip
DO NOT EDIT BELOW
only the startup script should need editing
*/
ServerEvents.recipes(event => {
global.mekStackAdditions.forEach(entry => {
let material = entry.material
//let dust = Ingredient.of(`#forge:dusts/${material}`).getFirst()
// replace this eventually
let dust = Item.empty
if (entry.makeDust) {
dust = Item.of(`kubejs:dust_${material}`)
} else {
dust = Item.of(entry.dust)
}
let hasDust = !dust.isEmpty()
if (!Ingredient.of(`#forge:storage_blocks/raw_${material}`).isEmpty()) {
event.custom({
type: 'mekanism:dissolution',
itemInput: {
ingredient: {
tag: `forge:storage_blocks/raw_${material}`
}
},
output: {
slurry: `kubejs:dirty_${material}`,
amount: 6000,
chemicalType: 'slurry'
},
gasInput: {
amount: 2,
gas: 'mekanism:sulfuric_acid'
}
}).id(`kubejs:processing/${material}/slurry/dirty/from_raw_block`)
event.custom({
type: 'mekanism:injecting',
itemInput: {
ingredient: {
tag: `forge:storage_blocks/raw_${material}`
}
},
chemicalInput: {
amount: 2,
gas: 'mekanism:hydrogen_chloride'
},
output: {
item: `kubejs:shard_${material}`,
count: 24
}
}).id(`kubejs:processing/${material}/shard/from_raw_block`)
event.custom({
type: 'mekanism:purifying',
itemInput: {
ingredient: {
tag: `forge:storage_blocks/raw_${material}`
}
},
chemicalInput: {
amount: 2,
gas: 'mekanism:oxygen'
},
output: {
item: `kubejs:clump_${material}`,
count: 18
}
}).id(`kubejs:processing/${material}/clump/from_raw_block`)
if (hasDust) {
event.custom({
type: 'mekanism:enriching',
input: {
ingredient: {
tag: `forge:storage_blocks/raw_${material}`
}
},
output: {
item: dust.id,
count: 12
}
}).id(`kubejs:processing/${material}/dust/from_raw_block`)
}
}
if (!Ingredient.of(`#forge:ores/${material}`).isEmpty()) {
event.custom({
type: 'mekanism:dissolution',
itemInput: {
ingredient: {
tag: `forge:ores/${material}`
}
},
output: {
slurry: `kubejs:dirty_${material}`,
amount: 1000,
chemicalType: 'slurry'
},
gasInput: {
amount: 1,
gas: 'mekanism:sulfuric_acid'
}
}).id(`kubejs:processing/${material}/slurry/dirty/from_ore`)
event.custom({
type: 'mekanism:injecting',
itemInput: {
ingredient: {
tag: `forge:ores/${material}`
}
},
chemicalInput: {
amount: 1,
gas: 'mekanism:hydrogen_chloride'
},
output: {
item: `kubejs:shard_${material}`,
count: 4
}
}).id(`kubejs:processing/${material}/shard/from_ore`)
event.custom({
type: 'mekanism:purifying',
itemInput: {
ingredient: {
tag: `forge:ores/${material}`
}
},
chemicalInput: {
amount: 1,
gas: 'mekanism:oxygen'
},
output: {
item: `kubejs:clump_${material}`,
count: 3
}
}).id(`kubejs:processing/${material}/clump/from_ore`)
if (hasDust) {
event.custom({
type: 'mekanism:enriching',
input: {
ingredient: {
tag: `forge:ores/${material}`
}
},
output: {
item: dust.id,
count: 2
}
}).id(`kubejs:processing/${material}/dust/from_ore`)
}
}
if (!Ingredient.of(`#forge:raw_materials/${material}`).isEmpty()) {
event.custom({
type: 'mekanism:dissolution',
itemInput: {
amount: 3,
ingredient: {
tag: `forge:raw_materials/${material}`
}
},
output: {
slurry: `kubejs:dirty_${material}`,
amount: 2000,
chemicalType: 'slurry'
},
gasInput: {
amount: 1,
gas: 'mekanism:sulfuric_acid'
}
}).id(`kubejs:processing/${material}/slurry/dirty/from_raw_ore`)
event.custom({
type: 'mekanism:injecting',
itemInput: {
amount: 3,
ingredient: {
tag: `forge:raw_materials/${material}`
}
},
chemicalInput: {
amount: 1,
gas: 'mekanism:hydrogen_chloride'
},
output: {
item: `kubejs:shard_${material}`,
count: 8
}
}).id(`kubejs:processing/${material}/shard/from_raw_ore`)
event.custom({
type: 'mekanism:purifying',
itemInput: {
ingredient: {
tag: `forge:raw_materials/${material}`
}
},
chemicalInput: {
amount: 1,
gas: 'mekanism:oxygen'
},
output: {
item: `kubejs:clump_${material}`,
count: 2
}
}).id(`kubejs:processing/${material}/clump/from_raw_ore`)
if (hasDust) {
event.custom({
type: 'mekanism:enriching',
input: {
amount: 3,
ingredient: {
tag: `forge:raw_materials/${material}`
}
},
output: {
item: dust.id,
count: 4
}
}).id(`kubejs:processing/${material}/dust/from_raw_ore`)
}
}
event.custom({
type: 'mekanism:washing',
fluidInput: {
amount: 5,
tag: 'minecraft:water'
},
slurryInput: {
amount: 1,
slurry: `kubejs:dirty_${material}`
},
output: {
slurry: `kubejs:clean_${material}`,
amount: 1
}
}).id(`kubejs:processing/${material}/slurry/clean`)
event.custom({
type: 'mekanism:crystallizing',
chemicalType: 'slurry',
input: {
amount: 200,
slurry: `kubejs:clean_${material}`
},
output: {
item: `kubejs:crystal_${material}`
}
}).id(`kubejs:processing/${material}/crystal/from_slurry`)
event.custom({
type: 'mekanism:injecting',
itemInput: {
ingredient: {
tag: `mekanism:crystals/${material}`
}
},
chemicalInput: {
amount: 1,
gas: 'mekanism:hydrogen_chloride'
},
output: {
item: `kubejs:shard_${material}`
}
}).id(`kubejs:processing/${material}/shard/from_crystal`)
event.custom({
type: 'mekanism:purifying',
itemInput: {
ingredient: {
tag: `mekanism:shards/${material}`
}
},
chemicalInput: {
amount: 1,
gas: 'mekanism:oxygen'
},
output: {
item: `kubejs:clump_${material}`
}
}).id(`kubejs:processing/${material}/clump/from_shard`)
event.custom({
type: 'mekanism:crushing',
input: {
ingredient: {
tag: `mekanism:clumps/${material}`
}
},
output: {
item: `kubejs:dirty_dust_${material}`
}
}).id(`kubejs:processing/${material}/dirty_dust/from_clump`)
if (hasDust) {
event.custom({
type: 'mekanism:enriching',
input: {
ingredient: {
tag: `mekanism:dirty_dusts/${material}`
}
},
output: {
item: dust.id
}
}).id(`kubejs:processing/${material}/dust/from_dirty_dust`)
}
})
})

View File

@@ -0,0 +1,10 @@
ServerEvents.recipes(event => {
event.remove({ id: 'mininggadgets:upgrade_empty' })
event.shaped('mininggadgets:upgrade_empty', ['RAL', 'DGD', 'LAR'], {
'L': '#forge:storage_blocks/lapis',
'R': '#forge:storage_blocks/redstone',
'D': '#forge:gems/diamond',
'A': '#forge:nuggets/allthemodium',
'G': '#forge:glass_panes'
})
})

View File

@@ -0,0 +1,46 @@
ServerEvents.recipes(event => {
// essence crafting for custom seeds
function essenceCircle(result, essenceType) {
event.shaped(result, ['aaa', 'a a', 'aaa'], { a: `mysticalagriculture:${essenceType}_essence` }).id(`kubejs:mysticalagriculture/${essenceType}_essence_crafting`)
}
essenceCircle('allthemodium:allthemodium_nugget', 'allthemodium')
essenceCircle('allthemodium:vibranium_nugget', 'vibranium')
essenceCircle('allthemodium:unobtainium_nugget', 'unobtainium')
essenceCircle('6x silentgear:azure_silver_ingot', 'azure_silver')
essenceCircle('6x silentgear:crimson_iron_ingot', 'crimson_iron')
//magical soil crafting
event.custom({
type: 'mysticalagriculture:infusion',
input: { item: 'mysticalagradditions:insanium_farmland' },
ingredients: [
{ item: 'mysticalagradditions:dragon_scale' },
{ item: 'mysticalagradditions:insanium_block' },
{ item: 'mysticalagradditions:dragon_scale' },
{ item: 'mysticalagradditions:insanium_block' },
{ item: 'mysticalagradditions:dragon_scale' },
{ item: 'mysticalagradditions:insanium_block' },
{ item: 'mysticalagradditions:dragon_scale' },
{ item: 'mysticalagradditions:insanium_block' }
],
result: { item: 'kubejs:magical_soil' }
})
//MA EXP droplets to fluid EXP
event.custom({
type: "thermal:centrifuge",
ingredient: {
item: "mysticalagriculture:experience_droplet"
},
result: [
{
fluid: "cofh_core:experience",
amount: 250
}
],
energy: 400
})
//remove gaia crux
event.remove({ id: "mysticalagradditions:gaia_spirit_crux" })
})

View File

@@ -0,0 +1,172 @@
const CropRegistry = Java.loadClass('com.blakebr0.mysticalagriculture.registry.CropRegistry')
// sets the chance for a seed to drop
const SecondarySeed = 0.01
const TierSecondaryCutoff = 5
ServerEvents.tags('item', event => {
let CropRegistryInstance = CropRegistry.getInstance()
let cropTiers = CropRegistryInstance.getTiers()
let tiers = Array.apply(null, Array(cropTiers.length))
for (const CropTier of cropTiers) {
tiers[CropTier.getValue() - 1] = CropTier.getFarmland()
if (CropTier.getValue() >= TierSecondaryCutoff) {
CropTier.setSecondarySeedDrop(false)
CropTier.setBaseSecondaryChance(0)
} else {
CropTier.setBaseSecondaryChance(SecondarySeed)
}
}
for (let i = 0; i < tiers.length; i++) {
let farmA = tiers[i]
let farmB = null
if (i + 1 < tiers.length) {
if (!farmA.equals(tiers[i + 1])) {
farmB = tiers[i + 1]
}
}
let tierA = farmA.getIdLocation().getPath().replace('_farmland', '')
event.add(`kubejs:farmland/${tierA}`, farmA.getId())
if (farmB) {
let tierB = farmB.getIdLocation().getPath().replace('_farmland', '')
event.add(`kubejs:farmland/${tierA}`, `#kubejs:farmland/${tierB}`)
} else {
break
}
}
})
ServerEvents.recipes(event => {
let JsonExport = { enabled: [], disabled: [] }
let CropRegistryInstance = CropRegistry.getInstance()
let CropList = CropRegistryInstance.getCrops()
for (const Crop of CropList) {
let CropName = Crop.getName()
if (Crop.isEnabled()) {
JsonExport.enabled.push(CropName)
} else {
JsonExport.disabled.push(CropName)
event.remove({ id: `mysticalagriculture:seed/infusion/${CropName}` })
}
}
JsonIO.write('kubejs/server_scripts/mods/mysticalagriculture/cropInfo.json', JsonExport)
// Botany Pots
if (Platform.isLoaded('botanypots')) {
let seenSeeds = []
let crux = []
// Fix drops, fix cruxes, check for missing
event.forEachRecipe({ type: 'botanypots:crop' }, recipe => {
let seed = Ingredient.of(recipe.json.get('seed')).getFirst()
if (seed.getMod().contains('mystical')) {
let seedName = seed.getIdLocation().getPath().replace('_seeds', '')
let newDrops = []
let Crop = CropRegistryInstance.getCropByName(seedName)
let cruxBlock = Crop.getCruxBlock()
if (cruxBlock) {
recipe.json.add('categories', [`${cruxBlock.getIdLocation().getPath()}`])
crux.push(cruxBlock)
}
for (const drop of recipe.json.get('drops')) {
if (Ingredient.of(drop.get('output')).test(seed)) {
if (SecondarySeed > 0 && Crop.getTier().hasSecondarySeedDrop()) {
drop.add('chance', SecondarySeed)
newDrops.push(drop)
}
} else {
newDrops.push(drop)
}
}
recipe.json.add('drops', newDrops)
seenSeeds.push(seedName)
}
})
// add missing recipes
for (const seed of JsonExport.enabled) {
if (!seenSeeds.includes(seed)) {
let Crop = CropRegistryInstance.getCropByName(seed)
let drops = [{ chance: 1.0, output: Ingredient.of(Crop.getEssenceItem()).toJson() }]
if (SecondarySeed > 0 && Crop.getTier().hasSecondarySeedDrop()) {
drops.push({ chance: SecondarySeed, output: Ingredient.of(Crop.getSeedsItem()).toJson() })
}
drops.push({ chance: 0.01, output: Ingredient.of("mysticalagriculture:fertilized_essence").toJson(), minRolls: 1, maxRolls: 1 })
let category = `${Crop.getTier().getFarmland().getIdLocation().getPath().replace('_farmland', '')}`
let cruxBlock = Crop.getCruxBlock()
if (cruxBlock) {
category = `${cruxBlock.getIdLocation().getPath()}`
crux.push(cruxBlock)
}
event.custom({
type: 'botanypots:crop',
seed: Ingredient.of(Crop.getSeedsItem()).toJson(),
categories: [category],
growthTicks: 1200 + (600 * Crop.getTier().getValue()),
display: {
type: 'botanypots:aging',
block: Crop.getCropBlock().getId()
},
drops: drops
}).id(`kubejs:botanypots/mysticalagriculture/${seed}`)
}
}
// add crux 'soils'
for (const block of crux) {
let category = `${block.getIdLocation().getPath()}`
event.custom({
type: 'botanypots:soil',
input: { item: block.getId() },
display: { block: block.getId() },
categories: [category],
growthModifier: 1.0
}).id(`kubejs:botanypots/mysticalagriculture/crux/${category}`)
}
}
// Thermal Insolator
if (Platform.isLoaded('thermal')) {
JsonExport.enabled.forEach(cropName => {
let Crop = CropRegistryInstance.getCropByName(cropName)
event.custom({
type: 'thermal:insolator',
ingredient: Ingredient.of(Crop.getSeedsItem()).toJson(),
result: [
{
item: Crop.getEssenceItem().getId(),
chance: 1 + SecondarySeed
},
{
item: Crop.getSeedsItem().getId(),
chance: Crop.getTier().hasSecondarySeedDrop() ? (1 + SecondarySeed) : 1,
locked: true
}
]
}).id(`kubejs:thermal/machines/insolator/mysticalagriculture/${cropName}`)
})
}
// Immersive Engineering Cloche
if (Platform.isLoaded('immersiveengineering')) {
JsonExport.enabled.forEach(cropName => {
let Crop = CropRegistryInstance.getCropByName(cropName)
event.custom({
type: 'immersiveengineering:cloche',
results: [
{
item: Crop.getEssenceItem().getId(),
count: 2
}
],
input: Ingredient.of(Crop.getSeedsItem()).toJson(),
soil: Ingredient.of(Crop.getCruxBlock() ?? `#kubejs:farmland/${Crop.getTier().getFarmland().getIdLocation().getPath().replace('_farmland', '')}`).toJson(),
time: 250 + (750 * Crop.getTier().getValue()),
render: {
type: 'crop',
block: Crop.getCropBlock().getId()
}
}).id(`kubejs:immersiveengineering/cloche/mysticalagriculture/${cropName}`)
})
}
})

View File

@@ -0,0 +1,7 @@
ServerEvents.recipes(event => {
// Fix Sturdy Stone conflict
event.shaped('quark:sturdy_stone', [' A ', 'ABA', ' A '], {
A: '#forge:nuggets/iron',
B: 'allthecompressed:cobblestone_block_1x'
}).id('quark:building/crafting/sturdy_stone')
})

View File

@@ -0,0 +1,16 @@
ServerEvents.recipes(event => {
event.remove({ id: 'quarryplus:solid_fuel_quarry' })
event.remove({ id: 'quarryplus:workbench' })
event.shaped('quarryplus:solid_fuel_quarry', ['FFF', 'DGD', 'AAA'], {
F: 'minecraft:furnace',
D: 'minecraft:diamond_pickaxe',
G: '#forge:storage_blocks/gold',
A: '#forge:nuggets/allthemodium'
})
event.shaped('quarryplus:workbench', ['III', 'GDG', 'AAA'], {
I: '#forge:storage_blocks/iron',
G: '#forge:storage_blocks/gold',
D: '#forge:storage_blocks/diamond',
A: '#forge:nuggets/allthemodium'
})
})

View File

@@ -0,0 +1,160 @@
ServerEvents.tags('item', event => {
event.add('refinedstorage:silicon', '#forge:silicon')
})
ServerEvents.recipes(event => {
// silicon unifying
/* hold for tag fix
event.replaceInput({}, '#refinedstorage:silicon', '#forge:silicon')
*/
// Infinite Booster
event.remove({ id: 'rsinfinitybooster:infinity_card' })
event.shaped('rsinfinitybooster:infinity_card', ['EBE', 'BUB', 'NNN'], {
U: '#forge:ingots/unobtainium',
B: 'refinedstorage:range_upgrade',
E: '#forge:plates/enderium',
N: 'minecraft:netherite_ingot'
}).id('kubejs:rsinfinitybooster/infinity_card')
// Crafters
event.remove({ id: 'extrastorage:iron_crafter' })
event.shaped('extrastorage:iron_crafter', ['B B', 'PCP', 'B B'], {
B: '#forge:storage_blocks/iron',
P: 'refinedstorage:improved_processor',
C: '#refinedstorage:crafter'
}).id('kubejs:extrastorage/iron_crafter')
event.remove({ id: 'extrastorage:gold_crafter' })
event.shaped('extrastorage:gold_crafter', ['BSB', 'PCP', 'B B'], {
S: '#forge:chests',
B: '#forge:storage_blocks/gold',
P: 'extrastorage:neural_processor',
C: 'extrastorage:iron_crafter'
}).id('kubejs:extrastorage/gold_crafter')
event.remove({ id: 'extrastorage:diamond_crafter' })
event.shaped('extrastorage:diamond_crafter', ['BSB', 'PCP', 'B B'], {
S: '#forge:chests',
B: '#forge:storage_blocks/diamond',
P: 'extrastorage:neural_processor',
C: 'extrastorage:gold_crafter'
}).id('kubejs:extrastorage/diamond_crafter')
event.remove({ id: 'extrastorage:netherite_crafter' })
event.shaped('extrastorage:netherite_crafter', ['BSB', 'PCP', 'B B'], {
S: '#forge:chests',
B: '#forge:storage_blocks/netherite',
P: 'extrastorage:neural_processor',
C: 'extrastorage:diamond_crafter'
}).id('kubejs:extrastorage/netherite_crafter')
/* Possible Future Addition
event.remove({ id: 'creativecrafter:creative_crafter' })
event.shaped('creativecrafter:creative_crafter', ['BUB', 'PCP', 'BUB'], {
B: '#forge:storage_blocks/netherite',
P: 'extradisks:withering_processor',
C: 'extrastorage:netherite_crafter',
U: '#forge:ingots/unobtainium'
}).id('kubejs:creativecrafter/creative_crafter')
*/
// Storage Parts
// removes overlapping extra storage parts
event.remove({ id: /^extrastorage:(?:part|disk|storage_block)\/.+/ })
// removes overlapping reborn storage parts
event.remove({ id: /^rebornstorage:(?:disks|parts)\/(small|medium|large|larger).+/ })
event.remove({ id: 'extradisks:part/4096k_storage_part' })
event.shaped('extradisks:4096k_storage_part', ['ana', 'fbf', 'afa'], {
a: 'refinedstorage:advanced_processor',
f: '#refinedstorage:parts/items/1024k',
b: '#forge:dusts/redstone',
n: '#forge:nuggets/allthemodium'
}).id('kubejs:extradisks/part/4096k_storage_part')
event.remove({ id: 'extradisks:part/16384k_storage_part' })
event.shaped('extradisks:16384k_storage_part', ['ana', 'fbf', 'afa'], {
a: 'refinedstorage:advanced_processor',
f: '#refinedstorage:parts/items/4096k',
b: '#forge:dusts/redstone',
n: '#forge:ingots/allthemodium'
}).id('kubejs:extradisks/part/16384k_storage_part')
event.remove({ id: 'extradisks:part/65536k_storage_part' })
event.shaped('extradisks:65536k_storage_part', ['ana', 'fbf', 'afa'], {
a: 'refinedstorage:advanced_processor',
f: '#refinedstorage:parts/items/16384k',
b: '#forge:dusts/redstone',
n: '#forge:ingots/allthemodium'
}).id('kubejs:extradisks/part/65536k_storage_part')
event.remove({ id: 'extradisks:part/262144k_storage_part' })
event.shaped('extradisks:262144k_storage_part', ['ana', 'fbf', 'afa'], {
a: 'extradisks:withering_processor',
f: '#refinedstorage:parts/items/65536k',
b: '#forge:dusts/redstone',
n: '#forge:ingots/vibranium'
}).id('kubejs:extradisks/part/262144k_storage_part')
event.remove({ id: 'extradisks:part/1048576k_storage_part' })
event.shaped('extradisks:1048576k_storage_part', ['ana', 'fbf', 'afa'], {
a: 'extradisks:withering_processor',
f: '#refinedstorage:parts/items/262144k',
b: '#forge:dusts/redstone',
n: '#forge:ingots/unobtainium'
}).id('kubejs:extradisks/part/1048576k_storage_part')
event.remove({ id: 'extradisks:part/infinite_storage_part' })
event.shaped('extradisks:infinite_storage_part', ['ana', 'fbf', 'afa'], {
a: 'extradisks:withering_processor',
f: '#refinedstorage:parts/items/1048576k',
b: '#forge:dusts/redstone',
n: '#forge:ingots/unobtainium'
}).id('kubejs:extradisks/part/infinite_storage_part')
event.remove({ id: 'extradisks:part/16384k_fluid_storage_part' })
event.shaped('extradisks:16384k_fluid_storage_part', ['ana', 'fbf', 'afa'], {
a: 'refinedstorage:advanced_processor',
f: 'refinedstorage:4096k_fluid_storage_part',
b: 'minecraft:bucket',
n: '#forge:nuggets/allthemodium'
}).id('kubejs:extradisks/part/16384k_fluid_storage_part')
event.remove({ id: 'extradisks:part/65536k_fluid_storage_part' })
event.shaped('extradisks:65536k_fluid_storage_part', ['ana', 'fbf', 'afa'], {
a: 'refinedstorage:advanced_processor',
f: '#refinedstorage:parts/fluids/16384k',
b: 'minecraft:bucket',
n: '#forge:ingots/allthemodium'
}).id('kubejs:extradisks/part/65536k_fluid_storage_part')
event.remove({ id: 'extradisks:part/262144k_fluid_storage_part' })
event.shaped('extradisks:262144k_fluid_storage_part', ['ana', 'fbf', 'afa'], {
a: 'refinedstorage:advanced_processor',
f: '#refinedstorage:parts/fluids/65536k',
b: 'minecraft:bucket',
n: '#forge:ingots/vibranium'
}).id('kubejs:extradisks/part/262144k_fluid_storage_part')
event.remove({ id: 'extradisks:part/1048576k_fluid_storage_part' })
event.shaped('extradisks:1048576k_fluid_storage_part', ['ana', 'fbf', 'afa'], {
a: 'extradisks:withering_processor',
f: '#refinedstorage:parts/fluids/262144k',
b: 'minecraft:bucket',
n: '#forge:ingots/unobtainium'
}).id('kubejs:extradisks/part/1048576k_fluid_storage_part')
event.remove({ id: 'extradisks:part/infinite_fluid_storage_part' })
event.shaped('extradisks:infinite_fluid_storage_part', ['ana', 'fbf', 'afa'], {
a: 'extradisks:withering_processor',
f: '#refinedstorage:parts/fluids/1048576k',
b: 'minecraft:bucket',
n: '#forge:ingots/unobtainium'
}).id('kubejs:extradisks/part/infinite_fluid_storage_part')
// Cable Tiers
event.remove({ id: /extrastorage:advanced_(importer|exporter)/ })
// Modify recipes to take half as many of previous tier
event.forEachRecipe({ mod: 'cabletiers' }, recipe => {
let pattern = recipe.json.get('pattern')
let center = pattern.get(1).getAsString()
pattern.set(1, center.replace(center.substring(0, 1), ' '))
recipe.json.add('pattern', pattern)
if (recipe.getId().contains('creative')) {
let key = recipe.json.get('key')
key.add(center.substring(1, 2), Ingredient.of('extradisks:withering_processor').toJson())
recipe.json.add('key', key)
}
})
})

View File

@@ -0,0 +1,3 @@
ServerEvents.recipes(e =>{
e.remove({id: 'reliquary:rod_of_lyssa'})
})

View File

@@ -0,0 +1,9 @@
ServerEvents.recipes(event => {
event.remove({ id: 'rftoolsbuilder:builder' })
event.shaped('rftoolsbuilder:builder', ['aea', 'rmr', 'ara'], {
a: '#forge:nuggets/allthemodium',
e: '#forge:ender_pearls',
r: '#forge:storage_blocks/redstone',
m: 'rftoolsbase:machine_frame'
})
})

View File

@@ -0,0 +1,14 @@
ServerEvents.recipes(event => {
event.remove({ id: 'silentgear:salvager' })
event.shaped('silentgear:salvager', [
' M ',
'CDC',
'COC'
], {
M: 'mininggadgets:upgrade_magnet',
C: 'silentgear:crimson_steel_ingot',
D: 'minecraft:diamond_block',
O: 'minecraft:obsidian'
})
event.remove({id: 'silentgear:bronze_ingot'})
})

View File

@@ -0,0 +1,12 @@
ServerEvents.recipes(event => {
event.remove({id: 'structurecompass:structure_compass'})
event.shaped('structurecompass:structure_compass', [
'NAN',
'ACA',
'NAN'
], {
A: 'allthemodium:allthemodium_ingot',
N: 'minecraft:netherite_ingot',
C: 'naturescompass:naturescompass',
})
})

View File

@@ -0,0 +1,10 @@
ServerEvents.recipes(event => {
event.remove({ id: 'tiab:time_in_a_bottle' })
event.shaped('tiab:time_in_a_bottle', ['UUU', 'DCD', 'LBL'], {
U: '#forge:ingots/unobtainium',
D: 'mysticalagriculture:speed_iii_augment',
L: 'minecraft:lapis_lazuli',
C: 'productivebees:upgrade_time',
B: 'minecraft:experience_bottle'
})
})

View File

@@ -0,0 +1,3 @@
ServerEvents.recipes(event => {
event.remove({id:'twilightforest:uncrafting_table'})
})

View File

@@ -0,0 +1,14 @@
ServerEvents.highPriorityData(event => {
event.addJson('occultism:forge/biome_modifier/add_deepslate_silver_ore', {
type: "forge:remove_features",
biomes: "#minecraft:is_overworld",
features: "occultism:silver_ore_deepslate",
step: "underground_ores"
})
event.addJson('occultism:forge/biome_modifier/add_silver_ore', {
type: "forge:remove_features",
biomes: "#minecraft:is_overworld",
features: "occultism:silver_ore",
step: "underground_ores"
})
})

View File

@@ -0,0 +1,50 @@
// priority: 1000
global['auTags'] = []
global['loaded'] = {
IE_Loaded: Platform.isLoaded('immersiveengineering'),
Mek_Loaded: Platform.isLoaded('mekanism'),
Create_Loaded: Platform.isLoaded('create'),
CreateAdd_Loaded: Platform.isLoaded('createaddition'),
Thermal_Loaded: false,
FTBIC_Loaded: Platform.isLoaded('ftbic'),
Tinkers_Loaded: Platform.isLoaded('tconstruct'),
Occult_Loaded: Platform.isLoaded('occultism'),
ATO_Loaded: Platform.isLoaded('alltheores')
}
global['alloys'] = [
'steel',
'invar',
'electrum',
'bronze',
'enderium',
'lumium',
'signalum',
'constantan',
'brass'
]
global['blueskies'] = [
'aquite',
'charoite',
'falsite',
'horizonite',
'ventium'
]
global['ingredientCheck'] = function(itemstack, json) {
if(json.has('tag')) {
let tag = json.get('tag').getAsString()
if (AlmostUnified.getItemIds(tag).contains(itemstack.id)) { return true }
} else if (json.has('item')) {
let item = json.get('item').getAsString()
if (itemstack.id == item) { return true }
}
return false
}
ServerEvents.recipes(event => {
global.auTags = AlmostUnified.getTags()
})

View File

@@ -0,0 +1,135 @@
// priority:950
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Dusts')
}
let dustTags = global.auTags.filter(function (val) {
return /forge:dusts/.test(val)
})
let dustCount = {
occult: 0,
ftbic: 0
}
dustTags.forEach(dustTagString => {
let material = dustTagString.replace('forge:dusts/', '')
let dust = AlmostUnified.getPreferredItemForTag(dustTagString)
if (dust.isEmpty()) {
console.log(`${material} does not have a dust tag entry`)
return
}
let ingot = AlmostUnified.getPreferredItemForTag(`forge:ingots/${material}`)
let ore = AlmostUnified.getPreferredItemForTag(`forge:ores/${material}`)
let raw_material = AlmostUnified.getPreferredItemForTag(`forge:raw_materials/${material}`)
let raw_block = AlmostUnified.getPreferredItemForTag(`forge:storage_blocks/raw_${material}`)
// Occultism Crusher
if (global.loaded.Occult_Loaded) {
let crush = {
ingot: false,
ore: false,
raw: false
}
event.forEachRecipe({ type: "occultism:crushing" }, recipe => {
let recipeJson = recipe.json
if (dust.equalsIgnoringCount(Item.of(recipeJson.get('result')))) {
let input = recipeJson.get('ingredient')
if (!ingot.isEmpty() && global.ingredientCheck(ingot, input)) {
crush.ingot = true
} else if (!ore.isEmpty() && global.ingredientCheck(ore, input)) {
crush.ore = true
} else if (!raw_material.isEmpty() && global.ingredientCheck(raw_material, input)) {
crush.raw = true
}
}
})
let recipe = {
type: "occultism:crushing",
ingredient: {},
result: {},
crushing_time: 200,
ignore_crushing_multiplier: true
}
if (!ingot.isEmpty() && !crush.ingot) {
let ingotRecipe = recipe
ingotRecipe.ingredient = Ingredient.of(`#forge:ingots/${material}`).toJson()
ingotRecipe.result = dust.withCount(1).toJson()
event.custom(ingotRecipe).id(`kubejs:occultism/crushing/${material}_dust_from_ingot`)
dustCount.occult++
}
if (!raw_material.isEmpty() && !crush.raw) {
let rawRecipe = recipe
rawRecipe.ingredient = Ingredient.of(`#forge:raw_materials/${material}`).toJson()
rawRecipe.result = dust.withCount(2).toJson()
rawRecipe.ignore_crushing_multiplier = false
event.custom(rawRecipe).id(`kubejs:occultism/crushing/${material}_dust_from_raw_material`)
dustCount.occult++
}
if (!ore.isEmpty() && !crush.ore) {
let oreRecipe = recipe
oreRecipe.ingredient = Ingredient.of(`#forge:ores/${material}`).toJson()
oreRecipe.result = dust.withCount(2).toJson()
oreRecipe.crushing_time = 300
oreRecipe.ignore_crushing_multiplier = false
event.custom(oreRecipe).id(`kubejs:occultism/crushing/${material}_dust`)
dustCount.occult++
}
}
// FTBIC Macerating
if (global.loaded.FTBIC_Loaded) {
let macerate = {
ingot: false,
ore: false,
raw: false,
}
event.forEachRecipe({ type: 'ftbic:macerating' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('outputItems').forEach(item => {
if (dust.equalsIgnoringCount(Item.of(item))) {
recipeJson.get('inputItems').forEach(inputJson => {
let input = inputJson.get('ingredient')
if (!ingot.isEmpty() && global.ingredientCheck(ingot, input)) {
macerate.ingot = true
} else if (!ore.isEmpty() && global.ingredientCheck(ore, input)) {
macerate.ore = true
} else if (!raw_material.isEmpty() && global.ingredientCheck(raw_material, input)) {
macerate.raw = true
}
})
}
})
})
if (!ingot.isEmpty() && !macerate.ingot) {
event.custom({
"type": "ftbic:macerating",
"inputItems": [{ count: 1, ingredient: Ingredient.of(`#forge:ingots/${material}`).toJson() }],
"outputItems": [dust.toJson()]
}).id(`kubejs:ftbic/macerating/ingots/${material}_to_dust`)
dustCount.ftbic++
}
if (!ore.isEmpty() && !macerate.ore) {
event.custom({
"type": "ftbic:macerating",
"inputItems": [{ count: 1, ingredient: Ingredient.of(`#forge:ores/${material}`).toJson() }],
"outputItems": [dust.withCount(2).toJson()]
}).id(`kubejs:ftbic/macerating/ores/${material}_to_dust`)
dustCount.ftbic++
}
if (!raw_material.isEmpty() && !macerate.raw) {
event.custom({
"type": "ftbic:macerating",
"inputItems": [{ count: 1, ingredient: Ingredient.of(`#forge:raw_materials/${material}`).toJson() }],
"outputItems": [
dust.toJson(),
{ chance: 0.35, item: dust.id }
]
}).id(`kubejs:ftbic/macerating/raw_materials/${material}_to_dust`)
dustCount.ftbic++
}
}
})
if (global.devLogging) {
console.log(`Added Dust Recipes - FTBIC: ${dustCount.ftbic}, Occultism: ${dustCount.occult}`)
// Added Dust Recipes - FTBIC: 52, Occultism: 63
}
})

View File

@@ -0,0 +1,108 @@
//priority:400
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Gears')
}
let gearTags = global.auTags.filter(function (val) {
return /forge:gears/.test(val)
})
let gearCount = {
ftbic: 0,
ie: 0,
thermal: 0
}
gearTags.forEach(gearTagString => {
let material = gearTagString.replace('forge:gears/', '')
let gear = AlmostUnified.getPreferredItemForTag(gearTagString)
if (gear.isEmpty()) {
console.log(`${material} does not have a gear tag entry`)
return
}
let ingotTagString = `forge:ingots/${material}`
if (AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
ingotTagString = `forge:gems/${material}`
}
if (!AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
let ingotTag = Ingredient.of(`#${ingotTagString}`)
if (global.loaded.IE_Loaded) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(gear, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(gear, result)) {
count++
}
})
if (count == 0) {
event.custom({
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_gear',
input: {
count: 4,
base_ingredient: ingotTag.toJson()
},
result: gear.toJson(),
energy: 2400
}).id(`kubejs:immersiveengineering/metalpress/gear_${material}`)
gearCount.ie++
}
}
if (global.loaded.Thermal_Loaded) {
// Check if thermal multiservo press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'thermal:press' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('result').forEach(item => {
if (gear.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'thermal:press',
ingredients: [
ingotTag.withCount(4).toJson(),
Ingredient.of('thermal:press_gear_die').toJson(),
],
result: [gear.toJson()],
}).id(`kubejs:thermal/machines/press/press_${material}_ingot_to_gear`)
gearCount.thermal++
}
}
}
if (global.loaded.FTBIC_Loaded) {
let plateTag = Ingredient.of(`#forge:plates/${material}`)
if (!AlmostUnified.getPreferredItemForTag(`forge:plates/${material}`).isEmpty()) {
// Check if ftbic extruding recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'ftbic:extruding' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('outputItems').forEach(item => {
if (gear.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'ftbic:extruding',
inputItems: [{ "count": 4, "ingredient": plateTag.toJson() }],
outputItems: [gear.withCount(1).toJson()]
}).id(`kubejs:ftbic/extruding/ingots/${material}_to_${material}_gear`)
gearCount.ftbic++
}
}
}
})
if (global.devLogging) {
console.log(`Added Gear Recipes - FTBIC: ${gearCount.ftbic}, IE: ${gearCount.ie}, Thermal: ${gearCount.thermal}`)
// Added Gear Recipes - FTBIC: 16, IE: 8, Thermal: 0
}
})

View File

@@ -0,0 +1,162 @@
//priority:700
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
// Missing tags for unify
ServerEvents.tags('item', event => {
['falsite', 'ventium', 'horizonite'].forEach(metal => {
event.add(`forge:ingots/${metal}`, `blue_skies:${metal}_ingot`)
})
})
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Ingots')
}
let ingotTags = global.auTags.filter(function (val) {
return /forge:ingots/.test(val)
})
let ingotCount = {
ie: 0,
thermal: 0
}
ingotTags.forEach(ingotTagString => {
let material = ingotTagString.replace('forge:ingots/', '')
let ingot = AlmostUnified.getPreferredItemForTag(ingotTagString)
if (ingot.isEmpty()) {
console.log(`${material} does not have a ingot tag entry`)
return
}
let isAlloy = global.alloys.includes(material)
let storageTag = Ingredient.of(`#forge:storage_blocks/${material}`)
if (!AlmostUnified.getPreferredItemForTag(`forge:storage_blocks/${material}`).isEmpty()) {
if (global.loaded.IE_Loaded) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(ingot, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(ingot, result)) {
count++
}
})
if (count == 0) {
let recipe = {
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_unpacking',
input: storageTag.toJson(),
result: ingot.withCount(9).toJson(),
energy: 2400
}
event.custom(recipe).id(`kubejs:immersiveengineering/metalpress/unpacking/block_${material}`)
ingotCount.ie++
}
}
if (global.loaded.Thermal_Loaded) {
// Check if thermal multiservo press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'thermal:press' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('result').forEach(item => {
if (ingot.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'thermal:press',
ingredients: [
storageTag.toJson(),
Ingredient.of('thermal:press_unpacking_die').toJson(),
],
result: [ingot.withCount(9).toJson()],
}).id(`kubejs:thermal/machines/press/unpacking/press_${material}_unpacking`)
ingotCount.thermal++
}
}
}
let nuggetTag = Ingredient.of(`#forge:nuggets/${material}`)
if (!AlmostUnified.getPreferredItemForTag(`forge:nuggets/${material}`).isEmpty()) {
if (global.loaded.IE_Loaded) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(ingot, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(ingot, result)) {
count++
}
})
if (count == 0) {
event.custom({
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_packing_9',
input: {
count: 9,
base_ingredient: nuggetTag.toJson()
},
result: ingot.toJson(),
energy: 2400
}).id(`kubejs:immersiveengineering/metalpress/packing3x3/${material}_nugget`)
ingotCount.ie++
}
}
if (global.loaded.Thermal_Loaded) {
// Check if thermal multiservo press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'thermal:press' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('result').forEach(item => {
if (ingot.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'thermal:press',
ingredients: [
nuggetTag.withCount(9).toJson(),
Ingredient.of('thermal:press_packing_3x3_die').toJson(),
],
result: [ingot.toJson()],
}).id(`kubejs:thermal/machines/press/packing3x3/press_${material}_nugget_packing`)
ingotCount.thermal++
}
}
}
if (isAlloy) {
/*
TODO include alloying recipes across all alloying machines
create mixing
thermal induction smelter
ie alloy kiln
ie arc furnace
*/
} else {
/*
TODO include/check ore/raw/raw_storage/chunk/dust to ingot recipes that might be missing
most take their recipes from vanilla smelting/blasting
special cases:
ie arc furnace
dust -> ingot
ore -> 2 ingot, 1 ie slag
raw ore -> 1 ingot, 1 ingot (50%)
raw ore storage -> 13 ingots, 1 ingot (50%)
thermal induction smelter
*/
}
})
if (global.devLogging) {
console.log(`Added Ingot Recipes - IE: ${ingotCount.ie}, Thermal: ${ingotCount.thermal}`)
// Added Ingot Recipes - IE: 68, Thermal: 0
}
})

View File

@@ -0,0 +1,89 @@
//priority:650
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
// Missing tags for unify
ServerEvents.tags('item', event => {
['falsite', 'ventium', 'horizonite'].forEach(metal => {
event.add(`forge:nuggets/${metal}`, `blue_skies:${metal}_nugget`)
})
})
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Nuggets')
}
let nuggetTags = global.auTags.filter(function (val) {
return /forge:nuggets/.test(val)
})
let nuggetCount = {
ie: 0,
thermal: 0
}
nuggetTags.forEach(nuggetTagString => {
let material = nuggetTagString.replace('forge:nuggets/', '')
let nugget = AlmostUnified.getPreferredItemForTag(nuggetTagString)
if (nugget.isEmpty()) {
console.log(`${material} does not have a nugget tag entry`)
return
}
let ingotTagString = `forge:ingots/${material}`
if (AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
ingotTagString = `forge:gems/${material}`
}
if (!AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
let ingotTag = Ingredient.of(`#${ingotTagString}`)
if (global.loaded.IE_Loaded) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(nugget, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(nugget, result)) {
count++
}
})
if (count == 0) {
event.custom({
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_unpacking',
input: ingotTag.toJson(),
result: nugget.withCount(9).toJson(),
energy: 2400
}).id(`kubejs:immersiveengineering/metalpress/unpacking/nugget_${material}`)
nuggetCount.ie++
}
}
if (global.loaded.Thermal_Loaded) {
// Check if thermal multiservo press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'thermal:press' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('result').forEach(item => {
if (nugget.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'thermal:press',
ingredients: [
ingotTag.toJson(),
Ingredient.of('thermal:press_unpacking_die').toJson(),
],
result: [nugget.withCount(9).toJson()],
}).id(`kubejs:thermal/machines/press/unpacking/press_${material}_nugget_unpacking`)
nuggetCount.thermal++
}
}
}
})
if (global.devLogging) {
console.log(`Added Nugget Recipes - IE: ${nuggetCount.ie}, Thermal: ${nuggetCount.thermal}`)
// Added Nugget Recipes - IE: 32, Thermal: 0
}
})

View File

@@ -0,0 +1,121 @@
//priority:500
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Plates')
}
let plateTags = global.auTags.filter(function (val) {
return /forge:plates/.test(val)
})
let plateCount = {
create: 0,
ftbic: 0,
ie: 0,
thermal: 0
}
plateTags.forEach(plateTagString => {
let material = plateTagString.replace('forge:plates/', '')
//if (material == 'obsidian') { return }
let plate = AlmostUnified.getPreferredItemForTag(plateTagString)
if (plate.isEmpty()) {
console.log(`${material} does not have a plate tag entry`)
return
}
let ingotTagString = `forge:ingots/${material}`
if (AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
ingotTagString = `forge:gems/${material}`
}
if (!AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
let ingotTag = Ingredient.of(`#${ingotTagString}`)
if (global.loaded.Create_Loaded) {
// Check if create press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'create:pressing' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('results').forEach(item => {
if (plate.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'create:pressing',
ingredients: [ingotTag.toJson()],
results: [plate.withCount(1).toJson()]
}).id(`kubejs:create/pressing/${material}_ingot`)
plateCount.create++
}
}
if (global.loaded.FTBIC_Loaded) {
// Check if ftbic rolling recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'ftbic:rolling' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('outputItems').forEach(item => {
if (plate.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'ftbic:rolling',
inputItems: [{ "count": 1, "ingredient": ingotTag.toJson() }],
outputItems: [plate.withCount(1).toJson()]
}).id(`kubejs:ftbic/rolling/ingots/${material}_to_${material}_plate`)
plateCount.ftbic++
}
}
if (global.loaded.IE_Loaded) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(plate, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(plate, result)) {
count++
}
})
if (count == 0) {
event.custom({
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_plate',
input: ingotTag.toJson(),
result: plate.toJson(),
energy: 2400
}).id(`kubejs:immersiveengineering/metalpress/plate_${material}`)
plateCount.ie++
}
}
if (global.loaded.Thermal_Loaded) {
// Check if thermal multiservo press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'thermal:press' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('result').forEach(item => {
if (plate.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'thermal:press',
ingredient: ingotTag.toJson(),
result: [plate.toJson()],
}).id(`kubejs:thermal/machines/press/press_${material}_ingot_to_plate`)
plateCount.thermal++
}
}
}
})
if (global.devLogging) {
console.log(`Added Plate Recipes - Create: ${plateCount.create}, FTBIC: ${plateCount.ftbic}, IE: ${plateCount.ie}, Thermal: ${plateCount.thermal}`)
// Added Plate Recipes - Create: 23, FTBIC: 18, IE: 8, Thermal: 0
}
})

View File

@@ -0,0 +1,85 @@
//priority:550
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
// Missing tags for unify
ServerEvents.tags('item', event => {
global.blueskies.forEach(metal => {
event.add(`forge:raw_materials/${metal}`, `blue_skies:raw_${metal}`)
})
})
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Raw Materials')
}
let raw_materialTags = global.auTags.filter(function (val) {
return /forge:raw_materials/.test(val)
})
let raw_materialCount = {
ie: 0,
thermal: 0
}
raw_materialTags.forEach(raw_materialTagString => {
let material = raw_materialTagString.replace('forge:raw_materials/', '')
let raw_material = AlmostUnified.getPreferredItemForTag(raw_materialTagString)
if (raw_material.isEmpty()) {
console.log(`${material} does not have a raw_material tag entry`)
return
}
if (!AlmostUnified.getPreferredItemForTag(`forge:storage_blocks/raw_${material}`).isEmpty()) {
let rawblockTag = Ingredient.of(`#forge:storage_blocks/raw_${material}`)
if (global.loaded.IE_Loaded) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(raw_material, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(raw_material, result)) {
count++
}
})
if (count == 0) {
event.custom({
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_unpacking',
input: rawblockTag.toJson(),
result: raw_material.withCount(9).toJson(),
energy: 2400
}).id(`kubejs:immersiveengineering/metalpress/raw_material_${material}`)
raw_materialCount.ie++
}
}
if (global.loaded.Thermal_Loaded) {
// Check if thermal multiservo press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'thermal:press' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('result').forEach(item => {
if (raw_material.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'thermal:press',
ingredients: [
rawblockTag.toJson(),
Ingredient.of('thermal:press_unpacking_die').toJson(),
],
result: [raw_material.withCount(9).toJson()],
}).id(`kubejs:thermal/machines/press/unpacking/press_raw_${material}_unpacking`)
raw_materialCount.thermal++
}
}
}
})
if (global.devLogging) {
console.log(`Added Raw Material Recipes - IE: ${raw_materialCount.ie}, Thermal: ${raw_materialCount.thermal}`)
// Added Raw Material Recipes - IE: 23, Thermal: 0
}
})

View File

@@ -0,0 +1,111 @@
//priority:450
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Rods')
}
let rodTags = global.auTags.filter(function (val) {
return /forge:rods/.test(val)
})
let rodCount = {
create: 0,
ftbic: 0,
ie: 0,
thermal: 0
}
rodTags.forEach(rodTagString => {
let material = rodTagString.replace('forge:rods/', '')
let rod = AlmostUnified.getPreferredItemForTag(rodTagString)
if (rod.isEmpty()) {
console.log(`${material} does not have a rod tag entry`)
return
}
let ingotTagString = `forge:ingots/${material}`
if (AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
ingotTagString = `forge:gems/${material}`
}
if (!AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
let ingotTag = Ingredient.of(`#${ingotTagString}`)
if (global.loaded.CreateAdd_Loaded) {
// Check if create additions rolling recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'createaddition:rolling' }, recipe => {
let recipeJson = recipe.json
if (global.ingredientCheck(rod, recipeJson.get('result'))) {
count++
}
})
if (count == 0) {
event.custom({
type: 'createaddition:rolling',
input: ingotTag.toJson(),
result: rod.withCount(2).toJson()
}).id(`kubejs:createaddition/rolling/${material}_ingot`)
rodCount.create++
}
}
if (global.loaded.FTBIC_Loaded) {
// Check if ftbic extruding recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'ftbic:extruding' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('outputItems').forEach(item => {
if (rod.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'ftbic:extruding',
inputItems: [{ "count": 1, "ingredient": ingotTag.toJson() }],
outputItems: [rod.withCount(2).toJson()]
}).id(`kubejs:ftbic/extruding/ingots/${material}_to_${material}_rod`)
rodCount.ftbic++
}
}
if (global.loaded.IE_Loaded) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(rod, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(rod, result)) {
count++
}
})
if (count == 0) {
event.custom({
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_rod',
input: ingotTag.toJson(),
result: {
count: 2,
base_ingredient: rod.toJson()
},
energy: 2400
}).id(`kubejs:immersiveengineering/metalpress/rod_${material}`)
rodCount.ie++
}
}
/*
if (global.loaded.Thermal_Loaded) {
// add blast chiller recipes? cross check with tconstruct
}*/
// remove crafting recipes not using atm hammer
event.forEachRecipe({ type: 'minecraft:crafting_shaped', output: rod }, recipe => {
if (!recipe.hasInput('#alltheores:ore_hammers')) {
event.remove({ id: recipe.getId() })
}
})
}
})
if (global.devLogging) {
console.log(`Added Rod Recipes - CreateAdditions: ${rodCount.create}, FTBIC: ${rodCount.ftbic}, IE: ${rodCount.ie}, Thermal: ${rodCount.thermal}`)
// Added Rod Recipes - CreateAdditions: 20, FTBIC: 16, IE: 8, Thermal: 0
}
})

View File

@@ -0,0 +1,103 @@
//priority:900
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
// Missing tags for unify
ServerEvents.tags('item', event => {
event.add('forge:storage_blocks/raw_aluminum', 'xycraft_world:aluminum_raw_block')
global.blueskies.forEach(metal => {
event.add(`forge:storage_blocks/raw_${metal}`, `blue_skies:raw_${metal}_block`)
event.add(`forge:storage_blocks/${metal}`, `blue_skies:${metal}_block`)
event.add(`forge:storage_blocks/raw_materials`, `blue_skies:raw_${metal}_block`)
})
})
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Storage Blocks')
}
let storageTags = global.auTags.filter(function (val) {
return /forge:storage_blocks/.test(val)
})
let storageCount = {
ie: 0,
thermal: 0
}
storageTags.forEach(storageTagString => {
let material = storageTagString.replace('forge:storage_blocks/', '')
let raw = false
if (/raw_/.test(material)) {
raw = true
material = material.replace('raw_', '')
}
let storage = AlmostUnified.getPreferredItemForTag(storageTagString)
if (storage.isEmpty()) {
console.log(`${material} does not have a storage_blocks tag entry`)
return
}
let ingotTagString = `forge:ingots/${material}`
if (AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
ingotTagString = `forge:gems/${material}`
}
if (raw) {
ingotTagString = `forge:raw_materials/${material}`
}
if (!AlmostUnified.getPreferredItemForTag(ingotTagString).isEmpty()) {
let ingotTag = Ingredient.of(`#${ingotTagString}`)
if (global.loaded.IE_Loaded) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(storage, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(storage, result)) {
count++
}
})
if (count == 0) {
event.custom({
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_packing_9',
input: {
count: 9,
base_ingredient: ingotTag.toJson()
},
result: storage.toJson(),
energy: 2400
}).id(`kubejs:immersiveengineering/metalpress/packing3x3/${raw ? 'raw_' : ''}${material}`)
storageCount.ie++
}
}
if (global.loaded.Thermal_Loaded) {
// Check if thermal multiservo press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'thermal:press' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('result').forEach(item => {
if (storage.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'thermal:press',
ingredients: [
ingotTag.withCount(9).toJson(),
Ingredient.of('thermal:press_packing_3x3_die').toJson(),
],
result: [storage.toJson()],
}).id(`kubejs:thermal/machines/press/packing3x3/press_${raw ? 'raw_' : ''}${material}_packing`)
storageCount.thermal++
}
}
}
})
if (global.devLogging) {
console.log(`Added Storage Block Recipes - IE: ${storageCount.ie}, Thermal: ${storageCount.thermal}`)
// Added Storage Block Recipes - IE: 62, Thermal: 0
}
})

View File

@@ -0,0 +1,113 @@
//priority:950
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
// Missing tags for unify
ServerEvents.tags('item', event => {
event.add('forge:wires/aluminum', 'ftbic:aluminum_wire')
event.add('forge:wires/copper', 'ftbic:copper_wire')
event.add('forge:wires/gold', 'ftbic:gold_wire')
event.add('forge:wires/enderium', 'ftbic:enderium_wire')
})
ServerEvents.recipes(event => {
if (global.devLogging) {
console.log('Finishing Unifying on Wires')
}
let wireTags = global.auTags.filter(function (val) {
return /forge:wires/.test(val)
})
let wireCount = {
create: 0,
ftbic: 0,
ie: 0,
thermal: 0
}
wireTags.forEach(wireTagString => {
let material = wireTagString.replace('forge:wires/', '')
let wire = AlmostUnified.getPreferredItemForTag(wireTagString)
if (wire.isEmpty()) {
console.log(`${material} does not have a wire tag entry`)
return
}
if (global.loaded.CreateAdd_Loaded) {
let plate = AlmostUnified.getPreferredItemForTag(`forge:plates/${material}`)
if (!plate.isEmpty()) {
// Check if create additions rolling recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'createaddition:rolling' }, recipe => {
let recipeJson = recipe.json
if (wire.equalsIgnoringCount(Item.of(recipeJson.get('result')))) {
count++
}
})
if (count == 0) {
event.custom({
type: 'createaddition:rolling',
input: Ingredient.of(`#forge:plates/${material}`).toJson(),
result: wire.withCount(2).toJson()
}).id(`kubejs:createaddition/rolling/${material}_plate`)
wireCount.create++
}
}
}
if (global.loaded.FTBIC_Loaded) {
let rod = AlmostUnified.getPreferredItemForTag(`forge:rods/${material}`)
if (!rod.isEmpty()) {
// Check if ftbic extruding recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'ftbic:extruding' }, recipe => {
let recipeJson = recipe.json
recipeJson.get('outputItems').forEach(item => {
if (wire.equalsIgnoringCount(Item.of(item))) {
count++
}
})
})
if (count == 0) {
event.custom({
type: 'ftbic:extruding',
inputItems: [{ "count": 1, "ingredient": Ingredient.of(`#forge:rods/${material}`).toJson() }],
outputItems: [wire.withCount(2).toJson()]
}).id(`kubejs:ftbic/extruding/rods/${material}_to_${material}_wire`)
wireCount.ftbic++
}
}
}
if (global.loaded.IE_Loaded) {
let ingot = AlmostUnified.getPreferredItemForTag(`forge:ingots/${material}`)
if (!ingot.isEmpty()) {
// Check if ie metal press recipe exists and add it if not
let count = 0
event.forEachRecipe({ type: 'immersiveengineering:metal_press' }, recipe => {
let recipeJson = recipe.json
let result = recipeJson.get('result')
if (result.has('base_ingredient')) {
if (global.ingredientCheck(wire, result.get('base_ingredient'))) {
count++
}
} else if (global.ingredientCheck(wire, result)) {
count++
}
})
if (count == 0) {
event.custom({
type: 'immersiveengineering:metal_press',
mold: 'immersiveengineering:mold_wire',
input: Ingredient.of(`#forge:ingots/${material}`).toJson(),
result: {
count: 2,
base_ingredient: wire.toJson()
},
energy: 2400
}).id(`kubejs:immersiveengineering/metalpress/wire_${material}`)
wireCount.ie++
}
}
}
})
if (global.devLogging) {
console.log(`Added Wire Recipes - CreateAdditions: ${wireCount.create}, FTBIC: ${wireCount.ftbic}, IE: ${wireCount.ie}`)
// Added Wire Recipes - CreateAdditions: 2, FTBIC: 4, IE: 1
}
})

View File

@@ -0,0 +1,100 @@
ServerEvents.tags('item', event => {
event.add('minecraft:boats', /byg:\w+?_boat/)
event.add('minecraft:chest_boats', /byg:.+?_chest_boat/)
event.add('forge:cheese', '#forge:cheeses')
event.add('forge:plastic', 'pneumaticcraft:plastic')
event.add('forge:dusts/ender', 'ae2:ender_dust')
event.add('ars_nouveau:golem/shard', ['minecraft:amethyst_shard', 'ae2:certus_quartz_crystal'])
event.add('forge:raw_materials', ['silentgear:raw_azure_silver', 'silentgear:raw_crimson_iron'])
event.add('mysticalagriculture:essences', [
'mysticalagriculture:allthemodium_essence',
'mysticalagriculture:azure_silver_essence',
'mysticalagriculture:crimson_iron_essence',
'mysticalagriculture:unobtainium_essence',
'mysticalagriculture:vibranium_essence',
])
event.add('mysticalagriculture:seeds', [
'mysticalagriculture:allthemodium_seeds',
'mysticalagriculture:azure_silver_seeds',
'mysticalagriculture:crimson_iron_seeds',
'mysticalagriculture:unobtainium_seeds',
'mysticalagriculture:vibranium_seeds',
])
//temp byg fix until above 2.0.0.13
event.add('c:black_sand', '#forge:black_sand')
event.add('c:white_sand', '#forge:white_sand')
event.add('c:blue_sand', '#forge:blue_sand')
event.add('c:purple_sand', '#forge:purple_sand')
event.add('c:pink_sand', '#forge:pink_sand')
})
ServerEvents.tags('block', event => {
event.add('buildinggadgets:blacklist/generic', '#forge:relocation_not_supported')
event.add('ae2:blacklisted/spatial', '#forge:relocation_not_supported')
event.add('forge:relocation_not_supported', [/productivebees:.+/, 'minecraft:beehive', 'minecraft:bee_nest', /integrateddynamics:.+/, '@waystones'])
event.add('ars_nouveau:golem/budding', [
'minecraft:budding_amethyst',
'ae2:damaged_budding_quartz',
'ae2:chipped_budding_quartz',
'ae2:flawed_budding_quartz',
'ae2:flawless_budding_quartz'
])
event.add('ars_nouveau:golem/cluster', ['minecraft:amethyst_cluster', 'ae2:quartz_cluster'])
event.add('mysticalagriculture:crops', [
'mysticalagriculture:allthemodium_crop',
'mysticalagriculture:azure_silver_crop',
'mysticalagriculture:crimson_iron_crop',
'mysticalagriculture:unobtainium_crop',
'mysticalagriculture:vibranium_crop',
])
event.add('minecraft:beacon_base_blocks', [
'allthemodium:vibranium_allthemodium_alloy_block',
'allthemodium:unobtainium_allthemodium_alloy_block',
'allthemodium:unobtainium_vibranium_alloy_block',
'allthetweaks:atm_star_block'
])
})
ServerEvents.tags('fluid', event => {
event.remove('minecraft:water', 'ad_astra:oil')
})
ServerEvents.tags('entity_type', event => {
event.add('kubejs:mob_blacklist', [/productivebees:.+/, 'allthemodium:piglich', 'artifacts:mimic', 'minecraft:iron_golem'])
event.add('mob_grinding_utils:no_swab', '#kubejs:mob_blacklist')
event.add('mob_grinding_utils:no_spawn', '#kubejs:mob_blacklist')
event.add('pneumaticcraft:vacuum_trap_blacklisted', '#kubejs:mob_blacklist')
event.add('industrialforegoing:mob_duplicator_blacklist', '#kubejs:mob_blacklist')
event.add('ars_nouveau:drygmy_blacklist', [/productivebees:.+/, 'artifacts:mimic'])
event.add('spirit:soul_cage_blacklisted', '#kubejs:mob_blacklist')
})
ServerEvents.tags('worldgen/biome', event => {
event.add('botania:mystical_flower_spawnlist', 'allthemodium:mining')
event.add('botania:mystical_mushroom_spawnlist', [
'allthemodium:the_other', 'allthemodium:soul_sand_valley', 'allthemodium:warped_forest',
'allthemodium:desert_hills', 'allthemodium:desert', 'allthemodium:crimson_forest', 'allthemodium:basalt_deltas'])
event.add('elementalcraft:has_sources/all', 'allthemodium:mining')
event.add('elementalcraft:has_sources/sky', 'allthemodium:mining')
event.add('elementalcraft:has_sources/plain', 'allthemodium:mining')
})
//temp fix for bambooeverything breaking boat tags until above 2.2.4
ServerEvents.highPriorityData(event => {
event.addJson(`minecraft:tags/items/boats.json`, {
"replace": true,
"values": [
"minecraft:oak_boat",
"minecraft:spruce_boat",
"minecraft:birch_boat",
"minecraft:jungle_boat",
"minecraft:acacia_boat",
"minecraft:dark_oak_boat",
"minecraft:mangrove_boat",
"#minecraft:chest_boats",
"bambooeverything:bamboo_raft",
"deeperdarker:echo_boat"
]
})
})

View File

@@ -0,0 +1,77 @@
ServerEvents.recipes(event => {
/*let fluidList = Fluid.getTypes()
let xpFluid = []
fluidList.forEach(id => {
let flu = Fluid.of(id)
console.log(flu.getTags())
if (flu.hasTag('forge:experience')) { xpFluid.push(id) }
})*/
// Tags still blah on first load
let xpFluid = [
'cofh_core:experience',
'industrialforegoing:essence',
'mob_grinding_utils:fluid_xp',
'pneumaticcraft:memory_essence',
'reliquary:xp_juice_still',
'sophisticatedcore:xp_still'
]
xpFluid.sort()
let woolOrder = [
'minecraft:orange_wool',
'minecraft:magenta_wool',
'minecraft:light_blue_wool',
'minecraft:yellow_wool',
'minecraft:lime_wool',
'minecraft:pink_wool',
'minecraft:gray_wool',
'minecraft:light_gray_wool',
'minecraft:cyan_wool',
'minecraft:purple_wool',
'minecraft:blue_wool',
'minecraft:brown_wool',
'minecraft:green_wool',
'minecraft:red_wool',
'minecraft:black_wool'
]
for (var i in xpFluid) {
if (Platform.isLoaded('thermal_expansion')) {
let recipe = {
type: "thermal:brewer",
ingredients: [
{ fluid_tag: "forge:experience", amount: 250 },
{ item: woolOrder[i] }
],
result: { fluid: xpFluid[i], amount: 250 }
}
event.custom(recipe).id(`kubejs:thermal/brewer/xp_conv_${i}`)
}
if (Platform.isLoaded('create')) {
let recipe = {
type: "create:mixing",
ingredients: [
{ fluidTag: "forge:experience", amount: 250 },
{ item: woolOrder[i] }
],
results: [{ fluid: xpFluid[i], amount: 250 }]
}
event.custom(recipe).id(`kubejs:create/mixing/xp_conv_${i}`)
}
if (Platform.isLoaded('pneumaticcraft')) {
let recipe = {
type: "pneumaticcraft:thermo_plant",
item_input: { item: woolOrder[i] },
fluid_input: {
type: "pneumaticcraft:fluid",
tag: "forge:experience",
amount: 250
},
fluid_output: { fluid: xpFluid[i], amount: 250 },
pressure: 2.0,
speed: 1,
air_use_multiplier: 1.0,
exothermic: false
}
event.custom(recipe).id(`kubejs:pneumaticcraft/thermo_plant/xp_conv_${i}`)
}
}
})