[SOLVED] BlockBreakEvent and BlockPlaceEvent

Discussion in 'Plugin Development' started by Theodossis, Sep 25, 2012.

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

    Theodossis

    I have problems with BlockBreakEvent and BlockPlaceEvent and they don't work. I registered my class and i implemented to Listener. What's the problem?!?
    Please help,
    Theodossis
     
  2. Offline

    HON95

    Did you add the EventHandler annontation above the event handling methods?
     
  3. Post your code maybe?
     
  4. Offline

    DannyDog

    Please always post your code if you want people to help you with your problem.
    How can we help you if we don't know what you wrote?
     
  5. Offline

    Theodossis

    Here my class:
    Code:
    public class CoDMod extends JavaPlugin implements Listener {
        public static final Logger logger = Logger.getLogger("CoDMod");
       
        private String name = "[CoDMod] ";
       
        @Override
        public void onDisable() {
            this.saveConfig();
            logger.info(name + "Is now disabled!");
        }
        @Override
        public void onEnable() {
            PluginManager pm = getServer().getPluginManager();
            pm.registerEvents(this, this);
            this.getConfig().options().copyDefaults(true);
            this.saveConfig();
            logger.info(name + "Is now enabled!");
        }
        @Override
        public boolean onCommand(CommandSender s, Command c, String l, String[] args) {
            Player p = (Player) s;
            if(l.equalsIgnoreCase("addvip")) {
                if(!p.isOp()) {
                    p.sendMessage(ChatColor.RED + "You haven't got permission to use that!");
                }else{
                    if(args.length == 0) {
                    Player t = Bukkit.getServer().getPlayer(args[0]);
                    getConfig().set("Players." + t.getName() + ".VIP", true);
                    }
                }
            }
            return false;
        }
        @EventHandler
        public void onBreak(BlockBreakEvent e) {
            Player p = e.getPlayer();
            if(!p.isOp()) {
                e.setCancelled(true);
            }else{
                e.setCancelled(false);
            }
        }
        @EventHandler
        public void onPlace(BlockPlaceEvent e) {
            Player p = e.getPlayer();
            if(!p.isOp()) {
                e.setCancelled(true);
            }else{
                e.setCancelled(false);
            }
        }
        @EventHandler
        public void onJoin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            if(getConfig().getBoolean("Players." + p.getName() + ".VIP")==false) {
                e.setJoinMessage(ChatColor.GREEN + p.getName() + " has joined us!");
                p.getInventory().addItem(new ItemStack(Material.BOW, 1));
                p.getInventory().addItem(new ItemStack(Material.ARROW, 64));
            }
            if(getConfig().getBoolean("Players." + p.getName() + ".VIP")==true) {
                e.setJoinMessage(ChatColor.GOLD + "[VIP] " + p.getName() + ChatColor.GREEN + " has joined us!");
                p.getInventory().addItem(new ItemStack(Material.BOW, 1));
                p.getInventory().addItem(new ItemStack(Material.ARROW, 64));
                p.getInventory().addItem(new ItemStack(Material.ARROW, 64));
                p.getInventory().addItem(new ItemStack(Material.EGG, 2));
            }
        }
        @EventHandler
        public void onQuit(PlayerQuitEvent e) {
            Player p = e.getPlayer();
            if(getConfig().getBoolean("Players." + p.getName() + ".VIP")==false) {
                p.getInventory().clear();
                e.setQuitMessage(ChatColor.RED + p.getName() + " has left us!");
            }
            if(getConfig().getBoolean("Players." + p.getName() + ".VIP")==true) {
                p.getInventory().clear();
                e.setQuitMessage(ChatColor.GOLD + "[VIP] " + p.getName() + ChatColor.RED + " has left us!");
            }
        }
    }
     
  6. Mhm, is your plugin getting loaded?
    Check your console and if it's not even getting loaded create a plugin.yml.
    The code is just fine^^

    btw: you can leave out the
    Code:
    else{
                e.setCancelled(false);
            }
    parts.. they're unnecessary :)
     
  7. Offline

    HON95

    Actually, they would uncancle the event if some previous event handler cancelled it. So you (@Theodossis) should in most cases check if the event was cancelled before executing any fancy code.
     
  8. Offline

    Theodossis

    You mean i need different classes? Because if doesn't works D:

    SOLVED 1 Of my plugin was the problem!

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

    HON95

    No, no. Just check if the event was cancelled before doing anything (if (e.isCancelled()) return; ). And the previous event handlers part: other plugins receiving the event before your plugin did.
     
Thread Status:
Not open for further replies.

Share This Page