Main class can't find listener?

Discussion in 'Plugin Development' started by MetaSurvival, Aug 6, 2013.

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

    MetaSurvival

    Here are my codes:

    Main class:
    Code:
    package com.louie.Test;
     
    import java.util.logging.Logger;
     
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
     
     
    public class Test extends JavaPlugin {
    public static Test plugin;
    public final Logger logger = Logger.getLogger("Minecraft");
     
        @Override
        public void onDisable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " Has been Disabled!");
        }
     
        @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName()+ " Verson " + pdfFile.getVersion() + " Has been Enabled!");
            this.getServer().getPluginManager().registerEvents(new PlayerListener(), this);
            getConfig().options().copyDefaults(true);
            saveConfig();
        }
    }
     
          
    PlayerListener:

    Code:
    package com.louie.Test;
     
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.block.Block;
    import org.bukkit.block.BlockFace;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.ItemStack;
     
    public class PlayerListener implements Listener {
        public static Test plugin;
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent event) {
            Player player = event.getPlayer();
            int blockId = player.getItemInHand().getType().getId();
            ItemStack item = player.getItemInHand();
            if(item == null){
                return;
            }
            blockId = plugin.getConfig().getInt("BoomStickID");
            Block block = player.getTargetBlock(null, 50);
            Location location = block.getLocation();
            World world = player.getWorld();
            world.createExplosion(location,25);
            world.strikeLightning(location);
            block.setType(Material.LAVA);
            block.getRelative(BlockFace.UP).setType(Material.LAVA);
            block.getRelative(BlockFace.DOWN).setType(Material.LAVA);
            block.getRelative(BlockFace.NORTH).setType(Material.LAVA);
            block.getRelative(BlockFace.EAST).setType(Material.LAVA);
            block.getRelative(BlockFace.WEST).setType(Material.LAVA);
        }
    }
     
    
    This error is in console when player clicks with ItemID said in config.yml: [19:33:55] Louie: http://gyazo.com/ab58a7d6f98944203f850782979d60ee

    Thanks -
     
  2. Offline

    Henzz

    MetaSurvival
    In your plugin.yml file, your main path should look like this.
    main: me.louie.Test.Test
     
  3. Offline

    MetaSurvival

    Henzz
    No because it's "com." not "me." and it is already like "com.louie.Test.Test"
     
  4. Offline

    Sicka_gp

    Maybe you could try adding a constructor.

    Code:java
    1. package com.louie.Test;
    2.  
    3. import java.util.logging.Logger;
    4.  
    5. import org.bukkit.plugin.PluginDescriptionFile;
    6. import org.bukkit.plugin.java.JavaPlugin;
    7.  
    8.  
    9. public class Test extends JavaPlugin {
    10. public static Test plugin;
    11. public final Logger logger = Logger.getLogger("Minecraft");
    12.  
    13. @Override
    14. public void onDisable() {
    15. PluginDescriptionFile pdfFile = this.getDescription();
    16. this.logger.info(pdfFile.getName() + " Has been Disabled!");
    17. }
    18.  
    19. @Override
    20. public void onEnable() {
    21. PluginDescriptionFile pdfFile = this.getDescription();
    22. this.logger.info(pdfFile.getName()+ " Verson " + pdfFile.getVersion() + " Has been Enabled!");
    23. this.getServer().getPluginManager().registerEvents(new PlayerListener(this), this);
    24. getConfig().options().copyDefaults(true);
    25. saveConfig();
    26. }
    27. }
    28.  


    Code:java
    1. package com.louie.Test;
    2.  
    3. import org.bukkit.Location;
    4. import org.bukkit.Material;
    5. import org.bukkit.World;
    6. import org.bukkit.block.Block;
    7. import org.bukkit.block.BlockFace;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.EventHandler;
    10. import org.bukkit.event.Listener;
    11. import org.bukkit.event.player.PlayerInteractEvent;
    12. import org.bukkit.inventory.ItemStack;
    13.  
    14. import cz.Sicka_gp.ConfigurableMessages.ConfigurableMessages;
    15.  
    16. public class PlayerListener implements Listener {
    17. public static Test plugin;
    18.  
    19. public PlayerListener(Test instance) {
    20. plugin = instance;
    21. }
    22.  
    23. @EventHandler
    24. public void onPlayerInteract(PlayerInteractEvent event) {
    25. Player player = event.getPlayer();
    26. int blockId = player.getItemInHand().getType().getId();
    27. ItemStack item = player.getItemInHand();
    28. if(item == null){
    29. return;
    30. }
    31. blockId = plugin.getConfig().getInt("BoomStickID");
    32. Block block = player.getTargetBlock(null, 50);
    33. Location location = block.getLocation();
    34. World world = player.getWorld();
    35. world.createExplosion(location,25);
    36. world.strikeLightning(location);
    37. block.setType(Material.LAVA);
    38. block.getRelative(BlockFace.UP).setType(Material.LAVA);
    39. block.getRelative(BlockFace.DOWN).setType(Material.LAVA);
    40. block.getRelative(BlockFace.NORTH).setType(Material.LAVA);
    41. block.getRelative(BlockFace.EAST).setType(Material.LAVA);
    42. block.getRelative(BlockFace.WEST).setType(Material.LAVA);
    43. }
    44. }
     
  5. Offline

    Henzz

    MetaSurvival
    Didn't realise it was a com, I'd also do the above code by passing the main class in the listeners constructor. Also on a side note, I'd suggest removing the loggers in your onenable/disable methods since Bukkit does that automatically.
     
  6. Offline

    MetaSurvival

    Sicka_gp
    Code:
    this.getServer().getPluginManager().registerEvents(new PlayerListener(this), this);
    Error at "(new PlayerListener(this), this);
    Error says: The constructor PlayerListener() is undefined
     
  7. Offline

    AmShaegar

    Open your plugin.jar with 7zip or winrar. Does it contain the PlayerListener.class?
     
  8. Offline

    Sicka_gp

    Tested and works.

    Test:
    Code:java
    1. package com.louie.Test;
    2.  
    3. import java.util.logging.Logger;
    4.  
    5. import org.bukkit.plugin.PluginDescriptionFile;
    6. import org.bukkit.plugin.java.JavaPlugin;
    7.  
    8.  
    9. public class Test extends JavaPlugin {
    10. public static Test plugin;
    11. public final Logger logger = Logger.getLogger("Minecraft");
    12.  
    13. @Override
    14. public void onDisable() {
    15. PluginDescriptionFile pdfFile = this.getDescription();
    16. this.logger.info(pdfFile.getName() + " Has been Disabled!");
    17. }
    18.  
    19. @Override
    20. public void onEnable() {
    21. PluginDescriptionFile pdfFile = this.getDescription();
    22. this.logger.info(pdfFile.getName()+ " Verson " + pdfFile.getVersion() + " Has been Enabled!");
    23. this.getServer().getPluginManager().registerEvents(new PlayerListener(this), this);
    24. getConfig().options().copyDefaults(true);
    25. saveConfig();
    26. }
    27. }

    PlayerListener:
    Code:java
    1. package com.louie.Test;
    2.  
    3. import org.bukkit.Location;
    4. import org.bukkit.Material;
    5. import org.bukkit.World;
    6. import org.bukkit.block.Block;
    7. import org.bukkit.block.BlockFace;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.EventHandler;
    10. import org.bukkit.event.Listener;
    11. import org.bukkit.event.player.PlayerInteractEvent;
    12. import org.bukkit.inventory.ItemStack;
    13.  
    14. public class PlayerListener implements Listener {
    15. public static Test plugin;
    16.  
    17. public PlayerListener(Test instance) {
    18. plugin = instance;
    19. }
    20.  
    21. @EventHandler
    22. public void onPlayerInteract(PlayerInteractEvent event) {
    23. Player player = event.getPlayer();
    24. ItemStack item = player.getItemInHand();
    25. if(item == null){
    26. return;
    27. }
    28. Block block = player.getTargetBlock(null, 50);
    29. Location location = block.getLocation();
    30. World world = player.getWorld();
    31. world.createExplosion(location,25);
    32. world.strikeLightning(location);
    33. block.setType(Material.LAVA);
    34. block.getRelative(BlockFace.UP).setType(Material.LAVA);
    35. block.getRelative(BlockFace.DOWN).setType(Material.LAVA);
    36. block.getRelative(BlockFace.NORTH).setType(Material.LAVA);
    37. block.getRelative(BlockFace.EAST).setType(Material.LAVA);
    38. block.getRelative(BlockFace.WEST).setType(Material.LAVA);
    39. }
    40. }


    plugin.yml:
    Code:
    name: Test
    main: com.louie.Test.Test
    author: Sicka_gp
    version: 0.1
     
  9. Offline

    MetaSurvival

    Yay thanks :) Works XD Sorry
     
Thread Status:
Not open for further replies.

Share This Page