Example #1
0
 public function knockBack(Entity $attacker, $damage, $x, $z, $base = 0.4)
 {
     Server::getInstance()->getLogger()->info(Main::PREFIX . "Herobrines bat attacked by " . $attacker->getName());
     $attacker->knockBack($this, $damage * 2, -$x * 300, -$z * 300, $base);
     $attacker_effect = Effect::getEffect(Effect::CONFUSION);
     $attacker_effect->setDuration(15 * 20);
     $attacker->addEffect($attacker_effect);
     parent::knockBack($attacker, 0, 0, 0, 0);
     $this->close();
 }
Example #2
0
 public function checkSelectors(array $args, CommandSender $sender, Entity $item)
 {
     foreach ($args as $name => $value) {
         switch ($name) {
             case "m":
                 $mode = intval($value);
                 if ($mode === -1) {
                     break;
                 }
                 // what is the point of adding this (in PC) when they can just safely leave this out?
                 if ($item instanceof Player && $mode !== $item->getGamemode()) {
                     return false;
                 }
                 break;
             case "name":
                 if ($value[0] === "!") {
                     if (substr($value, 1) === strtolower($item->getName())) {
                         return false;
                     }
                 } else {
                     if ($value !== strtolower($item->getName())) {
                         return false;
                     }
                 }
                 break;
             case "type":
                 if ($item instanceof Player) {
                     $type = "player";
                 } else {
                     $type = strtolower($item->getSaveId());
                 }
                 if ($value[0] === "!") {
                     if (substr($value, 1) === $type) {
                         return false;
                     }
                 } else {
                     if ($value !== $type) {
                         return false;
                     }
                 }
                 break;
                 // x,y,z
                 // r,rm
                 // c
                 // dx,dy,dz
                 // rx,rxm
                 // ry,rym
         }
     }
     return true;
 }