90 lines
4.9 KiB
Java
90 lines
4.9 KiB
Java
package net.t2code.commandguiv2.Spigot.config.gui;
|
|
|
|
import net.t2code.commandguiv2.Spigot.Main;
|
|
import net.t2code.commandguiv2.Spigot.cmdManagement.CmdExecuter_GUI;
|
|
import net.t2code.commandguiv2.Spigot.objects.FunctionObject;
|
|
import net.t2code.commandguiv2.Spigot.objects.GuiObject;
|
|
import net.t2code.commandguiv2.Spigot.objects.SlotObject;
|
|
import net.t2code.commandguiv2.cache.Cache;
|
|
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
|
|
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion;
|
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
|
|
public class SelectGui {
|
|
|
|
public static void onSelectGui() {
|
|
Cache.guiHashMap.clear();
|
|
Cache.allAliases.clear();
|
|
File f = new File(Main.getPath() + "/GUIs/");
|
|
File[] fileArray = f.listFiles();
|
|
|
|
for (File config : fileArray) {
|
|
try {
|
|
if (config.getName().equals("guiDeclaration.yml")) continue;
|
|
String sub = config.getName().substring(config.getName().length() - 4);
|
|
if (sub.equals(".yml")) {
|
|
String key = config.getName().replace(".yml", "");
|
|
Cache.allAliases.add(key);
|
|
YamlConfiguration yamlConfiguration_gui = YamlConfiguration.loadConfiguration(config);
|
|
|
|
Boolean guiEnable = yamlConfiguration_gui.getBoolean("GUI.Enable");
|
|
Integer guiLines = yamlConfiguration_gui.getInt("GUI.Lines");
|
|
if (yamlConfiguration_gui.getInt("GUI.Lines") > 6) {
|
|
yamlConfiguration_gui.set("GUI.Lines", 6);
|
|
}
|
|
if (yamlConfiguration_gui.getInt("GUI.Lines") < 1) {
|
|
yamlConfiguration_gui.set("GUI.Lines", 1);
|
|
}
|
|
|
|
String guiName = yamlConfiguration_gui.getString("GUI.Name");
|
|
Boolean guiFillItemEnable = yamlConfiguration_gui.getBoolean("GUI.FillItem.Enable");
|
|
String guiFillItemItem;
|
|
if (T2CmcVersion.isMc1_8() || T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) {
|
|
guiFillItemItem = yamlConfiguration_gui.getString("GUI.FillItem.GlassPaneColor");
|
|
} else guiFillItemItem = yamlConfiguration_gui.getString("GUI.FillItem.Item");
|
|
|
|
Boolean commandAliasEnable = yamlConfiguration_gui.getBoolean("Command.Alias");
|
|
Boolean commandPermission = yamlConfiguration_gui.getBoolean("Command.Permission.Required");
|
|
|
|
ArrayList<SlotObject> slots = new ArrayList<>();
|
|
for (String slotKey : yamlConfiguration_gui.getConfigurationSection("Slots").getKeys(false)) {
|
|
Integer slotNumber = yamlConfiguration_gui.getInt("Slots." + slotKey + ".Slot") - 1;
|
|
Boolean enable = yamlConfiguration_gui.getBoolean("Slots." + slotKey + ".Enable");
|
|
String function = yamlConfiguration_gui.getString("Slots." + slotKey + ".Function");
|
|
FunctionObject functionCheck = Cache.functionHashMap.get(function);
|
|
if (functionCheck == null) {
|
|
T2Csend.error(Main.getPlugin(), "The Function " + function + " in the GUI " + key + " does not exist!");
|
|
}
|
|
Boolean permRequired = yamlConfiguration_gui.getBoolean("Slots." + slotKey + ".Permission.Required");
|
|
String permSee = yamlConfiguration_gui.getString("Slots." + slotKey + ".Permission.See");
|
|
String permUse = yamlConfiguration_gui.getString("Slots." + slotKey + ".Permission.Use");
|
|
|
|
SlotObject slot = new SlotObject(slotNumber, enable, function, permRequired,
|
|
permSee.replace("[function]", key).replace("[slot]", String.valueOf(slotNumber + 1))
|
|
.replace("[slotname]", slotKey.toLowerCase()),
|
|
permUse.replace("[function]", key).replace("[slot]", String.valueOf(slotNumber + 1))
|
|
.replace("[slotname]", slotKey.toLowerCase()));
|
|
slots.add(slot);
|
|
}
|
|
GuiObject gui = new GuiObject(guiEnable, guiLines, guiName, guiFillItemEnable, guiFillItemItem,
|
|
key, commandAliasEnable, commandPermission, slots);
|
|
|
|
Cache.guiHashMap.put(key, gui);
|
|
CmdExecuter_GUI.arg1.put(config.getName()
|
|
.replace(".yml", ""), "commandgui.gui." + key);
|
|
|
|
|
|
yamlConfiguration_gui.save(config);
|
|
}
|
|
} catch (Exception e) {
|
|
Main.sendTryCatch(SelectGui.class, e.getStackTrace()[0]);
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|