Advertisement
Guest User

Relic/artefact

a guest
Jun 17th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.77 KB | None | 0 0
  1. package me.syn.alecho.main;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.Material;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.event.EventHandler;
  10. import org.bukkit.event.Listener;
  11. import org.bukkit.event.inventory.InventoryClickEvent;
  12. import org.bukkit.event.inventory.InventoryCloseEvent;
  13. import org.bukkit.inventory.Inventory;
  14. import org.bukkit.inventory.ItemStack;
  15. import org.bukkit.inventory.meta.ItemMeta;
  16.  
  17. import me.syn.alecho.utils.Format;
  18. import me.syn.alecho.utils.Message;
  19.  
  20. public class ShardsGUI implements Listener {
  21.  
  22.     public static List<Player> open = new ArrayList<Player>();
  23.  
  24.     public static Inventory menu(Player p, int tier, String itemType) {
  25.         Inventory inv = Bukkit.createInventory(null, 27, Format.color("&c&l" + itemType + " Crusher"));
  26.         ItemStack i = new ItemStack(Material.STAINED_GLASS_PANE);
  27.         i.setDurability((byte) 7);
  28.         ItemMeta m = i.getItemMeta();
  29.         m.setDisplayName(Format.color("&7"));
  30.         i.setItemMeta(m);
  31.         for (int x = 0; x < 27; x++) {
  32.             inv.setItem(x, i);
  33.         }
  34.         i = new ItemStack(Material.PRISMARINE_SHARD);
  35.         m = i.getItemMeta();
  36.         List<String> l = new ArrayList<String>();
  37.         m.setDisplayName(Format.color("&c&lConfirm Shard Destruction"));
  38.         l.add(Format.color("&7"));
  39.         l.add(Format.color("&7Clicking this item will destroy"));
  40.         l.add(Format.color("&7the &cT" + tier + " " + itemType + "&7 in your hand in"));
  41.         l.add(Format.color("&7exchange for a &cT" + tier + " " + itemType + " Shard"));
  42.         m.setLore(l);
  43.         i.setItemMeta(m);
  44.         inv.setItem(12, i);
  45.        
  46.         i = new ItemStack(Material.PRISMARINE_CRYSTALS);
  47.         m = i.getItemMeta();
  48.         List<String> l = new ArrayList<String>();
  49.         m.setDisplayName(Format.color("&c&lConfirm Destructing All " + itemtype + "s"));
  50.         l.add(Format.color("&7"));
  51.         l.add(Format.color("&7Clicking this item will destroy"));
  52.         l.add(Format.color("&7 all the &cT " + itemType + "s &7 in your hand in"));
  53.         l.add(Format.color("&7 This cannot be undone!"));
  54.         m.setLore(l);
  55.         i.setItemMeta(m);
  56.         inv.setItem(14, i);
  57.        
  58.        
  59.         return inv;
  60.     }
  61.  
  62.     @EventHandler
  63.     public void onClick(InventoryClickEvent e) {
  64.         Player p = (Player) e.getWhoClicked();
  65.         if (open.contains(p)) {
  66.             if (e.getRawSlot() < 27) {
  67.                 e.setCancelled(true);
  68.                 if (e.getRawSlot() == 12) {
  69.                     ItemStack i = p.getItemInHand();
  70.                     if (Relics.isRelic(i)) {
  71.                         int tier = Relics.getTier(i);
  72.                         p.getInventory().setItemInHand(null);
  73.                         p.getInventory().addItem(Relics.shard(tier, i.getAmount()));
  74.                         p.updateInventory();
  75.                         p.closeInventory();
  76.                         Message.player(Main.prefix + "You turned &c" + i.getAmount() + " T" + tier
  77.                                 + " Relic(s)&7 into &cShards", p);
  78.                         return;
  79.                     }
  80.                     if (Artefacts.isArtefact(i)) {
  81.                         int tier = Artefacts.getTier(i);
  82.                         p.getInventory().setItemInHand(null);
  83.                         p.getInventory().addItem(Artefacts.shard(tier, i.getAmount()));
  84.                         p.updateInventory();
  85.                         p.closeInventory();
  86.                         Message.player(Main.prefix + "You turned &c" + i.getAmount() + " T" + tier
  87.                                 + " Artefact(s)&7 into &cShards", p);
  88.                         return;
  89.                     }
  90.                 }
  91.             }
  92.         }
  93.     }
  94.    
  95.     public void onClick(InventoryClickEvent e) {
  96.         Player p = (Player) e.getWhoClicked();
  97.         if (open.contains(p)) {
  98.            
  99.             if (e.getRawSlot() < 27) {
  100.                 HashMap artefacts = new HashMap();
  101.                 HashMap relics = new HashMap();
  102.                 e.setCancelled(true);
  103.                 if (e.getRawSlot() == 14) {
  104.                     ItemStack it = p.getItemInHand();
  105.                     int type = 2;
  106.                    
  107.                     if(Relic.isRelic(it)){
  108.                         type = 0;
  109.                     }
  110.                    
  111.                     if(Artefact.isArtefact(it)){
  112.                         type = 1;
  113.                        
  114.                     }
  115.                    
  116.                     for(i = 0; i < 36; i++){
  117.                         player.getInventory().getItem(i);
  118.                        
  119.                         if (Relics.isRelic(i) && type == 0 ) {
  120.                            
  121.                             int tier = Relics.getTier(i);
  122.                             p.getInventory().setItemInHand(null);
  123.                             p.getInventory().addItem(Relics.shard(tier, i.getAmount()));
  124.                             p.updateInventory();
  125.                            
  126.                             if (relics.keySet().contains(tier)){
  127.                                 i += relics.get(tier);
  128.                             }
  129.                             relics.put(tier, i);
  130.                            
  131.                    
  132.                         }
  133.                        
  134.                         if (Artefacts.isArtefact(i) && type == 1) {
  135.                            
  136.                             int tier = Artefacts.getTier(i);
  137.                             p.getInventory().setItemInHand(null);
  138.                             p.getInventory().addItem(Artefacts.shard(tier, i.getAmount()));
  139.                             p.updateInventory();
  140.                            
  141.                             if (artefacts.keySet().contains(tier)){
  142.                                 i += artefacts.get(tier);
  143.                             }
  144.                             artefacts.put(tier, i);
  145.                            
  146.                            
  147.                    
  148.                         }
  149.                     }
  150.                    
  151.                     for(i in relics.keySet()){
  152.                         Message.player(Main.prefix + "You turned &c" + relics.get(i) + " T" + i
  153.                         + " Relics(s)&7 into &cShards", p);
  154.                     }
  155.                    
  156.                     for (j in artefacts.keySet()){
  157.                         Message.player(Main.prefix + "You turned &c" + artefacts.get(j) + " T" + j
  158.                         + " Artefact(s)&7 into &cShards", p);
  159.                     }
  160.                    
  161.                     p.closeInventory();
  162.                     return;
  163.                 }
  164.             }
  165.         }
  166.     }
  167.    
  168.    
  169.  
  170.     @EventHandler
  171.     public void onClose(InventoryCloseEvent e) {
  172.         Player p = (Player) e.getPlayer();
  173.         if (open.contains(p))
  174.             open.remove(p);
  175.     }
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement