Advertisement
Guest User

Wardrobe

a guest
Jul 23rd, 2014
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.26 KB | None | 0 0
  1. package me.gianluca.wardrobePlugin;
  2.  
  3. import java.util.Arrays;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. import java.util.UUID;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.Color;
  10. import org.bukkit.Material;
  11. import org.bukkit.entity.HumanEntity;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.block.Action;
  15. import org.bukkit.event.inventory.InventoryAction;
  16. import org.bukkit.event.inventory.InventoryClickEvent;
  17. import org.bukkit.event.inventory.InventoryType.SlotType;
  18. import org.bukkit.event.player.PlayerInteractEvent;
  19. import org.bukkit.event.player.PlayerJoinEvent;
  20. import org.bukkit.inventory.Inventory;
  21. import org.bukkit.inventory.ItemStack;
  22. import org.bukkit.inventory.meta.ItemMeta;
  23. import org.bukkit.inventory.meta.LeatherArmorMeta;
  24. import org.bukkit.plugin.java.JavaPlugin;
  25.  
  26. public class Main extends JavaPlugin implements Listener {
  27.  
  28.     private final String permissionToUse = "Wardrobe.use";
  29.     private final String invWardrobeName = "Wardrobe";
  30.     private final String invHelmetName = "Wardrobe - Helmets";
  31.     private final String invChestPlateName = "Wardrobe - ChestPlates";
  32.     private final String invLeggingsName = "Wardrobe - Leggings";
  33.     private final String invBootsName = "Wardrobe - Boots";
  34.     private final String invDyesName = "Wardrobe - Dyes";
  35.  
  36.     Map<UUID, ItemStack> map = new HashMap<UUID, ItemStack>();
  37.  
  38.     @Override
  39.     public void onEnable() {
  40.         getServer().getPluginManager().registerEvents(this, this);
  41.     }
  42.  
  43.     private ItemStack guiLauncher() {
  44.         ItemStack is = new ItemStack(Material.LEATHER_CHESTPLATE, 1);
  45.         ItemMeta meta = is.getItemMeta();
  46.         meta.setDisplayName(invWardrobeName);
  47.         meta.setLore(Arrays.asList(new String[] { "Right click to open your wardrobe" }));
  48.         is.setItemMeta(meta);
  49.         return is;
  50.     }
  51.  
  52.     @EventHandler
  53.     public void onJoin(PlayerJoinEvent event) {
  54.         if (!event.getPlayer().getInventory().contains(guiLauncher())) {
  55.             event.getPlayer().getInventory().addItem(guiLauncher());
  56.         }
  57.     }
  58.  
  59.     @EventHandler
  60.     public void onRightClick(PlayerInteractEvent event) {
  61.         if (event.getAction().equals(Action.RIGHT_CLICK_AIR) || event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
  62.             if (event.getPlayer().hasPermission(permissionToUse)) {
  63.                 event.setCancelled(true);
  64.                 event.getPlayer().openInventory(mainInventory());
  65.             }
  66.         }
  67.     }
  68.  
  69.     @EventHandler
  70.     public void onInventoryClick(InventoryClickEvent event) {
  71.         if (event.getSlotType().equals(SlotType.ARMOR) || event.getInventory().getItem(event.getSlot()) != null) {
  72.             event.setCancelled(true);
  73.         }
  74.         HumanEntity player = event.getWhoClicked();
  75.         if (event.getInventory().getName().equals(invWardrobeName)) {
  76.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  77.                 event.setCancelled(true);
  78.             }
  79.             if (event.getSlot() == 0) {
  80.                 player.closeInventory();
  81.                 player.openInventory(helmetInventory());
  82.             } else if (event.getSlot() == 1) {
  83.                 player.closeInventory();
  84.                 player.openInventory(chestPlateInventory());
  85.             } else if (event.getSlot() == 2) {
  86.                 player.closeInventory();
  87.                 player.openInventory(leggingsInventory());
  88.             } else if (event.getSlot() == 3) {
  89.                 player.closeInventory();
  90.                 player.openInventory(bootsInventory());
  91.             }
  92.             if (event.getSlot() == 8) {
  93.                 player.closeInventory();
  94.                 player.getInventory().setHelmet(new ItemStack(Material.AIR));
  95.                 player.getInventory().setChestplate(new ItemStack(Material.AIR));
  96.                 player.getInventory().setLeggings(new ItemStack(Material.AIR));
  97.                 player.getInventory().setBoots(new ItemStack(Material.AIR));
  98.             }
  99.         } else if (event.getInventory().getName().equals(invHelmetName)) {
  100.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  101.                 event.setCancelled(true);
  102.             }
  103.             if (event.getSlot() == 0) {
  104.                 player.closeInventory();
  105.                 map.put(player.getUniqueId(), event.getInventory().getItem(event.getSlot()));
  106.                 player.openInventory(dyeInventory(player.getUniqueId()));
  107.             } else if (event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4) {
  108.                 player.closeInventory();
  109.                 player.getInventory().setHelmet(event.getInventory().getItem(event.getSlot()));
  110.             }
  111.             if (event.getSlot() == 8) {
  112.                 player.closeInventory();
  113.                 player.openInventory(mainInventory());
  114.             }
  115.         } else if (event.getInventory().getName().equals(invChestPlateName)) {
  116.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  117.                 event.setCancelled(true);
  118.             }
  119.             if (event.getSlot() == 0) {
  120.                 player.closeInventory();
  121.                 map.put(player.getUniqueId(), event.getInventory().getItem(event.getSlot()));
  122.                 player.openInventory(dyeInventory(player.getUniqueId()));
  123.             } else if (event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4) {
  124.                 player.closeInventory();
  125.                 player.getInventory().setChestplate(event.getInventory().getItem(event.getSlot()));
  126.             }
  127.             if (event.getSlot() == 8) {
  128.                 player.closeInventory();
  129.                 player.openInventory(mainInventory());
  130.             }
  131.         } else if (event.getInventory().getName().equals(invLeggingsName)) {
  132.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  133.                 event.setCancelled(true);
  134.             }
  135.             if (event.getSlot() == 0) {
  136.                 player.closeInventory();
  137.                 map.put(player.getUniqueId(), event.getInventory().getItem(event.getSlot()));
  138.                 player.openInventory(dyeInventory(player.getUniqueId()));
  139.             } else if (event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4) {
  140.                 player.closeInventory();
  141.                 player.getInventory().setLeggings(event.getInventory().getItem(event.getSlot()));
  142.             }
  143.             if (event.getSlot() == 8) {
  144.                 player.closeInventory();
  145.                 player.openInventory(mainInventory());
  146.             }
  147.         } else if (event.getInventory().getName().equals(invBootsName)) {
  148.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  149.                 event.setCancelled(true);
  150.             }
  151.             if (event.getSlot() == 0) {
  152.                 player.closeInventory();
  153.                 map.put(player.getUniqueId(), event.getInventory().getItem(event.getSlot()));
  154.                 player.openInventory(dyeInventory(player.getUniqueId()));
  155.             } else if (event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4) {
  156.                 player.closeInventory();
  157.                 player.getInventory().setBoots(event.getInventory().getItem(event.getSlot()));
  158.             }
  159.             if (event.getSlot() == 8) {
  160.                 player.closeInventory();
  161.                 player.openInventory(mainInventory());
  162.             }
  163.         } else if (event.getInventory().getName().equals(invDyesName)) {
  164.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  165.                 event.setCancelled(true);
  166.             }
  167.             if (event.getSlot() == 0 || event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4 || event.getSlot() == 5 || event.getSlot() == 6 || event.getSlot() == 7) {
  168.                 ItemStack is = event.getInventory().getItem(event.getSlot());
  169.                 //ItemStack is = map.get(player.getUniqueId());
  170.                 player.closeInventory();
  171.                 //Dye dye = (Dye) event.getInventory().getItem(event.getSlot()).getData();
  172.                 //Color color = dye.getColor().getColor();
  173.                 //LeatherArmorMeta meta = (LeatherArmorMeta) is.getItemMeta();
  174.                 //meta.setColor(color);
  175.                 //is.setItemMeta(meta);
  176.                 if (is.getType().equals(Material.LEATHER_HELMET)) {
  177.                     player.getInventory().setHelmet(is);
  178.                 } else if (is.getType().equals(Material.LEATHER_CHESTPLATE)) {
  179.                     player.getInventory().setChestplate(is);
  180.                 } else if (is.getType().equals(Material.LEATHER_LEGGINGS)) {
  181.                     player.getInventory().setLeggings(is);
  182.                 } else if (is.getType().equals(Material.LEATHER_BOOTS)) {
  183.                     player.getInventory().setBoots(is);
  184.                 }
  185.             }
  186.             if (event.getSlot() == 8) {
  187.                 player.closeInventory();
  188.                 player.openInventory(mainInventory());
  189.             }
  190.         }
  191.     }
  192.  
  193.     private Inventory mainInventory() {
  194.         Inventory inv = Bukkit.createInventory(null, 9, invWardrobeName);
  195.         ItemStack helmet = new ItemStack(Material.LEATHER_HELMET);
  196.         ItemStack chestplate = new ItemStack(Material.LEATHER_CHESTPLATE);
  197.         ItemStack leggings = new ItemStack(Material.LEATHER_LEGGINGS);
  198.         ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
  199.         ItemStack clear = new ItemStack(Material.EMERALD);
  200.         ItemMeta meta = clear.getItemMeta();
  201.         meta.setDisplayName("Remove all armor");
  202.         clear.setItemMeta(meta);
  203.  
  204.         inv.setItem(0, helmet);
  205.         inv.setItem(1, chestplate);
  206.         inv.setItem(2, leggings);
  207.         inv.setItem(3, boots);
  208.         inv.setItem(8, clear);
  209.         return inv;
  210.     }
  211.  
  212.     private Inventory helmetInventory() {
  213.         Inventory inv = Bukkit.createInventory(null, 9, invHelmetName);
  214.         ItemStack is1 = new ItemStack(Material.LEATHER_HELMET);
  215.         ItemStack is2 = new ItemStack(Material.IRON_HELMET);
  216.         ItemStack is3 = new ItemStack(Material.GOLD_HELMET);
  217.         ItemStack is4 = new ItemStack(Material.CHAINMAIL_HELMET);
  218.         ItemStack is5 = new ItemStack(Material.DIAMOND_HELMET);
  219.         ItemStack back = new ItemStack(Material.EMERALD);
  220.         ItemMeta meta = back.getItemMeta();
  221.         meta.setDisplayName("Go back");
  222.         back.setItemMeta(meta);
  223.  
  224.         inv.setItem(0, is1);
  225.         inv.setItem(1, is2);
  226.         inv.setItem(2, is3);
  227.         inv.setItem(3, is4);
  228.         inv.setItem(4, is5);
  229.         inv.setItem(8, back);
  230.         return inv;
  231.     }
  232.  
  233.     private Inventory chestPlateInventory() {
  234.         Inventory inv = Bukkit.createInventory(null, 9, invChestPlateName);
  235.         ItemStack is1 = new ItemStack(Material.LEATHER_CHESTPLATE);
  236.         ItemStack is2 = new ItemStack(Material.IRON_CHESTPLATE);
  237.         ItemStack is3 = new ItemStack(Material.GOLD_CHESTPLATE);
  238.         ItemStack is4 = new ItemStack(Material.CHAINMAIL_CHESTPLATE);
  239.         ItemStack is5 = new ItemStack(Material.DIAMOND_CHESTPLATE);
  240.         ItemStack back = new ItemStack(Material.EMERALD);
  241.         ItemMeta meta = back.getItemMeta();
  242.         meta.setDisplayName("Go back");
  243.         back.setItemMeta(meta);
  244.  
  245.         inv.setItem(0, is1);
  246.         inv.setItem(1, is2);
  247.         inv.setItem(2, is3);
  248.         inv.setItem(3, is4);
  249.         inv.setItem(4, is5);
  250.         inv.setItem(8, back);
  251.         return inv;
  252.     }
  253.  
  254.     private Inventory leggingsInventory() {
  255.         Inventory inv = Bukkit.createInventory(null, 9, invLeggingsName);
  256.         ItemStack is1 = new ItemStack(Material.LEATHER_LEGGINGS);
  257.         ItemStack is2 = new ItemStack(Material.IRON_LEGGINGS);
  258.         ItemStack is3 = new ItemStack(Material.GOLD_LEGGINGS);
  259.         ItemStack is4 = new ItemStack(Material.CHAINMAIL_LEGGINGS);
  260.         ItemStack is5 = new ItemStack(Material.DIAMOND_LEGGINGS);
  261.         ItemStack back = new ItemStack(Material.EMERALD);
  262.         ItemMeta meta = back.getItemMeta();
  263.         meta.setDisplayName("Go back");
  264.         back.setItemMeta(meta);
  265.  
  266.         inv.setItem(0, is1);
  267.         inv.setItem(1, is2);
  268.         inv.setItem(2, is3);
  269.         inv.setItem(3, is4);
  270.         inv.setItem(4, is5);
  271.         inv.setItem(8, back);
  272.         return inv;
  273.     }
  274.  
  275.     private Inventory bootsInventory() {
  276.         Inventory inv = Bukkit.createInventory(null, 9, invBootsName);
  277.         ItemStack is1 = new ItemStack(Material.LEATHER_BOOTS);
  278.         ItemStack is2 = new ItemStack(Material.IRON_BOOTS);
  279.         ItemStack is3 = new ItemStack(Material.GOLD_BOOTS);
  280.         ItemStack is4 = new ItemStack(Material.CHAINMAIL_BOOTS);
  281.         ItemStack is5 = new ItemStack(Material.DIAMOND_BOOTS);
  282.         ItemStack back = new ItemStack(Material.EMERALD);
  283.         ItemMeta meta = back.getItemMeta();
  284.         meta.setDisplayName("Go back");
  285.         back.setItemMeta(meta);
  286.  
  287.         inv.setItem(0, is1);
  288.         inv.setItem(1, is2);
  289.         inv.setItem(2, is3);
  290.         inv.setItem(3, is4);
  291.         inv.setItem(4, is5);
  292.         inv.setItem(8, back);
  293.         return inv;
  294.     }
  295.  
  296.     private final Inventory dyeInventory(UUID uuid) {
  297.         Inventory inv = Bukkit.createInventory(null, 9, invDyesName);
  298.         ItemStack purpleDye = map.get(uuid).clone();
  299.         LeatherArmorMeta purple = (LeatherArmorMeta) purpleDye.getItemMeta();
  300.         purple.setColor(Color.PURPLE);
  301.         purpleDye.setItemMeta(purple);
  302.  
  303.         ItemStack blackDye = map.get(uuid).clone();
  304.         LeatherArmorMeta black = (LeatherArmorMeta) blackDye.getItemMeta();
  305.         black.setColor(Color.BLACK);
  306.         blackDye.setItemMeta(black);
  307.  
  308.         ItemStack whiteDye = map.get(uuid).clone();
  309.         LeatherArmorMeta white = (LeatherArmorMeta) whiteDye.getItemMeta();
  310.         white.setColor(Color.WHITE);
  311.         whiteDye.setItemMeta(white);
  312.  
  313.         ItemStack redDye = map.get(uuid).clone();
  314.         LeatherArmorMeta red = (LeatherArmorMeta) redDye.getItemMeta();
  315.         red.setColor(Color.RED);
  316.         redDye.setItemMeta(red);
  317.  
  318.         ItemStack blueDye = map.get(uuid).clone();
  319.         LeatherArmorMeta blue = (LeatherArmorMeta) blueDye.getItemMeta();
  320.         blue.setColor(Color.BLUE);
  321.         blueDye.setItemMeta(blue);
  322.  
  323.         ItemStack greenDye = map.get(uuid).clone();
  324.         LeatherArmorMeta green = (LeatherArmorMeta) greenDye.getItemMeta();
  325.         green.setColor(Color.GREEN);
  326.         greenDye.setItemMeta(green);
  327.  
  328.         ItemStack grayDye = map.get(uuid).clone();
  329.         LeatherArmorMeta gray = (LeatherArmorMeta) grayDye.getItemMeta();
  330.         gray.setColor(Color.GRAY);
  331.         grayDye.setItemMeta(gray);
  332.  
  333.         ItemStack back = new ItemStack(Material.EMERALD);
  334.         ItemMeta meta = back.getItemMeta();
  335.         meta.setDisplayName("Go back");
  336.         back.setItemMeta(meta);
  337.  
  338.         inv.setItem(0, purpleDye);
  339.         inv.setItem(1, blackDye);
  340.         inv.setItem(2, whiteDye);
  341.         inv.setItem(3, redDye);
  342.         inv.setItem(4, blueDye);
  343.         inv.setItem(5, greenDye);
  344.         inv.setItem(6, grayDye);
  345.         inv.setItem(7, map.get(uuid));
  346.         inv.setItem(8, back);
  347.         return inv;
  348.     }
  349. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement