get Clicked player

Discussion in 'Plugin Development' started by HungerCraftNL, Nov 23, 2013.

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

    HungerCraftNL

    Hello,

    I'm making a plugin whitch creates a menu in an inventory, but how can I get the clicked player?
    Inventorys Class:
    Code:java
    1. public class Inventorys implements Listener{
    2. public Inventory online, player;
    3. public ItemStack kick, info;
    4.  
    5. public Inventorys(){
    6. online = Bukkit.createInventory(null, 63, ChatColor.GREEN + "Online Players:");
    7. player = Bukkit.createInventory(null, 9);
    8.  
    9. kick = createItem(Material.ANVIL, ChatColor.RED + "Kick");
    10. info = createItem(Material.MAP , ChatColor.GREEN + "Info");
    11. }
    12.  
    13. public void onJoin(PlayerJoinEvent e){
    14. if(!e.getPlayer().hasPermission("adminsystem.admin")){
    15. ItemStack head = new ItemStack(Material.SKULL_ITEM, 1);
    16. ItemMeta headmeta = head.getItemMeta();
    17. headmeta.setDisplayName(ChatColor.GREEN + e.getPlayer().getName());
    18. head.setItemMeta(headmeta);
    19. online.addItem(head);
    20. }
    21. }
    22. public void onLeave(PlayerQuitEvent e){
    23. if(!e.getPlayer().hasPermission("adminsystem.admin")){
    24. ItemStack head = new ItemStack(Material.SKULL_ITEM, 1);
    25. ItemMeta headmeta = head.getItemMeta();
    26. headmeta.setDisplayName(e.getPlayer().getName());
    27. head.setItemMeta(headmeta);
    28. online.remove(head);
    29. }
    30. }
    31. public void onClick(InventoryClickEvent e){
    32. Player p = (Player) e.getWhoClicked();
    33. if(e.getInventory().equals(online)){
    34. Player clicked = Bukkit.getPlayer(e.getCurrentItem().getItemMeta().getDisplayName());
    35. p.closeInventory();
    36.  
    37. p.openInventory(player);
    38. }
    39. else if(e.getInventory().equals(player)){
    40. if(e.getCurrentItem().equals(kick)){
    41.  
    42. }
    43. }
    44. }
    45. public ItemStack createItem(Material mat, String name){
    46. ItemStack item = new ItemStack(mat, 1);
    47. ItemMeta im = item.getItemMeta();
    48. im.setDisplayName(name);
    49. item.setItemMeta(im);
    50. return item;
    51. }
    52. }
    53.  

    Main class:
    Code:java
    1. public class AdminSystem extends JavaPlugin{
    2.  
    3. private Inventorys invs = new Inventorys();
    4.  
    5. public void onEnable(){
    6. Bukkit.getPluginManager().registerEvents(this.invs, this);
    7.  
    8. saveConfig();
    9. }
    10. public void onDisable(){
    11.  
    12. }
    13. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    14. Player p = (Player) sender;
    15. if(cmd.getName().equalsIgnoreCase("as")){
    16. if(args.length == 0){
    17. p.openInventory(invs.online);
    18. }
    19. }
    20. return false;
    21. }
    22. }
    23.  

    Player clicked = Bukkit.getPlayer(e.getCurrentItem().getItemMeta().getDisplayName());
    How can I get it to the player inventory? That's my question...
     
  2. Offline

    xTrollxDudex

  3. Offline

    HungerCraftNL

    Good morning.
    Code:java
    1. public void onClick(InventoryClickEvent e){
    2. Player p = (Player) e.getWhoClicked();
    3. if(e.getInventory().equals(online)){
    4. Player clicked = Bukkit.getPlayer(e.getCurrentItem().getItemMeta().getDisplayName());
    5. p.closeInventory();
    6.  
    7. p.openInventory(player);
    8. }
    9. else if(e.getInventory().equals(player)){
    10. if(e.getCurrentItem().equals(kick)){
    11. CLICKED PLAYER?!
    12. }
    13. }
    14. }

    How can I get the clicked player into the part of the inventory 'player'?
     
  4. Offline

    xTrollxDudex

  5. Offline

    HungerCraftNL

    What has adding a item to do with getting a player?
     
  6. Offline

    cummo15

    HungerCraftNL This is how I do it in my plugin. I think this is what you want?

    Code:java
    1. String name = ChatColor.stripColor(event.getCurrentItem().getItemMeta().getDisplayName());
    2.  
    3. Player p = Bukkit.getPlayer(name);
    4.  
    5. if (p != null) {
    6. p.sendMessage("Herro!");
    7. }
    8.  
    9.  
     
  7. Offline

    xTrollxDudex

    HungerCraftNL
    It's difficult to figure out what you're trying to achieve: One post you're saying this:
    And another this:
    What is a clicked player? You have no apparent definition of using anything at all to do with a player

    The best I can guess is you're trying to do
    PHP:
    clicked.//do something
     
  8. Offline

    HungerCraftNL

    Yes, look I want to get a menu whitch is for every player, first you get an inventory whitch contains all the online players when you click on one of them you get an inventory that's for that player you clicked. (the clicked player)

    Sorry for my bad English

    @xTrollxDudex
    That's right! ;P
     
  9. Offline

    xTrollxDudex

    HungerCraftNL
    I get it!
    You just do player.setContents(clicked.getInventory().getContents())
     
Thread Status:
Not open for further replies.

Share This Page