1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

BlockBreakEvent does not work. wtf

Discussion in 'Development' started by CortexPE, Feb 6, 2017.

  1. CortexPE

    CortexPE Witch

    Messages:
    61
    GitHub:
    cortexpe
    BlockBreakEvent does not work and idk why...
    But PlayerInteractEvent works perfectly.

    Here's the code:

    PHP:
    public function onBreak(BlockBreakEvent $ev){ //NOT WORKING
            
    if($ev->getPlayer()->isOp()) {
                if (
    $ev->getBlock()->getId() == 7) { //Bedrock
                
                    
    $bx $ev->getBlock()->getX();
                    
    $by $ev->getBlock()->getY();
                    
    $bz $ev->getBlock()->getZ();
                
                    
    $ev->getBlock()->getLevel()->dropItem(new Vector3($bx,$by,$bz), Item::get(701));
                    
    $ev->getBlock()->getLevel()->setBlock(new Vector3($bx,$by,$bz), Block::get(0));
                }
            }
        }

    public function 
    onTouch(PlayerInteractEvent $ev){ //WORKS PERFECTLY
            
    if($ev->getPlayer()->isOp()) {
                if (
    $ev->getBlock()->getId() == 7) {
               
                    
    $bx $ev->getBlock()->getX();
                    
    $by $ev->getBlock()->getY();
                    
    $bz $ev->getBlock()->getZ();
               
                    
    $ev->getBlock()->getLevel()->dropItem(new Vector3($bx,$by,$bz), Item::get(701)); 
                    
    $ev->getBlock()->getLevel()->setBlock(new Vector3($bx,$by,$bz), Block::get(0));
                }
            }
        }
    Help will be Appreciated...
     
  2. CortexPE

    CortexPE Witch

    Messages:
    61
    GitHub:
    cortexpe
    I don't get any errors, It just doesn't work.
     
  3. jasonwynn10

    jasonwynn10 Moderator Poggit Reviewer

    Messages:
    1,489
    GitHub:
    jasonwynn10
    Is the player op? Why do you need to set the block to be air after it was broken?
     
  4. robske_110 (Tim)

    robske_110 (Tim) Wither Skeleton Poggit Reviewer

    Messages:
    1,342
    GitHub:
    robske110
    :facepalm:
    A BlockBreakEvent is never called for Bedrock. Players can't break it.
     
    OnTheVerge and jasonwynn10 like this.
  5. HimbeersaftLP

    HimbeersaftLP Fish

    Messages:
    2,402
    GitHub:
    HimbeersaftLP
    In creative?
     
  6. robske_110 (Tim)

    robske_110 (Tim) Wither Skeleton Poggit Reviewer

    Messages:
    1,342
    GitHub:
    robske110
    Oh. Yea.
    Back to OP:
    Maybe try adding some echo()s to debug.
     
  7. CortexPE

    CortexPE Witch

    Messages:
    61
    GitHub:
    cortexpe
    I tried to change it to glass...
    - DIDNT WORK
    And Tried to echo it.
    - Returned NOTHING
     
  8. kaliiks

    kaliiks Zombie

    Messages:
    250
    change
    PHP:
    $ev->getBlock()->getLevel()->dropItem(new Vector3($bx,$by,$bz), Item::get(701));
    to
    PHP:
    $e->setDrops();
    and
    PHP:
     $ev->getBlock()->getLevel()->setBlock(new Vector3($bx,$by,$bz), Block::get(0));
    to
    PHP:
    $e->setCancelled();
     
  9. Marabou

    Marabou Baby Zombie

    Messages:
    137
    GitHub:
    wiligangster
    $event->setDrops() doesnt work in PlayerInteractEvent
    $event->setDrops() = PlayerDeathEvent, BlockBreakEvent
     
  10. kaliiks

    kaliiks Zombie

    Messages:
    250
    he asking how to fix problem with block break event :) no interact event read thread name :facepalm: ps: Cortex pe you cant check block because it is already breaken try $e->setCancelled();
    PHP:
    public function onBreak(BlockBreakEvent $ev){
        if(
    $ev->getPlayer()->isOp()) {
            if (
    $ev->getBlock()->getId() == 7) {
                
    $ev->getPlayer()->sendMessage("Nah!");
                
    $ev->setDrops();
                
    $ev->setCancelled();
            }
        }
    }
     
    Last edited: Feb 7, 2017
  11. CortexPE

    CortexPE Witch

    Messages:
    61
    GitHub:
    cortexpe
    That "SetBlock" Part was only for debugging...
    (I was gonna remove it but I forgot... :D)
    I tried setDrops even before using dropItem, And it didnt work.
    The whole BlockBreakEvent doesn't work - Thats my only problem.
    I tried to echo a string if it gets triggered and it didnt return a thing.
    I also tried to send a message to the player and it still didnt work.
     
  12. robske_110 (Tim)

    robske_110 (Tim) Wither Skeleton Poggit Reviewer

    Messages:
    1,342
    GitHub:
    robske110
    It should work. Did you register your class as a listener? did you really echo at the highest level of the function call?
     
  13. CortexPE

    CortexPE Witch

    Messages:
    61
    GitHub:
    cortexpe
    Listener - ✓
    Echo at the top of everything - ✓
    SendMessage to player - ✓

    PHP:
    use pocketmine\plugin\PluginBase;
    use 
    pocketmine\plugin\Plugin;
    use 
    pocketmine\event\Listener;

    use 
    pocketmine\utils\TextFormat as TF;
    use 
    pocketmine\block\Block;

    use 
    pocketmine\math\Vector3;

    use 
    pocketmine\item\Item;

    use 
    pocketmine\command\CommandSender;
    use 
    pocketmine\command\Command;
    use 
    pocketmine\command\CommandExecutor;

    use 
    pocketmine\event\player\PlayerInteractEvent;
    use 
    pocketmine\event\block\BlockBreakEvent;
     
  14. CortexPE

    CortexPE Witch

    Messages:
    61
    GitHub:
    cortexpe
    Still nothing.
     
  15. robske_110 (Tim)

    robske_110 (Tim) Wither Skeleton Poggit Reviewer

    Messages:
    1,342
    GitHub:
    robske110
    Would you mind sending your full file?
     
  16. kaliiks

    kaliiks Zombie

    Messages:
    250
    test it with another block
     
  17. robske_110 (Tim)

    robske_110 (Tim) Wither Skeleton Poggit Reviewer

    Messages:
    1,342
    GitHub:
    robske110
    if the echo never got called that will not help
     
  18. Marabou

    Marabou Baby Zombie

    Messages:
    137
    GitHub:
    wiligangster
    No.. no.. drop Item $event->setDrops(array(Item::get(id,meta,count)));
     
  19. CortexPE

    CortexPE Witch

    Messages:
    61
    GitHub:
    cortexpe
    Just put these together and that'll be the full file... xD
     
  20. CortexPE

    CortexPE Witch

    Messages:
    61
    GitHub:
    cortexpe
    I forgot about this:
    PHP:
    class Main extends PluginBase implements Listener
    lol
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.