Advertisement
oZZYoWo

Untitled

Jul 19th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.88 KB | None | 0 0
  1. package me.baneofsmite.twodonkeysgm;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.Material;
  6. import org.bukkit.enchantments.Enchantment;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.Listener;
  10. import org.bukkit.event.inventory.ClickType;
  11. import org.bukkit.event.inventory.InventoryClickEvent;
  12. import org.bukkit.inventory.Inventory;
  13. import org.bukkit.inventory.InventoryHolder;
  14. import org.bukkit.inventory.ItemFlag;
  15. import org.bukkit.inventory.ItemStack;
  16. import org.bukkit.inventory.meta.ItemMeta;
  17.  
  18. import java.util.HashMap;
  19.  
  20. public class ScenarioManager implements InventoryHolder, Listener {
  21.     private final Main plugin;
  22.     public static HashMap<ItemStack, String> scenarios = new HashMap<>();
  23.     public static HashMap<ItemStack, String> skriptScenarios = new HashMap<>();
  24.  
  25.     Inventory inv;
  26.     public ScenarioManager(Main plugin) {
  27.         this.plugin = plugin;
  28.     }
  29.     public void openManager(Player p) {
  30.         inv = Bukkit.createInventory(this, 54, "Scenario Manager");
  31.  
  32.         this.createInv(p);
  33.     }
  34.     public void createInv(Player p) {
  35.         System.out.println(skriptScenarios.get(new ItemStack(Material.DIAMOND_ORE)));
  36.         scenarios.forEach((item,name) -> {
  37.             ItemMeta meta = item.getItemMeta();
  38.             meta.setDisplayName("§e" + name);
  39.             if (meta.getEnchants().containsKey(Enchantment.ARROW_INFINITE)) {
  40.                 meta.removeEnchant(Enchantment.ARROW_INFINITE);
  41.  
  42.                     }
  43.             if (plugin.getConfig().getBoolean(meta.getDisplayName().substring(3))) {
  44.                 meta.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
  45.                 meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
  46.             }
  47.  
  48.             item.setItemMeta(meta);
  49.             inv.addItem(item);
  50.                 }
  51.  
  52.                 );
  53.         skriptScenarios.forEach((item,name) -> {
  54.             ItemMeta meta = item.getItemMeta();
  55.             meta.setDisplayName("§e" + name);
  56.             item.setItemMeta(meta);
  57.             inv.addItem(item);
  58.  
  59.                 });
  60.  
  61.  
  62.  
  63.  
  64.  
  65.        p.openInventory(inv);
  66.     }
  67.  
  68.  
  69.     @EventHandler
  70.     public void onInventoryClick(InventoryClickEvent e) {
  71.         if (e.getClickedInventory().getName() != "Scenario Manager") {
  72.             return;
  73.         }
  74.         if (e.getClick().equals(ClickType.NUMBER_KEY)){
  75.             e.setCancelled(true);
  76.         }
  77.         e.setCancelled(true);
  78.  
  79.         Player p = (Player) e.getWhoClicked();
  80.         ItemStack clickedItem = e.getCurrentItem();
  81.  
  82.         // verify current item is not null
  83.         if (clickedItem == null || clickedItem.getType() == Material.AIR) return;
  84.  
  85.         // Using slots click is a best option for your inventory click's
  86.         ItemMeta meta = clickedItem.getItemMeta();
  87.         if (scenarios.containsValue(meta.getDisplayName().substring(3))) {
  88.             if (plugin.getConfig().getBoolean(meta.getDisplayName().substring(3))) {
  89.                 plugin.getConfig().set(meta.getDisplayName().substring(3), false);
  90.                 meta.removeEnchant(Enchantment.ARROW_INFINITE);
  91.                 clickedItem.setItemMeta(meta);
  92.                 Bukkit.broadcastMessage(Main.getPrefix() + ChatColor.GRAY + " " + meta.getDisplayName() + " has been" + ChatColor.RED + " disabled");
  93.             }
  94.             else {
  95.                 plugin.getConfig().set(meta.getDisplayName().substring(3), true);
  96.                 meta.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
  97.                 meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
  98.                 clickedItem.setItemMeta(meta);
  99.                 Bukkit.broadcastMessage(Main.getPrefix() + ChatColor.GRAY + " " + meta.getDisplayName() + " has been" + ChatColor.GREEN + " enabled");
  100.  
  101.  
  102.             }
  103.         }
  104.         else if (skriptScenarios.containsValue(meta.getDisplayName().substring(3))) {
  105.             if (clickedItem.getEnchantments().isEmpty()) {
  106.                 Bukkit.getServer().dispatchCommand(p, meta.getDisplayName().substring(3) + " enable");
  107.                 Bukkit.broadcastMessage(Main.getPrefix() + ChatColor.GRAY + " " + meta.getDisplayName() + " has been" + ChatColor.GREEN + " enabled");
  108.  
  109.                 meta.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
  110.                 meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
  111.                 clickedItem.setItemMeta(meta);
  112.             }
  113.             else {
  114.                 Bukkit.getServer().dispatchCommand(p, meta.getDisplayName().substring(3) + " disable");
  115.                 Bukkit.broadcastMessage(Main.getPrefix() + ChatColor.GRAY + " " + meta.getDisplayName() + " has been" + ChatColor.RED + " disabled");
  116.                 meta.removeEnchant(Enchantment.ARROW_INFINITE);
  117.                 clickedItem.setItemMeta(meta);
  118.  
  119.             }
  120.         }
  121.         else {
  122.         }
  123.  
  124.     }
  125.  
  126.     @Override
  127.     public Inventory getInventory() {
  128.         return inv;
  129.     }
  130.  
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement