How to keep a player from picking up items in their inventory

Discussion in 'Plugin Development' started by tylersyme, May 14, 2013.

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

    tylersyme

    I'm making a battle arena plugin and I don't want players to be able to edit their inventory AT ALL in any way. I've tried different people's ideas but there were glitches involved. How do I make it so that when a player picks up an item from their inventory... that item in their hand gets removed from their hand and placed back into the inventory.

    e.g.
    -Player clicks an item in his inventory-
    -item now follows player's cursor BUT-
    - the item then gets taken from the cursor and gets put back into the inventory slot from where it was removed, thus, preventing the player from editing anything because every time the player clicks an item it gets immediately put back-

    How do I achieve this?
     
  2. Offline

    hayhaycrusher

    tylersyme
    This stops the player from dropping an Eye of ender.
    to make it so they cant drop anything just use event.setcancelled(true); in the event

    Code:
    @EventHandler
    public void onPlayerDropItem(PlayerDropItemEvent event) {
     
    if (event.getItemDrop().getItemStack().getType() == Material.EYE_OF_ENDER) {
    event.setCancelled(true);
    }
    }
    This stops the player from dragging it out there inventory.
    to make it so they cant drag anything just use event.setcancelled(true); in the event

    Code:
    @EventHandler
    public void onInventoryClickEvent(InventoryClickEvent event){
     
    if(event.getCurrentItem().getType() == Material.EYE_OF_ENDER){
    event.setCancelled(true);
    }
    }
    This stops players from picking up an Eye of ender.
    to make it so they cant pickup anything just use event.setcancelled(true); in the event

    Code:
    @EventHandler
    public void onPickup(PlayerPickupItemEvent event){
     
    if(item.getItemStack().getType() == Material.EYE_OF_ENDER){
    event.setCancelled(true);
    }
    }
     
    Wizardo367 and qwiso like this.
  3. Offline

    tylersyme

    Thanks, this should help a lot
     
  4. Offline

    slimey101.

    None of them seem to be working for me can you help?
    Code:java
    1. package me.slimey101.MainMenu;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.Material;
    8. import org.bukkit.command.Command;
    9. import org.bukkit.command.CommandSender;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.block.Action;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.player.PlayerDropItemEvent;
    16. import org.bukkit.event.player.PlayerInteractEvent;
    17. import org.bukkit.event.player.PlayerPickupItemEvent;
    18. import org.bukkit.inventory.Inventory;
    19. import org.bukkit.inventory.ItemStack;
    20. import org.bukkit.inventory.meta.ItemMeta;
    21. import org.bukkit.plugin.PluginManager;
    22. import org.bukkit.plugin.java.JavaPlugin;
    23.  
    24. public class Main extends JavaPlugin implements Listener {
    25.  
    26. private Visibility vis;
    27.  
    28. public Object Player;
    29. public Inventory Main;
    30.  
    31. public void onEnable(){
    32.  
    33. vis = new Visibility();
    34.  
    35. PluginManager pm = getServer().getPluginManager();
    36. pm.registerEvents(vis, this);
    37. }
    38.  
    39. public void shorName(){
    40. this.Player = getName();
    41. this.Main = main;
    42. }
    43.  
    44. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] a){
    45. Player p = (Player) sender;
    46. if(cmd.getName().equalsIgnoreCase("ss")){
    47. p.openInventory(main);
    48. }
    49. return false;
    50. }
    51.  
    52. @EventHandler
    53. public void onPlayerInteract(PlayerInteractEvent e){
    54. Player p = e.getPlayer();
    55. if (e.getAction().equals(Action.RIGHT_CLICK_AIR ) || e.getAction().equals(Action.RIGHT_CLICK_BLOCK) &&
    56. (p.getItemInHand().getType() == Material.MAGMA_CREAM)){
    57. p.openInventory(main);
    58. }
    59. }
    60.  
    61. // Shop Item
    62. ItemStack shop = new ItemStack(Material.MAGMA_CREAM);
    63. {
    64. ItemMeta itemmeta = shop.getItemMeta();
    65. ArrayList<String> im = new ArrayList<String>();
    66. itemmeta.setDisplayName(ChatColor.AQUA + "Shard Tokens");
    67. im.add(ChatColor.GRAY + "Shards: " + ChatColor.RED + "Coming soon");
    68. im.add("");
    69. im.add(ChatColor.GRAY + "You can get more shards by doing");
    70. im.add(ChatColor.GRAY + "quests or buy more shard on our");
    71. im.add(ChatColor.GRAY + "website that you find at:");
    72. im.add(ChatColor.GOLD + "[url]http://www.mc-iceage.enjin.com/[/url]");
    73. itemmeta.setLore(im);
    74. shop.setItemMeta(itemmeta);
    75. }
    76.  
    77. // PlayerVis Item
    78. ItemStack PlayerVis = new ItemStack(Material.INK_SACK, 1, (short)10);
    79. {
    80. ItemMeta itemmeta = PlayerVis.getItemMeta();
    81. ArrayList<String> im = new ArrayList<String>();
    82. itemmeta.setDisplayName(ChatColor.GREEN + "Player visibility");
    83. im.add(ChatColor.GRAY + "Stats: " + ChatColor.GREEN + "On");
    84. im.add(ChatColor.GOLD + "Click to toggle");
    85. itemmeta.setLore(im);
    86. PlayerVis.setItemMeta(itemmeta);
    87. }
    88.  
    89. // Wardrobe Item
    90. ItemStack Wardrobe = new ItemStack(Material.WOODEN_DOOR);
    91. {
    92. ItemMeta itemmeta = Wardrobe.getItemMeta();
    93. ArrayList<String> im = new ArrayList<String>();
    94. itemmeta.setDisplayName(ChatColor.RED + "Wardrobe");
    95. im.add(ChatColor.GRAY + "Coming soon!");
    96. itemmeta.setLore(im);
    97. Wardrobe.setItemMeta(itemmeta);
    98. }
    99.  
    100. // Effects Item
    101. ItemStack Effects = new ItemStack(Material.MELON_SEEDS);
    102. {
    103. ItemMeta itemmeta = Effects.getItemMeta();
    104. ArrayList<String> im = new ArrayList<String>();
    105. itemmeta.setDisplayName(ChatColor.RED + "Effects");
    106. im.add(ChatColor.GRAY + "Coming soon!");
    107. itemmeta.setLore(im);
    108. Effects.setItemMeta(itemmeta);
    109. }
    110.  
    111. // Trails Item
    112. ItemStack Trails = new ItemStack(Material.PUMPKIN_SEEDS);
    113. {
    114. ItemMeta itemmeta = Trails.getItemMeta();
    115. ArrayList<String> im = new ArrayList<String>();
    116. itemmeta.setDisplayName(ChatColor.RED + "Trails");
    117. im.add(ChatColor.GRAY + "Coming soon!");
    118. itemmeta.setLore(im);
    119. Trails.setItemMeta(itemmeta);
    120. }
    121.  
    122. // Create the custom inventory
    123. Inventory main = Bukkit.createInventory(null, 54, ChatColor.DARK_GRAY + "Shard Menu");
    124. {
    125. // Add the ItemStack to the virtual inventory (from above)
    126. main.setItem(49, shop);
    127. main.setItem(50, PlayerVis);
    128. main.setItem(29, Wardrobe);
    129. main.setItem(31, Effects);
    130. main.setItem(33, Trails);
    131.  
    132. }
    133.  
    134. @EventHandler
    135. public void onEnventoryClickEvent(InventoryClickEvent e){
    136. e.setCancelled(true);
    137. }
    138.  
    139. @EventHandler
    140. public void onPickup(PlayerPickupItemEvent e){
    141. e.setCancelled(true);
    142. }
    143.  
    144. @EventHandler
    145. public void onPlayerDropItem(PlayerDropItemEvent e){
    146. e.setCancelled(true);
    147. }
    148. }
     
Thread Status:
Not open for further replies.

Share This Page