Solved How to?

Discussion in 'Plugin Development' started by winitro, Sep 16, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    winitro

    How to get if the leather chestplate was colored and make it do something in the inventoryGUI D:
    Code:java
    1. package me.winitro.kits;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.List;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.Color;
    9. import org.bukkit.Material;
    10. import org.bukkit.command.Command;
    11. import org.bukkit.command.CommandSender;
    12. import org.bukkit.entity.Player;
    13. import org.bukkit.event.EventHandler;
    14. import org.bukkit.event.Listener;
    15. import org.bukkit.event.inventory.InventoryClickEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.inventory.meta.LeatherArmorMeta;
    20. import org.bukkit.plugin.java.JavaPlugin;
    21.  
    22. public class Main extends JavaPlugin implements Listener{
    23.  
    24.  
    25. public static ArrayList<String> KeeperofThings = new ArrayList<>();
    26.  
    27. public void onEnable(){
    28. getServer().getPluginManager().registerEvents(this, this);
    29. }
    30.  
    31. public ItemStack dyeArmour(Material material, int r, int g, int b){
    32. ItemStack armour = new ItemStack(material);
    33. LeatherArmorMeta lam = (LeatherArmorMeta) armour.getItemMeta();
    34.  
    35. lam.setColor(Color.fromRGB(r, g, b));
    36. armour.setItemMeta(lam);
    37.  
    38. return armour;
    39. }
    40. public ItemStack setMeta(ItemStack material, String name, List<String> lore) {
    41. if(((material == null) || material.getType() == Material.AIR) || (name == null && lore == null))
    42. return null;
    43.  
    44. ItemMeta im = material.getItemMeta();
    45. if(name != null)
    46. im.setDisplayName(name);
    47. if(lore != null)
    48. im.setLore(lore);
    49.  
    50. material.setItemMeta(im);
    51. return material;
    52. }
    53.  
    54. private void openGUI(Player player) {
    55. Inventory inv = Bukkit.createInventory(null, 27, "" + ChatColor.DARK_BLUE + ChatColor.BOLD + "Mine" + ChatColor.DARK_AQUA + ChatColor.BOLD + "Spasm " + ChatColor.RED + ChatColor.BOLD + "kits");
    56. ArrayList<String> lore = new ArrayList<String>();
    57. ItemStack Hunter = dyeArmour(Material.LEATHER_CHESTPLATE, 211, 124, 0);
    58. ItemMeta HunterMeta = Hunter.getItemMeta();
    59.  
    60. ItemStack Warrior = dyeArmour(Material.LEATHER_CHESTPLATE, 175, 0, 0);
    61. ItemMeta WarriorMeta = Warrior.getItemMeta();
    62. lore.add(ChatColor.GRAY + "1234");
    63. WarriorMeta.setLore(lore);
    64.  
    65. ItemStack ComingSoon = new ItemStack(Material.LAVA, 1);
    66. ItemMeta SoonMeta = ComingSoon.getItemMeta();
    67.  
    68. ItemStack Donor = new ItemStack(Material.STAINED_GLASS_PANE, 1);
    69. ItemMeta DonorMeta = ComingSoon.getItemMeta();
    70.  
    71. if(player.hasPermission("MinespasmKits.Hunter") || player.isOp()){
    72. HunterMeta.setDisplayName(ChatColor.GOLD + "Hunter");
    73. }
    74.  
    75. if(player.hasPermission("MinespasmKits.Warrior") || player.isOp()){
    76. WarriorMeta.setDisplayName(ChatColor.RED + "Warrior!");
    77. }
    78. SoonMeta.setDisplayName(ChatColor.RED + "" + ChatColor.BOLD + "Coming Soon!");
    79.  
    80. DonorMeta.setDisplayName("§c§l<< §e§lNon-Donor | Donor §c§l>>");
    81.  
    82. Hunter.setItemMeta(HunterMeta);
    83. Warrior.setItemMeta(WarriorMeta);
    84. ComingSoon.setItemMeta(SoonMeta);
    85. Donor.setItemMeta(DonorMeta);
    86.  
    87. inv.setItem(2, Hunter);
    88. inv.setItem(3, Warrior);
    89. inv.setItem(10, ComingSoon);
    90. inv.setItem(8, ComingSoon);
    91. inv.setItem(7, ComingSoon);
    92. inv.setItem(4, Donor);
    93. inv.setItem(13, Donor);
    94. inv.setItem(22, Donor);
    95.  
    96. player.openInventory(inv);
    97. }
    98. @EventHandler
    99. public void onInventoryClick(InventoryClickEvent event) {
    100. Player player1 = (Player) event.getWhoClicked();
    101. if (!ChatColor.stripColor(event.getInventory().getName())
    102. .equalsIgnoreCase("Mine" + "Spasm " + "kits"))
    103. return;
    104. event.setCancelled(true);
    105.  
    106. if (event.getCurrentItem() == null
    107. || event.getCurrentItem().getType() == Material.AIR
    108. || !event.getCurrentItem().hasItemMeta()) {
    109. player1.closeInventory();
    110. return;
    111. }
    112. switch (event.getCurrentItem().getType()) {
    113. case LEATHER_CHESTPLATE:
    114. ArrayList<String> lore = new ArrayList<String>();
    115. if(lore.contains(ChatColor.GRAY + "1234")){
    116. player1.closeInventory();
    117. player1.sendMessage("Warrior works!");
    118. break;
    119. }
    120. }
    121. }
    122. public boolean onCommand(CommandSender sender, Command cmd,
    123. String commandLabel, String[] args) {
    124. if(commandLabel.equalsIgnoreCase("Kit")){
    125. Player player = (Player) sender;
    126. openGUI(player.getPlayer());
    127. }
    128. return false;
    129. }
    130. }
    131.  
     
  2. Offline

    david123718

    What? please explain
     
  3. Offline

    Halginzz

    winitro
    You want to check, if the chestplate has some color?

    Example:
    Code:java
    1. ItemStack chestplate = new ItemStack(Material.LEATHER_CHESTPLATE);
    2. LeatherArmorMeta meta = (LeatherArmorMeta) chestplate.getItemMeta();
    3.  
    4. if (meta.getColor() != null) {
    5. //Do something cool here.
    6. }
     
  4. Offline

    winitro

    Halginzz , david123718 Well i'm trying to get if in the Inventory GUI if the Leather Chestplate is colored then the one with that color make do something such as
    Code:java
    1. if(Leather_Chestplate == 255, 0, 0){
    2. //do something
    3. }

    ^^^^^
    Example of what i'm trying to do.

    bump?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  5. Offline

    fireblast709

    winitro have you tried color.equals(otherColour)?
     
  6. Offline

    winitro

    I'll try it

    Color.equals? isn't a thing?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
Thread Status:
Not open for further replies.

Share This Page