Advertisement
Guest User

Wardrobe

a guest
Jul 23rd, 2014
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.00 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.             }
  95.         } else if (event.getInventory().getName().equals(invHelmetName)) {
  96.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  97.                 event.setCancelled(true);
  98.             }
  99.             if (event.getSlot() == 0) {
  100.                 player.closeInventory();
  101.                 map.put(player.getUniqueId(), event.getInventory().getItem(event.getSlot()));
  102.                 player.openInventory(dyeInventory(player.getUniqueId()));
  103.             } else if (event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4) {
  104.                 player.closeInventory();
  105.                 player.getInventory().setHelmet(event.getInventory().getItem(event.getSlot()));
  106.             }
  107.             if (event.getSlot() == 8) {
  108.                 player.closeInventory();
  109.                 player.openInventory(mainInventory());
  110.             }
  111.         } else if (event.getInventory().getName().equals(invChestPlateName)) {
  112.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  113.                 event.setCancelled(true);
  114.             }
  115.             if (event.getSlot() == 0) {
  116.                 player.closeInventory();
  117.                 map.put(player.getUniqueId(), event.getInventory().getItem(event.getSlot()));
  118.                 player.openInventory(dyeInventory(player.getUniqueId()));
  119.             } else if (event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4) {
  120.                 player.closeInventory();
  121.                 player.getInventory().setChestplate(event.getInventory().getItem(event.getSlot()));
  122.             }
  123.             if (event.getSlot() == 8) {
  124.                 player.closeInventory();
  125.                 player.openInventory(mainInventory());
  126.             }
  127.         } else if (event.getInventory().getName().equals(invLeggingsName)) {
  128.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  129.                 event.setCancelled(true);
  130.             }
  131.             if (event.getSlot() == 0) {
  132.                 player.closeInventory();
  133.                 map.put(player.getUniqueId(), event.getInventory().getItem(event.getSlot()));
  134.                 player.openInventory(dyeInventory(player.getUniqueId()));
  135.             } else if (event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4) {
  136.                 player.closeInventory();
  137.                 player.getInventory().setLeggings(event.getInventory().getItem(event.getSlot()));
  138.             }
  139.             if (event.getSlot() == 8) {
  140.                 player.closeInventory();
  141.                 player.openInventory(mainInventory());
  142.             }
  143.         } else if (event.getInventory().getName().equals(invBootsName)) {
  144.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  145.                 event.setCancelled(true);
  146.             }
  147.             if (event.getSlot() == 0) {
  148.                 player.closeInventory();
  149.                 map.put(player.getUniqueId(), event.getInventory().getItem(event.getSlot()));
  150.                 player.openInventory(dyeInventory(player.getUniqueId()));
  151.             } else if (event.getSlot() == 1 || event.getSlot() == 2 || event.getSlot() == 3 || event.getSlot() == 4) {
  152.                 player.closeInventory();
  153.                 player.getInventory().setBoots(event.getInventory().getItem(event.getSlot()));
  154.             }
  155.             if (event.getSlot() == 8) {
  156.                 player.closeInventory();
  157.                 player.openInventory(mainInventory());
  158.             }
  159.         } else if (event.getInventory().getName().equals(invDyesName)) {
  160.             if (!event.getAction().equals(InventoryAction.PICKUP_ONE) || event.isRightClick() || event.isShiftClick()) {
  161.                 event.setCancelled(true);
  162.             }
  163.             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) {
  164.                 ItemStack is = event.getInventory().getItem(event.getSlot());
  165.                 //ItemStack is = map.get(player.getUniqueId());
  166.                 player.closeInventory();
  167.                 //Dye dye = (Dye) event.getInventory().getItem(event.getSlot()).getData();
  168.                 //Color color = dye.getColor().getColor();
  169.                 //LeatherArmorMeta meta = (LeatherArmorMeta) is.getItemMeta();
  170.                 //meta.setColor(color);
  171.                 //is.setItemMeta(meta);
  172.                 if (is.getType().equals(Material.LEATHER_HELMET)) {
  173.                     player.getInventory().setHelmet(is);
  174.                 } else if (is.getType().equals(Material.LEATHER_CHESTPLATE)) {
  175.                     player.getInventory().setChestplate(is);
  176.                 } else if (is.getType().equals(Material.LEATHER_LEGGINGS)) {
  177.                     player.getInventory().setLeggings(is);
  178.                 } else if (is.getType().equals(Material.LEATHER_BOOTS)) {
  179.                     player.getInventory().setBoots(is);
  180.                 }
  181.             }
  182.             if (event.getSlot() == 8) {
  183.                 player.closeInventory();
  184.                 player.openInventory(mainInventory());
  185.             }
  186.         }
  187.     }
  188.  
  189.     private Inventory mainInventory() {
  190.         Inventory inv = Bukkit.createInventory(null, 9, invWardrobeName);
  191.         ItemStack helmet = new ItemStack(Material.LEATHER_HELMET);
  192.         ItemStack chestplate = new ItemStack(Material.LEATHER_CHESTPLATE);
  193.         ItemStack leggings = new ItemStack(Material.LEATHER_LEGGINGS);
  194.         ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
  195.         ItemStack clear = new ItemStack(Material.EMERALD);
  196.         ItemMeta meta = clear.getItemMeta();
  197.         meta.setDisplayName("Remove all armor");
  198.         clear.setItemMeta(meta);
  199.  
  200.         inv.setItem(0, helmet);
  201.         inv.setItem(1, chestplate);
  202.         inv.setItem(2, leggings);
  203.         inv.setItem(3, boots);
  204.         inv.setItem(8, clear);
  205.         return inv;
  206.     }
  207.  
  208.     private Inventory helmetInventory() {
  209.         Inventory inv = Bukkit.createInventory(null, 9, invHelmetName);
  210.         ItemStack is1 = new ItemStack(Material.LEATHER_HELMET);
  211.         ItemStack is2 = new ItemStack(Material.IRON_HELMET);
  212.         ItemStack is3 = new ItemStack(Material.GOLD_HELMET);
  213.         ItemStack is4 = new ItemStack(Material.CHAINMAIL_HELMET);
  214.         ItemStack is5 = new ItemStack(Material.DIAMOND_HELMET);
  215.         ItemStack back = new ItemStack(Material.EMERALD);
  216.         ItemMeta meta = back.getItemMeta();
  217.         meta.setDisplayName("Go back");
  218.         back.setItemMeta(meta);
  219.  
  220.         inv.setItem(0, is1);
  221.         inv.setItem(1, is2);
  222.         inv.setItem(2, is3);
  223.         inv.setItem(3, is4);
  224.         inv.setItem(4, is5);
  225.         inv.setItem(8, back);
  226.         return inv;
  227.     }
  228.  
  229.     private Inventory chestPlateInventory() {
  230.         Inventory inv = Bukkit.createInventory(null, 9, invChestPlateName);
  231.         ItemStack is1 = new ItemStack(Material.LEATHER_CHESTPLATE);
  232.         ItemStack is2 = new ItemStack(Material.IRON_CHESTPLATE);
  233.         ItemStack is3 = new ItemStack(Material.GOLD_CHESTPLATE);
  234.         ItemStack is4 = new ItemStack(Material.CHAINMAIL_CHESTPLATE);
  235.         ItemStack is5 = new ItemStack(Material.DIAMOND_CHESTPLATE);
  236.         ItemStack back = new ItemStack(Material.EMERALD);
  237.         ItemMeta meta = back.getItemMeta();
  238.         meta.setDisplayName("Go back");
  239.         back.setItemMeta(meta);
  240.  
  241.         inv.setItem(0, is1);
  242.         inv.setItem(1, is2);
  243.         inv.setItem(2, is3);
  244.         inv.setItem(3, is4);
  245.         inv.setItem(4, is5);
  246.         inv.setItem(8, back);
  247.         return inv;
  248.     }
  249.  
  250.     private Inventory leggingsInventory() {
  251.         Inventory inv = Bukkit.createInventory(null, 9, invLeggingsName);
  252.         ItemStack is1 = new ItemStack(Material.LEATHER_LEGGINGS);
  253.         ItemStack is2 = new ItemStack(Material.IRON_LEGGINGS);
  254.         ItemStack is3 = new ItemStack(Material.GOLD_LEGGINGS);
  255.         ItemStack is4 = new ItemStack(Material.CHAINMAIL_LEGGINGS);
  256.         ItemStack is5 = new ItemStack(Material.DIAMOND_LEGGINGS);
  257.         ItemStack back = new ItemStack(Material.EMERALD);
  258.         ItemMeta meta = back.getItemMeta();
  259.         meta.setDisplayName("Go back");
  260.         back.setItemMeta(meta);
  261.  
  262.         inv.setItem(0, is1);
  263.         inv.setItem(1, is2);
  264.         inv.setItem(2, is3);
  265.         inv.setItem(3, is4);
  266.         inv.setItem(4, is5);
  267.         inv.setItem(8, back);
  268.         return inv;
  269.     }
  270.  
  271.     private Inventory bootsInventory() {
  272.         Inventory inv = Bukkit.createInventory(null, 9, invBootsName);
  273.         ItemStack is1 = new ItemStack(Material.LEATHER_BOOTS);
  274.         ItemStack is2 = new ItemStack(Material.IRON_BOOTS);
  275.         ItemStack is3 = new ItemStack(Material.GOLD_BOOTS);
  276.         ItemStack is4 = new ItemStack(Material.CHAINMAIL_BOOTS);
  277.         ItemStack is5 = new ItemStack(Material.DIAMOND_BOOTS);
  278.         ItemStack back = new ItemStack(Material.EMERALD);
  279.         ItemMeta meta = back.getItemMeta();
  280.         meta.setDisplayName("Go back");
  281.         back.setItemMeta(meta);
  282.  
  283.         inv.setItem(0, is1);
  284.         inv.setItem(1, is2);
  285.         inv.setItem(2, is3);
  286.         inv.setItem(3, is4);
  287.         inv.setItem(4, is5);
  288.         inv.setItem(8, back);
  289.         return inv;
  290.     }
  291.  
  292.     private final Inventory dyeInventory(UUID uuid) {
  293.         Inventory inv = Bukkit.createInventory(null, 9, invDyesName);
  294.         ItemStack purpleDye = map.get(uuid).clone();
  295.         LeatherArmorMeta purple = (LeatherArmorMeta) purpleDye.getItemMeta();
  296.         purple.setColor(Color.PURPLE);
  297.         purpleDye.setItemMeta(purple);
  298.  
  299.         ItemStack blackDye = map.get(uuid).clone();
  300.         LeatherArmorMeta black = (LeatherArmorMeta) blackDye.getItemMeta();
  301.         black.setColor(Color.BLACK);
  302.         blackDye.setItemMeta(black);
  303.  
  304.         ItemStack whiteDye = map.get(uuid).clone();
  305.         LeatherArmorMeta white = (LeatherArmorMeta) whiteDye.getItemMeta();
  306.         white.setColor(Color.WHITE);
  307.         whiteDye.setItemMeta(white);
  308.  
  309.         ItemStack redDye = map.get(uuid).clone();
  310.         LeatherArmorMeta red = (LeatherArmorMeta) redDye.getItemMeta();
  311.         red.setColor(Color.RED);
  312.         redDye.setItemMeta(red);
  313.  
  314.         ItemStack blueDye = map.get(uuid).clone();
  315.         LeatherArmorMeta blue = (LeatherArmorMeta) blueDye.getItemMeta();
  316.         blue.setColor(Color.BLUE);
  317.         blueDye.setItemMeta(blue);
  318.  
  319.         ItemStack greenDye = map.get(uuid).clone();
  320.         LeatherArmorMeta green = (LeatherArmorMeta) greenDye.getItemMeta();
  321.         green.setColor(Color.GREEN);
  322.         greenDye.setItemMeta(green);
  323.  
  324.         ItemStack grayDye = map.get(uuid).clone();
  325.         LeatherArmorMeta gray = (LeatherArmorMeta) grayDye.getItemMeta();
  326.         gray.setColor(Color.GRAY);
  327.         grayDye.setItemMeta(gray);
  328.  
  329.         ItemStack back = new ItemStack(Material.EMERALD);
  330.         ItemMeta meta = back.getItemMeta();
  331.         meta.setDisplayName("Go back");
  332.         back.setItemMeta(meta);
  333.  
  334.         inv.setItem(0, purpleDye);
  335.         inv.setItem(1, blackDye);
  336.         inv.setItem(2, whiteDye);
  337.         inv.setItem(3, redDye);
  338.         inv.setItem(4, blueDye);
  339.         inv.setItem(5, greenDye);
  340.         inv.setItem(6, grayDye);
  341.         inv.setItem(7, map.get(uuid));
  342.         inv.setItem(8, back);
  343.         return inv;
  344.     }
  345. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement