package de.jatitv.commandguiv2.Spigot.gui; import de.jatitv.commandguiv2.Spigot.Listener.GUIListener; import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events; import de.jatitv.commandguiv2.Spigot.Main; import de.jatitv.commandguiv2.Spigot.objects.functions.Function; import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages; import de.jatitv.commandguiv2.Spigot.objects.guis.Gui; import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig; import de.jatitv.commandguiv2.Spigot.objects.slots.Slot; import de.jatitv.commandguiv2.Util; import io.github.solyze.plugmangui.inventories.PluginListGUI; import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion; import net.t2code.lib.Spigot.Lib.replace.Replace; import net.t2code.luckyBox.api.LuckyBoxAPI; 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.plugin; 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("commandgui.admin")) { send.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("commandgui.admin")) { send.player(player, prefix + " §4T2C-LuckyBox could not be found! §9Please download it here: " + "§6https://www.spigotmc.org/resources/luckybox.98154/"); } } return; } if (MCVersion.minecraft1_13) { GUIListener.GUICode = ""; } else GUIListener.GUICode = "§6§8§9§r"; if (gui.guiEnable || player.hasPermission("commandgui.bypass")) { Inventory inventory; if (Main.PaPi) { inventory = Bukkit.createInventory((InventoryHolder) null, 9 * gui.guiLines, (Replace.replace(prefix, player, GUIListener.GUICode + gui.guiName))); } else inventory = Bukkit.createInventory((InventoryHolder) null, 9 * gui.guiLines, (Replace.replace(prefix, GUIListener.GUICode + gui.guiName))); if (gui.guiFillItemEnable) { GuiBuilder.fillItem(inventory, gui); } for (Slot slot : gui.slots) { Function function = Main.functionHashMap.get(slot.function); if (function == null) { send.error(Main.plugin, "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.slot, player, inventory); } else { toggleOff(function, slot.slot, player, inventory); } } else if (function.toggleUseItem) { if (Events.useItemHashMap.get(player.getName())) { toggleOn(function, slot.slot, player, inventory); } else { toggleOff(function, slot.slot, player, inventory); } } else { if (function.playerHead_Enable) { if (function.base64_Enable) { GuiBuilder.base64(function, slot.slot, player, inventory); } else { if (function.playerWhoHasOpenedTheGUI) { GuiBuilder.playerHead(function, slot.slot, player, inventory, player.getName()); } else { GuiBuilder.playerHead(function, slot.slot, player, inventory, function.playerName); } } } else { GuiBuilder.item(function, slot.slot, player, inventory); } } } } } if (sound) { if (SelectConfig.Sound_Enable && SelectConfig.Sound_OpenInventory_Enable) { player.playSound(player.getLocation(), SelectConfig.Sound_OpenInventory, 3, 1); } } player.openInventory(inventory); send.debug(plugin, "§6" + player.getName() + " §5Open §6" + Replace.replace(prefix, gui.guiName) + " §5" + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms"); } else player.sendMessage(SelectMessages.GUIIsDisabled.replace("[gui]", Replace.replace(prefix, gui.guiName))); } private static void toggleOn(Function function, Integer slot, Player player, Inventory inventory) { if (SelectConfig.toggleItemOnOrYesBase64) { GuiBuilder.base64(SelectConfig.toggleItemOnOrYesBase64Value, function, slot, player, inventory); } else GuiBuilder.item(SelectConfig.toggleItemOnOrYesMaterial, function, slot, player, inventory); } private static void toggleOff(Function function, Integer slot, Player player, Inventory inventory) { if (SelectConfig.toggleItemOffOrNoBase64) { GuiBuilder.base64(SelectConfig.toggleItemOffOrNoBase64Value, function, slot, player, inventory); } else GuiBuilder.item(SelectConfig.toggleItemOffOrNoMaterial, function, slot, player, inventory); } }