"rightclick on player"-listener

Discussion in 'Plugin Development' started by G4meM0ment, Apr 7, 2012.

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

    G4meM0ment

    Hi,
    Iam working on a plugin to arrest player, something like chaining them.

    How would you create a listener which is listening rightcklicking a player with a specified item?

    ~G4meM0ment

    This is my Listener:

    Code:
    package me.G4meM0ment.Chaintrain;
     
    import java.util.HashMap;
     
    import org.bukkit.entity.Item;
    import org.bukkit.entity.Player;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.player.PlayerInteractEntityEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
     
    import me.G4meM0ment.Chaintrain.Chaintrain;
     
    public class EventListener implements org.bukkit.event.Listener {
       
        public static HashMap<Player, Player> data = new HashMap<Player, Player>();
       
        Chaintrain chaintrain;
       
        public EventListener(Chaintrain Chaintrain) {
           
        Chaintrain.getServer().getPluginManager().registerEvents(this, Chaintrain);
       
        @EventHandler
        public void onPlayerInteractEntityEvent(PlayerInteractEvent event) {
            Item confItem;
            Player Chainer = (Player) event.getPlayer();
                   
            if(event.isCancelled())
            return;
            if(!(event.getClickedBlock() instanceof Player))
            return;
            if(!(event.getItem() == confItem))
            return;
            if(event.getClickedBlock() instanceof Player)
                event.getPlayer();
           
           
        }
     
       
        }
     
     
    }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 25, 2016
  2. Block cannot be an Player, mayby its an gooed idee to use the "PlayerInteractEntityEvent" event?
     
  3. Offline

    G4meM0ment


    But how to continue? I retrun everything I dont want.
    But how to find out if I rightclick a player with the specified item?
     
  4. Code:java
    1. @EventHandler
    2. public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) {
    3. Item confItem;
    4. Player Chainer = event.getPlayer();
    5.  
    6. if(event.isCancelled())
    7. return;
    8. if(!(event.[COLOR=#000000][B][URL='http://jd.bukkit.org/apidocs/org/bukkit/event/player/PlayerInteractEntityEvent.html#getRightClicked()']getRightClicked[/URL][/B]()[/COLOR] instanceof Player))
    9. return;
    10. if(!(event.getItem() == confItem))
    11. return;
    12. event.[COLOR=#000000][B][URL='http://jd.bukkit.org/apidocs/org/bukkit/event/player/PlayerInteractEntityEvent.html#getRightClicked()']getRightClicked[/URL][/B]();[/COLOR]
    13.  
    14.  
    15. }
     
  5. Offline

    G4meM0ment

    I use it now like this but Iam not sure if its right to "put" the event.getPlayer() into the hashmap... may the .getRichtClicked()?

    The code:

    Code:
    @EventHandler
    public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) {
                   
        if(event.isCancelled())
        return;
        if(!(event.getRightClicked() instanceof Player))
        return;
        if(event.getRightClicked() instanceof Player)
        {   
        Player Chainer = (Player) event.getPlayer();
        data.put((Player) event.getPlayer(), Chainer);
        }
        else
            data.put((Player) event.getPlayer(), null);
       
       
        Player Chained = (Player)event.getPlayer();
        Player Chainer = data.get(Chainer);
       
        }
     
  6. event.getPlayer() = player that right clicked
    event.getRightClicked() = entity that has been clicked
     
  7. Offline

    G4meM0ment

    I got a sulotion but now I have a new problem watch my new thread. :p
     
Thread Status:
Not open for further replies.

Share This Page