Code - i'm noob PHP: <?phpnamespace DarkFraYT\BowPvP;use pocketmine\plugin\PluginBase;use pocketmine\event\Listener;use pocketmine\level\level;use pocketmine\entity\Entity;use pocketmine\event\entity\EntityDamageEvent;class main extends PluginBase implements Listener { public function EntityDamage(EntityDamageEvent $event){ if($event instanceof EntityDamageByEntityEvent && $event->getEntity()->getLevel()->getName() === "WarsBow"){ $entity = $event->getDamager(); if(!($entity instanceof Projectile)){ $event->setCancelled(); } } }}
Did you register events in onEnable? PHP: public function onEnable(){ $this->getServer()->getPluginManager()->registerEvents($this ,$this); }
crash PHP: PocketMine-MP Crash Dump Fri Jul 17 13:42:05 CDT 2015Error: syntax error, unexpected '$event' (T_VARIABLE)File: /BowPvP/src/DarkFraYT/BowPvP/mainLine: 19Type: E_PARSETHIS CRASH WAS CAUSED BY A PLUGINCode:[10] use pocketmine\event\entity\EntityDamageEvent;[11] use pocketmine\event\entity\EntityDamageByEntityEvent;[12][13] class main extends PluginBase implements Listener {[14] [15] public function onEnable()[16] {$this->getServer()->getPluginManager()->registerEvents($this ,$this);[17] {$this->getLogger()->info("§eBowPvP cargado 7w7");[18] [19] EntityDamage(EntityDamageEvent $event){[20] if($event instanceof EntityDamageByEntityEvent && $event->getEntity()->getLevel()->getName() === "WarsBow"){[21] $entity = $event->getDamager();[22] if(!($entity instanceof Projectile)){[23] $event->setCancelled();[24] }[25] }[26] }[27][28][29]
PHP: <?phpnamespace DarkFraYT\BowPvP;use pocketmine\plugin\PluginBase;use pocketmine\event\Listener;use pocketmine\level\level;use pocketmine\entity\Entity;use pocketmine\event\entity\EntityDamageEvent;class main extends PluginBase implements Listener { public function onEnable(){ $this->getServer()->getPluginManager()->registerEvents($this ,$this); } public function EntityDamage(EntityDamageEvent $event){ if($event instanceof EntityDamageByEntityEvent && $event->getEntity()->getLevel()->getName() === "WarsBow"){ $entity = $event->getDamager(); if(!($entity instanceof Projectile)){ $event->setCancelled(); } } }} Correct i think ^
?????? Error: Namespace declaration statement has to be the very first statement in the script File: /BowPvP/src/BowPvP/main Line: 2 Type: E_COMPILE_ERROR THIS CRASH WAS CAUSED BY A PLUGIN Code: [1] <?php [2] namespace BowPvP; [3] use pocketmine\plugin\PluginBase; [4] use pocketmine\event\Listener; [5] use pocketmine\level\level; [6] use pocketmine\entity\Entity; [7] use pocketmine\event\entity\EntityDamageEvent;
It is the same PHP: <?phpnamespace WarsBow;use pocketmine\plugin\PluginBase;use pocketmine\event\listener;use pocketmine\level\level;use pocketmine\entity;use pocketmine\event\entity\EntityDamageEvent;class main extends PluginBase implements Listener { Public Function onEnable(){ $this->getServer()->getPluginManager()->registerEvents($this ,$this); } public function EntityDamage(EntityDamageEvent $event){ if($event instanceof EntityDamageByEntityEvent && $event->getEntity()->getLevel()->getName() === "WarsBow"){ $entity = $event->getDamager(); if(!($entity instanceof Projectile)){ $event->setCancelled(); } } }}
The damager will be the creator of the projectile. You only know it when it is an EntityDamageByChildEntityEvent and the child is a projectile.
nop,doesnt work PHP: <?phpnamespace WarsBow;use pocketmine\event\entity\EntityDamageByEntityEvent;use pocketmine\event\entity\EntityDamageEvent;use pocketmine\event\Listener;use pocketmine\level\level;use pocketmine\plugin\PluginBase;class main extends PluginBase implements Listener{ public function onEnable(){ $this->getServer()->getPluginManager()->registerEvents($this, $this); } public function onEntityDamage(EntityDamageEvent $event){ if($event instanceof EntityDamageByChildEntityEvent && $event->getEntity()->getLevel()->getName() === "WarsBow"){ $entity = $event->getDamager(); if(!($entity instanceof Projectile)){ $event->setCancelled(); } } }}
...... No PvP? The code PHP: <?phpnamespace WarsBow;use pocketmine\event\entity\EntityDamageByEntityEvent;use pocketmine\event\entity\EntityDamageEvent;use pocketmine\event\Listener;use pocketmine\level\level;use pocketmine\plugin\PluginBase;use pocketmine\entity\Projectile;class main extends PluginBase implements Listener{ public function onEnable(){ $this->getServer()->getPluginManager()->registerEvents($this, $this); } public function onEntityDamage(EntityDamageEvent $event){ if($event instanceof EntityDamageByEntityEvent && $event->getEntity()->getLevel()->getName() === "WarsBow"){ $entity = $event->getDamager(); if(!($entity instanceof Projectile)){ $event->setCancelled(); } } }