2016-04-14 16:24:03 +00:00
package me.mrCookieSlime.Slimefun.Setup ;
import java.util.ArrayList ;
import java.util.Iterator ;
import java.util.List ;
2019-08-31 15:52:20 +00:00
import java.util.logging.Level ;
2019-08-29 08:26:36 +00:00
import java.util.stream.Stream ;
2016-04-14 16:24:03 +00:00
2016-12-05 18:39:58 +00:00
import org.bukkit.Bukkit ;
import org.bukkit.ChatColor ;
import org.bukkit.Material ;
import org.bukkit.World ;
import org.bukkit.command.CommandSender ;
2019-08-30 09:15:26 +00:00
import org.bukkit.enchantments.Enchantment ;
2016-12-05 18:39:58 +00:00
import org.bukkit.inventory.ItemStack ;
2016-04-14 16:24:03 +00:00
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItemSerializer ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItemSerializer.ItemFlag ;
2019-08-31 09:36:45 +00:00
import me.mrCookieSlime.Slimefun.SlimefunPlugin ;
2016-04-14 16:24:03 +00:00
import me.mrCookieSlime.Slimefun.Lists.RecipeType ;
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems ;
import me.mrCookieSlime.Slimefun.Objects.Research ;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Alloy ;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ReplacingAlloy ;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem ;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine ;
2019-08-31 11:40:20 +00:00
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.AutomatedCraftingChamber ;
2016-04-14 16:24:03 +00:00
import me.mrCookieSlime.Slimefun.api.Slimefun ;
import me.mrCookieSlime.Slimefun.api.SlimefunRecipes ;
2019-08-29 08:26:36 +00:00
import me.mrCookieSlime.Slimefun.utils.Settings ;
2016-04-14 16:24:03 +00:00
2019-08-27 21:08:13 +00:00
public final class MiscSetup {
private MiscSetup ( ) { }
2016-04-14 16:24:03 +00:00
public static void setupMisc ( ) {
2017-10-13 14:34:38 +00:00
if ( SlimefunItem . getByID ( " COMMON_TALISMAN " ) ! = null & & ( Boolean ) Slimefun . getItemValue ( " COMMON_TALISMAN " , " recipe-requires-nether-stars " ) ) {
SlimefunItem . getByID ( " COMMON_TALISMAN " ) . setRecipe ( new ItemStack [ ] { SlimefunItems . MAGIC_LUMP_2 , SlimefunItems . GOLD_8K , SlimefunItems . MAGIC_LUMP_2 , null , new ItemStack ( Material . NETHER_STAR ) , null , SlimefunItems . MAGIC_LUMP_2 , SlimefunItems . GOLD_8K , SlimefunItems . MAGIC_LUMP_2 } ) ;
2016-04-14 16:24:03 +00:00
}
2019-08-29 08:26:36 +00:00
2016-04-14 16:24:03 +00:00
SlimefunItem . setRadioactive ( SlimefunItems . URANIUM ) ;
SlimefunItem . setRadioactive ( SlimefunItems . SMALL_URANIUM ) ;
SlimefunItem . setRadioactive ( SlimefunItems . BLISTERING_INGOT ) ;
SlimefunItem . setRadioactive ( SlimefunItems . BLISTERING_INGOT_2 ) ;
SlimefunItem . setRadioactive ( SlimefunItems . BLISTERING_INGOT_3 ) ;
2016-11-28 18:57:57 +00:00
SlimefunItem . setRadioactive ( SlimefunItems . NETHER_ICE ) ;
2016-11-27 18:34:45 +00:00
SlimefunItem . setRadioactive ( SlimefunItems . ENRICHED_NETHER_ICE ) ;
2016-04-14 16:24:03 +00:00
}
2019-08-29 08:26:36 +00:00
public static void loadItems ( Settings settings ) {
2019-09-04 17:42:17 +00:00
Iterator < SlimefunItem > iterator = SlimefunItem . list ( ) . iterator ( ) ;
2016-04-14 16:24:03 +00:00
while ( iterator . hasNext ( ) ) {
SlimefunItem item = iterator . next ( ) ;
if ( item = = null ) {
2019-08-31 15:52:20 +00:00
Slimefun . getLogger ( ) . log ( Level . WARNING , " Removed bugged Item ('NULL?') " ) ;
2016-04-14 16:24:03 +00:00
iterator . remove ( ) ;
}
else if ( item . getItem ( ) = = null ) {
2019-08-31 15:52:20 +00:00
Slimefun . getLogger ( ) . log ( Level . WARNING , " Removed bugged Item (' " + item . getID ( ) + " ') " ) ;
2016-04-14 16:24:03 +00:00
iterator . remove ( ) ;
}
}
2019-06-20 08:12:34 +00:00
List < SlimefunItem > pre = new ArrayList < > ( ) ;
List < SlimefunItem > init = new ArrayList < > ( ) ;
List < SlimefunItem > post = new ArrayList < > ( ) ;
2016-04-14 16:24:03 +00:00
for ( SlimefunItem item : SlimefunItem . list ( ) ) {
if ( item instanceof Alloy | | item instanceof ReplacingAlloy ) pre . add ( item ) ;
else if ( item instanceof SlimefunMachine ) init . add ( item ) ;
else post . add ( item ) ;
}
for ( SlimefunItem item : pre ) {
item . load ( ) ;
}
for ( SlimefunItem item : init ) {
item . load ( ) ;
}
for ( SlimefunItem item : post ) {
item . load ( ) ;
}
2017-10-13 14:34:38 +00:00
AutomatedCraftingChamber crafter = ( AutomatedCraftingChamber ) SlimefunItem . getByID ( " AUTOMATED_CRAFTING_CHAMBER " ) ;
2016-04-14 16:24:03 +00:00
if ( crafter ! = null ) {
// Iterator<Recipe> recipes = Bukkit.recipeIterator();
//
// while (recipes.hasNext()) {
// Recipe r = recipes.next();
// boolean allow = true;
// if (Bukkit.getPluginManager().isPluginEnabled("SensibleToolbox")) {
// BaseSTBItem item = SensibleToolbox.getItemRegistry().fromItemStack(r.getResult());
// allow = item == null;
// }
//
// if (allow) {
// if (r instanceof ShapedRecipe) {
//
// }
// else if (r instanceof ShapelessRecipe) {
//
// }
// }
// }
2019-06-11 10:45:50 +00:00
SlimefunMachine machine = ( SlimefunMachine ) SlimefunItem . getByID ( " ENHANCED_CRAFTING_TABLE " ) ;
for ( ItemStack [ ] inputs : RecipeType . getRecipeInputList ( machine ) ) {
2016-04-14 16:24:03 +00:00
StringBuilder builder = new StringBuilder ( ) ;
int i = 0 ;
for ( ItemStack item : inputs ) {
if ( i > 0 ) {
builder . append ( " </slot> " ) ;
}
2019-06-11 10:45:50 +00:00
builder . append ( CustomItemSerializer . serialize ( item , ItemFlag . MATERIAL , ItemFlag . ITEMMETA_DISPLAY_NAME , ItemFlag . ITEMMETA_LORE ) ) ;
2016-04-14 16:24:03 +00:00
i + + ;
}
2019-09-02 07:56:35 +00:00
SlimefunPlugin . getUtilities ( ) . automatedCraftingChamberRecipes . put ( builder . toString ( ) , RecipeType . getRecipeOutputList ( machine , inputs ) ) ;
2016-04-14 16:24:03 +00:00
}
}
2019-08-30 20:49:18 +00:00
List < ItemStack [ ] > grinderRecipes = new ArrayList < > ( ) ;
2019-08-27 11:09:30 +00:00
2017-10-13 14:34:38 +00:00
SlimefunItem grinder = SlimefunItem . getByID ( " GRIND_STONE " ) ;
2016-04-14 16:24:03 +00:00
if ( grinder ! = null ) {
ItemStack [ ] input = null ;
for ( ItemStack [ ] recipe : ( ( SlimefunMachine ) grinder ) . getRecipes ( ) ) {
if ( input = = null ) input = recipe ;
else {
if ( input [ 0 ] ! = null & & recipe [ 0 ] ! = null ) {
2019-08-30 20:49:18 +00:00
grinderRecipes . add ( new ItemStack [ ] { input [ 0 ] , recipe [ 0 ] } ) ;
2016-04-14 16:24:03 +00:00
}
input = null ;
}
}
}
2017-10-13 14:34:38 +00:00
SlimefunItem crusher = SlimefunItem . getByID ( " ORE_CRUSHER " ) ;
2016-04-14 16:24:03 +00:00
if ( crusher ! = null ) {
ItemStack [ ] input = null ;
for ( ItemStack [ ] recipe : ( ( SlimefunMachine ) crusher ) . getRecipes ( ) ) {
if ( input = = null ) input = recipe ;
else {
if ( input [ 0 ] ! = null & & recipe [ 0 ] ! = null ) {
2019-08-30 20:49:18 +00:00
grinderRecipes . add ( new ItemStack [ ] { input [ 0 ] , recipe [ 0 ] } ) ;
2016-04-14 16:24:03 +00:00
}
input = null ;
}
}
}
2019-08-27 11:09:30 +00:00
// Favour 8 Cobblestone -> 1 Sand Recipe over 1 Cobblestone -> 1 Gravel Recipe
2019-08-30 20:49:18 +00:00
Stream < ItemStack [ ] > stream = grinderRecipes . stream ( ) ;
2019-08-29 08:26:36 +00:00
2019-08-30 21:21:34 +00:00
if ( ! settings . legacyOreGrinder ) {
2019-08-29 08:26:36 +00:00
stream = stream . sorted ( ( a , b ) - > Integer . compare ( b [ 0 ] . getAmount ( ) , a [ 0 ] . getAmount ( ) ) ) ;
}
stream . forEach ( recipe - > SlimefunRecipes . registerMachineRecipe ( " ELECTRIC_ORE_GRINDER " , 4 , new ItemStack [ ] { recipe [ 0 ] } , new ItemStack [ ] { recipe [ 1 ] } ) ) ;
2017-10-13 14:34:38 +00:00
SlimefunItem smeltery = SlimefunItem . getByID ( " SMELTERY " ) ;
2016-04-14 16:24:03 +00:00
if ( smeltery ! = null ) {
ItemStack [ ] input = null ;
for ( ItemStack [ ] recipe : ( ( SlimefunMachine ) smeltery ) . getRecipes ( ) ) {
if ( input = = null ) input = recipe ;
else {
if ( input [ 0 ] ! = null & & recipe [ 0 ] ! = null ) {
2019-06-20 08:12:34 +00:00
List < ItemStack > inputs = new ArrayList < > ( ) ;
2016-04-14 16:24:03 +00:00
boolean dust = false ;
2019-08-27 11:09:30 +00:00
2016-04-14 16:24:03 +00:00
for ( ItemStack i : input ) {
if ( i ! = null ) {
inputs . add ( i ) ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . ALUMINUM_DUST , true ) ) dust = true ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . COPPER_DUST , true ) ) dust = true ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . GOLD_DUST , true ) ) dust = true ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . IRON_DUST , true ) ) dust = true ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . LEAD_DUST , true ) ) dust = true ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . MAGNESIUM_DUST , true ) ) dust = true ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . SILVER_DUST , true ) ) dust = true ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . TIN_DUST , true ) ) dust = true ;
if ( SlimefunManager . isItemSimiliar ( i , SlimefunItems . ZINC_DUST , true ) ) dust = true ;
}
}
2019-08-27 11:09:30 +00:00
// We want to exclude Dust to Ingot Recipes
if ( ! ( dust & & inputs . size ( ) = = 1 ) ) {
2016-04-14 16:24:03 +00:00
SlimefunRecipes . registerMachineRecipe ( " ELECTRIC_SMELTERY " , 12 , inputs . toArray ( new ItemStack [ inputs . size ( ) ] ) , new ItemStack [ ] { recipe [ 0 ] } ) ;
}
}
2019-08-27 11:09:30 +00:00
2016-04-14 16:24:03 +00:00
input = null ;
}
}
}
CommandSender sender = Bukkit . getConsoleSender ( ) ;
2016-12-05 18:39:58 +00:00
2019-08-31 09:36:45 +00:00
for ( PostSlimefunLoadingHandler handler : SlimefunPlugin . getUtilities ( ) . postHandlers ) {
2016-12-05 18:39:58 +00:00
handler . run ( pre , init , post ) ;
}
2019-10-01 00:57:58 +00:00
sender . sendMessage ( ChatColor . GREEN + " ###################### - Slimefun - ###################### " ) ;
sender . sendMessage ( ChatColor . GREEN + " Successfully loaded " + SlimefunItem . list ( ) . size ( ) + " Items ( " + Research . list ( ) . size ( ) + " Researches) " ) ;
sender . sendMessage ( ChatColor . GREEN + " ( " + SlimefunPlugin . getUtilities ( ) . vanillaItems + " Items from Slimefun, " + ( SlimefunItem . list ( ) . size ( ) - SlimefunPlugin . getUtilities ( ) . vanillaItems ) + " Items from Addons ) " ) ;
sender . sendMessage ( ChatColor . GREEN + " ########################################################## " ) ;
2019-08-31 09:36:45 +00:00
SlimefunPlugin . getItemCfg ( ) . save ( ) ;
SlimefunPlugin . getResearchCfg ( ) . save ( ) ;
SlimefunPlugin . getWhitelist ( ) . save ( ) ;
2016-04-14 16:24:03 +00:00
}
public static void setupItemSettings ( ) {
for ( World world : Bukkit . getWorlds ( ) ) {
2019-08-31 09:36:45 +00:00
SlimefunPlugin . getWhitelist ( ) . setDefaultValue ( world . getName ( ) + " .enabled-items.SLIMEFUN_GUIDE " , true ) ;
2016-04-14 16:24:03 +00:00
}
2019-08-30 09:15:26 +00:00
2016-04-14 16:24:03 +00:00
Slimefun . setItemVariable ( " ORE_CRUSHER " , " double-ores " , true ) ;
2019-08-30 09:15:26 +00:00
for ( Enchantment e : Enchantment . values ( ) ) {
for ( int i = 1 ; i < = e . getMaxLevel ( ) ; i + + ) {
Slimefun . setItemVariable ( " MAGICIAN_TALISMAN " , " allow-enchantments. " + e . getKey ( ) . getKey ( ) + " .level. " + i , true ) ;
}
}
2016-04-14 16:24:03 +00:00
}
public static void loadDescriptions ( ) {
Slimefun . addYoutubeVideo ( " ANCIENT_ALTAR " , " https://youtu.be/mx2Y5DP8uZI " ) ;
Slimefun . addYoutubeVideo ( " ANCIENT_PEDESTAL " , " https://youtu.be/mx2Y5DP8uZI " ) ;
Slimefun . addYoutubeVideo ( " BLISTERING_INGOT " , " https://youtu.be/mPhKUv4JR_Y " ) ;
Slimefun . addYoutubeVideo ( " BLISTERING_INGOT_2 " , " https://youtu.be/mPhKUv4JR_Y " ) ;
Slimefun . addYoutubeVideo ( " BLISTERING_INGOT_3 " , " https://youtu.be/mPhKUv4JR_Y " ) ;
Slimefun . addYoutubeVideo ( " INFERNAL_BONEMEAL " , " https://youtu.be/gKxWqMlJDXY " ) ;
Slimefun . addYoutubeVideo ( " RAINBOW_WOOL " , " https://youtu.be/csvb0CxofdA " ) ;
Slimefun . addYoutubeVideo ( " RAINBOW_GLASS " , " https://youtu.be/csvb0CxofdA " ) ;
Slimefun . addYoutubeVideo ( " RAINBOW_CLAY " , " https://youtu.be/csvb0CxofdA " ) ;
Slimefun . addYoutubeVideo ( " RAINBOW_GLASS_PANE " , " https://youtu.be/csvb0CxofdA " ) ;
Slimefun . addYoutubeVideo ( " RAINBOW_WOOL_XMAS " , " https://youtu.be/l4pKk4SDE " ) ;
Slimefun . addYoutubeVideo ( " RAINBOW_GLASS_XMAS " , " https://youtu.be/l4pKk4SDE " ) ;
Slimefun . addYoutubeVideo ( " RAINBOW_CLAY_XMAS " , " https://youtu.be/l4pKk4SDE " ) ;
Slimefun . addYoutubeVideo ( " RAINBOW_GLASS_PANE_XMAS " , " https://youtu.be/l4pKk4SDE " ) ;
Slimefun . addYoutubeVideo ( " OIL_PUMP " , " https://youtu.be/_XmJ6hrv9uY " ) ;
Slimefun . addYoutubeVideo ( " GPS_GEO_SCANNER " , " https://youtu.be/_XmJ6hrv9uY " ) ;
Slimefun . addYoutubeVideo ( " REFINERY " , " https://youtu.be/_XmJ6hrv9uY " ) ;
Slimefun . addYoutubeVideo ( " BUCKET_OF_OIL " , " https://youtu.be/_XmJ6hrv9uY " ) ;
Slimefun . addYoutubeVideo ( " BUCKET_OF_FUEL " , " https://youtu.be/_XmJ6hrv9uY " ) ;
Slimefun . addYoutubeVideo ( " GPS_TELEPORTER_PYLON " , " https://youtu.be/ZnEhG8Kw6zU " ) ;
Slimefun . addYoutubeVideo ( " GPS_TELEPORTATION_MATRIX " , " https://youtu.be/ZnEhG8Kw6zU " ) ;
Slimefun . addYoutubeVideo ( " GPS_TELEPORTER_PYLON " , " https://youtu.be/ZnEhG8Kw6zU " ) ;
Slimefun . addYoutubeVideo ( " PROGRAMMABLE_ANDROID_WOODCUTTER " , " https://youtu.be/AGLsWSMs6A0 " ) ;
Slimefun . addYoutubeVideo ( " PROGRAMMABLE_ANDROID_BUTCHER " , " https://youtu.be/G-re3qV-LJQ " ) ;
Slimefun . addYoutubeVideo ( " PROGRAMMABLE_ANDROID_2_BUTCHER " , " https://youtu.be/G-re3qV-LJQ " ) ;
Slimefun . addYoutubeVideo ( " INFUSED_HOPPER " , " https://youtu.be/_H2HGwkfBh8 " ) ;
Slimefun . addYoutubeVideo ( " ELEVATOR_PLATE " , " https://youtu.be/OdKMjo6vNIs " ) ;
Slimefun . addYoutubeVideo ( " ENERGY_REGULATOR " , " https://youtu.be/QvSUfBYagXk " ) ;
Slimefun . addYoutubeVideo ( " COMBUSTION_REACTOR " , " https://youtu.be/QvSUfBYagXk " ) ;
Slimefun . addYoutubeVideo ( " MULTIMETER " , " https://youtu.be/QvSUfBYagXk " ) ;
Slimefun . addYoutubeVideo ( " FOOD_FABRICATOR " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " AUTO_BREEDER " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " ORGANIC_FOOD_MELON " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " ORGANIC_FOOD_WHEAT " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " ORGANIC_FOOD_APPLE " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " ORGANIC_FOOD_CARROT " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " ORGANIC_FOOD_SEEDS " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " ORGANIC_FOOD_BEETROOT " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " ORGANIC_FOOD_POTATO " , " https://youtu.be/qJdFfvTGOmI " ) ;
Slimefun . addYoutubeVideo ( " ANIMAL_GROWTH_ACCELERATOR " , " https://youtu.be/bV4wEaSxXFw " ) ;
Slimefun . addYoutubeVideo ( " FOOD_COMPOSTER " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " FERTILIZER_WHEAT " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " FERTILIZER_APPLE " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " FERTILIZER_POTATO " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " FERTILIZER_CARROT " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " FERTILIZER_SEEDS " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " FERTILIZER_BEETROOT " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " FERTILIZER_MELON " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " CROP_GROWTH_ACCELERATOR " , " https://youtu.be/LjzUlFKAHCI " ) ;
Slimefun . addYoutubeVideo ( " XP_COLLECTOR " , " https://youtu.be/fHtJDPeLMlg " ) ;
Slimefun . addYoutubeVideo ( " ELECTRIC_ORE_GRINDER " , " https://youtu.be/A6OuK7sfnaI " ) ;
Slimefun . addYoutubeVideo ( " ELECTRIC_GOLD_PAN " , " https://youtu.be/A6OuK7sfnaI " ) ;
Slimefun . addYoutubeVideo ( " ELECTRIC_DUST_WASHER " , " https://youtu.be/A6OuK7sfnaI " ) ;
Slimefun . addYoutubeVideo ( " ELECTRIC_INGOT_FACTORY " , " https://youtu.be/A6OuK7sfnaI " ) ;
Slimefun . addYoutubeVideo ( " AUTOMATED_CRAFTING_CHAMBER " , " https://youtu.be/FZj7nu9sOYA " ) ;
Slimefun . addYoutubeVideo ( " CARGO_MANAGER " , " https://youtu.be/Lt2aGw5lQPI " ) ;
Slimefun . addYoutubeVideo ( " CARGO_NODE_INPUT " , " https://youtu.be/Lt2aGw5lQPI " ) ;
Slimefun . addYoutubeVideo ( " CARGO_NODE_OUTPUT " , " https://youtu.be/Lt2aGw5lQPI " ) ;
Slimefun . addYoutubeVideo ( " GPS_CONTROL_PANEL " , " https://youtu.be/kOopBkiRzjs " ) ;
Slimefun . addYoutubeVideo ( " GPS_TRANSMITTER " , " https://youtu.be/kOopBkiRzjs " ) ;
Slimefun . addYoutubeVideo ( " GPS_TRANSMITTER_2 " , " https://youtu.be/kOopBkiRzjs " ) ;
Slimefun . addYoutubeVideo ( " GPS_TRANSMITTER_3 " , " https://youtu.be/kOopBkiRzjs " ) ;
Slimefun . addYoutubeVideo ( " GPS_TRANSMITTER_4 " , " https://youtu.be/kOopBkiRzjs " ) ;
Slimefun . addYoutubeVideo ( " SOLAR_GENERATOR " , " https://youtu.be/kOopBkiRzjs " ) ;
Slimefun . addYoutubeVideo ( " SOLAR_GENERATOR_2 " , " https://youtu.be/kOopBkiRzjs " ) ;
Slimefun . addYoutubeVideo ( " SOLAR_GENERATOR_3 " , " https://youtu.be/kOopBkiRzjs " ) ;
Slimefun . addYoutubeVideo ( " SOLAR_GENERATOR_4 " , " https://youtu.be/kOopBkiRzjs " ) ;
}
}