How could stop people from taking this item?

Discussion in 'Plugin Development' started by PolarCraft, Jan 6, 2014.

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

    PolarCraft

    Okay so I am making a teleporting plugin. But at the moment you can take the items. How could you stop this?

    Code:java
    1. package net.jc.minecraft;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.Material;
    6. import org.bukkit.command.Command;
    7. import org.bukkit.command.CommandSender;
    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.plugin.java.JavaPlugin;
    16.  
    17. public final class Main extends JavaPlugin implements Listener {
    18. public static Inventory main;
    19.  
    20. public void onEnable() {
    21. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    22. }
    23.  
    24. public Main() {
    25. main = Bukkit.getServer().createInventory(null, 9, "Teleportation");
    26.  
    27. main.setItem(2, new ItemStack(Material.TNT, 1));
    28. main.setItem(3, new ItemStack(Material.IRON_AXE, 1));
    29. main.setItem(4, new ItemStack(Material.NETHER_STAR));
    30. main.setItem(5, new ItemStack(Material.DIAMOND_SWORD));
    31. main.setItem(6, new ItemStack(Material.SAND, 1));
    32.  
    33.  
    34. ItemMeta tnt = main.getItem(2).getItemMeta();
    35. ItemMeta sg = main.getItem(3).getItemMeta();
    36. ItemMeta hub = main.getItem(4).getItemMeta();
    37. ItemMeta survival = main.getItem(5).getItemMeta();
    38. ItemMeta walls = main.getItem(6).getItemMeta();
    39.  
    40. tnt.setDisplayName(ChatColor.DARK_RED + "TNTRun");
    41. sg.setDisplayName(ChatColor.GREEN + "SurvivalGames");
    42. hub.setDisplayName(ChatColor.YELLOW + "Hub");
    43. survival.setDisplayName(ChatColor.DARK_RED + "Survival");
    44. walls.setDisplayName(ChatColor.GREEN + "The Walls");
    45.  
    46. main.getItem(2).setItemMeta(tnt);
    47. main.getItem(3).setItemMeta(sg);
    48. main.getItem(4).setItemMeta(hub);
    49. main.getItem(5).setItemMeta(survival);
    50. main.getItem(6).setItemMeta(walls);
    51. }
    52.  
    53. @EventHandler
    54. public void onInventoryClick(InventoryClickEvent e) {
    55. Player p = (Player) e.getWhoClicked();
    56. if(!e.getInventory().getName().equalsIgnoreCase(main.getName())) return;
    57. if(e.getCurrentItem().getItemMeta() == null) return;
    58. if(e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.DARK_RED + "TNTRun")) {
    59. e.setCancelled(true);
    60. p.chat("/tntrun");
    61. e.getWhoClicked().closeInventory();
    62. } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GREEN + "SurvivalGames")) {
    63. e.setCancelled(true);
    64. p.chat("/hg");
    65. e.getWhoClicked().closeInventory();
    66. } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.YELLOW + "Hub")) {
    67. e.setCancelled(true);
    68. p.chat("/hub");
    69. e.getWhoClicked().closeInventory();
    70. //} else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.DARK_RED + "Survival")) {
    71. //e.setCancelled(true);
    72. //p.chat("/weatherset");
    73. //e.getWhoClicked().closeInventory();
    74. //} else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GREEN + "The Walls")) {
    75. //e.setCancelled(true);
    76. //p.chat("/weatherset");
    77. //e.getWhoClicked().closeInventory();
    78. }
    79. }
    80. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    81. if(cmd.getName().equalsIgnoreCase("admin")) {
    82. if(sender.hasPermission("test")) {
    83. Player p = (Player) sender;
    84. p.openInventory(main);
    85. }
    86. }
    87. return true;
    88. }
    89. }
     
  2. Offline

    Deleted user

    PolarCraft

    Use these events:
    InventoryClickEvent--get the inventory's name and cancel it

    And PlayerDropItemEvent--again, check the name and cancel it
     
Thread Status:
Not open for further replies.

Share This Page