//Priority: 2
/**
  
  █▀▄▀█ █▀█ █▄░█ █░█ █▀▄▀█ █▀▀ █▄░█ ▀█▀ ▄▀█ █░░   █▀▀ ▀▄▀ █▀█ █▀▀ █▀█ █ █▀▀ █▄░█ █▀▀ █▀▀
  █░▀░█ █▄█ █░▀█ █▄█ █░▀░█ ██▄ █░▀█ ░█░ █▀█ █▄▄   ██▄ █░█ █▀▀ ██▄ █▀▄ █ ██▄ █░▀█ █▄▄ ██▄

  ☻/  * @file Global Constants for use in other scripts
  /▌  * @copyright KnightDexx's Modded Minecraft World | ModernGamingWorld | GeekTechMedia
  /\

*/
//======= ITEM =======
ServerEvents.tags('item', e => {

   e.add('forge:cheese', '#forge:cheeses')
   e.add('forge:end_stones', '#chipped:end_stone', 'rechiseled:end_stone_blobs', 'rechiseled:end_stone_chiseled', 'rechiseled:end_stone_crushed', 'rechiseled:end_stone_diagonal_bricks', 'rechiseled:end_stone_mesh', 'rechiseled:end_stone_paving', 'rechiseled:end_stone_polished', 'rechiseled:end_stone_scales', 'rechiseled:end_stone_small_tiles', 'rechiseled:end_stone_spiral_pattern', 'rechiseled:end_stone_squares', 'rechiseled:end_stone_tiles')
   e.add('forge:netherrack', 'quark:netherrack_bricks', 'rechiseled:netherrack_beams', 'rechiseled:netherrack_bricks', 'rechiseled:netherrack_bricks', 'rechiseled:netherrack_dented', 'rechiseled:netherrack_small_tiles', 'rechiseled:netherrack_stripes', 'rechiseled:netherrack_tiles', '#chipped:netherrack')
   e.add('forge:obsidian', 'rechiseled:obsidian_bordered', 'rechiseled:obsidian_bricks', 'rechiseled:obsidian_chiseled', 'rechiseled:obsidian_chiseled_circles', 'rechiseled:obsidian_chiseled_creeper', 'rechiseled:obsidian_chiseled_skeleton', 'rechiseled:obsidian_dark', 'rechiseled:obsidian_large_tiles', 'rechiseled:obsidian_spots', 'rechiseled:obsidian_squares', 'rechiseled:obsidian_stripes', 'rechiseled:obsidian_tiles', '#chipped:obsidian')
   e.add('forge:ingots/crystaltine', 'extendedcrafting:crystaltine_ingot')
   e.add('forge:tools/pickaxes', ['blue_skies:bluebright_pickaxe', 'blue_skies:lunar_pickaxe', 'blue_skies:starlit_pickaxe', 'blue_skies:dusk_pickaxe', 'blue_skies:frostbright_pickaxe', 'blue_skies:maple_pickaxe', 'blue_skies:turquoise_stone_pickaxe', 'blue_skies:lunar_stone_pickaxe', 'blue_skies:pyrope_pickaxe', 'blue_skies:aquite_pickaxe', 'blue_skies:diopside_pickaxe', 'blue_skies:charoite_pickaxe', 'blue_skies:horizonite_pickaxe', 'gobber2:gobber2_pickaxe', 'gobber2:gobber2_pickaxe_nether', 'gobber2:gobber2_pickaxe_end'])
   e.add('forge:storage_blocks/raw_cinnabar', '#forge:storage_blocks/cinnabar')
   e.remove('forge:all_hammers', ['#immersiveengineering:tools/hammers'])
   e.remove('forge:tools/wrench', ['immersiveengineering:hammer'])
   e.add('forge:wooden_grip', 'immersiveengineering:wooden_grip')
   e.add('thermal:rubberwood_logs', '#forge:rubberwood_logs')
   e.add('letsdo_addon_compat:tools/knives', '#forge:tools/knives')

   //======= Clocks =======
   let clocks = ['oak', 'spruce', 'birch', 'jungle', 'acacia', 'dark_oak', 'mangrove', 'cherry', 'cuckoo', 'clock']

   clocks.forEach(type => {
      e.add('forge:clocks', `furniture:${type}_clock`)
      e.add('forge:clocks', `cyclic:${type}`)
      e.add('forge:clocks', `furniture:${type}_grandfather_clock`)
      e.add('forge:clocks', `create:${type}_clock`)
      e.add('forge:clocks', `supplementaries:${type}_block`)
   })

   //======= Planks =======
   e.add('forge:planks/mangrove', 'minecraft:mangrove_planks')
   const TwilightWoodTypes = ['transformation', 'dark', 'sorting', 'twilight_oak', 'canopy', 'time', 'mining']
   TwilightWoodTypes.forEach((wood_type) => {
      e.add(`forge:planks/${wood_type}`, `twilightforest:${wood_type}_planks`)
   })

   //======= Hexerei =======
   e.add('hexerei:mahogany_logs', [
      'hexerei:mahogany_log',
      'hexerei:stripped_mahogany_log',
      'hexerei:mahogany_wood',
      'hexerei:stripped_mahogany_wood'
   ])
   e.add('hexerei:willow_logs', [
      'hexerei:willow_log',
      'hexerei:stripped_willow_log',
      'hexerei:willow_wood',
      'hexerei:stripped_willow_wood'
   ])
   e.add('hexerei:witch_hazel_logs', [
      'hexerei:witch_hazel_log',
      'hexerei:stripped_witch_hazel_log',
      'hexerei:witch_hazel_wood',
      'hexerei:stripped_witch_hazel_wood'
   ])

   //======= Botania =======
   let botaiaQueartz = ['dark', 'mana', 'blaze', 'lavender', 'red', 'elven', 'sunny']

   botaiaQueartz.forEach(type => {
      e.add('botania:all_quartz', `botania:quartz_${type}`)
   })

   //======= Fix Mythicbotany tags =======
   e.add('forge:raw_materials/elementium', 'mythicbotany:raw_elementium')
   e.add('forge:storage_blocks/raw_elementium', 'mythicbotany:raw_elementium_block')


   //======= Logs =======
   e.add('minecraft:crimson_logs', '#minecraft:crimson_stems')
   e.add('minecraft:warped_logs', '#minecraft:warped_stems')
   e.add('securitycraft:reinforced/crimson_logs', '#securitycraft:reinforced/crimson_stems')
   e.add('securitycraft:reinforced/warped_logs', '#securitycraft:reinforced/warped_stems')
   e.add('twilightforest:dark_logs', '#twilightforest:darkwood_logs')
   e.add('twilightforest:time_logs', '#twilightforest:timewood_logs')
   e.add('twilightforest:transformation_logs', '#twilightforest:transwood_logs')
   e.add('twilightforest:sorting_logs', '#twilightforest:sortwood_logs')

   //======= Sophisticated Storage =======
   //======= Wooden Barrels, Chests & Shulker Boxes =======
   e.add('misctags:barrels/wooden', 'sophisticatedstorage:barrel')
   e.add('misctags:limited_barrels_1/wooden', 'sophisticatedstorage:limited_barrel_1')
   e.add('misctags:limited_barrels_2/wooden', 'sophisticatedstorage:limited_barrel_2')
   e.add('misctags:limited_barrels_3/wooden', 'sophisticatedstorage:limited_barrel_3')
   e.add('misctags:limited_barrels_4/wooden', 'sophisticatedstorage:limited_barrel_4')
   e.add('misctags:chests/wooden', 'sophisticatedstorage:chest')
   e.add('misctags:shulker_box', 'sophisticatedstorage:shulker_box')
   //======= Iron Barrels, Chests & Shulker Boxes =======
   e.add('misctags:barrels/iron', 'sophisticatedstorage:iron_barrel')
   e.add('misctags:limited_barrels_1/iron', 'sophisticatedstorage:limited_iron_barrel_1')
   e.add('misctags:limited_barrels_2/iron', 'sophisticatedstorage:limited_iron_barrel_2')
   e.add('misctags:limited_barrels_3/iron', 'sophisticatedstorage:limited_iron_barrel_3')
   e.add('misctags:limited_barrels_4/iron', 'sophisticatedstorage:limited_iron_barrel_4')
   e.add('misctags:chests/iron', 'sophisticatedstorage:iron_chest')
   e.add('misctags:shulker_boxes/iron', 'sophisticatedstorage:iron_shulker_box')
   //======= Gold Barrels, Chests & Shulker Boxes =======
   e.add('misctags:barrels/gold', 'sophisticatedstorage:gold_barrel')
   e.add('misctags:limited_barrels_1/gold', 'sophisticatedstorage:limited_gold_barrel_1')
   e.add('misctags:limited_barrels_2/gold', 'sophisticatedstorage:limited_gold_barrel_2')
   e.add('misctags:limited_barrels_3/gold', 'sophisticatedstorage:limited_gold_barrel_3')
   e.add('misctags:limited_barrels_4/gold', 'sophisticatedstorage:limited_gold_barrel_4')
   e.add('misctags:chests/gold', 'sophisticatedstorage:gold_chest')
   e.add('misctags:shulker_boxes/gold', 'sophisticatedstorage:gold_shulker_box')
   //======= Diamond Barrels, Chests & Shulker Boxes =======
   e.add('misctags:barrels/diamond', 'sophisticatedstorage:diamond_barrel')
   e.add('misctags:limited_barrels_1/diamond', 'sophisticatedstorage:limited_diamond_barrel_1')
   e.add('misctags:limited_barrels_2/diamond', 'sophisticatedstorage:limited_diamond_barrel_2')
   e.add('misctags:limited_barrels_3/diamond', 'sophisticatedstorage:limited_diamond_barrel_3')
   e.add('misctags:limited_barrels_4/diamond', 'sophisticatedstorage:limited_diamond_barrel_4')
   e.add('misctags:chests/diamond', 'sophisticatedstorage:diamond_chest')
   e.add('misctags:shulker_boxes/diamond', 'sophisticatedstorage:diamond_shulker_box')
   //======= Netherite Barrels, Chests & Shulker Boxes =======
   e.add('misctags:barrels/netherite', 'sophisticatedstorage:netherite_barrel')
   e.add('misctags:limited_barrels_1/netherite', 'sophisticatedstorage:limited_netherite_barrel_1')
   e.add('misctags:limited_barrels_2/netherite', 'sophisticatedstorage:limited_netherite_barrel_2')
   e.add('misctags:limited_barrels_3/netherite', 'sophisticatedstorage:limited_netherite_barrel_3')
   e.add('misctags:limited_barrels_4/netherite', 'sophisticatedstorage:limited_netherite_barrel_4')
   e.add('misctags:chests/netherite', 'sophisticatedstorage:netherite_chest')
   e.add('misctags:shulker_boxes/netherite', 'sophisticatedstorage:netherite_shulker_box')

   //======= Mining Gadgets =======
   e.add('mininggadgets:mininggadgets', [
      'mininggadgets:mininggadget_simple',
      'mininggadgets:mininggadget_fancy',
      'mininggadgets:mininggadget'
   ])

   //======= Industrial Foregoing =======
   e.add('industrialforegoing:bioreactor', '#forge:crops')
   e.add('industrialforegoing:laser_lenses', [
      'industrialforegoing:laser_lens0',
      'industrialforegoing:laser_lens1',
      'industrialforegoing:laser_lens2',
      'industrialforegoing:laser_lens3',
      'industrialforegoing:laser_lens4',
      'industrialforegoing:laser_lens5',
      'industrialforegoing:laser_lens6',
      'industrialforegoing:laser_lens7',
      'industrialforegoing:laser_lens8',
      'industrialforegoing:laser_lens9',
      'industrialforegoing:laser_lens10',
      'industrialforegoing:laser_lens11',
      'industrialforegoing:laser_lens12',
      'industrialforegoing:laser_lens13',
      'industrialforegoing:laser_lens14',
      'industrialforegoing:laser_lens15'
   ])

   //======= RFTools =======
   //======= Crafters =======
   e.add('rftools:crafter', [
      'rftoolsutility:crafter1',
      'rftoolsutility:crafter2',
      'rftoolsutility:crafter3'
   ])
   //======= Power Cells =======
   e.add('rftools:powercell', [
      'rftoolspower:cell1',
      'rftoolspower:cell2',
      'rftoolspower:cell3'
   ])
   //======= Dimensional Cells =======
   e.add('rftools:dimensionalcell', [
      'rftoolspower:dimensionalcell',
      'rftoolspower:dimensionalcell_simple',
      'rftoolspower:dimensionalcell_advanced'
   ])

   //======= BLUE SKIES =======
   //======= Spears =======
   e.add('blue_skies:spears', [
      'blue_skies:bluebright_spear',
      'blue_skies:starlit_spear',
      'blue_skies:frostbright_spear',
      'blue_skies:lunar_spear',
      'blue_skies:dusk_spear',
      'blue_skies:maple_spear',
      'blue_skies:cherry_spear'
   ])

   //======= Summoner Artifact Drops =======
   e.add('blue_skies:summoner_drops', [
      'blue_skies:ethereal_arc',
      'blue_skies:soulbound_spear',
      'blue_skies:summoning_tome',
      'blue_skies:summoning_table',
      'blue_skies:blinding_rage'
   ])

   //======= Starlit Crusher Artifact Drops =======
   e.add('blue_skies:starlit_crusher_drops', [
      'blue_skies:crushing_hammer',
      'blue_skies:nature_arc',
      'blue_skies:defying_starlight'
   ])

   //======= Alchemist Artifact Drops =======
   e.add('blue_skies:alchemist_drops', [
      'blue_skies:spike_shield',
      'blue_skies:dusk_arc',
      'blue_skies:alchemy_table',
      'blue_skies:blinding_rage'
   ])

   //======= Arachnarch Artifact Drops =======
   e.add('blue_skies:arachnarch_drops', [
      'blue_skies:venom_sac',
      'blue_skies:poison_arc',
      'blue_skies:different_sword',
      'blue_skies:venomous_encounter'
   ])

   //======= Glazed Terracota =======
   e.add('forge:glazed_terracotta', [
      'minecraft:white_glazed_terracotta',
      'minecraft:orange_glazed_terracotta',
      'minecraft:magenta_glazed_terracotta',
      'minecraft:light_blue_glazed_terracotta',
      'minecraft:yellow_glazed_terracotta',
      'minecraft:lime_glazed_terracotta',
      'minecraft:pink_glazed_terracotta',
      'minecraft:gray_glazed_terracotta',
      'minecraft:light_gray_glazed_terracotta',
      'minecraft:cyan_glazed_terracotta',
      'minecraft:purple_glazed_terracotta',
      'minecraft:blue_glazed_terracotta',
      'minecraft:brown_glazed_terracotta',
      'minecraft:green_glazed_terracotta',
      'minecraft:red_glazed_terracotta',
      'minecraft:black_glazed_terracotta'
   ])

   //======= Smooth Stones =======
   e.add('misctags:smooth_stone', [
      'minecraft:smooth_stone',
      'minecraft:smooth_red_sandstone',
      'minecraft:smooth_sandstone',
      'minecraft:smooth_quartz',
      'minecraft:smooth_basalt',
      'biomeswevegone:smooth_black_sandstone',
      'biomeswevegone:smooth_white_sandstone',
      'biomeswevegone:smooth_blue_sandstone',
      'biomeswevegone:smooth_purple_sandstone',
      'biomeswevegone:smooth_pink_sandstone'
   ])

   //======= Arow Top =======
   e.add('forge:arrow_top', [
      'minecraft:flint',
      'alexsmobs:bone_serpent_tooth',
      'alexsmobs:shark_tooth',
      'alexsmobs:cachalot_whale_tooth',
      'tombstone:bone_needle'
   ])

   //======= Mysticay Agriculture =======
   e.add('misctags:farmland/tier6', ['mysticalagradditions:insanium_farmland'])
   e.add('misctags:farmland/tier5', ['mysticalagriculture:supremium_farmland', '#misctags:farmland/tier6'])
   e.add('misctags:farmland/tier4', ['mysticalagriculture:imperium_farmland', '#misctags:farmland/tier5'])
   e.add('misctags:farmland/tier3', ['mysticalagriculture:tertium_farmland', '#misctags:farmland/tier4'])
   e.add('misctags:farmland/tier2', ['mysticalagriculture:prudentium_farmland', '#misctags:farmland/tier3'])
   e.add('misctags:farmland/tier1', ['mysticalagriculture:inferium_farmland', '#misctags:farmland/tier2'])

   //======= Minecraft Furnaces =======
   e.add('misctags:furnace', ['minecraft:furnace', 'quark:deepslate_furnace', 'quark:blackstone_furnace'])

   //Minecraft Corals
   e.add('misctags:corals', [
      'minecraft:tube_coral',
      'minecraft:brain_coral',
      'minecraft:bubble_coral',
      'minecraft:fire_coral',
      'minecraft:horn_coral'
   ])

   //======= Minecraft Shulker Boxes =======
   e.add('minecraft:shulker_boxes', [
      'minecraft:shulker_box',
      'minecraft:white_shulker_box',
      'minecraft:orange_shulker_box',
      'minecraft:magenta_shulker_box',
      'minecraft:light_blue_shulker_box',
      'minecraft:yellow_shulker_box',
      'minecraft:lime_shulker_box',
      'minecraft:pink_shulker_box',
      'minecraft:gray_shulker_box',
      'minecraft:light_gray_shulker_box',
      'minecraft:cyan_shulker_box',
      'minecraft:purple_shulker_box',
      'minecraft:blue_shulker_box',
      'minecraft:brown_shulker_box',
      'minecraft:green_shulker_box',
      'minecraft:red_shulker_box',
      'minecraft:black_shulker_box',
   ])

   //======= Banner Patterns =======
   e.add('misctags:banner/patterns', [
      'minecraft:flower_banner_pattern',
      'minecraft:creeper_banner_pattern',
      'minecraft:skull_banner_pattern',
      'minecraft:mojang_banner_pattern',
      'minecraft:globe_banner_pattern',
      'minecraft:piglin_banner_pattern',
      'alexsmobs:banner_pattern_bear',
      'alexsmobs:banner_pattern_australia_0',
      'alexsmobs:banner_pattern_australia_1',
      'alexsmobs:banner_pattern_new_mexico',
      'alexsmobs:banner_pattern_brazil',
      'immersiveengineering:bannerpattern_hammer',
      'immersiveengineering:bannerpattern_bevels',
      'immersiveengineering:bannerpattern_ornate',
      'immersiveengineering:bannerpattern_treated_wood',
      'immersiveengineering:bannerpattern_windmill',
      'immersiveengineering:bannerpattern_wolf_r',
      'immersiveengineering:bannerpattern_wolf_l',
      'immersiveengineering:bannerpattern_wolf',
      'twilightforest:naga_banner_pattern',
      'twilightforest:lich_banner_pattern',
      'twilightforest:minoshroom_banner_pattern',
      'twilightforest:hydra_banner_pattern',
      'twilightforest:knight_phantom_banner_pattern',
      'twilightforest:ur_ghast_banner_pattern',
      'twilightforest:alpha_yeti_banner_pattern',
      'twilightforest:snow_queen_banner_pattern',
      'twilightforest:quest_ram_banner_pattern',
   ])

   //======= Salt fixes =======
   
   //======= Mekanism =======
   e.add('forge:storage_blocks', 'mekanism:block_salt')
   e.add('minecolonies:storage_blocks', 'mekanism:block_salt')
   e.add('forge:storage_blocks/salt', 'mekanism:block_salt')

})

