Right Click Event

Discussion in 'Plugin Development' started by isarij, Jun 3, 2013.

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

    isarij

    Hi

    How do I register an event to be run when a player right-clicks. How do I do this?
     
  2. Offline

    kreashenz

    Code:
    // Pseudo code.
    PlayerInteractEvent {
    if event.getAction() == Action.right_click_air {
    // do something
    }
    }
     
  3. Offline

    isarij

    I tried:
    Code:
    public void PlayerInteractEvent(PlayerInteractEvent event)
    but it didn't work...
     
  4. Offline

    kreashenz

    isarij You need the @EventHandler, sorry.
     
  5. Offline

    isarij

    @kreashenz



    I recompiled and used the following code
    Code:
    [/SIZE]
     
    @EventHandler
    public void PlayerInteractEvent(PlayerInteractEvent event) {
    event.getPlayer().sendMessage("Interact event!");
    if (event.getAction() == Action.RIGHT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK){
    event.getPlayer().sendMessage("Click!");
    Claim current = GriefPrevention.instance.dataStore.getClaimAt(event.getPlayer().getLocation(), true, null);
    event.getPlayer().sendMessage(current.toString());
    }
    }
    [SIZE=3]
    [/CODE][/SIZE]

    Let me repost that code...
    Code:
    @EventHandler
    public void PlayerInteractEvent(PlayerInteractEvent event) {
        event.getPlayer().sendMessage("Interact event!");
        if (event.getAction() == Action.RIGHT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK){
            event.getPlayer().sendMessage("Click!");
            Claim current = GriefPrevention.instance.dataStore.getClaimAt(event.getPlayer().getLocation(), true, null);
            event.getPlayer().sendMessage(current.toString());
        }
    }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 1, 2016
  6. Offline

    Bancey

    isarij Have you registered your events in your onEnable()?
     
  7. Offline

    isarij

    No? That sound important...
     
  8. Offline

    Bancey

    isarij You add this to your onEnable() method:
    Code:java
    1. this.getServer().getPluginManager().registerEvents(this, this);

    Or if you listeners are in a different class
    Code:java
    1. this.getServer().getPluginManager().registerEvents(ListenerClass, this);
     
  9. Offline

    isarij

    Thanks :)
     
  10. Offline

    isarij

    I have to be doing something wrong...

    Code:
        public void onEnable(){
            getServer().getPluginManager().registerEvents(this, this);
        }
     
    and
     
        @EventHandler(priority = EventPriority.HIGH)
        public void PlayerRightClick(PlayerInteractEvent event){
                Player player = event.getPlayer();
            Bukkit.broadcastMessage("Interact! " + player.getName());
        }
    Edit: I'm using bukkit 1.2.5
     
  11. Offline

    driller100

    bukkit 1.2.5 Doesn't need @EventHandler I think
     
  12. Offline

    Ar7ific1al

    driller100 To my knowledge, events always need event handlers.
     
  13. Offline

    MuisYa

    Hahahaha, I love your reaction! "That sound important..."

    You are right, listening methods do not need event handlers in 1.2.5

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 1, 2016
Thread Status:
Not open for further replies.

Share This Page