dbPath = \XF::config('discord_db_path') ?? null; } protected function getDb(): ?\PDO { if (!$this->pdo && $this->dbPath) { $this->pdo = new \PDO("sqlite:" . $this->dbPath); $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $this->pdo->exec('PRAGMA journal_mode=WAL;'); $this->pdo->exec('PRAGMA busy_timeout=5000;'); } return $this->pdo; } public function createAction( string $action, array $data ): bool { try { $db = $this->getDb(); if( !$db ) return false; $stmt = $db->prepare("INSERT INTO actions (action, data) VALUES (:action, :data)"); return $stmt->execute([ ':action' => $action, ':data' => json_encode($data) ]); } catch (\PDOException $e) { \XF::logException($e, messagePrefix: "BotService error: "); return false; } } }