Noob prob with PlayerInteractEvent

Discussion in 'Plugin Development' started by ratedam, Feb 2, 2014.

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

    ratedam

    Good evening,

    i'm a beginner with minecraft plugins development and im trying to implement something simple for now. Whenever the user clicks on a block on the floor i send him a message saying "You've pressed a block".

    I have the main class and the class with the listener:

    Main class:
    Code:java
    1. package com.angelo.clicar;
    2.  
    3. import java.util.logging.Logger;
    4.  
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Material;
    7. import org.bukkit.block.Block;
    8. import org.bukkit.block.Sign;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.block.Action;
    13. import org.bukkit.event.player.PlayerInteractEvent;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.PlayerInventory;
    16. import org.bukkit.plugin.PluginDescriptionFile;
    17. import org.bukkit.plugin.PluginManager;
    18. import org.bukkit.plugin.java.JavaPlugin;
    19.  
    20. public class Clicar extends JavaPlugin{
    21.  
    22.  
    23.  
    24. public void onDisable() {
    25. getLogger().info("Disabled");
    26. }
    27.  
    28. public void onEnable() {
    29. getLogger().info("Enabled");
    30. PluginManager pm = getServer().getPluginManager();
    31. pm.registerEvents(new CListener(),this);
    32. }
    33.  
    34.  
    35.  
    36. }
    37.  


    Listener:
    Code:java
    1. package com.angelo.clicar;
    2.  
    3. import org.bukkit.entity.Player;
    4. import org.bukkit.event.Listener;
    5. import org.bukkit.event.block.Action;
    6. import org.bukkit.event.player.PlayerInteractEvent;
    7.  
    8. public class CListener implements Listener {
    9. int chgblock;
    10.  
    11. public void onClickEvent(PlayerInteractEvent e) {
    12. if (e.getAction().equals(Action.LEFT_CLICK_BLOCK)) {
    13. e.getPlayer().sendMessage("You've made it");
    14.  
    15. }
    16. }
    17.  
    18. }
    19.  


    Plugin.yml
    name: Clicar
    main: com.angelo.clicar.Clicar
    version: 1.0


    -- Ingame if i press the left mouse button in a block nothing happens. I already tried to change it to the right click aswell.

    Could you guys give me a little help please?

    Thank you.
     
  2. Offline

    FireBreath14

    Simple fix: you're missing the @EventHandler tag. Above your method in the listener class, put this:

    @EventHandler

    so now the whole thing looks like this:

    Code:
    @EventHandler
    public void onClickEvent(PlayerInteractEvent e)...
    The event handler has to be notified of your method or else nothing happens :)
     
  3. Offline

    ratedam

    It worked. Thanks mate, appreciated it! ;)
     
Thread Status:
Not open for further replies.

Share This Page