Armagidon

PCT №6 GUI

Feb 2nd, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.76 KB | None | 0 0
  1. package nms.main;
  2.  
  3. import java.util.HashMap;
  4.  
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.Material;
  7. import org.bukkit.Particle;
  8. import org.bukkit.enchantments.Enchantment;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.inventory.InventoryClickEvent;
  13. import org.bukkit.event.player.PlayerMoveEvent;
  14. import org.bukkit.inventory.Inventory;
  15. import org.bukkit.inventory.ItemFlag;
  16. import org.bukkit.inventory.ItemStack;
  17. import org.bukkit.inventory.meta.ItemMeta;
  18.  
  19. public class GUI implements Listener
  20. {
  21.     HashMap<Player, String> effects = new HashMap<>();
  22.    
  23.     public static void gui(Player p)
  24.     {
  25.         Inventory inv = Bukkit.createInventory(null, 9, "§3Меню эффектов");
  26.         ItemStack crit = new ItemStack(Material.NETHER_STAR);
  27.         ItemStack flame = new ItemStack(Material.TORCH);
  28.         ItemStack offon = new ItemStack(Material.REDSTONE_TORCH_ON);
  29.         ItemMeta meta1= crit.getItemMeta();
  30.         ItemMeta meta2 =  flame.getItemMeta();
  31.         ItemMeta meta3 = offon.getItemMeta();
  32.         meta1.setDisplayName("§aЗвёзды");
  33.         meta2.setDisplayName("§6Огонь");
  34.         meta3.setDisplayName("§сВыключить");
  35.         meta1.addItemFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_ENCHANTS);
  36.         meta2.addItemFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_ENCHANTS);
  37.         meta3.addItemFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_ENCHANTS);
  38.         meta1.addEnchant(Enchantment.ARROW_DAMAGE, 1, true);
  39.         meta2.addEnchant(Enchantment.ARROW_DAMAGE, 1, true);
  40.         meta3.addEnchant(Enchantment.ARROW_DAMAGE, 1, true);
  41.         crit.setItemMeta(meta1);
  42.         flame.setItemMeta(meta2);
  43.         offon.setItemMeta(meta3);
  44.         inv.setItem(0, crit);
  45.         inv.setItem(1, flame);
  46.         inv.setItem(8, offon);
  47.         p.openInventory(inv);
  48.     }
  49.    
  50.     @EventHandler
  51.     public void onCLick(InventoryClickEvent e)
  52.     {
  53.         Player p = (Player) e.getWhoClicked();
  54.         ItemStack item = e.getCurrentItem();
  55.         Inventory inv = e.getInventory();
  56.         if(inv.getName().equalsIgnoreCase("§3Меню эффектов")) {
  57.             e.setCancelled(true);
  58.             switch (item.getItemMeta().getDisplayName()) { //Норм способ проверки названия
  59.             case "§aЗвёзды":
  60.                 effects.put(p, "crit");
  61.                 break;
  62.             case "§6Огонь":
  63.                 effects.put(p, "flame");
  64.                 break;
  65.             case "§сВыключить":
  66.                 effects.remove(p);
  67.                 break;
  68.             default:
  69.                 break;
  70.             }
  71.         }
  72.     }
  73.    
  74.     @EventHandler
  75.     public void onMove(PlayerMoveEvent e)
  76.     {
  77.         if(!effects.containsKey(e.getPlayer())) return;
  78.         Player p = e.getPlayer();
  79.        
  80.         switch (effects.get(e.getPlayer())) {
  81.         case "crit":
  82.             p.getWorld().spawnParticle(Particle.CRIT, p.getLocation(), 100);
  83.             break;
  84.  
  85.         case "flame":
  86.             p.getWorld().spawnParticle(Particle.FLAME, p.getLocation(), 100);
  87.             break;
  88.         }
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment