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(); }
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; }