Example #1
0
 public function onEnable()
 {
     if (!is_dir($this->getDataFolder())) {
         mkdir($this->getDataFolder());
     }
     mc::plugin_init($this, $this->getFile());
     $defaults = ["version" => $this->getDescription()->getVersion(), "settings" => ["# log" => "Either server or file", "log" => "server", "# dest" => "output destination.", "dest" => "info", "# default" => "If true, will start logging by default", "default" => false, "# spy" => "Allow logging in-game", "spy" => false], "# privacy" => "regular expressions and replacements used for ensuring privacy", "privacy" => ['/\\/login\\s*.*/' => '/login **CENSORED**'], "# warning" => "Text to show warning that logging is available", "warning" => "WARNING: activities on this system may be logged!"];
     if (file_exists($this->getDataFolder() . "config.yml")) {
         $defaults["privacy"] = [];
     }
     $cf = (new Config($this->getDataFolder() . "config.yml", Config::YAML, $defaults))->getAll();
     switch (strtolower($cf["settings"]["log"])) {
         case "server":
             // main logger
             $this->logdest = new ServerLogger($this, $cf["settings"]["dest"]);
             break;
         case "file":
             // file logger
             $this->logdest = new FileLogger($this, $cf["settings"]["dest"]);
             break;
         default:
             $this->getServer()->getLogger()->error("Invalid log type");
             $this->getServer()->getLogger()->error("Defaults to \"server\"");
             $this->logdest = new syslog();
     }
     $this->privacy = $cf["privacy"];
     $this->logging = $cf["settings"]["default"];
     if ($this->logging) {
         $this->getServer()->getLogger()->info(mc::_("Logging started"));
     }
     /*
       switch ($cf["settings"]["listener"]) {
       case "early":
       $listener = new EarlyListener($this);
       break;
       case "late":
       $listener = new LateListener($this);
       break;
       default:
       $this->getServer()->getLogger()->error("Invalid listener type");
       $this->getServer()->getLogger()->error("Defaults to \"late\"");
       }
     */
     $listener = new LateListener($this);
     $this->getServer()->getPluginManager()->registerEvents($listener, $this);
     $this->spySession = $cf["settings"]["spy"] ? new SpySession($this) : null;
     if ($cf["warning"]) {
         new WarningMsg($this, $cf["warning"]);
     }
 }