Esempio n. 1
0
 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);
     }
 }