private function generateEvents() { $class = new ClassGenerator($this->project->namespace, "EventHandler"); $class->addImport("pocketmine\\event\\Listener"); $class->addInterface("Listener"); $constructor = new GeneratedFunctionContainer(); $constructor->name = "__construct"; $constructor->params = ['MainClass $main']; $constructor->code = '$this->main = $main;'; $class->addFunction($constructor); $class->addField(\T_PRIVATE, "main"); $i = 0; foreach ($this->project->events as $event) { $fx = new GeneratedFunctionContainer(); $fx->name = "h_{$i}"; $i++; $class->addImport($event->eventClassName); $fx->params = [$event->eventName . ' $event']; foreach ($event->eventHandler as $stmt) { $fx->code .= $stmt->getPhpCode(0); $fx->code .= ClassGenerator::STANDARD_EOL; } $class->addFunction($fx); } }