package net.t2code.commandguiv2.Spigot.config.functions; import net.t2code.commandguiv2.Spigot.Main; import net.t2code.commandguiv2.Spigot.enums.FunctionItemEnum; import net.t2code.commandguiv2.Spigot.enums.FunctionVoteEnum; import net.t2code.commandguiv2.Util; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.List; public class CreateFunctions { public static void create() { createFunction("UseItem", false, 1, false, false, "", false, "", "", "&6Toggle UseItem", Arrays.asList("&bYou currently have the UseItem set to: %commandgui_useitem%"), true, "", true, Arrays.asList("&8-----------------", "&4No Permission for this Function", "&8-----------------"), false, false, "", false, "VAULT", "DIRT;5", 0, 0.0, false, false, false, Arrays.asList(), false, "", false, "", false, "", true, true, Arrays.asList("&bYour UseItem was set to: %commandgui_useitem%&b."), false, "", "", "String", "", false, 0, 0.0, Arrays.asList(), "", false, 0, 0.0, Arrays.asList(), false, "", false, FunctionVoteEnum.ADD, 0, false, FunctionItemEnum.REMOVE, "DIRT;5"); createFunction("SupportDiscord", false, 1, true, true, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg3M2MxMmJmZmI1MjUxYTBiODhkNWFlNzVjNzI0N2NiMzlhNzVmZjFhODFjYmU0YzhhMzliMzExZGRlZGEifX19", false, "", "", "&3Support Discord", Arrays.asList("&8-----------------", "&bIf you need help setting up the plugin,", "&bfeel free to contact me on the Suport Discord.", "&8-----------------", "&eIf you find any errors or bugs,", "&eplease contact me so I can fix them.", "&8-----------------", "&5Discord: §7http://dc.t2code.net"), true, "", true, Arrays.asList("&8-----------------", "&4No Permission for this Function", "&8-----------------"), false, false, "", false, "VAULT", "DIRT;5", 0, 0.0, false, false, false, Arrays.asList(), false, "", false, "", false, "", false, true, Arrays.asList("&6You can find more information on Discord: &ehttp://dc.t2code.net"), false, "", "", "String", "", false, 0, 0.0, Arrays.asList(), "", false, 0, 0.0, Arrays.asList(), false, "", false, FunctionVoteEnum.ADD, 0, false, FunctionItemEnum.REMOVE, "DIRT;5"); } public static void createFunction(String fileName, Boolean empty, Integer itemAmount, Boolean playerHeadEnable, Boolean base64Enable, String base64Value, Boolean playerWhoHasOpenedTheGUI, String playerName, String itemMaterial, String name, List lore, Boolean noPermMessageEnable, String customNoPermMessage, Boolean noPermLoreEnable, List noPermLore, Boolean customSoundEnable, Boolean customSoundNoSound, String customSoundSound, Boolean costEnable, String ecoModule, String ecoItem, Integer ecoVotePoints, Double ecoPrice, Boolean commandEnable, Boolean commandBungeeCommand, Boolean commandAsConsole, List command, Boolean serverChange, String serverChangeServer, Boolean openGUIEnable, String openGUI, Boolean togglePermission, String togglePermissionPerm, Boolean toggleUseItem, Boolean messageEnable, List message, Boolean setConfigEnable, String configFilePath, String configOptionPath, String configOptionPremat, String configStringValueLeft, Boolean configBooleanValueLeft, Integer configIntegerValueLeft, Double configDoubleValueLeft, List configListValueLeft, String configStringValueRight, Boolean configBooleanValueRight, Integer configIntegerValueRight, Double configDoubleValueRight, List configListValueRight, Boolean pluginReloadEnable, String pluginReloadCommand, Boolean functionVotePoints, FunctionVoteEnum functionVotePointsMode, Integer functionVotePointsAmount, Boolean functionItem, FunctionItemEnum functionItemMode, String functionItemItem) { long long_ = System.currentTimeMillis(); File config = new File(Main.getPath(), "Functions/" + fileName + ".yml"); int i = 1; while (config.exists()) { config = new File(Main.getPath(), "Functions/" + fileName + "-" + i + ".yml"); i++; } T2Csend.console(Util.getPrefix() + " §4Function GUI file (Functions/" + config.getName() + ") is loaded..."); YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); set("Slots.Function.Item.Empty", empty, yamlConfiguration); set("Slots.Function.Item.Amount", itemAmount, yamlConfiguration); // if (!(MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12)) { set("Slots.Function.Item.PlayerHead.Enable", playerHeadEnable, yamlConfiguration); set("Slots.Function.Item.PlayerHead.Base64.Enable", base64Enable, yamlConfiguration); set("Slots.Function.Item.PlayerHead.Base64.Base64Value", base64Value, yamlConfiguration); set("Slots.Function.Item.PlayerHead.PlayerWhoHasOpenedTheGUI", playerWhoHasOpenedTheGUI, yamlConfiguration); set("Slots.Function.Item.PlayerHead.PlayerName", playerName, yamlConfiguration); // } set("Slots.Function.Item.Material", itemMaterial == null ? "" : itemMaterial, yamlConfiguration); set("Slots.Function.Item.Name", name == null ? "" : name, yamlConfiguration); set("Slots.Function.Item.Lore", lore, yamlConfiguration); set("Slots.Function.NoPermission.Message.Enable", noPermMessageEnable, yamlConfiguration); set("Slots.Function.NoPermission.Message.CustomNoPermMessage", customNoPermMessage, yamlConfiguration); set("Slots.Function.NoPermission.Item.Lore.Enable", noPermLoreEnable, yamlConfiguration); set("Slots.Function.NoPermission.Item.Lore.Lore", noPermLore, yamlConfiguration); set("Slots.Function.CustomSound.Enable", customSoundEnable, yamlConfiguration); set("Slots.Function.CustomSound.NoSound", customSoundNoSound, yamlConfiguration); set("Slots.Function.CustomSound.Sound", customSoundSound == null ? "" : customSoundSound, yamlConfiguration); set("Slots.Function.Cost.Enable", costEnable, yamlConfiguration); set("Slots.Function.Cost.EcoModule", ecoModule, yamlConfiguration); set("Slots.Function.Cost.Item", ecoItem, yamlConfiguration); set("Slots.Function.Cost.VotePoints", ecoVotePoints, yamlConfiguration); set("Slots.Function.Cost.Price", ecoPrice, yamlConfiguration); set("Slots.Function.Command.Enable", commandEnable, yamlConfiguration); set("Slots.Function.Command.BungeeCommand", commandBungeeCommand, yamlConfiguration); set("Slots.Function.Command.CommandAsConsole", commandAsConsole, yamlConfiguration); set("Slots.Function.Command.Command", command, yamlConfiguration); set("Slots.Function.ServerChange.Enable", serverChange, yamlConfiguration); set("Slots.Function.ServerChange.Server", serverChangeServer == null ? "" : serverChangeServer, yamlConfiguration); set("Slots.Function.OpenGUI.Enable", openGUIEnable, yamlConfiguration); set("Slots.Function.OpenGUI.GUI", openGUI == null ? "" : openGUI, yamlConfiguration); set("Slots.Function.Toggle.Permission.Enable", togglePermission, yamlConfiguration); set("Slots.Function.Toggle.Permission.Permission", togglePermissionPerm == null ? "" : togglePermissionPerm, yamlConfiguration); set("Slots.Function.Toggle.UseItem.Enable", toggleUseItem, yamlConfiguration); set("Slots.Function.Message.Enable", messageEnable, yamlConfiguration); set("Slots.Function.Message.Message", message, yamlConfiguration); set("Slots.Function.SetConfig.Enable", setConfigEnable, yamlConfiguration); set("Slots.Function.SetConfig.File.Path", configFilePath == null ? "" : configFilePath, yamlConfiguration); set("Slots.Function.SetConfig.Option.Path", configOptionPath == null ? "" : configOptionPath, yamlConfiguration); set("Slots.Function.SetConfig.Option.Premat", configOptionPremat == null ? "" : configOptionPremat, yamlConfiguration); set("Slots.Function.SetConfig.Value.LeftClick.String", configStringValueLeft == null ? "" : configStringValueLeft, yamlConfiguration); set("Slots.Function.SetConfig.Value.LeftClick.Boolean", configBooleanValueLeft, yamlConfiguration); set("Slots.Function.SetConfig.Value.LeftClick.Integer", configIntegerValueLeft, yamlConfiguration); set("Slots.Function.SetConfig.Value.LeftClick.Double", configDoubleValueLeft, yamlConfiguration); set("Slots.Function.SetConfig.Value.LeftClick.List", configListValueLeft, yamlConfiguration); set("Slots.Function.SetConfig.Value.RightClick.String", configStringValueRight == null ? "" : configStringValueRight, yamlConfiguration); set("Slots.Function.SetConfig.Value.RightClick.Boolean", configBooleanValueRight, yamlConfiguration); set("Slots.Function.SetConfig.Value.RightClick.Integer", configIntegerValueRight, yamlConfiguration); set("Slots.Function.SetConfig.Value.RightClick.Double", configDoubleValueRight, yamlConfiguration); set("Slots.Function.SetConfig.Value.RightClick.List", configListValueRight, yamlConfiguration); set("Slots.Function.SetConfig.PluginReload.Enable", pluginReloadEnable, yamlConfiguration); set("Slots.Function.SetConfig.PluginReload.Command", pluginReloadCommand == null ? "" : pluginReloadCommand, yamlConfiguration); set("Slots.Function.FunctionVotePoints.Enable", functionVotePoints, yamlConfiguration); set("Slots.Function.FunctionVotePoints.Mode", functionVotePointsMode.toString(), yamlConfiguration); set("Slots.Function.FunctionVotePoints.Amount", functionVotePointsAmount, yamlConfiguration); set("Slots.Function.FunctionItem.Enable", functionItem, yamlConfiguration); set("Slots.Function.FunctionItem.Mode", functionItemMode.toString(), yamlConfiguration); set("Slots.Function.FunctionItem.Item", functionItemItem, yamlConfiguration); try { yamlConfiguration.save(config); } catch (IOException e) { e.printStackTrace(); } T2Csend.console(Util.getPrefix() + " §2Function file (Functions/" + config.getName() + ") was loaded." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); } private static void set(String path, String value, YamlConfiguration config) { if (!config.contains(path)) { config.set(path, value); } } private static void set(String path, Integer value, YamlConfiguration config) { if (!config.contains(path)) { config.set(path, value); } } private static void set(String path, Boolean value, YamlConfiguration config) { if (!config.contains(path)) { config.set(path, value); } } private static void set(String path, List value, YamlConfiguration config) { if (!config.contains(path)) { config.set(path, value); } } private static void set(String path, Double value, YamlConfiguration config) { if (!config.contains(path)) { config.set(path, value); } } }