I can't figure out what's wrong with this public function onDamage(EntityDamageEvent $event){ $player = $event->getPlayer(); $entity = $event->getEntity(); $world = $player->getLevel(); $kblow = $config->get("kb-low"); $kbhigh = $config->get("kb-high"); $kbdefault = $config->get("kb-default"); $config = $this->getConfig(); if ($event instanceof EntityDamageByEntityEvent) { if($config->get("particles") === true) { $particle = new CriticalParticle($entity); $entity->getLevel()->addParticle($particle); } switch($world->getName()) { case $config->get($config->get("world-low")): $event->setKnockback($kblow); break; case $config->get($config->get("world-high")): $event->setKnockback($kbhigh); break; default: $event->setKnockback($kbdefault); break; } The log says [18:40:38] [Server thread/CRITICAL]: Could not pass event 'pocketmine\event\entity\EntityDamageByEntityEvent' to 'KBEdit v1': Call to undefined method pocketmine\event\entity\EntityDamageByEntityEvent::getPlayer() on KBEdit\Main [18:40:38] [Server thread/CRITICAL]: Error: "Call to undefined method pocketmine\event\entity\EntityDamageByEntityEvent::getPlayer()" (EXCEPTION) in "KnockBack-master/src/KBEdit/Main" at line 32
Let me give you an example. Here's a class I've created. PHP: class A{ public function greet() : string{ return "Hello, Earthling!"; }} Now, what do you expect will happen if I do this? PHP: $a = new A();echo $a->getPlayer();
I got it so it doesn't have errors anymore however the knock back that I'm trying to change doesn't change at all, can I send it later and can you tell me how to fix it?
can't use getPlayer() from EntityDamageEvent (not defined) https://github.com/pmmp/PocketMine-MP/blob/master/src/pocketmine/event/entity/EntityDamageEvent.php
Yea that's the error I kept having once I fixed it up, now it doesn't work and doesn't have errors, I'll show it later idk whats wrong
Code: public function onDamage(EntityDamageEvent $event){ $entity = $event->getEntity(); if(!$entity instanceof Player) return true; $world = $entity->getLevel(); $config = $this->getConfig(); $kblow = $config->get("kb-low"); $kbhigh = $config->get("kb-high"); $kbdefault = $config->get("kb-default"); if($event instanceof \pocketmine\event\entity\EntityDamageByEntityEvent) { if($config->get("particles") === true) { $pos = new Vector3($entity->x,$entity->y,$entity->z); $particle = new CriticalParticle($pos); $count = 20; for($i = 0;$i < $count; ++$i){ $entity->level->addParticle($particle); } } switch($world->getName()) { case $config->get($config->get("world-low")): $event->setKnockback($kblow); break; case $config->get($config->get("world-high")): $event->setKnockback($kbhigh); break; default: $event->setKnockback($kbdefault); break; } } } Did you add use 'EntityDamageByEntityEvent' ?
please just do it for them rather then saying that, it's as easy as how you would tell them to add it, let me show you!!! PHP: <?phpnamespace KBEdit;use pocketmine\Player;use pocketmine\plugin\PluginBase;use pocketmine\utils\Config;use pocketmine\event\Listener;use pocketmine\event\entity\EntityDamageEvent;use pocketmine\level\particle\CriticalParticle;use pocketmine\math\Vector3;class Main extends PluginBase implements Listener{public $config;public function onEnable(){@mkdir($this->getDataFolder());if(!(file_exists($this->getDataFolder(). "/config.yml"))){$this->$config = new Config($this->getDataFolder()."/config.yml", Config::YAML, array("world-low" => "PotPvP","world-high" => "Diamond","particles" => "true","particle-count" => "20","kb-high" => ".43","kb-default" => ".4","kb-low" => ".37"));$this->saveResource("/config.yml");}}public function onDamage(EntityDamageEvent $event){$entity = $event->getEntity();if(!$entity instanceof Player) return true;$world = $entity->getLevel();$config = $this->getConfig();$numpart = $config->get("particle-count");$kblow = $config->get("kb-low");$kbhigh = $config->get("kb-high");$kbdefault = $config->get("kb-default");if($event instanceof \pocketmine\event\entity\EntityDamageByEntityEvent) {if($config->get("particles") === true) {$pos = new Vector3($entity->x,$entity->y,$entity->z);$particle = new CriticalParticle($pos);$count = ($numpart);for($i = 0;$i < $count; ++$i){$entity->level->addParticle($particle);}}switch($world->getName()) {case $config->get($config->get("world-low")):$event->setKnockback($kblow);break;case $config->get($config->get("world-high")):$event->setKnockback($kbhigh);break;default:$event->setKnockback($kbdefault);break;}}}}?>
use pocketmine\event\entity\EntityDamageEvent; public function onDamage(EntityDamageEvent $event){ if($event instanceof \pocketmine\event\entity\EntityDamageByEntityEvent) { Change the first line to: use pocketmine\event\entity\EntityDamageByEntityEvent; And the second to: public function onDamage(EntityDamageByEntityEvent $event){
Solved this via paid commission rip xD Idk why I didn't get notified of the messages, closing this thanks for the help <3