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"]); } }