So i have this code to cancel every Particles task on the player when the player left PHP: namespace Wings;use pocketmine\plugin\PluginBase;use pocketmine\command\Command;use pocketmine\command\CommandSender;use pocketmine\command\ConsoleCommandSender;use Wings\Tasks\{GreenWing, RedWing, FlameWing};use pocketmine\Player;class Main extends PluginBase{ public $tasks = []; // public $particle1 = array("GreenWing"); // public $particle2 = array("RedWing"); // public $particle3 = array("FlameWing"); public function onEnable () : void{ $this->getServer()->getLogger()->info("§l§aHero§bMC§e>§r§a Wings Enable"); } public function onCommand(CommandSender $sender, Command $cmd, string $label, array $args) : bool{ if ($cmd == "wing"){ if(empty($args[0]) || empty($args[1])){ $sender->sendMessage("§9•§4 Wing Red. §e/wing red <on|off>"); $sender->sendMessage("§9•§a Wing Green §e/wing green <on|off>"); $sender->sendMessage("§9•§6 Wing Flame. §e/wing Flame <on|off>"); return true; } if(!empty($args[0])){ switch($args[0]){ case "green": if(!$sender->hasPermission("green.wing")){ $sender->sendMessage("§l§aHero§bMC§e>§r§c Bạn không có quyền dùng Wing §aGreen"); return true; } if($args[1] == "on"){ $task = new GreenWing($sender); $this->tasks[$sender->getId()] = $task; $this->getScheduler()->scheduleRepeatingTask($task, 10); $sender->sendMessage("§l§aHero§bMC§e>§r§a Đã bật Wing Green"); } if($args[1] == "off"){ $task = $this->tasks[$sender->getId()]; unset($this->tasks[$sender->getId()]); $task->getHandler()->cancel(); $sender->sendMessage("§l§aHero§bMC§e>§r§c Đã tắt Wing §aGreen"); } break; case "red": if(!$sender->hasPermission("red.wing")){ $sender->sendMessage("§l§aHero§bMC§e>§r§c Bạn không có quyền dùng Wing §4Red"); return true; } if($args[1] == "on"){ $task = new RedWing($sender); $this->tasks[$sender->getId()] = $task; $this->getScheduler()->scheduleRepeatingTask($task, 10); $sender->sendMessage("§l§aHero§bMC§e>§r§a Đã bật Wing §4Red"); } if($args[1] == "off"){ $task = $this->tasks[$sender->getId()]; unset($this->tasks[$sender->getId()]); $task->getHandler()->cancel(); $sender->sendMessage("§l§aHero§bMC§e>§r§c Đã tắt Wing §4Red"); } break; case "flame": if(!$sender->hasPermission("flame.wing")){ $sender->sendMessage("§l§aHero§bMC§e>§r§c Bạn không có quyền dùng Wing §6Flame"); return true; } if($args[1] == "on"){ $task = new FlameWing($sender); $this->tasks[$sender->getId()] = $task; $this->getScheduler()->scheduleRepeatingTask($task, 10); $sender->sendMessage("§l§aHero§bMC§e>§r§a Đã bật Wing §6Flame"); } if($args[1] == "off"){ $task = $this->tasks[$sender->getId()]; unset($this->tasks[$sender->getId()]); $task->getHandler()->cancel(); $sender->sendMessage("§l§aHero§bMC§e>§r§c Đã tắt Wing §6Flame"); } break; default: $sender->sendMessage("§9•§4 Wing Red. §e/wing red"); $sender->sendMessage("§9•§a Wing Green §e/wing green"); $sender->sendMessage("§9•§6 Wing Flame. §e/wing Flame"); break; } } } return true; } public function onQuit(PlayerQuitEvent $e) { $player = $e->getPlayer(); $task = $this->tasks[$player->getId()]; unset($this->tasks[$player->getId()]); $task->getHandler()->cancel(); }} But it doesnt work and it didnt send any error except my particles task because it cant locate the player
You did not register events implement Listener PHP: class Main extends PluginBase implements \pocketmine\event\Listener{ register events PHP: $this->getServer()->getPluginManager()->registerEvents($this,$this);