Inventory's

Discussion in 'Plugin Development' started by TheHolySheep_NL, Mar 25, 2014.

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

    TheHolySheep_NL

    hi i am making a plugin where donators can type /skill to open a menu and choose a skill).
    My problem:
    nothing happens when i click on the axe in the "skillinventory"
    and people can just take the axe out the inventory

    - Sheep

    Code:java
    1. package me.theholysheepnl.Donator;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.inventory.Inventory;
    12. import org.bukkit.inventory.ItemStack;
    13. import org.bukkit.plugin.java.JavaPlugin;
    14.  
    15.  
    16.  
    17. public class Main extends JavaPlugin implements Listener{
    18.  
    19. public static Inventory skillInventory;
    20.  
    21. public void onEnable() {
    22. skillInventory = Bukkit.createInventory(null, 9, "Skill Menu");
    23. Bukkit.getServer().getPluginManager().registerEvents(this,this);
    24. Bukkit.getServer().getPluginManager().registerEvents(new AxeListener(this),this);
    25. Bukkit.getServer().getPluginManager().registerEvents(new SwordListener(this),this);
    26.  
    27.  
    28. }
    29.  
    30.  
    31. public boolean onCommand(CommandSender cmd, Command command, String label, String[] args) {
    32. if(label.equalsIgnoreCase("skill")) {
    33. if(cmd instanceof Player) {
    34. ((Player) cmd).getPlayer().openInventory(skillInventory);
    35. ((Player) cmd).openInventory(skillInventory);
    36. skillInventory.clear();
    37. skillInventory.addItem(new ItemStack(Material.DIAMOND_AXE));
    38.  
    39. }
    40. }
    41. return false;
    42.  
    43.  
    44. }
    45. @EventHandler
    46. public void onInventoryClick(InventoryClickEvent e) {
    47. if(e.getInventory() == skillInventory) {
    48. if(e.getCurrentItem().getType() == Material.DIAMOND_AXE){
    49. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " remove sword.axe");
    50. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " add skill.axe");
    51. e.setCancelled(true);
    52. return;
    53. }
    54. else if(e.getCurrentItem().getType() == Material.DIAMOND_SWORD){
    55. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " remove skill.sword");
    56. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " add skill.axe");
    57. e.setCancelled(true);
    58. return;
    59.  
    60. }
    61.  
    62. }
    63. }
    64. }
    65.  
     
  2. Offline

    ShadowLAX

    TheHolySheep_NL Your problem is line 47: That check will never pass, because you are comparing two different instances. Compare the names of the two inventories instead.
     
  3. Offline

    PizzaPixel

  4. Offline

    MooshViolet

    Make sure you make an event for when they click the inventory.... declare when they click in that inventory name, and when they do, do e.setCancelled(true);
     
  5. Offline

    PizzaPixel

  6. Offline

    TheHolySheep_NL

    @ShadowLAX
    i changed it.
    did u mean this?

    - Sheep

    Code:java
    1. package me.theholysheepnl.Donator;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.inventory.Inventory;
    12. import org.bukkit.inventory.ItemStack;
    13. import org.bukkit.plugin.java.JavaPlugin;
    14.  
    15.  
    16.  
    17. public class Main extends JavaPlugin implements Listener{
    18.  
    19. public static Inventory skillInventory;
    20.  
    21. public void onEnable() {
    22. skillInventory = Bukkit.createInventory(null, 9, "Skill Menu");
    23. Bukkit.getServer().getPluginManager().registerEvents(this,this);
    24. Bukkit.getServer().getPluginManager().registerEvents(new AxeListener(this),this);
    25. Bukkit.getServer().getPluginManager().registerEvents(new SwordListener(this),this);
    26.  
    27.  
    28. }
    29.  
    30.  
    31. public boolean onCommand(CommandSender cmd, Command command, String label, String[] args) {
    32. if(label.equalsIgnoreCase("skill")) {
    33. if(cmd instanceof Player) {
    34. ((Player) cmd).getPlayer().openInventory(skillInventory);
    35. ((Player) cmd).openInventory(skillInventory);
    36. skillInventory.clear();
    37. skillInventory.addItem(new ItemStack(Material.DIAMOND_AXE));
    38.  
    39. }
    40. }
    41. return false;
    42.  
    43.  
    44. }
    45. @EventHandler
    46. public void onInventoryClick(InventoryClickEvent e) {
    47. if(e.equals(skillInventory)) {
    48. if(e.getCurrentItem().getType() == Material.DIAMOND_AXE){
    49. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " remove sword.axe");
    50. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " add skill.axe");
    51. e.setCancelled(true);
    52. return;
    53. }
    54. else if(e.getCurrentItem().getType() == Material.DIAMOND_SWORD){
    55. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " remove skill.sword");
    56. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " add skill.axe");
    57. e.setCancelled(true);
    58. return;
    59.  
    60. }
    61.  
    62. }
    63. }
    64. }
    65.  
     
  7. Offline

    MooshViolet

    Cancel the event and then run the stuff.
     
  8. Offline

    TheHolySheep_NL

    MooshViolet
    Did you mean this?
    it doesnt work :/

    Code:java
    1. @EventHandler
    2. public void onInventoryClick(InventoryClickEvent e) {
    3. if(e.equals("skillInventory")) {
    4. if(e.getCurrentItem().getType() == Material.DIAMOND_AXE){
    5. e.setCancelled(true);
    6. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " remove sword.axe");
    7. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " add skill.axe");
    8. return;
    9. }
    10. else if(e.getCurrentItem().getType() == Material.DIAMOND_SWORD){
    11. e.setCancelled(true);
    12. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " remove skill.sword");
    13. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + e.getWhoClicked() + " add skill.axe");
    14. return;
    15.  
    16. }
    17.  
    18. }
    19. }
    20. }
    21.  
     
  9. Offline

    Barinade

    if (e.getInventory().getTitle().equals("Skill Menu")) {
     
  10. Offline

    Wolfey

    TheHolySheep_NL You're checking if the event is equal to the inventory, lol...

    Do what Barinade said above me ^
     
  11. Offline

    TheHolySheep_NL

    Wolfey
    i edited it:
    You can't move the items out of the Invenotry, but nothing happens when you click on the item.

    - Sheep

    Code:java
    1. package me.theholysheepnl.Donator;
    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.Material;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.HumanEntity;
    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.event.inventory.InventoryCloseEvent;
    17. import org.bukkit.inventory.Inventory;
    18. import org.bukkit.inventory.ItemStack;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21.  
    22.  
    23. public class Main extends JavaPlugin implements Listener{
    24.  
    25. public static Inventory skillInventory;
    26.  
    27. List<String> viewing = new ArrayList<String>();
    28.  
    29. public void onEnable() {
    30. skillInventory = Bukkit.createInventory(null, 9, "Skill Menu");
    31. Bukkit.getServer().getPluginManager().registerEvents(this,this);
    32. Bukkit.getServer().getPluginManager().registerEvents(new AxeListener(this),this);
    33. Bukkit.getServer().getPluginManager().registerEvents(new SwordListener(this),this);
    34.  
    35.  
    36. }
    37.  
    38.  
    39. public boolean onCommand(CommandSender cmd, Command command, String label, String[] args) {
    40. Player p = (Player) cmd;
    41. if(label.equalsIgnoreCase("skill"))
    42. ((Player) cmd).getPlayer().openInventory(skillInventory);
    43. ((Player) cmd).openInventory(skillInventory);
    44. viewing.add(p.getName());
    45. skillInventory.clear();
    46. skillInventory.addItem(new ItemStack(Material.DIAMOND_AXE));
    47. skillInventory.addItem(new ItemStack(Material.DIAMOND_SWORD));
    48. skillInventory.addItem(new ItemStack(Material.DIAMOND_HOE));
    49. }
    50. }
    51. return false;
    52.  
    53.  
    54. }
    55. @EventHandler
    56. public void onInventoryClicks(InventoryClickEvent event) {
    57. if (viewing.contains(event.getWhoClicked().getName())) {
    58. event.setCancelled(true);
    59. Player p = (Player) event.getWhoClicked();
    60. if (event.getCurrentItem().getType() == Material.DIAMOND_AXE) {
    61. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.GOLD + " Heal Skill" + ChatColor.GREEN + "!");
    62. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " remove skill.sword");
    63. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " remove skill.hoe");
    64. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " add skill.axe");
    65. if (event.getCurrentItem().getType() == Material.DIAMOND_SWORD) {
    66. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.GOLD + " Heal Skill" + ChatColor.GREEN + "!");
    67. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " remove skill.axe");
    68. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " remove skill.hoe");
    69. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " add skill.sword");
    70. if (event.getCurrentItem().getType() == Material.DIAMOND_HOE) {
    71. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.GOLD + " EnderPearl Skill" + ChatColor.GREEN + "!");
    72. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " remove skill.sword");
    73. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " remove skill.axe");
    74. Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "pex user " + event.getWhoClicked() + " add skill.sword");
    75. }
    76. }
    77. }
    78. }
    79. }
    80.  
    81. @EventHandler
    82. public void onInventoryClose(InventoryCloseEvent event) {
    83. if (viewing.contains(event.getPlayer().getName()))
    84. viewing.remove(event.getPlayer().getName());
    85. }
    86. }
    87.  
     
  12. Offline

    Wolfey

    Try changing the event.getWhoClicked(), when you're dispatching the command, to p.getName()
     
  13. Offline

    TheHolySheep_NL

    Wolfey
    Do you mean on line 59?
     
  14. Offline

    Wolfey

  15. Offline

    Go Hard

    There's many ways to do this but here is the simplest way to do inventories.

    Code:
    if(e.getInventory().getName().equals(INVNAMEGOESHERE.getName())) {
      if(e.getCurrentItem().getType().equals(Material.DIRT)) {
        e.setCancelled(true);
        p.sendMessage("It works");
      }
    }
     
    
     
  16. Offline

    TheHolySheep_NL

    It works!

    Another quetion: how do i add names to the items?

    - Sheep

    Code:java
    1. package me.theholysheepnl.Donator;
    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.Material;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.Listener;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.inventory.InventoryCloseEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.plugin.java.JavaPlugin;
    19.  
    20.  
    21.  
    22. public class Main extends JavaPlugin implements Listener{
    23.  
    24. public static Inventory skillInventory;
    25.  
    26. List<String> viewing = new ArrayList<String>();
    27.  
    28. public void onEnable() {
    29. skillInventory = Bukkit.createInventory(null, 9, ChatColor.RED + "" + ChatColor.BOLD + "Skill" + ChatColor.GREEN + "" + ChatColor.BOLD + " Menu");
    30. Bukkit.getServer().getPluginManager().registerEvents(this,this);
    31. Bukkit.getServer().getPluginManager().registerEvents(new AxeListener(this),this);
    32. Bukkit.getServer().getPluginManager().registerEvents(new SwordListener(this),this);
    33. Bukkit.getServer().getPluginManager().registerEvents(new HoeListener(this),this);
    34.  
    35.  
    36. }
    37.  
    38.  
    39. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    40. final Player p = (Player) sender;
    41. if(cmd.getName().equalsIgnoreCase("skill")) {
    42. p.openInventory(skillInventory);
    43. viewing.add(p.getName());
    44. skillInventory.setItem(2, new ItemStack(Material.DIAMOND_AXE));
    45. skillInventory.setItem(4, new ItemStack(Material.DIAMOND_SWORD));
    46. skillInventory.setItem(6, new ItemStack(Material.DIAMOND_HOE));
    47. }
    48. return false;
    49.  
    50.  
    51. }
    52. @EventHandler
    53. public void onInventoryClicks(InventoryClickEvent e) {
    54. if (viewing.contains(e.getWhoClicked().getName())) {
    55. e.setCancelled(true);
    56. Player p = (Player) e.getWhoClicked();
    57. if(e.getInventory().getName().equals(skillInventory.getName())) {
    58. if(e.getCurrentItem().getType().equals(Material.DIAMOND_AXE)) {
    59. e.setCancelled(true);
    60. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.RED + " Heal Skill" + ChatColor.GREEN + "!");
    61. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.sword");
    62. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.hoe");
    63. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.axe");
    64. p.closeInventory();
    65.  
    66. }
    67. else if(e.getInventory().getName().equals(skillInventory.getName())) {
    68. if(e.getCurrentItem().getType().equals(Material.DIAMOND_SWORD)) {
    69. e.setCancelled(true);
    70. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.GOLD + " FireBall Skill" + ChatColor.GREEN + "!");
    71. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.axe");
    72. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.hoe");
    73. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.sword");
    74. p.closeInventory();
    75. }
    76. else if(e.getInventory().getName().equals(skillInventory.getName())) {
    77. if(e.getCurrentItem().getType().equals(Material.DIAMOND_HOE)) {
    78. e.setCancelled(true);
    79. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.AQUA + " EnderPearl Skill" + ChatColor.GREEN + "!");
    80. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.sword");
    81. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.axe");
    82. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.hoe");
    83. p.closeInventory();
    84. }
    85. }
    86. }
    87. }
    88. }
    89. }
    90.  
    91. @EventHandler
    92. public void onInventoryClose(InventoryCloseEvent event) {
    93. if (viewing.contains(event.getPlayer().getName()))
    94. viewing.remove(event.getPlayer().getName());
    95. }
    96. }
    97.  
    98.  
     
  17. skillInventory.setItem(int index, ItemStack);

    Replace "int index" with the slot number. Hotbar is 0-8. 9 is top left of your inventory. To check exactly what the number of the slot is, just make a inventory click event with player.sendMessage(slot).
     
  18. Offline

    TheHolySheep_NL

    WeeziMonkey
    Thanks
    i discovered it :D
    But do you know how to set the lore and name for example for the Diamond_AXE?

    - Sheep
     
  19. Offline

    Konkz

    TheHolySheep_NL
    <Edit by Moderator: Redacted bit url>
     
    Last edited by a moderator: Feb 13, 2017
  20. Offline

    TheHolySheep_NL

    Konkz
    i don't get it working on items in a inventory.
    Can you give an example?

    - Sheep
     
  21. Offline

    Konkz

    No, if I give you an "example" you will copy it and just edit it then never learn.
    What you do is make an item with different name and in slot "2" put that items meta.
     
  22. Offline

    TheHolySheep_NL

    Konkz i got it working Thanks!
    But if Players don't have "tsg.vip" nothing happens can you say whats wrong?
    And i get a red line under ";" at line: 96

    - Sheep

    Code:java
    1. package me.theholysheepnl.Donator;
    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.Material;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.Listener;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.inventory.InventoryCloseEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21.  
    22.  
    23. public class Main extends JavaPlugin implements Listener{
    24.  
    25. public static Inventory skillInventory;
    26.  
    27. JavaPlugin plugin;
    28.  
    29. List<String> viewing = new ArrayList<String>();
    30.  
    31. public void onEnable() {
    32. skillInventory = Bukkit.createInventory(null, 9, ChatColor.RED + "" + ChatColor.BOLD + "Skill" + ChatColor.GREEN + "" + ChatColor.BOLD + " Menu");
    33. Bukkit.getServer().getPluginManager().registerEvents(this,this);
    34. Bukkit.getServer().getPluginManager().registerEvents(new AxeListener(this),this);
    35. Bukkit.getServer().getPluginManager().registerEvents(new SwordListener(this),this);
    36. Bukkit.getServer().getPluginManager().registerEvents(new HoeListener(this),this);
    37.  
    38.  
    39.  
    40. }
    41.  
    42. ArrayList<Player> cooldown = new ArrayList<Player>();
    43.  
    44.  
    45. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    46. final Player p = (Player) sender;
    47. if(cooldown.contains(p))
    48. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.RED + "You have to wait 1 hour to choose an other" + ChatColor.GOLD + " Skill" + ChatColor.RED + "!");
    49. return true;
    50. {
    51. if(p.hasPermission("tsg.vip"))
    52. if(cmd.getName().equalsIgnoreCase("skill")) {
    53.  
    54. ItemStack Axe = new ItemStack(Material.DIAMOND_AXE);
    55. ItemMeta Axeim = Axe.getItemMeta();
    56. Axeim.setDisplayName(ChatColor.RED + "Heal Skill");
    57. List<String> loreListAxe = new ArrayList<String>();
    58. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Throws a health potion");
    59. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Heals 3 hearths!");
    60. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 30" + ChatColor.WHITE + " Seconds cooldown");
    61. Axeim.setLore(loreListAxe);
    62. Axe.setItemMeta(Axeim);
    63.  
    64. ItemStack Sword = new ItemStack(Material.DIAMOND_SWORD);
    65. ItemMeta Swordim = Sword.getItemMeta();
    66. Swordim.setDisplayName(ChatColor.GOLD + "FireBall Skill");
    67. List<String> loreListSword = new ArrayList<String>();
    68. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Shoots a FireBall");
    69. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Fancy Flame Effect");
    70. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 10" + ChatColor.WHITE + " Seconds cooldown");
    71. Swordim.setLore(loreListSword);
    72. Sword.setItemMeta(Swordim);
    73.  
    74. ItemStack Hoe = new ItemStack(Material.DIAMOND_HOE);
    75. ItemMeta Hoeim = Hoe.getItemMeta();
    76. Hoeim.setDisplayName(ChatColor.AQUA + "EnderPearl Skill");
    77. List<String> loreListHoe = new ArrayList<String>();
    78. loreListHoe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Throws an Enderpearl!");
    79. loreListHoe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 10" + ChatColor.WHITE + " Seconds cooldown");
    80. Hoeim.setLore(loreListHoe);
    81. Hoe.setItemMeta(Hoeim);
    82.  
    83. p.openInventory(skillInventory);
    84. viewing.add(p.getName());
    85. skillInventory.setItem(2, new ItemStack(Axe));
    86. skillInventory.setItem(4, new ItemStack(Sword));
    87. skillInventory.setItem(6, new ItemStack(Hoe));
    88. cooldown.add(p);
    89. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
    90. public void run() {
    91. cooldown.remove(p);
    92. }
    93. }, 72000);
    94. }else{
    95. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.RED + "You have to be atleast VIP to use" + ChatColor.GOLD + " Skills");
    96. }
    97.  
    98.  
    99.  
    100. @EventHandler
    101. public void onInventoryClicks(InventoryClickEvent e) {
    102. if (viewing.contains(e.getWhoClicked().getName())) {
    103. e.setCancelled(true);
    104. final Player p = (Player) e.getWhoClicked();
    105. if(e.getInventory().getName().equals(skillInventory.getName())) {
    106. if(e.getCurrentItem().getType().equals(Material.DIAMOND_AXE)) {
    107. e.setCancelled(true);
    108. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.RED + " Heal Skill" + ChatColor.GREEN + "!");
    109. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.sword");
    110. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.hoe");
    111. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.axe");
    112. p.closeInventory();
    113.  
    114. }
    115. else if(e.getInventory().getName().equals(skillInventory.getName())) {
    116. if(e.getCurrentItem().getType().equals(Material.DIAMOND_SWORD)) {
    117. e.setCancelled(true);
    118. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.GOLD + " FireBall Skill" + ChatColor.GREEN + "!");
    119. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.axe");
    120. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.hoe");
    121. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.sword");
    122. p.closeInventory();
    123.  
    124. }
    125. else if(e.getInventory().getName().equals(skillInventory.getName())) {
    126. if(e.getCurrentItem().getType().equals(Material.DIAMOND_HOE)) {
    127. e.setCancelled(true);
    128. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.AQUA + " EnderPearl Skill" + ChatColor.GREEN + "!");
    129. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.sword");
    130. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.axe");
    131. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.hoe");
    132. p.closeInventory();
    133.  
    134. }
    135. }
    136. }
    137. }
    138. }
    139. }
    140.  
    141. @EventHandler
    142. public void onInventoryClose(InventoryCloseEvent event) {
    143. if (viewing.contains(event.getPlayer().getName()))
    144. viewing.remove(event.getPlayer().getName());
    145. }
    146. }
    147.  
    148.  
    149.  
    150.  
     
  23. Offline

    Konkz


    What is line 96 for you? It makes no sense if you were to add ";" on this code.
    Also you never open the body for the permission (You never add the {)
     
  24. Offline

    TheHolySheep_NL

    Konkz
    I fixed it :D
    But i get an error when i run "/skill"

    - Sheep
    Main:

    Code:java
    1. package me.theholysheepnl.Donator;
    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.Material;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.Listener;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.inventory.InventoryCloseEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21.  
    22.  
    23. public class Main extends JavaPlugin implements Listener{
    24.  
    25. public static Inventory skillInventory;
    26.  
    27. JavaPlugin plugin;
    28.  
    29. List<String> viewing = new ArrayList<String>();
    30.  
    31. public void onEnable() {
    32. skillInventory = Bukkit.createInventory(null, 9, ChatColor.RED + "" + ChatColor.BOLD + "Skill" + ChatColor.GREEN + "" + ChatColor.BOLD + " Menu");
    33. Bukkit.getServer().getPluginManager().registerEvents(this,this);
    34. Bukkit.getServer().getPluginManager().registerEvents(new AxeListener(this),this);
    35. Bukkit.getServer().getPluginManager().registerEvents(new SwordListener(this),this);
    36. Bukkit.getServer().getPluginManager().registerEvents(new HoeListener(this),this);
    37.  
    38.  
    39.  
    40. }
    41.  
    42. ArrayList<Player> cooldown = new ArrayList<Player>();
    43.  
    44.  
    45. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    46. final Player p = (Player) sender;
    47. if(cmd.getName().equalsIgnoreCase("skill")) {
    48. if(cooldown.contains(p)) {
    49. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.RED + "You have to wait 1 hour to choose an other" + ChatColor.GOLD + " Skill" + ChatColor.RED + "!");
    50. return true;
    51. }
    52.  
    53. ItemStack Axe = new ItemStack(Material.DIAMOND_AXE);
    54. ItemMeta Axeim = Axe.getItemMeta();
    55. Axeim.setDisplayName(ChatColor.RED + "Heal Skill");
    56. List<String> loreListAxe = new ArrayList<String>();
    57. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Throws a health potion");
    58. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Heals 3 hearths!");
    59. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 30" + ChatColor.WHITE + " Seconds cooldown");
    60. Axeim.setLore(loreListAxe);
    61. Axe.setItemMeta(Axeim);
    62.  
    63. ItemStack Sword = new ItemStack(Material.DIAMOND_SWORD);
    64. ItemMeta Swordim = Sword.getItemMeta();
    65. Swordim.setDisplayName(ChatColor.GOLD + "FireBall Skill");
    66. List<String> loreListSword = new ArrayList<String>();
    67. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Shoots a FireBall");
    68. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Fancy Flame Effect");
    69. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 10" + ChatColor.WHITE + " Seconds cooldown");
    70. Swordim.setLore(loreListSword);
    71. Sword.setItemMeta(Swordim);
    72.  
    73. ItemStack Hoe = new ItemStack(Material.DIAMOND_HOE);
    74. ItemMeta Hoeim = Hoe.getItemMeta();
    75. Hoeim.setDisplayName(ChatColor.AQUA + "EnderPearl Skill");
    76. List<String> loreListHoe = new ArrayList<String>();
    77. loreListHoe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Throws an Enderpearl!");
    78. loreListHoe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 10" + ChatColor.WHITE + " Seconds cooldown");
    79. Hoeim.setLore(loreListHoe);
    80. Hoe.setItemMeta(Hoeim);
    81.  
    82. p.openInventory(skillInventory);
    83. viewing.add(p.getName());
    84. skillInventory.setItem(2, new ItemStack(Axe));
    85. skillInventory.setItem(4, new ItemStack(Sword));
    86. skillInventory.setItem(6, new ItemStack(Hoe));
    87. cooldown.add(p);
    88. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
    89. public void run() {
    90. cooldown.remove(p);
    91. }
    92. }, 72000);
    93. }else{
    94. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.RED + "You have to be atleast VIP to use" + ChatColor.GOLD + " Skills");
    95. }
    96. return false;
    97. }
    98.  
    99.  
    100.  
    101. @EventHandler
    102. public void onInventoryClicks(InventoryClickEvent e) {
    103. if (viewing.contains(e.getWhoClicked().getName())) {
    104. e.setCancelled(true);
    105. final Player p = (Player) e.getWhoClicked();
    106. if(e.getInventory().getName().equals(skillInventory.getName())) {
    107. if(e.getCurrentItem().getType().equals(Material.DIAMOND_AXE)) {
    108. e.setCancelled(true);
    109. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.RED + " Heal Skill" + ChatColor.GREEN + "!");
    110. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.sword");
    111. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.hoe");
    112. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.axe");
    113. p.closeInventory();
    114.  
    115. }
    116. else if(e.getInventory().getName().equals(skillInventory.getName())) {
    117. if(e.getCurrentItem().getType().equals(Material.DIAMOND_SWORD)) {
    118. e.setCancelled(true);
    119. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.GOLD + " FireBall Skill" + ChatColor.GREEN + "!");
    120. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.axe");
    121. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.hoe");
    122. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.sword");
    123. p.closeInventory();
    124.  
    125. }
    126. else if(e.getInventory().getName().equals(skillInventory.getName())) {
    127. if(e.getCurrentItem().getType().equals(Material.DIAMOND_HOE)) {
    128. e.setCancelled(true);
    129. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.AQUA + " EnderPearl Skill" + ChatColor.GREEN + "!");
    130. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.sword");
    131. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.axe");
    132. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.hoe");
    133. p.closeInventory();
    134.  
    135. }
    136. }
    137. }
    138. }
    139. }
    140. }
    141.  
    142. @EventHandler
    143. public void onInventoryClose(InventoryCloseEvent event) {
    144. if (viewing.contains(event.getPlayer().getName()))
    145. viewing.remove(event.getPlayer().getName());
    146. }
    147. }
    148.  
    149.  
    150.  
    151.  


    Error:
    Code:java
    1. [20:26:03 INFO]: TheHolySheep_NL issued server command: /skill
    2. [20:26:03 ERROR]: null
    3. org.bukkit.command.CommandException: Unhandled exception executing command 'skil
    4. l' in plugin Donator v0.2
    5. at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[cra
    6. ftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    7. at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19
    8. 6) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    9. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServe
    10. r.java:542) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    11. at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerCon
    12. nection.java:932) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    13. at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java
    14. :814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    15. at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java
    16. :28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    17. at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat
    18. .java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    19. at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146
    20. ) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    21. at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craf
    22. tbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    23. at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:6
    24. 55) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    25. at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
    26. 50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    27. at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
    28. 45) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    29. at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
    30. :457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    31. at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
    32. 17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    33. Caused by: java.lang.IllegalArgumentException: Plugin cannot be null
    34. at org.apache.commons.lang.Validate.notNull(Validate.java:203) ~[craftbu
    35. kkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    36. at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.validate(Craf
    37. tScheduler.java:391) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnk
    38. s]
    39. at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.runTaskTimer(
    40. CraftScheduler.java:120) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b297
    41. 5jnks]
    42. at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.scheduleSyncR
    43. epeatingTask(CraftScheduler.java:116) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-
    44. gbafd450-b2975jnks]
    45. at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.scheduleSyncD
    46. elayedTask(CraftScheduler.java:100) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gb
    47. afd450-b2975jnks]
    48. at me.theholysheepnl.Donator.Main.onCommand(Main.java:88) ~[?:?]
    49. at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[cra
    50. ftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    51. ... 13 more
     
  25. Offline

    Konkz

    What's line 88 in your "Main" class?
     
  26. Offline

    TheHolySheep_NL

    Konkz

    Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {

    and that is line 88 in Code Java: (see last post)

    - Sheep
     
  27. Offline

    Konkz


    Plugin cannot be null. I'm guessing change "plugin" to "this" seeing it's all in your main class
     
  28. Offline

    TheHolySheep_NL

    Konkz
    it works but i wanna add a permission to it.
    I tried to do this but nothing happends when they don''t have the permission.
    (i added the p.haspermission in line 46 in Code: Java)

    - Sheep

    Main:
    Code:java
    1. package me.theholysheepnl.Donator;
    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.Material;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.Listener;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.inventory.InventoryCloseEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21.  
    22.  
    23. public class Main extends JavaPlugin implements Listener{
    24.  
    25. public static Inventory skillInventory;
    26.  
    27. List<String> viewing = new ArrayList<String>();
    28.  
    29. public void onEnable() {
    30. skillInventory = Bukkit.createInventory(null, 9, ChatColor.RED + "" + ChatColor.BOLD + "Skill" + ChatColor.GREEN + "" + ChatColor.BOLD + " Menu");
    31. Bukkit.getServer().getPluginManager().registerEvents(this,this);
    32. Bukkit.getServer().getPluginManager().registerEvents(new AxeListener(this),this);
    33. Bukkit.getServer().getPluginManager().registerEvents(new SwordListener(this),this);
    34. Bukkit.getServer().getPluginManager().registerEvents(new HoeListener(this),this);
    35.  
    36.  
    37.  
    38. }
    39.  
    40. ArrayList<Player> cooldown = new ArrayList<Player>();
    41.  
    42.  
    43. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    44. final Player p = (Player) sender;
    45. if(cmd.getName().equalsIgnoreCase("skill")) {
    46. if(!p.hasPermission("tsg.vip")) {
    47. return true;
    48. }
    49. if(cooldown.contains(p)) {
    50. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.RED + "You have to wait 1 hour to choose an other" + ChatColor.GOLD + " Skill" + ChatColor.RED + "!");
    51. return true;
    52. }
    53.  
    54. ItemStack Axe = new ItemStack(Material.DIAMOND_AXE);
    55. ItemMeta Axeim = Axe.getItemMeta();
    56. Axeim.setDisplayName(ChatColor.RED + "Heal Skill");
    57. List<String> loreListAxe = new ArrayList<String>();
    58. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Throws a health potion");
    59. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Heals 3 hearths!");
    60. loreListAxe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 30" + ChatColor.WHITE + " Seconds cooldown");
    61. Axeim.setLore(loreListAxe);
    62. Axe.setItemMeta(Axeim);
    63.  
    64. ItemStack Sword = new ItemStack(Material.DIAMOND_SWORD);
    65. ItemMeta Swordim = Sword.getItemMeta();
    66. Swordim.setDisplayName(ChatColor.GOLD + "FireBall Skill");
    67. List<String> loreListSword = new ArrayList<String>();
    68. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Shoots a FireBall");
    69. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Fancy Flame Effect");
    70. loreListSword.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 10" + ChatColor.WHITE + " Seconds cooldown");
    71. Swordim.setLore(loreListSword);
    72. Sword.setItemMeta(Swordim);
    73.  
    74. ItemStack Hoe = new ItemStack(Material.DIAMOND_HOE);
    75. ItemMeta Hoeim = Hoe.getItemMeta();
    76. Hoeim.setDisplayName(ChatColor.AQUA + "EnderPearl Skill");
    77. List<String> loreListHoe = new ArrayList<String>();
    78. loreListHoe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE + " Throws an Enderpearl!");
    79. loreListHoe.add(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.RED + " 10" + ChatColor.WHITE + " Seconds cooldown");
    80. Hoeim.setLore(loreListHoe);
    81. Hoe.setItemMeta(Hoeim);
    82.  
    83. p.openInventory(skillInventory);
    84. viewing.add(p.getName());
    85. skillInventory.setItem(2, new ItemStack(Axe));
    86. skillInventory.setItem(4, new ItemStack(Sword));
    87. skillInventory.setItem(6, new ItemStack(Hoe));
    88. cooldown.add(p);
    89. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    90. public void run() {
    91. cooldown.remove(p);
    92. }
    93. }, 72000);
    94. }else{
    95. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.RED + "You have to be atleast VIP to use" + ChatColor.GOLD + " Skills");
    96. }
    97. return false;
    98. }
    99.  
    100.  
    101.  
    102. @EventHandler
    103. public void onInventoryClicks(InventoryClickEvent e) {
    104. if (viewing.contains(e.getWhoClicked().getName())) {
    105. e.setCancelled(true);
    106. final Player p = (Player) e.getWhoClicked();
    107. if(e.getInventory().getName().equals(skillInventory.getName())) {
    108. if(e.getCurrentItem().getType().equals(Material.DIAMOND_AXE)) {
    109. e.setCancelled(true);
    110. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.RED + " Heal Skill" + ChatColor.GREEN + "!");
    111. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.sword");
    112. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.hoe");
    113. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.axe");
    114. p.closeInventory();
    115.  
    116. }
    117. else if(e.getInventory().getName().equals(skillInventory.getName())) {
    118. if(e.getCurrentItem().getType().equals(Material.DIAMOND_SWORD)) {
    119. e.setCancelled(true);
    120. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.GOLD + " FireBall Skill" + ChatColor.GREEN + "!");
    121. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.axe");
    122. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.hoe");
    123. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.sword");
    124. p.closeInventory();
    125.  
    126. }
    127. else if(e.getInventory().getName().equals(skillInventory.getName())) {
    128. if(e.getCurrentItem().getType().equals(Material.DIAMOND_HOE)) {
    129. e.setCancelled(true);
    130. p.sendMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Donators" + ChatColor.WHITE + "] " + ChatColor.GREEN + "You selected the" + ChatColor.AQUA + " EnderPearl Skill" + ChatColor.GREEN + "!");
    131. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.sword");
    132. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " remove skill.axe");
    133. getServer().dispatchCommand(getServer().getConsoleSender(), "pex user " + p.getName() + " add skill.hoe");
    134. p.closeInventory();
    135.  
    136. }
    137. }
    138. }
    139. }
    140. }
    141. }
    142.  
    143. @EventHandler
    144. public void onInventoryClose(InventoryCloseEvent event) {
    145. if (viewing.contains(event.getPlayer().getName()))
    146. viewing.remove(event.getPlayer().getName());
    147. }
    148. }
    149.  
    150.  
    151.  
    152.  
     
  29. Offline

    Konkz


    If I was you I'd revise on Bukkit API a bit more. This is the very simple stuff, episode 2 of most tutorials.

    if (p.hasPermission("permission.node"){
    //do the code if they have permission
    }else{
    p.sendMessage("You don't have the permissions needed!");
    }
     
Thread Status:
Not open for further replies.

Share This Page