package net.t2code.commandguiv2.Spigot.gui; import net.t2code.commandguiv2.Spigot.system.Permissions; import net.t2code.commandguiv2.Spigot.useItem.Events; import net.t2code.commandguiv2.Spigot.Main; import net.t2code.commandguiv2.Spigot.objects.functions.Function; import net.t2code.commandguiv2.Spigot.config.languages.SelectMessages; import net.t2code.commandguiv2.Spigot.objects.guis.Gui; import net.t2code.commandguiv2.Spigot.config.config.SelectConfig; import net.t2code.commandguiv2.Spigot.objects.slots.Slot; import net.t2code.commandguiv2.Spigot.sound.Sound; import net.t2code.commandguiv2.Spigot.enums.SoundEnum; import net.t2code.commandguiv2.Util; import io.github.solyze.plugmangui.inventories.PluginListGUI; import net.t2code.luckyBox.api.LuckyBoxAPI; import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; public class OpenGUI { private static Plugin plugin = Main.getPlugin(); private static String prefix = Util.getPrefix(); public static void openGUI(Player player, String guiString, Boolean sound) { Gui gui = Main.guiHashMap.get(guiString); Long long_ = Long.valueOf(System.currentTimeMillis()); switch (guiString) { //case "plugin.PlotSquaredGUI": // if (Main.PlotSquaredGUI) { // PlotSquaredGUIapi.openMainGUI(player); // } else { // if (player.hasPermission("commandgui.admin")) { // send.player(player, prefix + " §4PlotSquaredGUI could not be found! §9Please download it here: " + // "§6https://spigotmc.org/resources/plotsquaredgui.77506/"); // } // } // return; todo case "plugin.PlugManGUI": if (Main.PlugManGUI) { player.openInventory((new PluginListGUI(54, 1)).getInventory()); } else { if (player.hasPermission(Permissions.admin)) { T2Csend.player(player, prefix + " §4PlugManGUI could not be found! §9Please download it here: " + "§6https://spigotmc.org/resources/plugmangui.87599/"); } } return; case "plugin.T2C-LuckyBox": if (Main.LuckyBox) { LuckyBoxAPI.openShop(player); } else { if (player.hasPermission(Permissions.admin)) { T2Csend.player(player, prefix + " §4T2C-LuckyBox could not be found! §9Please download it here: " + "§6https://www.spigotmc.org/resources/luckybox.98154/"); } } return; } if (T2CmcVersion.isMc1_13()) { GUIListener.GUICode = ""; } else GUIListener.GUICode = "§6§8§9§r"; if (gui.guiEnable || player.hasPermission(Permissions.updatemsg)) { Inventory inventory; if (Main.PaPi) { inventory = Bukkit.createInventory((InventoryHolder) null, 9 * gui.guiLines, (T2Creplace.replace(prefix, player, GUIListener.GUICode + gui.guiName))); } else inventory = Bukkit.createInventory((InventoryHolder) null, 9 * gui.guiLines, (T2Creplace.replace(prefix, GUIListener.GUICode + gui.guiName))); if (gui.guiFillItemEnable) { GuiBuilder.fillItem(inventory, gui); } for (Slot slot : gui.slots) { try { Function function = Main.functionHashMap.get(slot.function); if (function == null) { T2Csend.error(Main.getPlugin(), "The Function " + slot.function + " in the GUI " + gui.key + " does not exist!"); continue; } if (slot.permission && !player.hasPermission(slot.permissionToSee)) continue; if (slot.slot < 0 || slot.slot > gui.guiLines * 9) continue; if (slot.enable) { if (function.empty) { ItemStack air = new ItemStack(Material.AIR); inventory.setItem(slot.slot, air); } else { if (function.togglePermission) { if (player.hasPermission(function.togglePermissionPerm)) { toggleOn(function, slot, player, inventory); } else { toggleOff(function, slot, player, inventory); } } else if (function.toggleUseItem) { if (Events.useItemHashMap.get(player.getName())) { toggleOn(function, slot, player, inventory); } else { toggleOff(function, slot, player, inventory); } } else { if (function.playerHead_Enable) { if (function.base64_Enable) { GuiBuilder.base64(slot, player, inventory); } else { if (function.playerWhoHasOpenedTheGUI) { GuiBuilder.playerHead(slot, player, inventory, player.getName()); } else { GuiBuilder.playerHead(slot, player, inventory, function.playerName); } } } else { GuiBuilder.item(slot, player, inventory); } } } } } catch (Exception ex) { ex.printStackTrace(); ItemStack air = new ItemStack(Material.AIR); inventory.setItem(slot.slot, air); } } if (sound) { Sound.play(player, SoundEnum.OpenInventory); } player.openInventory(inventory); T2Csend.debug(plugin, "§6" + player.getName() + " §5Open §6" + T2Creplace.replace(prefix, gui.guiName) + " §5" + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms"); } else T2Csend.player(player, SelectMessages.GUIIsDisabled.replace("[gui]", T2Creplace.replace(prefix, gui.guiName))); } private static void toggleOn(Function function, Slot slot, Player player, Inventory inventory) { if (SelectConfig.getToggleItemOnOrYesBase64()) { GuiBuilder.base64(SelectConfig.getToggleItemOnOrYesBase64Value(), slot, player, inventory); } else GuiBuilder.item(SelectConfig.getToggleItemOnOrYesMaterial(), slot, player, inventory); } private static void toggleOff(Function function, Slot slot, Player player, Inventory inventory) { if (SelectConfig.getToggleItemOffOrNoBase64()) { GuiBuilder.base64(SelectConfig.getToggleItemOffOrNoBase64Value(), slot, player, inventory); } else GuiBuilder.item(SelectConfig.getToggleItemOffOrNoMaterial(), slot, player, inventory); } }