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

Help?

Discussion in 'Development' started by Zayd, Mar 25, 2017.

  1. Zayd

    Zayd Witch

    Messages:
    55
    GitHub:
    ZaydPE
    ..
     
    Last edited: Jun 17, 2017
  2. Kyd

    Kyd Zombie Pigman

    Messages:
    678
    GitHub:
    boi1216
    register events onEnable using this code
    PHP:
    $this->getServer()->getPluginManager()->registerEvents($this$this);
    and you forgot to
    Code:
    use pocketmine\event\Listener;
    
    and then class Main must imeplent Listener.php
     
  3. Zayd

    Zayd Witch

    Messages:
    55
    GitHub:
    ZaydPE
    Is it because I need to define $entity? If so, how?
     
  4. SalmonDE

    SalmonDE Zombie Pigman

    Messages:
    739
    GitHub:
    SalmonDE
    @Zayd Try
    PHP:
    $this->getLogger()->info();
    instead of
    PHP:
    $this->getLogger->info();
    Edit:
    Nevermind, you meant the message on EntityDamageEvent. :D
     
    Last edited: Mar 25, 2017
  5. SalmonDE

    SalmonDE Zombie Pigman

    Messages:
    739
    GitHub:
    SalmonDE
    Did you import EntityDamageByEntityEvent?
     
  6. Zayd

    Zayd Witch

    Messages:
    55
    GitHub:
    ZaydPE
    What do you mean by port?
     
  7. corytortoise

    corytortoise Skeleton

    Messages:
    825
    GitHub:
    corytortoise
    An import is the same as a use statement. You forgot to add a use statement for EntityDamageByEntityEvent.
     
  8. Sandertv

    Sandertv Zombie Pigman Poggit Reviewer

    Messages:
    786
    GitHub:
    Sandertv
    Of course you need to define $entity. Every variable mst be defined before using it. To get the entity it'd be $event->getEntity(), but in your case you should use $event->getEntity()->getNameTag().
     
  9. SalmonDE

    SalmonDE Zombie Pigman

    Messages:
    739
    GitHub:
    SalmonDE
    Where? I can't see it.
     
  10. Zayd

    Zayd Witch

    Messages:
    55
    GitHub:
    ZaydPE
    LMFAO. Sorry @SalmonDE + @corytortoise i misread and imported EntityDamageEvent, not EntityByEntityDamageEvent!
    :facepalm:.
    I'm also going to define the variable now.. However @Sandertv instead of getNameTag() shouldn't I use getName()?
     
  11. SalmonDE

    SalmonDE Zombie Pigman

    Messages:
    739
    GitHub:
    SalmonDE
    I doubt that Entity::getName() even exists. But Entity::getNameTag() does.
     
    HimbeersaftLP and Sandertv like this.
  12. Zayd

    Zayd Witch

    Messages:
    55
    GitHub:
    ZaydPE
    PHP:
    <?php

    namespace ZaydPE;

    use 
    pocketmine\plugin\PluginBase;
    use 
    pocketmine\event\entity\EntityDamageEvent;
    use 
    pocketmine\event\entity\EntityDamageByEvent;
    use 
    pocketmine\utils\TextFormat;
    use 
    pocketmine\event\Listener;

    class 
    Main extends PluginBase implements Listener{

    public function 
    onEnable(){
        
    $this->getLogger()->info("HealthMessage enabled!");
        
    $this->getServer()->getPluginManager()->registerEvents($this$this);
    }
    public function 
    onDisable(){
        
    $this->getLogger()->info("HealthMessage disabled!");
        
    $this->getServer()->getPluginManager()->registerEvents($this$this);
    }
    public function 
    onDamage(EntityDamageEvent $e){
    if(
    $e instanceof EntityDamageByEntityEvent){
    $damager $e->getDamager();
    $health $e->getEntity()->getHealth();
    $entity $e->getEntity()->getNameTag();
    $maxHealth $entity->getMaxHealth();
    $damager->sendMessage(TextFormat::GREEN ."$entity is on $health/$maxHealth HP! ");
            }
        }
    }
    Have i done something wrong here whilst trying to define $entity...? As it still doesn't work.
     
  13. Muqsit

    Muqsit Chicken

    Messages:
    1,548
    GitHub:
    muqsit
    You haven't imported EntityDamageByEntityEvent still.
     
  14. Muqsit

    Muqsit Chicken

    Messages:
    1,548
    GitHub:
    muqsit
    You are calling $maxhealth on string, not on Entity. Use $maxhealth = $e->getEntity()->getMaxHealth();
     
  15. Zayd

    Zayd Witch

    Messages:
    55
    GitHub:
    ZaydPE
    My bad, I imported EntityDamageEvent LOL. Thanks Muqsit
     
  16. SalmonDE

    SalmonDE Zombie Pigman

    Messages:
    739
    GitHub:
    SalmonDE
    You could use a task or you could save the timestamp and wait until the timestamp is n seconds higher than it was before. That's what I can think of right now.
     
    corytortoise likes this.
  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.