Solved BlockBreakEvent doesn 't work

Discussion in 'Plugin Development' started by ramptoetsenbord, Sep 15, 2017.

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

    ramptoetsenbord

    I am trying to make a zone where you can 't break any blocks the coordinates are:

    and here 's the code of the event:
    Code:
    package me.bukkit.firstFlame.events.block;
    
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    
    import net.md_5.bungee.api.ChatColor;
    
    public class BlockBreak implements Listener {
    
        @EventHandler
        public void onBlockBraek(BlockBreakEvent event) {
    
            Player player = event.getPlayer();
            Block block = event.getBlock();
            Material material = block.getType();
    
            if (material != Material.GRASS) {
                event.setCancelled(true);
                player.sendMessage(ChatColor.RED + "You are only alowd to break grass!");
            }
        }
    
    }
     
  2. @ramptoetsenbord
    Well, get the players position and check the following:
    • if player's x is > 1990
    • if player's x is < 2246
    • if player's z is > 127
    • if player'z z is < 1025
    If all of those are true, you know that the player is inside the zone, and you can cancel the event.
     
    Last edited: Sep 17, 2017
  3. Offline

    ramptoetsenbord

    sorry, but this doen 't work
     
  4. @ramptoetsenbord
    If you did it correctly it should work. Please show us the code you tried it with.
     
  5. Offline

    ramptoetsenbord

    here is the code:

    Code:
    package Server.plugin.events.block;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    
    public class BlockBreak implements Listener {
       
        public void onBlockBreak(BlockBreakEvent event) {
           
            Player player = event.getPlayer();
           
            Location playerLoc = player.getLocation();
           
            if (playerLoc.getX() >= 1990 && playerLoc.getX() <= 2246 && playerLoc.getZ() <= 1025 && playerLoc.getZ() >= 1272) {
               
                event.setCancelled(true);
                player.sendMessage(ChatColor.RED + "You cant break blocks here!");
            }
        }
    }
     
  6. @ramptoetsenbord
    Well the most probable cause is that you don't have an @EventHandler tag for your onBlockBreak method.
     
    Zombie_Striker likes this.
  7. Offline

    Caderape2

    @ramptoetsenbord
    Not Possible
     
  8. Offline

    ramptoetsenbord

    Last edited: Sep 15, 2017
  9. Offline

    timtower Administrator Administrator Moderator

  10. Offline

    ramptoetsenbord

    I am sorry but it still doesn 't work...
     
  11. Offline

    ramptoetsenbord

    i hareby show the updated code:
    Code:
    package Server.plugin.events.block;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    
    public class BlockBreak implements Listener {
    
        @EventHandler
        public void onBlockBreak(BlockBreakEvent event) {
    
            Player player = event.getPlayer();
    
            Location playerLoc = player.getLocation();
    
            if (playerLoc.getX() >= 1990 &&  playerLoc.getX() <= 2246 || playerLoc.getZ() >= 1272
                    && playerLoc.getZ() <= 1025) {
    
                event.setCancelled(true);
                player.sendMessage(ChatColor.RED + "You cant break blocks here!");
            }
        }
    }
     
  12. Offline

    timtower Administrator Administrator Moderator

  13. Offline

    ramptoetsenbord

    Code:
    package Server.plugin;
    
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import Server.plugin.commands.spawn;
    import Server.plugin.events.block.BlockBreak;
    import Server.plugin.events.player.PlayerRespawn;
    
    public class Main extends JavaPlugin {
    
        public void onEnable() {
    
            registerCommands();
            registerEvents();
    
        }
    
        public void onDisable() {
    
        }
    
        public void registerCommands() {
    
            getCommand("spawn").setExecutor(new spawn());
    
        }
       
        public void registerEvents() {
            PluginManager pm = getServer().getPluginManager();
           
            pm.registerEvents(new BlockBreak(), this);
            pm.registerEvents(new PlayerRespawn(), this);
        }
    }
     
  14. Offline

    timtower Administrator Administrator Moderator

  15. Offline

    Zombie_Striker

    You're still have these two values in the wrong place. You need to see if the Z is less than 1272, and greater than 1025. Swap the greater-than and less-than signs.
     
  16. Offline

    ramptoetsenbord

    Thanks a lot! It works now!!! Solved!
     
Thread Status:
Not open for further replies.

Share This Page