Solved listeners

Discussion in 'Plugin Development' started by mastermustard, Feb 14, 2013.

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

    mastermustard

    I'm having issues with getting my listeners to enable on startup. I've looked over the wiki on how to do so but im not having any luck with figuring out which to use. any help would be greatly appreciated!

    main:
    Code:
    package com.gmail.btincher99;
     
    import java.util.logging.Logger;
     
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class controlledcreative extends JavaPlugin{
        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() + " Version " + pdfFile.getVersion() + " Has been enabled");
       
       
        }
    }
    


    listener:
    Code:
    package com.gmail.btincher99;
     
    import org.bukkit.ChatColor;
    import org.bukkit.GameMode;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockPlaceEvent;
     
    public class CCBlockListener implements Listener{
       
        @EventHandler
        public void onBlockPlaceEvent(BlockPlaceEvent event){
            Player player = event.getPlayer();
     
            if(!(player.isOp())){
                if(player.getGameMode() == GameMode.CREATIVE){
                    if(event.getBlock().getType() == Material.BEDROCK){
                        event.setCancelled(true);
                        player.sendMessage(ChatColor.AQUA + "[StoneWerk Creative] " + ChatColor.DARK_RED + "You cannot place Bedrock!");                   
                }else if(event.getBlock().getType() == Material.LAVA){
                        event.setCancelled(true);
                        player.sendMessage(ChatColor.AQUA + "[StoneWerk Creative] " + ChatColor.DARK_RED + "You cannot place Lava!");
                }else if(event.getBlock().getType() == Material.BEACON){
                        event.setCancelled(true);
                        player.sendMessage(ChatColor.AQUA + "[StoneWerk Creative] " + ChatColor.DARK_RED + "You cannot place Beacon!");
                }else if(event.getBlock().getType() == Material.WATER){
                        event.setCancelled(true);
                        player.sendMessage(ChatColor.AQUA + "[StoneWerk Creative] " + ChatColor.DARK_RED + "You cannot place Water!");
                }else if(event.getBlock().getType() == Material.WATER_BUCKET){
                        event.setCancelled(true);
                        player.sendMessage(ChatColor.AQUA + "[StoneWerk Creative] " + ChatColor.DARK_RED + "You cannot place Water!");
                }else if(event.getBlock().getType() == Material.LAVA_BUCKET){
                        event.setCancelled(true);
                        player.sendMessage(ChatColor.AQUA + "[StoneWerk Creative] " + ChatColor.DARK_RED + "You cannot place Lava!");
                }else if(event.getBlock().getType() == Material.LAVA_BUCKET){
                        event.setCancelled(true);
                        player.sendMessage(ChatColor.AQUA + "[StoneWerk Creative] " + ChatColor.DARK_RED + "You cannot place Lava!");
                    }
                   
                }
           
            }
     
        }
     
    }
     
  2. Offline

    AstramG

    In your onEnable try adding this
    Code:
     @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " Version " + pdfFile.getVersion() + " Has been enabled");
            Bukkit.getServer().getPluginManager().registerEvents(new CCBlockListener(), this);
        }
     
  3. Offline

    mastermustard

    will i need to put anything in the listener class?
     
  4. Offline

    AstramG

    Nope, you already have the events correctly set up. Just not registered in the server, add what I told you to, and tell me if it worked.
     
  5. Offline

    mastermustard

    its telling me, "the constructor CCBlockListener() is undefined"
     
  6. Offline

    AstramG

    Swap out CCBlockListener for whatever your listener class file is called, I think it should be called CCBlockListener but I could be wrong
     
  7. Offline

    deApollo

    You might have to define the constructor, put this is your listener:

    public whateveryourlisteneriscalled()
    {
    }
     
  8. Offline

    mastermustard

    alright ill try i didn't trust the quick fix (which said that)

    also it is CCBlockListener

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 31, 2016
  9. Offline

    AstramG

    post what you have in onEnable, let me see. I think what I gave you is right.
     
  10. Offline

    deApollo

    Basically you're instantiating a new class, and then registering events in it. To instantiate the class, the class needs a constructor. The constructor is usually used to pass information into the newly instantiated class, but your code doesn't really require them, so a rather simple constructor is all that is required.
     
  11. Offline

    mastermustard

    thanks it works now
     
Thread Status:
Not open for further replies.

Share This Page