Solved BlockBreakEvent help

Discussion in 'Plugin Development' started by BeeJayMendrinos, Jan 17, 2013.

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

    BeeJayMendrinos

    i am trying to code a plugin that will broadcast a message when a player breaks certain blocks, but it doesn't... I have no errors but it doesn't broadcast.. any ideas?

    Code:
    package cityseige.common;
     
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.entity.Player;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class CitySeige extends JavaPlugin{
     
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            System.out.println(pdfFile.getName() + " version "
                    + pdfFile.getVersion() + " by " + pdfFile.getAuthors() + " is enabled!");
        }   
        Player player;
        public void onBlockBreakEvent(BlockBreakEvent event) {
           
            Material mat = event.getBlock().getType();
            if(mat  == Material.GOLD_BLOCK) {
                Bukkit.getServer().broadcastMessage(event.getPlayer() +  "destroyed a tower!");
                }else{
                    if(mat == Material.IRON_BLOCK) {
                        Bukkit.getServer().broadcastMessage(event.getPlayer() + " destroyed a bridge!");
                    } else {
                        if(mat == Material.EMERALD_BLOCK) {
                            Bukkit.getServer().broadcastMessage(event.getPlayer() + " destroyed the green city!");
                        } else {
                            if(mat == Material.DIAMOND_BLOCK) {
                                    Bukkit.getServer().broadcastMessage(event.getPlayer() + " destroyed the blue city!");
                            }
                        }
                }
            }
        }
        public void onDisable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            System.out.println(pdfFile.getName() + " version "
                    + pdfFile.getVersion() + " by " + pdfFile.getAuthors() + " has been disabled!");
        }
     
    }
     
  2. Offline

    mike0631

    public void onBlockBreakEvent(BlockBreakEvent event) {
    Put @EventHandler above it.
    Also register the event.
     
  3. Offline

    BeeJayMendrinos

    mike0631 what do you mean register? my mind is kinda blank today
     
  4. Offline

    mike0631

  5. Offline

    BeeJayMendrinos

  6. Offline

    Jigsaw

    BeeJayMendrinos

    You should look into "else if" instead of nesting so many "if" "else" statements inside each other. Your code will get confusing fast. If you want something even easier to read, try a switch statement.

    Code:
            switch (event.getBlock().getType()){
            case GOLD_BLOCK:
                // Do something when they break a Gold Block
                break;
            case IRON_BLOCK:
                // Do something when they break an Iron Block
                break;
            case EMERALD_BLOCK:
                // Do something when they break an Emerald Block
                break;
            case DIAMOND_BLOCK:
                // Do something when they break a Diamond Block
                break;
            default:
                // If not any of the blocks above, do something else.
                break;
            }
     
    devilquak likes this.
  7. Offline

    fireblast709

    Its not possible to switch over the Material enum not without the use of static imports
     
  8. Offline

    BeeJayMendrinos

    It doesn't matter now, I've fixed it
     
Thread Status:
Not open for further replies.

Share This Page