Gui problems

Discussion in 'Plugin Development' started by winitro, Aug 20, 2014.

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

    winitro

    Listener
    Code:java
    1. package me.winitro.potup;
    2.  
    3. import java.util.Arrays;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.DyeColor;
    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.inventory.Inventory;
    13. import org.bukkit.inventory.ItemStack;
    14. import org.bukkit.inventory.meta.ItemMeta;
    15. import org.bukkit.material.Wool;
    16. import org.bukkit.plugin.Plugin;
    17. import org.bukkit.plugin.java.JavaPlugin;
    18. import org.bukkit.potion.Potion;
    19. import org.bukkit.potion.PotionEffect;
    20. import org.bukkit.potion.PotionEffectType;
    21. import org.bukkit.potion.PotionType;
    22.  
    23.  
    24. public class Main extends JavaPlugin implements Listener{
    25.  
    26.  
    27. private Inventory inv;
    28. private ItemStack w, f, d, f1;
    29.  
    30. public Main(Plugin p) {
    31. inv = Bukkit.getServer().createInventory(null, 27, ChatColor.AQUA + "Pot Selector");
    32. w = createItem(DyeColor.GREEN, ChatColor.LIGHT_PURPLE + "Pots");
    33. f = createItem(PotionType.FIRE_RESISTANCE, ChatColor.AQUA + "FireProtect");
    34. d = createItem(PotionType.STRENGTH, ChatColor.DARK_RED + "MoreDamage");
    35. f1 = createItem(PotionType.SPEED, ChatColor.BLUE + "SONIC!");
    36.  
    37. inv.setItem(10, f);
    38. inv.setItem(12, d);
    39. inv.setItem(14, f1);
    40. inv.setItem(1, w);
    41. inv.setItem(2, w);
    42. inv.setItem(3, w);
    43. inv.setItem(4, w);
    44. inv.setItem(5, w);
    45. inv.setItem(6, w);
    46. inv.setItem(7, w);
    47. inv.setItem(8, w);
    48. inv.setItem(9, w);
    49. inv.setItem(11, w);
    50. inv.setItem(12, w);
    51. inv.setItem(14, w);
    52. inv.setItem(16, w);
    53. inv.setItem(17, w);
    54. inv.setItem(18, w);
    55. inv.setItem(19, w);
    56. inv.setItem(20, w);
    57. inv.setItem(21, w);
    58. inv.setItem(22, w);
    59. inv.setItem(23, w);
    60. inv.setItem(24, w);
    61. inv.setItem(24, w);
    62. inv.setItem(25, w);
    63. inv.setItem(26, w);
    64. inv.setItem(27, w);
    65.  
    66. getServer().getPluginManager().registerEvents(this, p);
    67. }
    68. private ItemStack createItem(DyeColor dc, String name) {
    69. ItemStack i = new Wool(dc).toItemStack(1);
    70. ItemMeta im = i.getItemMeta();
    71. im.setDisplayName(name);
    72. im.setLore(Arrays.asList("Please Pick your potion effect", "of" + name.toLowerCase() + "effects"));
    73. i.setItemMeta(im);
    74. return i;
    75. }
    76. private ItemStack createItem(PotionType p, String name) {
    77. ItemStack i = new Potion(p).toItemStack(1);
    78. ItemMeta im = i.getItemMeta();
    79. im.setDisplayName(name);
    80. im.setLore(Arrays.asList("Pick your potion effect", "of" + name.toLowerCase() + "effects"));
    81. i.setItemMeta(im);
    82. return i;
    83. }
    84.  
    85. public void show(Player p) {
    86. p.openInventory(inv);
    87. }
    88. @EventHandler
    89. public void onInventoryClick(InventoryClickEvent event){
    90. if(!event.getInventory().equals(inv)) return;
    91. if(event.getCurrentItem().getItemMeta().getDisplayName().contains("FireProtect")){
    92. event.setCancelled(true);
    93. event.getWhoClicked().addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 200, 1));
    94. event.getWhoClicked().closeInventory();
    95. }
    96. if(!event.getInventory().equals(inv)) return;
    97. if(event.getCurrentItem().getItemMeta().getDisplayName().contains("MoreDamage")){
    98. event.setCancelled(true);
    99. event.getWhoClicked().addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 200, 1));
    100. event.getWhoClicked().closeInventory();
    101. }
    102. if(!event.getInventory().equals(inv)) return;
    103. if(event.getCurrentItem().getItemMeta().getDisplayName().contains("SONIC!")){
    104. event.setCancelled(true);
    105. event.getWhoClicked().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 200, 1));
    106. event.getWhoClicked().closeInventory();
    107. }
    108. if(!event.getInventory().equals(inv)) return;
    109. if(event.getCurrentItem().getItemMeta().getDisplayName().contains("Pots")){
    110. event.setCancelled(true);
    111. event.getWhoClicked().closeInventory();
    112. }
    113. }
    114. }

    Main class
    Code:java
    1. package me.winitro.potup;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.event.EventHandler;
    5. import org.bukkit.event.Listener;
    6. import org.bukkit.event.block.Action;
    7. import org.bukkit.event.player.PlayerInteractEvent;
    8. import org.bukkit.plugin.java.JavaPlugin;
    9.  
    10. public class MenuInv extends JavaPlugin implements Listener {
    11.  
    12. private Main inv;
    13.  
    14. public void onEnable() {
    15. inv = new Main(this);
    16. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    17. }
    18. @EventHandler
    19. public void onPlayerInteract(PlayerInteractEvent e){
    20. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    21. inv.show(e.getPlayer());
    22. }
    23. }
     
  2. Offline

    fandemangas42

    Please use the "code" button when posting codes. And say what's your problem.
     
  3. Offline

    winitro

    fixed thanks for telling me about that feature
     
  4. Offline

    diamondcodes

    Without you even explaining what the problem is I can see that both classes extend JavaPlugin
     
Thread Status:
Not open for further replies.

Share This Page