package net.t2code.commandguiv2.Spigot.config.config; import net.t2code.commandguiv2.Spigot.Main; import net.t2code.commandguiv2.Util; import net.t2code.t2codelib.SPIGOT.api.items.T2CitemVersion; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion; import net.t2code.t2codelib.SPIGOT.api.yaml.T2Cconfig; import org.bukkit.Material; import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ConfigCreate { public static void configCreate() { long long_ = System.currentTimeMillis(); if (new File(Main.getPath(), "config.yml").exists()) { if (Main.getPlugin().getConfig().getBoolean("Plugin.Debug")) T2Csend.console(Util.getPrefix() + " §5DEBUG: §6" + " §4config.yml are created / updated..."); } else T2Csend.console(Util.getPrefix() + " §4config.yml are created..."); File config = new File(Main.getPath(), "config.yml"); YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); if (!config.exists()) T2Cconfig.set("ConfigVersion", Util.getConfigVersion(), yamlConfiguration); T2Cconfig.set("Plugin.Debug", false, yamlConfiguration); T2Cconfig.set("Plugin.updateCheck.onJoin", true, yamlConfiguration); T2Cconfig.set("Plugin.updateCheck.seePreReleaseUpdates", true, yamlConfiguration); T2Cconfig.set("Plugin.updateCheck.timeInterval", 60, yamlConfiguration); T2Cconfig.set("Plugin.HelpAlias", true, yamlConfiguration); T2Cconfig.set("Plugin.AdminSubCommand", "admin", yamlConfiguration); T2Cconfig.set("Plugin.language", "english", yamlConfiguration); T2Cconfig.set("Plugin.Currency", "$", yamlConfiguration); T2Cconfig.set("Plugin.DefaultGUI", "default", yamlConfiguration); if (Main.legacy){ T2Cconfig.set("Storage.Type", "YML", yamlConfiguration); } else T2Cconfig.set("Storage.Type", "SQLITE", yamlConfiguration); T2Cconfig.set("Storage.MySQL.IP", "localhost", yamlConfiguration); T2Cconfig.set("Storage.MySQL.Port", 3306, yamlConfiguration); T2Cconfig.set("Storage.MySQL.Database", "database", yamlConfiguration); T2Cconfig.set("Storage.MySQL.User", "root", yamlConfiguration); T2Cconfig.set("Storage.MySQL.Password", "password", yamlConfiguration); T2Cconfig.set("Storage.MySQL.SSL", false, yamlConfiguration); T2Cconfig.set("UseItem.Enable", true, yamlConfiguration); T2Cconfig.set("UseItem.AllowToggle", true, yamlConfiguration); T2Cconfig.set("UseItem.AllowSetSlot", true, yamlConfiguration); T2Cconfig.set("UseItem.BlockMoveAndDrop", true, yamlConfiguration); T2Cconfig.set("UseItem.OpenGUI", "default", yamlConfiguration); T2Cconfig.set("UseItem.Permission.NeededToUse", true, yamlConfiguration); T2Cconfig.set("UseItem.KeepAtCommandClear", true, yamlConfiguration); T2Cconfig.set("UseItem.InventorySlot.Slot", 1, yamlConfiguration); T2Cconfig.set("UseItem.InventorySlot.SlotEnforce", false, yamlConfiguration); T2Cconfig.set("UseItem.InventorySlot.FreeSlot", false, yamlConfiguration); T2Cconfig.set("UseItem.Item.Material", "paper", yamlConfiguration); if (!(T2CmcVersion.isMc1_8() || T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12())) { T2Cconfig.set("UseItem.Item.PlayerHead.Enable", false, yamlConfiguration); T2Cconfig.set("UseItem.Item.PlayerHead.Base64.Enable", false, yamlConfiguration); T2Cconfig.set("UseItem.Item.PlayerHead.Base64.Base64Value", "", yamlConfiguration); T2Cconfig.set("UseItem.Item.PlayerHead.PlayerWhoHasOpenedTheGUI", false, yamlConfiguration); T2Cconfig.set("UseItem.Item.PlayerHead.Playername", "", yamlConfiguration); } T2Cconfig.set("UseItem.Item.Name", "&bDefault &6GUI", yamlConfiguration); T2Cconfig.set("UseItem.Item.Lore", Arrays.asList("&eThis is an example GUI"), yamlConfiguration); T2Cconfig.set("UseItem.Join.GiveOnEveryJoin", true, yamlConfiguration); T2Cconfig.set("UseItem.Join.GiveOnlyOnFirstJoin", false, yamlConfiguration); //convert if (yamlConfiguration.contains("UseItem.Join.Cursor.ToGUIItem.OnEveryLogin")) { T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.OnEveryLogin", yamlConfiguration); T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.OnLogin.Enable", yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.OnEveryLogin"), yamlConfiguration); } if (yamlConfiguration.contains("UseItem.Join.Cursor.ToGUIItem.OnOnlyFirstLogin")) { T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.OnOnlyFirstLogin", yamlConfiguration); T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.Spigot.OnOnlyFirstLogin", yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.OnOnlyFirstLogin"), yamlConfiguration); } if (yamlConfiguration.contains("UseItem.Join.Cursor.ToGUIItem.EXPERIMENTELL_ServerChange")) { T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.EXPERIMENTELL_ServerChange", yamlConfiguration); T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.Bungee.OnServerChange", yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.EXPERIMENTELL_ServerChange"), yamlConfiguration); } T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.OnLogin.Enable", true, yamlConfiguration); T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.Spigot.OnOnlyFirstLogin", true, yamlConfiguration); T2Cconfig.set("UseItem.Join.Cursor.ToGUIItem.Bungee.OnServerChange", false, yamlConfiguration); T2Cconfig.set("Toggle.Items.OnOrYes.Item.Base64.Enable", false, yamlConfiguration); T2Cconfig.set("Toggle.Items.OnOrYes.Item.Base64.Base64Value", "", yamlConfiguration); if (Main.legacy) { T2Cconfig.set("Toggle.Items.OnOrYes.Item.Material", "WOOL,5", yamlConfiguration); } else T2Cconfig.set("Toggle.Items.OnOrYes.Item.Material", T2CitemVersion.getGreenWool().getType().toString(), yamlConfiguration); T2Cconfig.set("Toggle.Items.OffOrNo.Item.Base64.Enable", false, yamlConfiguration); T2Cconfig.set("Toggle.Items.OffOrNo.Item.Base64.Base64Value", "", yamlConfiguration); if (Main.legacy) { T2Cconfig.set("Toggle.Items.OffOrNo.Item.Material", "WOOL,14", yamlConfiguration); } else T2Cconfig.set("Toggle.Items.OffOrNo.Item.Material", T2CitemVersion.getRedWool().getType().toString(), yamlConfiguration); T2Cconfig.set("Toggle.Permission.Commands.True", "luckperms user [player] permission set [perm] true", yamlConfiguration); T2Cconfig.set("Toggle.Permission.Commands.False", "luckperms user [player] permission set [perm] false", yamlConfiguration); T2Cconfig.set("Placeholder.True", "&2true", yamlConfiguration); T2Cconfig.set("Placeholder.False", "&4false", yamlConfiguration); T2Cconfig.set("Sound.Enable", true, yamlConfiguration); T2Cconfig.set("Sound.OpenInventory.Enable", true, yamlConfiguration); if (T2CmcVersion.isMc1_8()) { T2Cconfig.set("Sound.OpenInventory.Sound", "CHEST_OPEN", yamlConfiguration); } else T2Cconfig.set("Sound.OpenInventory.Sound", "BLOCK_CHEST_OPEN", yamlConfiguration); T2Cconfig.set("Sound.Click.Enable", true, yamlConfiguration); if (T2CmcVersion.isMc1_8()) { T2Cconfig.set("Sound.Click.Sound", "NOTE_STICKS", yamlConfiguration); } else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) { T2Cconfig.set("Sound.Click.Sound", "BLOCK_NOTE_HAT", yamlConfiguration); } else T2Cconfig.set("Sound.Click.Sound", "BLOCK_NOTE_BLOCK_HAT", yamlConfiguration); T2Cconfig.set("Sound.NoMoney.Enable", true, yamlConfiguration); if (T2CmcVersion.isMc1_8()) { T2Cconfig.set("Sound.NoMoney.Sound", "NOTE_PIANO", yamlConfiguration); } else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) { T2Cconfig.set("Sound.NoMoney.Sound", "BLOCK_NOTE_HARP", yamlConfiguration); } else T2Cconfig.set("Sound.NoMoney.Sound", "BLOCK_NOTE_BLOCK_HARP", yamlConfiguration); T2Cconfig.set("Sound.NoInventorySpace.Enable", true, yamlConfiguration); if (T2CmcVersion.isMc1_8()) { T2Cconfig.set("Sound.NoInventorySpace.Sound", "NOTE_PIANO", yamlConfiguration); } else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) { T2Cconfig.set("Sound.NoInventorySpace.Sound", "BLOCK_NOTE_HARP", yamlConfiguration); } else T2Cconfig.set("Sound.NoInventorySpace.Sound", "BLOCK_NOTE_BLOCK_HARP", yamlConfiguration); T2Cconfig.set("Sound.Give.Enable", true, yamlConfiguration); if (T2CmcVersion.isMc1_8()) { T2Cconfig.set("Sound.Give.Sound", "LEVEL_UP", yamlConfiguration); } else T2Cconfig.set("Sound.Give.Sound", "ENTITY_PLAYER_LEVELUP", yamlConfiguration); T2Cconfig.set("Sound.PlayerNotFound.Enable", true, yamlConfiguration); if (T2CmcVersion.isMc1_8()) { T2Cconfig.set("Sound.PlayerNotFound.Sound", "NOTE_PIANO", yamlConfiguration); } else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) { T2Cconfig.set("Sound.PlayerNotFound.Sound", "BLOCK_NOTE_HARP", yamlConfiguration); } else T2Cconfig.set("Sound.PlayerNotFound.Sound", "BLOCK_NOTE_BLOCK_HARP", yamlConfiguration); T2Cconfig.set("Advanced.UseItem.GameMode.Change.Enable", true, yamlConfiguration); T2Cconfig.set("Advanced.UseItem.GameMode.Change.DelayInTicks", 1, yamlConfiguration); T2Cconfig.set("Advanced.UseItem.GameMode.Protection.Enable", false, yamlConfiguration); T2Cconfig.set("Advanced.UseItem.GameMode.Protection.RemoveItemWhenItIsDisabled", false, yamlConfiguration); T2Cconfig.set("Advanced.UseItem.GameMode.Protection.Mode", "blacklist", yamlConfiguration); T2Cconfig.set("Advanced.UseItem.GameMode.Protection.List", Arrays.asList("CREATIVE", "Spectator"), yamlConfiguration); T2Cconfig.set("Advanced.UseItem.World.Change.Enable", true, yamlConfiguration); T2Cconfig.set("Advanced.UseItem.World.Change.DelayInTicks", 1, yamlConfiguration); T2Cconfig.set("Advanced.UseItem.World.Protection.Enable", false, yamlConfiguration); T2Cconfig.set("Advanced.UseItem.World.Protection.RemoveItemWhenItIsDisabled", false, yamlConfiguration); T2Cconfig.set("Advanced.UseItem.World.Protection.Mode", "blacklist", yamlConfiguration); T2Cconfig.set("Advanced.UseItem.World.Protection.List", Arrays.asList("World1", "World2"), yamlConfiguration); if (!yamlConfiguration.contains("Advanced.UseItem.ItemBlockBlacklist")) { List materialList = Arrays.asList("BUTTON", "DOOR", "FENCE", "CHEST", "FURNACE", "NOTE_BLOCK", "CRAFTING_TABLE", "WORKBENCH", "ANVIL", "LOOM", "COMPOSTER", "BARREL", "SMOKER", "BLAST_FURNACE", "CARTOGRAPHY_TABLE", "FLETCHING_TABLE", "GRINDSTONE", "SMITHING_TABLE", "STONECUTTER", "HOPPER", "DISPENSER", "DROPPER", "REPEATER", "COMPARATOR", "LEVER", "DAYLIGHT_DETECTOR", "BREWING_STAND", "TRAPDOOR", "BEACON" ); List materialBlacklist = new ArrayList<>(); for (Material material : Material.values()) { for (String target : materialList) { if (material.toString().contains(target)) materialBlacklist.add(material.toString()); } } T2Cconfig.set("Advanced.UseItem.ItemBlockBlacklist", materialBlacklist, yamlConfiguration); } try { yamlConfiguration.save(config); } catch (IOException e) { e.printStackTrace(); } T2Csend.console(Util.getPrefix() + " §2config.yml were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); } }