Advertisement
broken-arrow

Untitled

Oct 7th, 2021
1,058
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 35.65 KB | None | 0 0
  1. package org.broken.cheststorage.menus;
  2.  
  3. import org.broken.cheststorage.ChestStorage;
  4. import org.broken.cheststorage.NMS.UpdateTittleContainers;
  5. import org.broken.cheststorage.Settings.MainConfig;
  6. import org.broken.cheststorage.Settings.MainSettings;
  7. import org.broken.cheststorage.api.ContainerRegistryAPI;
  8. import org.broken.cheststorage.cache.PreferenceSettingsRegistery;
  9. import org.broken.cheststorage.util.GuiTempletsYaml;
  10. import org.broken.cheststorage.util.ItemUtily;
  11. import org.broken.cheststorage.util.MetadataEnumsForGui;
  12. import org.broken.cheststorage.util.hologram.Holograms;
  13. import org.bukkit.Bukkit;
  14. import org.bukkit.Location;
  15. import org.bukkit.Material;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.event.inventory.ClickType;
  18. import org.bukkit.event.inventory.InventoryClickEvent;
  19. import org.bukkit.event.inventory.InventoryCloseEvent;
  20. import org.bukkit.inventory.Inventory;
  21. import org.bukkit.inventory.ItemStack;
  22. import org.bukkit.metadata.FixedMetadataValue;
  23. import org.mineacademy.fo.Common;
  24. import org.mineacademy.fo.PlayerUtil;
  25. import org.mineacademy.fo.remain.CompMetadata;
  26.  
  27. import java.lang.reflect.Field;
  28. import java.util.*;
  29.  
  30. public class SettingsForMainGuiMenu extends MenuHolder {
  31.  
  32.     private Inventory[] inventories;
  33.     private Inventory inventory;
  34.     PreferenceSettingsRegistery preferenceRegistery = PreferenceSettingsRegistery.getInstance();
  35.     //@Getter
  36.     //private static final SettingsForMainGuiMenu instance = new SettingsForMainGuiMenu();
  37.     private final Map<Integer, ItemStack> addedButtons = new HashMap<>();
  38.     private int pageNumber = 0;
  39.     private List<Integer> fillSpace;
  40.     private int itemsPerPage;
  41.     private Player player;
  42.  
  43.  
  44.     private final List<helpclass> buttons = new ArrayList<>();
  45.     private final helpclass placeholder;
  46.     private final helpclass placeholder1;
  47.     private final helpclass removeArmorstands;
  48.     private final helpclass suctionBorderPlaceContainer;
  49.     private final helpclass timerWhenLinkingModeOnOff;
  50.     private final helpclass effectsOnContainers;
  51.     private final helpclass showEffectsWhenCrafItems;
  52.     private final helpclass showEffectsWhenSellItems;
  53.     private final helpclass soundEffectsWhenCrafItems;
  54.     private final helpclass soundEffectsWhenSellItems;
  55.     private final helpclass soundEffectsWhenOpenClose;
  56.     private final helpclass soundEffectsWhenContainerPickUpItems;
  57.     private final helpclass displayPlayerNameOnHolo;
  58.     private final helpclass effectsOnContainersWhenPlace;
  59.     private final helpclass soundEffectsWhenPlaceContainer;
  60.     private final helpclass backButtom;
  61.     private final helpclass previousArrow;
  62.     private final helpclass forwardArrow;
  63.  
  64.  
  65.     public SettingsForMainGuiMenu(Location location, Player player) {
  66.         super(location, player);
  67.         String pluginName = ChestStorage.getInstance().getName().toLowerCase();
  68.  
  69.         placeholder = new helpclass() {
  70.             @Override
  71.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  72.                 System.out.println("testings " + player);
  73.             }
  74.  
  75.             @Override
  76.             public ItemStack getItem() {
  77.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Placeholders", null), GuiTempletsYaml.getDisplayName("Settings_Menu", "Placeholders"), null);
  78.             }
  79.         };
  80.         placeholder1 = new helpclass() {
  81.             @Override
  82.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  83.             }
  84.  
  85.             @Override
  86.             public ItemStack getItem() {
  87.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Placeholders", null), GuiTempletsYaml.getDisplayName("Settings_Menu", "Placeholders"), null);
  88.             }
  89.         };
  90.         removeArmorstands = new helpclass() {
  91.             @Override
  92.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  93.  
  94.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.hologram")) {
  95.                     preferenceRegistery.setshowHologramsWhenPlaceBlock(player, true);
  96.  
  97.                 } else if (player.hasPermission(pluginName + ".settings.hologram")) {
  98.                     preferenceRegistery.setshowHologramsWhenPlaceBlock(player, false);
  99.                     ContainerRegistryAPI registry = ContainerRegistryAPI.getInstance();
  100.                     for (Location location : registry.getContainerlocations())
  101.                         if (Objects.equals(registry.getPlayer(location), player))
  102.                             Holograms.removeHolograms(location.clone());
  103.                 }
  104.                 if (!player.hasPermission(pluginName + ".settings.hologram") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  105.                     Common.log("You has not " + pluginName + ".settings.hologram");
  106.                 updateInventory();
  107.  
  108.             }
  109.  
  110.             @Override
  111.             public ItemStack getItem() {
  112.                 PreferenceSettingsRegistery preferenceRegistery = PreferenceSettingsRegistery.getInstance();
  113.                 if (getViewer().hasPermission(pluginName + ".settings.hologram"))
  114.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Armorstands_button", null),
  115.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Armorstands_button"),
  116.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Armorstands_button", String.valueOf(preferenceRegistery.isShowHologramsWhenPlaceBlock(player))));
  117.  
  118.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Armorstands_button_No_Perms", null),
  119.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Armorstands_button_No_Perms"),
  120.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Armorstands_button_No_Perms"));
  121.             }
  122.         };
  123.         suctionBorderPlaceContainer = new helpclass() {
  124.             @Override
  125.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  126.  
  127.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.suction_border"))
  128.                     preferenceRegistery.setShowSuctionBorderWhenPlaceContainer(player, true);
  129.  
  130.                 else if (player.hasPermission(pluginName + ".settings.suction_border"))
  131.                     preferenceRegistery.setShowSuctionBorderWhenPlaceContainer(player, false);
  132.  
  133.                 if (!player.hasPermission(pluginName + ".settings.suction_border") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  134.                     Common.log("You has not " + pluginName + ".settings.suction_border");
  135.                 updateInventory();
  136.             }
  137.  
  138.             @Override
  139.             public ItemStack getItem() {
  140.                 PreferenceSettingsRegistery preferenceSettings = PreferenceSettingsRegistery.getInstance();
  141.  
  142.                 if (getViewer().hasPermission(pluginName + ".settings.suction_border"))
  143.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Suction_Border", null),
  144.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Suction_Border"),
  145.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Suction_Border", String.valueOf(preferenceSettings.isShowSuctionBorderWhenPlaceContainer(getViewer()))));
  146.  
  147.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Suction_Border_No_Perms", null),
  148.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Suction_Border_No_Perms"),
  149.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Suction_Border_No_Perms", String.valueOf(preferenceSettings.isShowSuctionBorderWhenPlaceContainer(getViewer()))));
  150.             }
  151.         };
  152.         timerWhenLinkingModeOnOff = new helpclass() {
  153.             @Override
  154.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  155.  
  156.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.timer_setting"))
  157.                     preferenceRegistery.setTimerSettingWhenLinkHopper(player, true);
  158.  
  159.                 else if (player.hasPermission(pluginName + ".settings.timer_setting"))
  160.                     preferenceRegistery.setTimerSettingWhenLinkHopper(player, false);
  161.  
  162.                 if (!player.hasPermission(pluginName + ".settings.timer_setting") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  163.                     Common.log("You has not " + pluginName + ".settings.timer_setting");
  164.                 updateInventory();
  165.             }
  166.  
  167.             @Override
  168.             public ItemStack getItem() {
  169.  
  170.                 if (getViewer().hasPermission(pluginName + ".settings.timer_setting"))
  171.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Timer_Setting_button", null),
  172.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Timer_Setting_button"),
  173.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Timer_Setting_button", String.valueOf(preferenceRegistery.isTimerSettingWhenLinkHopper(getViewer())), (MainSettings.getInstance().getSettingsData().getTimeBeforeItTurnOff())));
  174.  
  175.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Timer_Setting_button_No_Perms", null),
  176.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Timer_Setting_button"),
  177.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Timer_Setting_button_No_Perms", String.valueOf(preferenceRegistery.isTimerSettingWhenLinkHopper(getViewer())), (MainSettings.getInstance().getSettingsData().getTimeBeforeItTurnOff())));
  178.             }
  179.         };
  180.         showEffectsWhenCrafItems = new helpclass() {
  181.             @Override
  182.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  183.  
  184.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.show_effects_crafitems"))
  185.                     preferenceRegistery.setShowEffectsWhenCrafItems(player, true);
  186.  
  187.                 else if (click.isRightClick() && player.hasPermission(pluginName + ".settings.show_effects_crafitems"))
  188.                     preferenceRegistery.setShowEffectsWhenCrafItems(player, false);
  189.  
  190.                 if (!player.hasPermission(pluginName + ".settings.show_effects_crafitems") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  191.                     Common.log("You has not " + pluginName + ".settings.show_effects_crafitems");
  192.                 updateInventory();
  193.             }
  194.  
  195.             @Override
  196.             public ItemStack getItem() {
  197.                 if (getViewer().hasPermission(pluginName + ".settings.show_effects_crafitems"))
  198.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "ShowEffectsWhen_CrafItems_Button", null),
  199.                             GuiTempletsYaml.getDisplayName("Settings_Menu", "ShowEffectsWhen_CrafItems_Button"),
  200.                             GuiTempletsYaml.getLore("Settings_Menu", "ShowEffectsWhen_CrafItems_Button", String.valueOf(preferenceRegistery.isShowEffectsWhenCrafItems(getViewer()))));
  201.  
  202.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "ShowEffectsWhen_CrafItems_No_Perms", null),
  203.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "ShowEffectsWhen_CrafItems_No_Perms"),
  204.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "ShowEffectsWhen_CrafItems_No_Perms", String.valueOf(preferenceRegistery.isShowEffectsWhenCrafItems(getViewer()))));
  205.             }
  206.         };
  207.         showEffectsWhenSellItems = new helpclass() {
  208.             @Override
  209.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  210.  
  211.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.show_effects_selltems"))
  212.                     preferenceRegistery.setShowEffectsWhenSellItems(player, true);
  213.                 else if (click.isRightClick() && player.hasPermission(pluginName + ".settings.show_effects_selltems"))
  214.                     preferenceRegistery.setShowEffectsWhenSellItems(player, false);
  215.  
  216.                 if (!player.hasPermission(pluginName + ".settings.timer_setting") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  217.                     Common.log("You has not " + pluginName + ".settings.show_effects_selltems");
  218.                 updateInventory();
  219.             }
  220.  
  221.             @Override
  222.             public ItemStack getItem() {
  223.                 if (getViewer().hasPermission(pluginName + ".settings.show_effects_selltems"))
  224.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "ShowEffectsWhen_SellItems_Button", null),
  225.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "ShowEffectsWhen_SellItems_Button"),
  226.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "ShowEffectsWhen_SellItems_Button", String.valueOf(preferenceRegistery.isShowEffectsWhenSellItems(getViewer()))));
  227.  
  228.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "ShowEffectsWhen_SellItems_No_Perms", null),
  229.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "ShowEffectsWhen_SellItems_No_Perms"),
  230.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "ShowEffectsWhen_SellItems_No_Perms", String.valueOf(preferenceRegistery.isShowEffectsWhenSellItems(getViewer()))));
  231.             }
  232.         };
  233.         effectsOnContainers = new helpclass() {
  234.             @Override
  235.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  236.  
  237.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.effects_container"))
  238.                     preferenceRegistery.setEffectsOnContainer(player, true);
  239.  
  240.                 else if (player.hasPermission(pluginName + ".settings.effects_container"))
  241.                     preferenceRegistery.setEffectsOnContainer(player, false);
  242.  
  243.                 if (!player.hasPermission(pluginName + ".settings.effects_container") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  244.                     Common.log("You has not " + pluginName + ".settings.effects_container");
  245.  
  246.                 updateInventory();
  247.             }
  248.  
  249.             @Override
  250.             public ItemStack getItem() {
  251.                 if (getViewer().hasPermission(pluginName + ".settings.effects_container"))
  252.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "EffectsContainer_button", null),
  253.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "EffectsContainer_button"),
  254.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "EffectsContainer_button", String.valueOf(preferenceRegistery.isEffectsOnContainer(getViewer().getUniqueId()))));
  255. /*
  256.                     else if (!preferenceRegistery.isShowEffectsWhenPlaceContainer(getViewer()) && getViewer().hasPermission(pluginName + ".settings.effects_container"))
  257.                         if (getViewer().hasPermission(pluginName + ".settings.effects_container"))
  258.                             return ItemCreator.of(CompMaterial.fromItem(GuiTempletsYaml.getIcon("Settings_Menu", "Settings_Menu_EffectsContainer_button", null)),
  259.                                     GuiTempletsYaml.getDisplayName("Settings_Menu", "Settings_Menu_EffectsContainer_button"),
  260.                                     GuiTempletsYaml.getLore("Settings_Menu", "Settings_Menu_EffectsContainer_button", String.valueOf(preferenceRegistery.isShowEffectsWhenPlaceContainer(getViewer())))).enchant(new SimpleEnchant(Enchantment.ARROW_DAMAGE, 1)).flag(CompItemFlag.HIDE_ENCHANTS).build().make();*/
  261.  
  262.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "EffectsContainer_button_No_Perms", null),
  263.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "EffectsContainer_button_No_Perms"),
  264.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "EffectsContainer_button_No_Perms"));
  265.             }
  266.         };
  267.  
  268.         displayPlayerNameOnHolo = new helpclass() {
  269.             @Override
  270.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  271.                 System.out.println("holo ");
  272.  
  273.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.display_player_nameonholo"))
  274.                     preferenceRegistery.setDisplayPlayerNameOnHolo(player, true);
  275.                 else if (click.isRightClick() && player.hasPermission(pluginName + ".settings.display_player_nameonholo"))
  276.                     preferenceRegistery.setDisplayPlayerNameOnHolo(player, false);
  277.  
  278.                 if (!player.hasPermission(pluginName + ".settings.display_player_nameonholo") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  279.                     Common.log("You has not " + pluginName + ".settings.display_player_nameonholo");
  280.                 updateInventory();
  281.             }
  282.  
  283.             @Override
  284.             public ItemStack getItem() {
  285.  
  286.                 if (getViewer().hasPermission(pluginName + ".settings.display_player_nameonholo"))
  287.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "DisplayPlayer_NameOnHolo_Button", null),
  288.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "DisplayPlayer_NameOnHolo_Button"),
  289.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "DisplayPlayer_NameOnHolo_Button", String.valueOf(preferenceRegistery.isDisplayPlayerNameOnHolo(getViewer().getUniqueId()))));
  290.  
  291.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "DisplayPlayer_NameOnHolo_No_Perms", null),
  292.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "DisplayPlayer_NameOnHolo_No_Perms"),
  293.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "DisplayPlayer_NameOnHolo_No_Perms", String.valueOf(preferenceRegistery.isDisplayPlayerNameOnHolo(getViewer().getUniqueId()))));
  294.             }
  295.         };
  296.         soundEffectsWhenContainerPickUpItems = new helpclass() {
  297.             @Override
  298.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  299.  
  300.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.sound_effects_container_pickupitems"))
  301.                     preferenceRegistery.setSoundEffectsWhenContainerPickUpItems(player, true);
  302.  
  303.                 else if (click.isRightClick() && player.hasPermission(pluginName + ".settings.sound_effects_container_pickupitems"))
  304.                     preferenceRegistery.setSoundEffectsWhenContainerPickUpItems(player, false);
  305.  
  306.                 if (!player.hasPermission(pluginName + ".settings.sound_effects_container_pickupitems") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  307.                     Common.log("You has not " + pluginName + ".settings.sound_effects_container_pickupitems");
  308.                 updateInventory();
  309.  
  310.             }
  311.  
  312.             @Override
  313.             public ItemStack getItem() {
  314.                 if (getViewer().hasPermission(pluginName + ".settings.sound_effects_container_pickupitems"))
  315.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "WhenContainerPickUpItems_button", null),
  316.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "WhenContainerPickUpItems_button"),
  317.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "WhenContainerPickUpItems_button", String.valueOf(preferenceRegistery.isSoundEffectsWhenContainerPickUpItems(getViewer().getUniqueId()))));
  318.  
  319.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "WhenContainerPickUpItems_button_No_Perms", null),
  320.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "WhenContainerPickUpItems_button_No_Perms"),
  321.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "WhenContainerPickUpItems_button_No_Perms", String.valueOf(preferenceRegistery.isSoundEffectsWhenContainerPickUpItems(getViewer().getUniqueId()))));
  322.             }
  323.         };
  324.         soundEffectsWhenOpenClose = new helpclass() {
  325.             @Override
  326.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  327.  
  328.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.sound_effects_openclose"))
  329.                     preferenceRegistery.setSoundEffectsWhenOpenClose(player, true);
  330.  
  331.                 else if (click.isRightClick() && player.hasPermission(pluginName + ".settings.sound_effects_openclose"))
  332.                     preferenceRegistery.setSoundEffectsWhenOpenClose(player, false);
  333.  
  334.                 if (!player.hasPermission(pluginName + ".settings.sound_effects_openclose") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  335.                     Common.log("You has not " + pluginName + ".settings.sound_effects_openclose");
  336.                 updateInventory();
  337.             }
  338.  
  339.             @Override
  340.             public ItemStack getItem() {
  341.                 if (getViewer().hasPermission(pluginName + ".settings.sound_effects_openclose"))
  342.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "SoundEffectsWhen_OpenClose_Button", null),
  343.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "SoundEffectsWhen_OpenClose_Button"),
  344.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "SoundEffectsWhen_OpenClose_Button", String.valueOf(preferenceRegistery.isSoundEffectsWhenOpenClose(getViewer()))));
  345.  
  346.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "SoundEffectsWhen_OpenClose_No_Perms", null),
  347.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "SoundEffectsWhen_OpenClose_No_Perms"),
  348.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "SoundEffectsWhen_OpenClose_No_Perms", String.valueOf(preferenceRegistery.isSoundEffectsWhenOpenClose(getViewer()))));
  349.             }
  350.         };
  351.         soundEffectsWhenSellItems = new helpclass() {
  352.             @Override
  353.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  354.  
  355.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.sound_effects_selltems"))
  356.                     preferenceRegistery.setSoundEffectsWhenSellItems(player, true);
  357.  
  358.                 else if (click.isRightClick() && player.hasPermission(pluginName + ".settings.sound_effects_selltems"))
  359.                     preferenceRegistery.setSoundEffectsWhenSellItems(player, false);
  360.  
  361.                 if (!player.hasPermission(pluginName + ".settings.sound_effects_selltems") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  362.                     Common.log("You has not " + pluginName + ".settings.sound_effects_selltems");
  363.                 updateInventory();
  364.             }
  365.  
  366.             @Override
  367.             public ItemStack getItem() {
  368.                 if (getViewer().hasPermission(pluginName + ".settings.sound_effects_selltems"))
  369.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "SoundEffectsWhen_SellItems_Button", null),
  370.                             GuiTempletsYaml.getDisplayName("Settings_Menu", "SoundEffectsWhen_SellItems_Button"),
  371.                             GuiTempletsYaml.getLore("Settings_Menu", "SoundEffectsWhen_SellItems_Button", String.valueOf(preferenceRegistery.isSoundEffectsWhenSellItems(getViewer()))));
  372.  
  373.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "SoundEffectsWhen_SellItems_No_Perms", null),
  374.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "SoundEffectsWhen_SellItems_No_Perms"),
  375.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "SoundEffectsWhen_SellItems_No_Perms", String.valueOf(preferenceRegistery.isSoundEffectsWhenSellItems(getViewer()))));
  376.             }
  377.         };
  378.         soundEffectsWhenCrafItems = new helpclass() {
  379.             @Override
  380.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  381.  
  382.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.sound_effects_craftems"))
  383.                     preferenceRegistery.setSoundEffectsWhenCrafItems(player, true);
  384.  
  385.                 else if (click.isRightClick() && player.hasPermission(pluginName + ".settings.sound_effects_craftems"))
  386.                     preferenceRegistery.setSoundEffectsWhenCrafItems(player, false);
  387.  
  388.                 if (!player.hasPermission(pluginName + ".settings.sound_effects_craftems") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  389.                     Common.log("You has not " + pluginName + ".settings.sound_effects_craftems");
  390.  
  391.                 updateInventory();
  392.             }
  393.  
  394.             @Override
  395.             public ItemStack getItem() {
  396.                 if (getViewer().hasPermission(pluginName + ".settings.sound_effects_craftems"))
  397.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "SoundEffectsWhen_CrafItems_Button", null),
  398.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "SoundEffectsWhen_CrafItems_Button"),
  399.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "SoundEffectsWhen_CrafItems_Button", String.valueOf(preferenceRegistery.isSoundEffectsWhenCrafItems(getViewer()))));
  400.  
  401.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "SoundEffectsWhen_CrafItems_No_Perms", null),
  402.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "SoundEffectsWhen_CrafItems_No_Perms"),
  403.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "SoundEffectsWhen_CrafItems_No_Perms", String.valueOf(preferenceRegistery.isSoundEffectsWhenCrafItems(getViewer()))));
  404.             }
  405.         };
  406.         effectsOnContainersWhenPlace = new helpclass() {
  407.             @Override
  408.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  409.  
  410.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.effects_container_place"))
  411.                     preferenceRegistery.setEffectsOnContainerWhenPlace(player, true);
  412.  
  413.                 else if (player.hasPermission(pluginName + ".settings.effects_container"))
  414.                     preferenceRegistery.setEffectsOnContainerWhenPlace(player, false);
  415.  
  416.                 if (!player.hasPermission(pluginName + ".settings.effects_container_place") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  417.                     Common.log("You has not " + pluginName + ".settings.effects_container_place");
  418.                 updateInventory();
  419.             }
  420.  
  421.             @Override
  422.             public ItemStack getItem() {
  423.  
  424.                 if (getViewer().hasPermission(pluginName + ".settings.effects_container_place"))
  425.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Effect_When_Place_button", null),
  426.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Effect_When_Place_button"),
  427.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "EffectsContainer_button", String.valueOf(preferenceRegistery.isEffectsOnContainerWhenPlace(getViewer()))));
  428.  
  429.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Effect_When_Place_No_Perms", null),
  430.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Effect_When_Place_No_Perms"),
  431.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Effect_When_Place_No_Perms"));
  432.             }
  433.         };
  434.         soundEffectsWhenPlaceContainer = new helpclass() {
  435.             @Override
  436.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  437.  
  438.                 if (click.isLeftClick() && player.hasPermission(pluginName + ".settings.sound.effects_container_place"))
  439.                     preferenceRegistery.setEffectsOnContainerWhenPlace(player, true);
  440.  
  441.                 else if (player.hasPermission(pluginName + ".settings.effects_container"))
  442.                     preferenceRegistery.setEffectsOnContainerWhenPlace(player, false);
  443.  
  444.                 if (!player.hasPermission(pluginName + ".settings.sound.effects_container_place") && MainConfig.Settings.SENDPERMISSIONMSGCONSOLE)
  445.                     Common.log("You has not " + pluginName + ".settings.sound.effects_container_place");
  446.                 Common.runLater(() -> UpdateTittleContainers.update(player, "test", Material.CHEST, getMenuForPlayers().getSize()));
  447.                 updateInventory();
  448.             }
  449.  
  450.             @Override
  451.             public ItemStack getItem() {
  452.                 if (getViewer().hasPermission(pluginName + ".settings.sound.effects_container_place"))
  453.                     return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "SoundEffectsWhen_PlaceContainer_Button", null),
  454.                             GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "SoundEffectsWhen_PlaceContainer_Button"),
  455.                             GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "SoundEffectsWhen_PlaceContainer_Button", String.valueOf(preferenceRegistery.isEffectsOnContainerWhenPlace(getViewer()))), null, null, true);
  456.  
  457.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "SoundEffectsWhen_PlaceContainer_No_Perms", null),
  458.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "SoundEffectsWhen_PlaceContainer_No_Perms"),
  459.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "SoundEffectsWhen_PlaceContainer_No_Perms"));
  460.             }
  461.         };
  462.         backButtom = new helpclass() {
  463.             @Override
  464.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  465.                 new MainGuiMenu().displayTo(player);
  466.             }
  467.  
  468.             @Override
  469.             public ItemStack getItem() {
  470.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Back_button", null),
  471.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Back_button"),
  472.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Back_button"), "Settings_Menu_Items", "back_BUTTOMMMM");
  473.             }
  474.         };
  475.         previousArrow = new helpclass() {
  476.             @Override
  477.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  478.  
  479.                 if (click.isLeftClick()) {
  480.                     pageNumber -= 1;
  481.                     if (pageNumber < 0) {
  482.                         pageNumber = inventories.length - 1;
  483.                     } else if (pageNumber >= inventories.length) {
  484.                         pageNumber = 0;
  485.                     }
  486.                     onMenuOpen(player, null);
  487.                 }
  488.             }
  489.  
  490.             @Override
  491.             public ItemStack getItem() {
  492.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Previous_button", null),
  493.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Previous_button"),
  494.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Previous_button"), "Settings_Menu_Items", "previous_BUTTOMMMM");
  495.             }
  496.         };
  497.         forwardArrow = new helpclass() {
  498.             @Override
  499.             public void onClickedInMenu(Player player, Inventory menu, ClickType click) {
  500.  
  501.                 if (click.isLeftClick()) {
  502.                     pageNumber += 1;
  503.                     if (pageNumber < 0) {
  504.                         pageNumber = inventories.length - 1;
  505.                     } else if (pageNumber >= inventories.length) {
  506.                         pageNumber = 0;
  507.                     }
  508.                     onMenuOpen(player, null);
  509.                 }
  510.                 updateInventory();
  511.             }
  512.  
  513.             @Override
  514.             public ItemStack getItem() {
  515.                 return ItemUtily.createItemStack(GuiTempletsYaml.getIcon("Settings_Menu", "Forward_button", null),
  516.                         GuiTempletsYaml.getDisplayName(getViewer(), "Settings_Menu", "Forward_button"),
  517.                         GuiTempletsYaml.getLore(getViewer(), "Settings_Menu", "Forward_button"), "Settings_Menu_Items", "fowrward_BUTTOMMMM");
  518.             }
  519.         };
  520.         for (Field field : SettingsForMainGuiMenu.class.getDeclaredFields()) {
  521.             field.setAccessible(true);
  522.             if (SettingsForMainGuiMenu.helpclass.class.isAssignableFrom(field.getType())) {
  523.                 try {
  524.                     helpclass fielddata = (helpclass) field.get(this);
  525.                     buttons.add(fielddata);
  526.                 } catch (IllegalAccessException e) {
  527.                     e.printStackTrace();
  528.                 }
  529.  
  530.             }
  531.         }
  532.     }
  533.  
  534.     private void updateInventory() {
  535.         int requiredPages = 2;
  536.         int slotIndex = 0;
  537.         for (int i = 0; i < requiredPages; i++) {
  538.             for (int itemPos : this.fillSpace) {
  539.  
  540.                 ItemStack result = setItemsAt(slotIndex);
  541.                 slotIndex++;
  542.  
  543.                 if (result == null) continue;
  544.                 this.inventories[i].setItem(itemPos, result);
  545.                 this.addedButtons.put(i * inventories[i].getSize() + itemPos, result);
  546.  
  547.             }
  548.         }
  549.  
  550.  
  551.     }
  552.  
  553.     private int getpageNumber() {
  554.         return this.pageNumber;
  555.     }
  556.  
  557.     public void setPageNumber(int pageNumber) {
  558.         this.pageNumber = pageNumber;
  559.     }
  560.  
  561.     private void setData() {
  562.         this.itemsPerPage = GuiTempletsYaml.getFillSpace("Settings_Menu").size();
  563.         this.fillSpace = GuiTempletsYaml.getFillSpace("Settings_Menu");
  564.     }
  565.  
  566.     @Override
  567.     public void generateInventories(List<UUID> ListOfObjectToAdd, String menuName) {
  568.  
  569.         int requiredPages = Math.max((int) Math.ceil((double) (!buttons.isEmpty() ? ((buttons.size() - 5) + GuiTempletsYaml.getMaxAmountOfItems(menuName)) : GuiTempletsYaml.getGuiSize(menuName)) / this.itemsPerPage), 1);
  570.         //We need more pages if statically positioned players you add are placed at a higher page index an one page can hold.
  571.  
  572.         this.inventories = new Inventory[requiredPages];
  573.  
  574.         int slotIndex = 0;
  575.         for (int i = 0; i < requiredPages; i++) {
  576.             this.inventories[i] = createInventory(menuName);
  577.             for (int itemPos : this.fillSpace) {
  578.  
  579.                 ItemStack result = setItemsAt(slotIndex);
  580.                 slotIndex++;
  581.  
  582.                 if (result == null) continue;
  583.                 this.inventories[i].setItem(itemPos, result);
  584.                 this.addedButtons.put(i * inventories[i].getSize() + itemPos, result);
  585.  
  586.             }
  587.         }
  588.         if (pageNumber >= this.inventories.length) {
  589.             pageNumber = this.inventories.length - 1;
  590.         }
  591.     }
  592.  
  593.     @Override
  594.     protected void setItemsInSlot(int slot) {
  595.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Placeholders").contains(slot))
  596.             inventory.setItem(slot, placeholder.getItem());
  597.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Placeholders1").contains(slot))
  598.             inventory.setItem(slot, placeholder1.getItem());
  599.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Back_button").contains(slot))
  600.             inventory.setItem(slot, backButtom.getItem());
  601.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Previous_button").contains(slot))
  602.             inventory.setItem(slot, previousArrow.getItem());
  603.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Forward_button").contains(slot)) {
  604.             inventory.setItem(slot, forwardArrow.getItem());
  605.         }
  606.     }
  607.  
  608.     protected ItemStack setItemsAt(int slot) {
  609.  
  610.         /*if (GuiTempletsYaml.getSlot("Settings_Menu", "Placeholders").contains(slot))
  611.             return placeholder.getItem();
  612.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Placeholders1").contains(slot))
  613.             return placeholder1.getItem();*/
  614.         if (GuiTempletsYaml.getSlot("Settings_Menu", "ShowEffectsWhen_CrafItems_Button").contains(slot))
  615.             return showEffectsWhenCrafItems.getItem();
  616.         if (GuiTempletsYaml.getSlot("Settings_Menu", "ShowEffectsWhen_SellItems_Button").contains(slot))
  617.             return showEffectsWhenSellItems.getItem();
  618.         if (GuiTempletsYaml.getSlot("Settings_Menu", "SoundEffectsWhen_CrafItems_Button").contains(slot))
  619.             return soundEffectsWhenCrafItems.getItem();
  620.         if (GuiTempletsYaml.getSlot("Settings_Menu", "SoundEffectsWhen_SellItems_Button").contains(slot))
  621.             return soundEffectsWhenSellItems.getItem();
  622.         if (GuiTempletsYaml.getSlot("Settings_Menu", "SoundEffectsWhen_OpenClose_Button").contains(slot))
  623.             return soundEffectsWhenOpenClose.getItem();
  624.         if (GuiTempletsYaml.getSlot("Settings_Menu", "WhenContainerPickUpItems_button").contains(slot))
  625.             return soundEffectsWhenContainerPickUpItems.getItem();
  626.         if (GuiTempletsYaml.getSlot("Settings_Menu", "DisplayPlayer_NameOnHolo_Button").contains(slot))
  627.             return displayPlayerNameOnHolo.getItem();
  628.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Suction_Border").contains(slot))
  629.             return suctionBorderPlaceContainer.getItem();
  630.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Armorstands_button").contains(slot))
  631.             return removeArmorstands.getItem();
  632.         if (GuiTempletsYaml.getSlot("Settings_Menu", "EffectsContainer_button").contains(slot))
  633.             return effectsOnContainers.getItem();
  634.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Timer_Setting_button").contains(slot))
  635.             return timerWhenLinkingModeOnOff.getItem();
  636.         if (GuiTempletsYaml.getSlot("Settings_Menu", "Effect_When_Place_button").contains(slot))
  637.             return effectsOnContainersWhenPlace.getItem();
  638.         if (GuiTempletsYaml.getSlot("Settings_Menu", "SoundEffectsWhen_PlaceContainer_Button").contains(slot))
  639.             return soundEffectsWhenPlaceContainer.getItem();
  640.         return null;
  641.     }
  642.  
  643.     @Override
  644.     public void clickedMenu(InventoryClickEvent event, ItemStack clicked) {
  645.         if (!buttons.isEmpty()) {
  646.             int clickedSlot = event.getSlot();
  647.             int clickedPos = this.pageNumber * getMenuForPlayers().getSize() + clickedSlot;
  648.  
  649.             for (helpclass entitys : buttons)
  650.                 if (clicked != null && clicked.getType() != Material.AIR && entitys.getItem().isSimilar(clicked)) {
  651.                     if (addedButtons.containsKey(clickedPos) && addedButtons.get(clickedPos).isSimilar(clicked) || (clicked.hasItemMeta() && CompMetadata.hasMetadata(clicked, "Settings_Menu_Items")))
  652.                         entitys.onClickedInMenu((Player) event.getWhoClicked(), inventory, event.getClick());
  653.                 }
  654.             event.setCancelled(true);
  655.         }
  656.         event.setCancelled(true);
  657.     }
  658.  
  659.     public Inventory createInventory(String menuName) {
  660.  
  661.         inventory = Bukkit.createInventory(null, GuiTempletsYaml.getGuiSize(menuName));
  662.         setItems();
  663.  
  664.         return inventory;
  665.     }
  666.  
  667.     @Override
  668.     public Inventory getMenuForPlayers() {
  669.         if (this.inventories != null)
  670.             return this.inventories[this.pageNumber];
  671.         return null;
  672.     }
  673.  
  674.     @Override
  675.     public void onMenuClose(InventoryCloseEvent event) {
  676.         player.removeMetadata(MetadataEnumsForGui.INVENTORY_SETTINGS_FOR_GUIMENU.toString(), MetadataEnumsForGui.INVENTORY_SETTINGS_FOR_GUIMENU.getPlugin());
  677.         //inventories = null;
  678.     }
  679.  
  680.     @Override
  681.     public void onMenuOpen(Player player, Location location) {
  682.         setItems();
  683.         setData();
  684.         this.player = player;
  685.         generateInventories(new ArrayList<>(), "Settings_Menu");
  686.         player.openInventory(getMenuForPlayers());
  687.         PlayerUtil.updateInventoryTitle(player, "testings ");
  688.     }
  689.  
  690.     @Override
  691.     protected void setMenuInCache(Player player) {
  692.         if (inventory == null)
  693.             this.inventory = Bukkit.createInventory(null, GuiTempletsYaml.getGuiSize("WhiteBlacklist_Filtergui"));
  694.         Common.runLater(10, () -> player.setMetadata(MetadataEnumsForGui.INVENTORY_SETTINGS_FOR_GUIMENU.toString(), new FixedMetadataValue(MetadataEnumsForGui.INVENTORY_SETTINGS_FOR_GUIMENU.getPlugin(), MetadataEnumsForGui.INVENTORY_SETTINGS_FOR_GUIMENU.getMetadataKey())));
  695.         //whiteBlacklistFilterGui.override(player.getUniqueId(), inventory);
  696.     }
  697.  
  698.     @Override
  699.     protected void setItems() {
  700.         for (int i = 0; i < this.inventory.getSize(); i++) {
  701.             setItemsInSlot(i);
  702.         }
  703.     }
  704.  
  705.     public Player getViewer() {
  706.         return this.player;
  707.     }
  708.  
  709.     @Override
  710.     public void whenBlockBreak() {
  711.  
  712.     }
  713.  
  714.     public static abstract class helpclass {
  715.  
  716.  
  717.         public abstract void onClickedInMenu(Player player, Inventory menu, ClickType click);
  718.  
  719.         public abstract ItemStack getItem();
  720.  
  721.  
  722.     }
  723.  
  724. }
  725.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement