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,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'})
})