//======= BLOCK =======
ServerEvents.tags('block', e => {

   e.add('buildinggadgets:blacklist/generic', '#forge:relocation_not_supported')
   e.add('forge:relocation_not_supported', [
      'minecraft:beehive',
      'minecraft:bee_nest',
      '@waystones'
   ])
   e.add('entangled:invalid_targets', [
      '@ae2',
      '@refinedstorage',
      '@extrastorage'
   ])

  e.add('minecraft:beacon_base_blocks', [
    'allthemodium:vibranium_allthemodium_alloy_block',
    'allthemodium:unobtainium_allthemodium_alloy_block',
    'allthemodium:unobtainium_vibranium_alloy_block'
  ])

})

//======= FLUID =======
ServerEvents.tags('fluid', e => {

   e.remove('minecraft:water', [
      'createaddition:flowing_seed_oil', 'createaddition:seed_oil'
   ])

})

//======= ENTITY =======
ServerEvents.tags('entity_type', e => {

   e.add('kubejs:mob_blacklist', ['allthemodium:piglich', 'artifacts:mimic', 'minecraft:iron_golem'])
   e.add('industrialforegoing:mob_duplicator_blacklist', '#kubejs:mob_blacklist')
   e.add('ars_nouveau:drygmy_blacklist', 'artifacts:mimic')

})

//======= WORLDGEN / BIOME =======
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'
  ])

})