From 254ba5bd1da3c304205c266f769419a4ca2688ec Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 23 Jun 2026 14:43:19 +0200 Subject: [PATCH] Fix login UI: add user dropdown selector, fix build syntax error - Replace username text input with dropdown selector for player login - Fix unescaped apostrophe in MissionSimTab.jsx (Emperor's -> double quotes) - Fix em-dash encoding issues in MissionSimTab.jsx - Update player password to 1234 in .env --- database/backend.log | 1234 +++++++++++++++++++++++++++ database/pm2.config.js | 12 +- database/routes/playerRoutes.js | 49 +- database/server.js | 28 + database/sessionModel.js | 60 +- src/App.js | 18 +- src/components/MissionSimTab.jsx | 10 +- src/components/PlayerManagement.jsx | 21 +- src/tests/login.test.js | 63 +- 9 files changed, 1442 insertions(+), 53 deletions(-) diff --git a/database/backend.log b/database/backend.log index a37bf46..dd6ff05 100644 --- a/database/backend.log +++ b/database/backend.log @@ -11645,3 +11645,1237 @@ Connected to MongoDB [2026-03-01T17:20:11.717Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} [2026-03-01T17:20:12.481Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} [2026-03-01T17:22:55.526Z] MariaDB: Tables created successfully +[2026-04-22T20:59:57.031Z] MariaDB: Tables created successfully +[2026-04-23T05:31:29.715Z] API: Player login gm success +[2026-04-23T05:31:29.773Z] API: Fetch player gm success +[2026-04-23T05:31:29.779Z] SESSION: Session validation successful gm +[2026-04-23T05:31:29.814Z] API: Fetch player gm success +[2026-04-23T06:50:34.685Z] MariaDB: Tables created successfully +[2026-04-23T06:51:58.743Z] MariaDB: Tables created successfully +[2026-04-23T06:53:01.356Z] MariaDB: Tables created successfully +[2026-04-23T07:19:44.325Z] SESSION: Session validation successful gm +[2026-04-23T07:19:44.407Z] API: Fetch player gm success +[2026-04-23T07:19:45.387Z] SESSION: Session validation successful gm +[2026-04-23T07:19:45.417Z] API: Fetch player gm success +[2026-04-23T07:19:49.702Z] SESSION: Session validation successful gm +[2026-04-23T07:19:58.189Z] SESSION: Session validation successful gm +[2026-04-23T07:20:15.968Z] SESSION: Session validation successful gm +[2026-04-23T07:20:15.994Z] API: Fetch player gm success +[2026-04-23T08:12:33.595Z] SESSION: Session validation successful gm +[2026-04-23T08:12:33.630Z] API: Fetch player gm success +[2026-04-23T08:12:43.923Z] SESSION: Logout session_gm_1776452298108 +[2026-04-23T08:13:31.194Z] API: Player login gm success +[2026-04-23T08:13:31.218Z] API: Fetch player gm success +[2026-04-23T08:13:31.222Z] SESSION: Session validation successful gm +[2026-04-23T08:13:31.246Z] API: Fetch player gm success +[2026-04-23T08:18:23.439Z] SESSION: Session validation successful gm +[2026-04-23T08:18:23.465Z] API: Fetch player gm success +[2026-04-23T08:18:24.571Z] SESSION: Session validation successful gm +[2026-04-23T08:18:24.602Z] API: Fetch player gm success +[2026-04-23T08:18:25.549Z] SESSION: Session validation successful gm +[2026-04-23T08:18:25.594Z] API: Fetch player gm success +[2026-04-23T08:18:26.089Z] SESSION: Session validation successful gm +[2026-04-23T08:18:26.111Z] API: Fetch player gm success +[2026-04-23T08:21:35.818Z] SESSION: Session validation successful gm +[2026-04-23T08:21:35.874Z] API: Fetch player gm success +[2026-04-23T08:21:36.540Z] SESSION: Session validation successful gm +[2026-04-23T08:21:36.589Z] API: Fetch player gm success +[2026-04-23T08:21:36.990Z] SESSION: Session validation successful gm +[2026-04-23T08:21:37.039Z] API: Fetch player gm success +[2026-04-23T08:21:37.292Z] SESSION: Session validation successful gm +[2026-04-23T08:21:37.342Z] API: Fetch player gm success +[2026-04-23T08:21:37.565Z] SESSION: Session validation successful gm +[2026-04-23T08:21:37.663Z] API: Fetch player gm success +[2026-04-23T08:21:37.779Z] SESSION: Session validation successful gm +[2026-04-23T08:21:37.832Z] API: Fetch player gm success +[2026-04-23T08:21:37.981Z] SESSION: Session validation successful gm +[2026-04-23T08:21:38.037Z] API: Fetch player gm success +[2026-04-23T08:21:38.192Z] SESSION: Session validation successful gm +[2026-04-23T08:21:38.246Z] API: Fetch player gm success +[2026-04-23T08:21:38.370Z] SESSION: Session validation successful gm +[2026-04-23T08:21:38.421Z] API: Fetch player gm success +[2026-04-23T08:21:38.560Z] SESSION: Session validation successful gm +[2026-04-23T08:21:38.611Z] API: Fetch player gm success +[2026-04-23T08:21:38.755Z] SESSION: Session validation successful gm +[2026-04-23T08:21:38.812Z] API: Fetch player gm success +[2026-04-23T08:21:38.942Z] SESSION: Session validation successful gm +[2026-04-23T08:21:38.997Z] API: Fetch player gm success +[2026-04-23T08:21:39.153Z] SESSION: Session validation successful gm +[2026-04-23T08:21:39.201Z] API: Fetch player gm success +[2026-04-23T08:21:39.350Z] SESSION: Session validation successful gm +[2026-04-23T08:21:39.408Z] API: Fetch player gm success +[2026-04-23T08:21:47.829Z] SESSION: Logout session_gm_1776932011194 +[2026-04-23T08:33:11.426Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:12.128Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:12.806Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:13.509Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:14.178Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:14.901Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:15.577Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:16.266Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:16.985Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:17.680Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:18.389Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:19.088Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:19.781Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:20.480Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:21.143Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:21.814Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T08:33:22.505Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:02.903Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:03.582Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:04.326Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:05.038Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:05.762Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:06.449Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:07.134Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:07.796Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:08.487Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:09.177Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:09.864Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:10.676Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:11.371Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:12.031Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:12.729Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:13.404Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:18:14.063Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:38:24.710Z] SESSION: Session validation successful gm +[2026-04-23T09:38:24.836Z] API: Fetch player gm success +[2026-04-23T09:38:28.788Z] SESSION: Session validation successful gm +[2026-04-23T09:38:28.842Z] API: Fetch player gm success +[2026-04-23T09:39:08.786Z] SESSION: Session validation successful gm +[2026-04-23T09:39:08.830Z] API: Fetch player gm success +[2026-04-23T09:39:09.279Z] SESSION: Logout session_gm_1776922289715 +[2026-04-23T09:39:16.289Z] API: Player login gm success +[2026-04-23T09:39:16.345Z] API: Fetch player gm success +[2026-04-23T09:39:16.349Z] SESSION: Session validation successful gm +[2026-04-23T09:39:16.419Z] API: Fetch player gm success +[2026-04-23T09:40:07.784Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:08.452Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:09.136Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:09.844Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:10.540Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:11.272Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:11.993Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:12.656Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:13.348Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:14.038Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:14.703Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:15.394Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:16.102Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:16.790Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:17.503Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:18.198Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:18.862Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T09:40:22.889Z] SESSION: Session validation successful gm +[2026-04-23T09:40:22.930Z] API: Fetch player gm success +[2026-04-23T09:40:27.598Z] SESSION: Session validation successful gm +[2026-04-23T09:40:27.648Z] API: Fetch player gm success +[2026-04-23T09:40:28.469Z] SESSION: Session validation successful gm +[2026-04-23T09:40:28.528Z] API: Fetch player gm success +[2026-04-23T09:40:32.951Z] SESSION: Session validation successful gm +[2026-04-23T09:40:32.998Z] API: Fetch player gm success +[2026-04-23T09:40:33.506Z] SESSION: Logout session_gm_1776937156289 +[2026-04-23T10:02:07.081Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:07.757Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:08.438Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:09.139Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:09.804Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:10.489Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:11.190Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:11.889Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:12.558Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:13.244Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:13.947Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:14.610Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:15.312Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:16.038Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:16.719Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:17.434Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T10:02:18.140Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:16.171Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:16.890Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:17.654Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:18.336Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:19.027Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:19.702Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:20.388Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:21.043Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:21.745Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:22.444Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:23.121Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:23.806Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:24.482Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:25.187Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:25.872Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:26.530Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T12:31:27.223Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:21.960Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:22.645Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:23.328Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:23.993Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:24.676Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:25.340Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:26.027Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:26.695Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:27.381Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:28.060Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:28.752Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:29.427Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:30.131Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:30.833Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:31.481Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:32.140Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:05:32.820Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T13:54:42.162Z] API: Player login andreas success +[2026-04-23T13:54:42.243Z] API: Fetch player andreas success +[2026-04-23T13:54:42.248Z] SESSION: Session validation successful andreas +[2026-04-23T13:54:42.325Z] API: Fetch player andreas success +[2026-04-23T13:54:45.182Z] SESSION: Logout session_andreas_1776952482162 +[2026-04-23T14:05:39.413Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:40.103Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:40.781Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:41.465Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:42.114Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:42.913Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:43.582Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:44.266Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:44.921Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:45.622Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:46.273Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:46.916Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:47.571Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:48.266Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:48.965Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:49.628Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-23T14:05:50.324Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-24T18:36:31.554Z] API: Player login phillip success +[2026-04-24T18:36:31.671Z] SESSION: Session validation successful phillip +[2026-04-24T18:36:31.687Z] API: Fetch player phillip success +[2026-04-24T18:36:31.759Z] API: Fetch player phillip success +[2026-04-24T18:39:50.796Z] SESSION: Logout session_phillip_1777055791554 +[2026-04-27T22:59:01.361Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:02.129Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:02.859Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:03.633Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:04.301Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:04.950Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:05.591Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:06.282Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:06.930Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:07.624Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:08.301Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:08.942Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:09.585Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:10.277Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:11.013Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:11.702Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:12.397Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:13.054Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:19.660Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:20.359Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:21.096Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:21.729Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:22.401Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:23.070Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:23.747Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:24.427Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:25.090Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:25.781Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:26.460Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:27.105Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:27.756Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:28.447Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:29.108Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T22:59:29.879Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-04-27T23:00:23.187Z] MariaDB: Tables created successfully +[2026-04-27T23:00:36.986Z] MariaDB: Tables created successfully +[2026-04-27T23:01:03.788Z] MariaDB: Tables created successfully +[2026-04-28T00:06:05.147Z] MariaDB: Tables created successfully +[2026-04-28T00:06:09.211Z] MariaDB: Tables created successfully +[2026-05-09T22:35:18.252Z] MariaDB: Tables created successfully +[2026-05-09T22:37:22.012Z] SESSION: Session validation successful gm +[2026-05-09T22:37:22.092Z] API: Fetch player gm success +[2026-05-09T22:40:43.176Z] MariaDB: Tables created successfully +[2026-05-09T22:43:26.271Z] MariaDB: Tables created successfully +[2026-05-16T17:58:59.704Z] SESSION: Session validation successful phillip +[2026-05-16T17:59:00.276Z] API: Fetch player phillip success +[2026-05-16T18:11:22.380Z] SESSION: Session validation successful phillip +[2026-05-16T18:11:22.477Z] API: Fetch player phillip success +[2026-05-16T18:33:45.140Z] SESSION: Session validation successful phillip +[2026-05-16T18:33:45.186Z] API: Fetch player phillip success +[2026-05-16T18:33:48.493Z] SESSION: Session validation successful phillip +[2026-05-16T18:33:48.542Z] API: Fetch player phillip success +[2026-05-29T11:47:50.466Z] MariaDB: Error getting all missions {"message":"Access denied for user 'deathwatch'@'unifi' (using password: YES)","code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-05-29T11:47:50.543Z] MariaDB: Error getting all players {"message":"Access denied for user 'deathwatch'@'unifi' (using password: YES)","code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T17:39:22.848Z] MariaDB: Error getting all players {"message":"Table 'deathwatch.players' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM players ORDER BY name","sqlState":"42S02","sqlMessage":"Table 'deathwatch.players' doesn't exist"} +[2026-06-19T17:41:45.419Z] MariaDB: Tables created successfully +[2026-06-19T17:43:40.329Z] MariaDB: Error seeding rules {"message":"Connection lost: The server closed the connection.","code":"PROTOCOL_CONNECTION_LOST"} +[2026-06-19T18:09:12.821Z] MariaDB: Tables created successfully +[2026-06-19T19:39:57.758Z] MariaDB: Tables created successfully +[2026-06-19T21:13:41.350Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:42.154Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:42.992Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:43.784Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:44.726Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:45.526Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:46.417Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:47.262Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:48.082Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:48.897Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:49.785Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:50.603Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:51.446Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:52.267Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:53.057Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:53.824Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:13:54.612Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:42.395Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:47.817Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:48.581Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:49.452Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:50.254Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:51.014Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:51.825Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:52.680Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:53.528Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:54.287Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:55.096Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:55.865Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:56.656Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:57.428Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:58.234Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:59.046Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:14:59.838Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:00.790Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:01.586Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:02.362Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:03.192Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:04.091Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:04.902Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:05.717Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:06.539Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:07.416Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:08.224Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:09.025Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:09.859Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:10.679Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:11.623Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:12.401Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:13.162Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:13.993Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:14.879Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:15.674Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:16.440Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:17.256Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:18.052Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:18.906Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:19.662Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:20.435Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:21.224Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:22.053Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:22.892Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:23.682Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:24.454Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:25.207Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:25.980Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:26.845Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:27.678Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:28.568Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:29.344Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:30.112Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:30.883Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:31.694Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:32.516Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:33.589Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:34.402Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:35.289Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:36.058Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:36.856Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:37.785Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:38.826Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:39.859Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:40.690Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:41.575Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:42.493Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:43.404Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:44.390Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:45.231Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:46.165Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:47.096Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:48.020Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:48.957Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:49.787Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:50.789Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:51.686Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:52.625Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:53.550Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:54.562Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-19T21:15:55.423Z] MariaDB: Tables created successfully +[2026-06-19T21:16:01.373Z] MariaDB: Tables created successfully +[2026-06-21T03:01:00.658Z] MariaDB: Tables created successfully +[2026-06-22T14:31:56.515Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-22T14:38:00.345Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-22T14:39:35.099Z] MariaDB: Error creating tables {"code":"ER_ACCESS_DENIED_ERROR","errno":1045,"sqlState":"28000","sqlMessage":"Access denied for user 'deathwatch'@'unifi' (using password: YES)"} +[2026-06-22T15:08:33.757Z] MariaDB: Tables created successfully +[2026-06-22T15:08:55.001Z] MariaDB: Tables created successfully +[2026-06-22T15:10:38.916Z] MariaDB: Tables created successfully +[2026-06-22T15:12:43.677Z] MariaDB: Tables created successfully +[2026-06-22T15:12:45.618Z] API: Player login gm success +[2026-06-22T15:13:52.993Z] API: Player login gm success +[2026-06-22T15:13:53.067Z] API: Fetch player gm success +[2026-06-22T15:13:53.089Z] SESSION: Session validation successful gm +[2026-06-22T15:13:53.130Z] API: Fetch player gm success +[2026-06-22T15:14:05.257Z] MariaDB: Error getting all weapons {"message":"Table 'deathwatch.weapons' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM weapons ORDER BY id","sqlState":"42S02","sqlMessage":"Table 'deathwatch.weapons' doesn't exist"} +[2026-06-22T15:14:05.265Z] MariaDB: Error getting all bestiary {"message":"Table 'deathwatch.bestiary' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM bestiary ORDER BY id","sqlState":"42S02","sqlMessage":"Table 'deathwatch.bestiary' doesn't exist"} +[2026-06-22T15:20:35.207Z] API: Fetch all players (public) 5 +[2026-06-22T15:20:45.055Z] API: Fetch all players (public) 5 +[2026-06-22T15:20:52.546Z] API: Fetch all players (public) 5 +[2026-06-22T15:20:57.707Z] API: Fetch all players (public) 5 +[2026-06-22T15:21:04.797Z] API: Fetch all players (public) 5 +[2026-06-22T15:34:04.196Z] API: Player login gm success +[2026-06-22T15:34:04.215Z] API: Fetch player gm success +[2026-06-22T15:34:04.236Z] SESSION: Session validation successful gm +[2026-06-22T15:34:04.265Z] API: Fetch player gm success +[2026-06-22T15:34:37.556Z] MariaDB: Error getting all weapons {"message":"Table 'deathwatch.weapons' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM weapons ORDER BY id","sqlState":"42S02","sqlMessage":"Table 'deathwatch.weapons' doesn't exist"} +[2026-06-22T15:35:11.579Z] SESSION: Session validation successful gm +[2026-06-22T15:35:11.648Z] API: Fetch player gm success +[2026-06-22T15:36:08.929Z] API: Fetch all players (public) 5 +[2026-06-22T15:37:09.406Z] SESSION: Session validation successful gm +[2026-06-22T15:37:09.436Z] API: Fetch player gm success +[2026-06-22T15:38:36.450Z] SESSION: Session validation successful gm +[2026-06-22T15:38:36.502Z] API: Fetch player gm success +[2026-06-22T15:39:13.185Z] SESSION: Session validation successful gm +[2026-06-22T15:39:13.223Z] API: Fetch player gm success +[2026-06-22T15:39:51.382Z] SESSION: Session validation successful gm +[2026-06-22T15:39:51.431Z] API: Fetch player gm success +[2026-06-22T15:40:44.105Z] API: Fetch all players (public) 5 +[2026-06-22T15:41:21.712Z] SESSION: Session validation successful gm +[2026-06-22T15:41:21.757Z] API: Fetch player gm success +[2026-06-22T15:41:58.884Z] MariaDB: Error getting all weapons {"message":"Table 'deathwatch.weapons' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM weapons ORDER BY id","sqlState":"42S02","sqlMessage":"Table 'deathwatch.weapons' doesn't exist"} +[2026-06-22T15:42:14.279Z] SESSION: Session validation successful gm +[2026-06-22T15:42:14.320Z] API: Fetch player gm success +[2026-06-22T15:42:51.944Z] SESSION: Session validation successful gm +[2026-06-22T15:42:51.983Z] API: Fetch player gm success +[2026-06-22T15:43:45.549Z] API: Fetch all players (public) 5 +[2026-06-22T15:44:18.341Z] SESSION: Session validation successful gm +[2026-06-22T15:44:18.384Z] API: Fetch player gm success +[2026-06-22T15:45:03.731Z] SESSION: Session validation successful gm +[2026-06-22T15:45:03.778Z] API: Fetch player gm success +[2026-06-22T15:45:41.286Z] SESSION: Session validation successful gm +[2026-06-22T15:45:41.335Z] API: Fetch player gm success +[2026-06-22T15:46:42.911Z] SESSION: Session validation successful gm +[2026-06-22T15:46:43.064Z] API: Fetch player gm success +[2026-06-22T15:53:55.741Z] MariaDB: Error getting all bestiary {"message":"Table 'deathwatch.bestiary' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM bestiary ORDER BY id","sqlState":"42S02","sqlMessage":"Table 'deathwatch.bestiary' doesn't exist"} +[2026-06-22T15:53:55.749Z] MariaDB: Error getting all weapons {"message":"Table 'deathwatch.weapons' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM weapons ORDER BY id","sqlState":"42S02","sqlMessage":"Table 'deathwatch.weapons' doesn't exist"} +[2026-06-22T15:54:40.811Z] API: Fetch all players (public) 5 +[2026-06-22T16:00:03.994Z] MariaDB: Tables created successfully +[2026-06-23T05:28:02.890Z] MariaDB: Tables created successfully +[2026-06-23T05:28:04.194Z] MariaDB: Tables created successfully +[2026-06-23T05:28:35.301Z] MariaDB: Tables created successfully +[2026-06-23T05:28:37.215Z] MariaDB: Tables created successfully +[2026-06-23T05:28:40.132Z] Session created: session_anders_1782192520037_d05wug +[2026-06-23T05:28:40.134Z] API: Player login anders success +[2026-06-23T05:28:46.068Z] Session created: session_gm_1782192525884_z0sy08 +[2026-06-23T05:28:46.070Z] API: Player login gm success +[2026-06-23T07:50:29.021Z] MariaDB: Created mission The Hunt for Fabius Bile +[2026-06-23T07:50:29.022Z] API: Created mission The Hunt for Fabius Bile +[2026-06-23T07:52:12.631Z] API: Fetch all players (public) 5 +[2026-06-23T07:53:49.080Z] MariaDB: Updated mission 1 +[2026-06-23T07:56:17.792Z] MariaDB: Error getting all bestiary {"message":"Table 'deathwatch.bestiary' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM bestiary ORDER BY id","sqlState":"42S02","sqlMessage":"Table 'deathwatch.bestiary' doesn't exist"} +[2026-06-23T07:56:26.983Z] MariaDB: Error getting all bestiary {"message":"Table 'deathwatch.bestiary' doesn't exist","code":"ER_NO_SUCH_TABLE","errno":1146,"sql":"SELECT * FROM bestiary ORDER BY id","sqlState":"42S02","sqlMessage":"Table 'deathwatch.bestiary' doesn't exist"} +[2026-06-23T07:59:11.054Z] MariaDB: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T07:59:11.057Z] API: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:01:26.285Z] MariaDB: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:01:26.287Z] API: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:02:04.508Z] MariaDB: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:02:04.509Z] API: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:02:18.908Z] MariaDB: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:02:18.910Z] API: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:02:37.449Z] MariaDB: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:02:37.451Z] API: Created mission The Hunt for Fabius Bile (Sim x5) +[2026-06-23T08:02:54.991Z] MariaDB: Deleted mission 6 +[2026-06-23T08:02:55.046Z] MariaDB: Deleted mission 5 +[2026-06-23T08:02:55.054Z] MariaDB: Deleted mission 4 +[2026-06-23T08:02:55.061Z] MariaDB: Deleted mission 3 +[2026-06-23T08:02:55.068Z] MariaDB: Deleted mission 2 +[2026-06-23T08:02:55.164Z] MariaDB: Deleted mission 1 +[2026-06-23T08:05:01.157Z] MariaDB: Created mission The Hunt for Fabius Bile +[2026-06-23T08:05:01.159Z] API: Created mission The Hunt for Fabius Bile +[2026-06-23T08:06:18.150Z] MariaDB: Updated mission 7 +[2026-06-23T08:43:30.049Z] API: Fetch all players (public) 5 +[2026-06-23T08:43:37.616Z] API: Fetch all players (public) 5 +[2026-06-23T08:44:23.828Z] MariaDB: Deleted mission 7 +[2026-06-23T08:44:33.558Z] MariaDB: Created mission The Hunt for Fabius Bile +[2026-06-23T08:44:33.560Z] API: Created mission The Hunt for Fabius Bile +[2026-06-23T08:44:55.267Z] MariaDB: Updated mission 8 +[2026-06-23T08:46:48.204Z] API: Fetch all players (public) 5 +[2026-06-23T08:48:19.538Z] API: Fetch all players (public) 5 +[2026-06-23T08:48:47.242Z] API: Fetch all players (public) 5 +[2026-06-23T08:48:47.250Z] API: Fetch all players (public) 5 +[2026-06-23T08:48:47.258Z] API: Fetch all players (public) 5 +[2026-06-23T08:48:47.266Z] API: Fetch all players (public) 5 +[2026-06-23T08:50:15.099Z] MariaDB: Deleted mission 8 +[2026-06-23T08:50:15.104Z] MariaDB: Error creating mission {"message":"Bind parameters must not contain undefined. To pass SQL NULL specify JS null"} +[2026-06-23T08:50:32.465Z] MariaDB: Deleted mission 8 +[2026-06-23T08:50:32.470Z] MariaDB: Error creating mission {"message":"Bind parameters must not contain undefined. To pass SQL NULL specify JS null"} +[2026-06-23T08:50:38.615Z] MariaDB: Error creating mission {"message":"Bind parameters must not contain undefined. To pass SQL NULL specify JS null"} +[2026-06-23T08:52:48.001Z] API: Fetch all players (public) 5 +[2026-06-23T08:52:48.011Z] API: Fetch all players (public) 5 +[2026-06-23T08:52:48.022Z] API: Fetch all players (public) 5 +[2026-06-23T08:52:48.028Z] API: Fetch all players (public) 5 +[2026-06-23T08:52:48.034Z] API: Fetch all players (public) 5 +[2026-06-23T08:52:48.040Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:00.087Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:00.093Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:00.100Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:00.107Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:00.112Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:00.118Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:28.052Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:28.059Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:28.067Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:28.073Z] API: Fetch all players (public) 5 +[2026-06-23T08:53:28.078Z] API: Fetch all players (public) 5 +[2026-06-23T08:57:50.970Z] API: Fetch all players (public) 5 +[2026-06-23T08:57:50.976Z] API: Fetch all players (public) 5 +[2026-06-23T08:57:50.987Z] API: Fetch all players (public) 5 +[2026-06-23T08:57:50.992Z] API: Fetch all players (public) 5 +[2026-06-23T08:57:50.997Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:28.376Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:28.382Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:28.389Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:28.394Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:28.399Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:34.134Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:34.140Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:34.145Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:34.151Z] API: Fetch all players (public) 5 +[2026-06-23T09:21:34.158Z] API: Fetch all players (public) 5 +[2026-06-23T09:50:57.019Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:25.032Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:25.038Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:29.957Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:29.965Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:40.116Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:40.122Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:40.128Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:40.133Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:40.138Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:45.326Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:45.333Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:45.342Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:45.348Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:45.354Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:49.596Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:49.603Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:49.614Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:49.620Z] API: Fetch all players (public) 5 +[2026-06-23T09:51:49.626Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:06.825Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:06.832Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:06.837Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:06.842Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:06.847Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:12.586Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:12.592Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:12.599Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:12.609Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:12.615Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:17.074Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:17.081Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:17.088Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:17.094Z] API: Fetch all players (public) 5 +[2026-06-23T09:52:17.099Z] API: Fetch all players (public) 5 +[2026-06-23T09:56:59.862Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:38.594Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:38.599Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:38.604Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:38.609Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:38.615Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:48.517Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:48.522Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:48.527Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:48.532Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:48.536Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:52.620Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:52.629Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:52.635Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:52.642Z] API: Fetch all players (public) 5 +[2026-06-23T09:57:52.647Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:16.157Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:16.163Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:16.169Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:16.174Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:16.180Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:35.071Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:35.078Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:35.084Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:35.090Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:35.096Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:47.237Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:47.244Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:47.251Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:47.257Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:47.262Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:58.701Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:58.707Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:58.712Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:58.717Z] API: Fetch all players (public) 5 +[2026-06-23T09:58:58.722Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:25.363Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:25.368Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:25.373Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:25.380Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:25.388Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:30.931Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:30.937Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:30.943Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:30.948Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:30.953Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.102Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.108Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.129Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.139Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.144Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.292Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.299Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.305Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.311Z] API: Fetch all players (public) 5 +[2026-06-23T09:59:31.317Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:34.372Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:34.378Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:34.383Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:34.388Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:34.393Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.019Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.033Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.039Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.044Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.050Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.201Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.207Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.214Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.219Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.224Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.375Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.382Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.387Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.392Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.401Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.547Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.552Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.558Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.564Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.569Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.718Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.724Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.730Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.736Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:41.741Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:47.822Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:47.827Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:47.833Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:47.838Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:47.844Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:47.993Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.002Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.008Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.014Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.020Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.168Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.174Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.179Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.185Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.190Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.336Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.342Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.350Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.356Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.361Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.511Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.522Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.528Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.534Z] API: Fetch all players (public) 5 +[2026-06-23T10:01:48.539Z] API: Fetch all players (public) 5 +[2026-06-23T10:04:43.367Z] API: Fetch all players (public) 5 +[2026-06-23T10:04:43.373Z] API: Fetch all players (public) 5 +[2026-06-23T10:04:43.378Z] API: Fetch all players (public) 5 +[2026-06-23T10:04:43.383Z] API: Fetch all players (public) 5 +[2026-06-23T10:04:43.388Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.592Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.597Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.602Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.610Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.615Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.762Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.767Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.773Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.779Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.784Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.937Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.942Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.949Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.955Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:11.962Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.115Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.120Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.142Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.150Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.157Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.307Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.312Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.317Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.322Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.327Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.477Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.483Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.489Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.494Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.499Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.650Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.656Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.662Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.667Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.672Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.807Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.812Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.818Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.822Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.827Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.963Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.969Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.974Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.979Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:12.984Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:13.134Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:13.141Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:13.147Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:13.157Z] API: Fetch all players (public) 5 +[2026-06-23T10:09:13.163Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.090Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.096Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.102Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.107Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.113Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.263Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.269Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.275Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.282Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.293Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.417Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.424Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.429Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.434Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.439Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.587Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.592Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.597Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.603Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.608Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.759Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.765Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.770Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.775Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.780Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.909Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.915Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.919Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.923Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:23.928Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.071Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.077Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.083Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.089Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.096Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.248Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.257Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.262Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.268Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.274Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.427Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.432Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.437Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.443Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.450Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.598Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.604Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.610Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.615Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:24.621Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.759Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.765Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.771Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.777Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.784Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.949Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.954Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.960Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.967Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:50.974Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.141Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.148Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.153Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.158Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.163Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.319Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.325Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.330Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.335Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.340Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.489Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.494Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.500Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.507Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.513Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.660Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.666Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.672Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.677Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.682Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.828Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.834Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.839Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.845Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:51.850Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.002Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.008Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.014Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.019Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.074Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.222Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.227Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.233Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.238Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.244Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.393Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.399Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.404Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.409Z] API: Fetch all players (public) 5 +[2026-06-23T10:10:52.415Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:16.123Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:16.129Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:16.137Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:16.143Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:16.149Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.384Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.390Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.395Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.400Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.405Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.552Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.557Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.563Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.569Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.575Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.721Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.727Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.732Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.737Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.741Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.892Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.897Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.903Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.908Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:24.913Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.062Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.067Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.073Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.080Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.086Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.235Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.241Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.247Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.254Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.261Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.408Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.415Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.420Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.425Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.431Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.583Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.590Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.597Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.603Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.609Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.756Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.762Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.767Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.775Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.788Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.951Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.957Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.963Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.969Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:25.974Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.445Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.450Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.456Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.461Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.467Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.618Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.623Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.629Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.635Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.641Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.792Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.799Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.804Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.817Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.825Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.972Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.979Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.984Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.989Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:45.994Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.146Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.151Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.156Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.162Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.167Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.326Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.333Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.338Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.343Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.348Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.492Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.498Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.503Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.507Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.512Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.663Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.671Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.676Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.681Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.686Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.835Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.841Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.845Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.851Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:46.857Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:47.007Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:47.013Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:47.022Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:47.029Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:47.034Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:59.900Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:59.906Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:59.912Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:59.918Z] API: Fetch all players (public) 5 +[2026-06-23T10:15:59.924Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.084Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.090Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.095Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.100Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.106Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.263Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.272Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.278Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.284Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.291Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.445Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.451Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.456Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.462Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.467Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.622Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.628Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.643Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.654Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.663Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.818Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.824Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.830Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.835Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.840Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.992Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:00.998Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.004Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.010Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.015Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.167Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.175Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.181Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.186Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.191Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.348Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.353Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.359Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.364Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.370Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.522Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.527Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.533Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.539Z] API: Fetch all players (public) 5 +[2026-06-23T10:16:01.544Z] API: Fetch all players (public) 5 +[2026-06-23T10:17:37.131Z] API: Fetch all players (public) 5 +[2026-06-23T10:17:50.829Z] MariaDB: Updated player 1 +[2026-06-23T10:18:05.704Z] MariaDB: Updated player 1 +[2026-06-23T10:18:10.211Z] API: Fetch all players (public) 5 +[2026-06-23T10:18:15.626Z] MariaDB: Updated player 1 +[2026-06-23T10:18:18.727Z] MariaDB: Updated player 1 +[2026-06-23T10:19:30.278Z] API: Fetch all players (public) 5 +[2026-06-23T10:19:37.454Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:10.232Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:10.243Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:10.249Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:10.256Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:15.658Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:15.664Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:15.671Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:15.679Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:29.028Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:29.035Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:29.041Z] API: Fetch all players (public) 5 +[2026-06-23T10:28:29.047Z] API: Fetch all players (public) 5 +[2026-06-23T10:29:54.200Z] API: Fetch all players (public) 5 +[2026-06-23T10:29:58.695Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:25.872Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:25.878Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:25.884Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:25.890Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:29.400Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:29.405Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:29.410Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:29.415Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:29.421Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:32.849Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:32.855Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:32.860Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:32.865Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:32.871Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:38.602Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:38.613Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:38.618Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:38.624Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:55.281Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:55.286Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:55.292Z] API: Fetch all players (public) 5 +[2026-06-23T10:31:55.297Z] API: Fetch all players (public) 5 +[2026-06-23T10:32:00.889Z] API: Fetch all players (public) 5 +[2026-06-23T10:32:00.894Z] API: Fetch all players (public) 5 +[2026-06-23T10:32:00.898Z] API: Fetch all players (public) 5 +[2026-06-23T10:32:00.902Z] API: Fetch all players (public) 5 +[2026-06-23T10:32:00.906Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:00.268Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:00.274Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:00.279Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:00.284Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:00.290Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:04.481Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:07.515Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:10.607Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:19.713Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:19.719Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:19.725Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:19.731Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:19.737Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:25.432Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:25.438Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:25.443Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:25.449Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:25.454Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:29.154Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:29.162Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:29.167Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:29.172Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:29.178Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:35.676Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:35.681Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:35.685Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:35.690Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:35.694Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:41.233Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:41.239Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:41.244Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:41.249Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:41.254Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:45.594Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:45.600Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:45.605Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:45.611Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:45.616Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:48.601Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:48.606Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:48.611Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:48.616Z] API: Fetch all players (public) 5 +[2026-06-23T10:42:48.621Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:04.012Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:04.018Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:04.025Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:04.030Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:04.035Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:07.564Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:07.570Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:07.579Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:07.585Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:07.591Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:22.470Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:22.475Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:22.480Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:22.485Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:28.705Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:36.303Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:36.308Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:36.314Z] API: Fetch all players (public) 5 +[2026-06-23T10:43:36.319Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:04.779Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:04.785Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:04.790Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:04.796Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:09.479Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:09.485Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:09.491Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:09.501Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:09.507Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:13.616Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:13.621Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:13.626Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:13.631Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:13.636Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:33.854Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:33.859Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:33.865Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:33.870Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:33.876Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:37.894Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:37.900Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:37.906Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:37.911Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:37.916Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:49.124Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:49.129Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:49.135Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:49.140Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:49.145Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:53.874Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:53.882Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:53.888Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:53.893Z] API: Fetch all players (public) 5 +[2026-06-23T10:44:53.899Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:34.809Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:34.816Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:34.824Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:34.829Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:34.836Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:38.961Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:38.966Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:38.970Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:38.975Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:38.979Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:57.846Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:57.851Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:57.856Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:57.862Z] API: Fetch all players (public) 5 +[2026-06-23T10:45:57.866Z] API: Fetch all players (public) 5 +[2026-06-23T10:46:42.000Z] API: Fetch all players (public) 5 +[2026-06-23T10:46:42.008Z] API: Fetch all players (public) 5 +[2026-06-23T10:46:42.013Z] API: Fetch all players (public) 5 +[2026-06-23T10:46:42.018Z] API: Fetch all players (public) 5 +[2026-06-23T10:46:42.024Z] API: Fetch all players (public) 5 +[2026-06-23T11:04:42.058Z] API: Fetch all players (public) 5 +[2026-06-23T11:05:06.841Z] API: Fetch all players (public) 5 +[2026-06-23T11:05:06.847Z] API: Fetch all players (public) 5 +[2026-06-23T11:05:06.853Z] API: Fetch all players (public) 5 +[2026-06-23T11:05:06.858Z] API: Fetch all players (public) 5 +[2026-06-23T11:05:06.863Z] API: Fetch all players (public) 5 +[2026-06-23T11:22:58.217Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:29.962Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:29.968Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:29.973Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:29.981Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:35.137Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:35.142Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:35.148Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:35.154Z] API: Fetch all players (public) 5 +[2026-06-23T11:26:35.159Z] API: Fetch all players (public) 5 +[2026-06-23T11:28:01.151Z] API: Fetch all players (public) 5 +[2026-06-23T11:29:15.942Z] API: Fetch all players (public) 5 +[2026-06-23T11:29:15.949Z] API: Fetch all players (public) 5 +[2026-06-23T11:29:15.954Z] API: Fetch all players (public) 5 +[2026-06-23T11:29:15.960Z] API: Fetch all players (public) 5 +[2026-06-23T11:29:15.966Z] API: Fetch all players (public) 5 +[2026-06-23T11:30:53.268Z] API: Fetch all players (public) 5 +[2026-06-23T11:30:53.274Z] API: Fetch all players (public) 5 +[2026-06-23T11:30:53.279Z] API: Fetch all players (public) 5 +[2026-06-23T11:30:53.285Z] API: Fetch all players (public) 5 +[2026-06-23T11:30:53.291Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:51.935Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:51.943Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:51.948Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:51.953Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:51.958Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:57.654Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:57.660Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:57.667Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:57.673Z] API: Fetch all players (public) 5 +[2026-06-23T11:34:57.678Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:39.032Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:39.039Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:39.044Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:39.050Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:39.055Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:42.728Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:42.734Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:42.749Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:42.755Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:42.763Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:46.942Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:46.948Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:46.953Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:46.958Z] API: Fetch all players (public) 5 +[2026-06-23T11:41:46.963Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:43.273Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:43.278Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:43.284Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:43.291Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:43.296Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:49.644Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:49.650Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:49.694Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:49.700Z] API: Fetch all players (public) 5 +[2026-06-23T11:42:49.708Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:14.133Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:14.146Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:14.152Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:14.158Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:14.172Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:20.313Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:20.319Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:20.324Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:20.328Z] API: Fetch all players (public) 5 +[2026-06-23T11:43:20.334Z] API: Fetch all players (public) 5 +[2026-06-23T11:45:10.271Z] API: Fetch all players (public) 5 +[2026-06-23T11:45:10.276Z] API: Fetch all players (public) 5 +[2026-06-23T11:45:10.281Z] API: Fetch all players (public) 5 +[2026-06-23T11:45:10.286Z] API: Fetch all players (public) 5 +[2026-06-23T11:45:10.292Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:28.716Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:28.722Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:28.727Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:28.732Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:28.737Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:32.392Z] SESSION: Session validation successful gm +[2026-06-23T11:48:32.471Z] API: Fetch player gm success +[2026-06-23T11:48:33.737Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:33.742Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:33.748Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:33.753Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:33.758Z] API: Fetch all players (public) 5 +[2026-06-23T11:48:35.714Z] SESSION: Logout session_gm_1782141232993 +[2026-06-23T11:48:49.286Z] Session created: session_christoffer_1782215329200_ko0gl6 +[2026-06-23T11:48:49.288Z] API: Player login christoffer success +[2026-06-23T11:48:49.350Z] API: Fetch player christoffer success +[2026-06-23T11:48:49.355Z] SESSION: Invalid session format session_christoffer_1782215329200_ko0gl6 +[2026-06-23T11:50:27.014Z] API: Fetch all players (public) 5 +[2026-06-23T12:04:56.197Z] MariaDB: Tables created successfully +[2026-06-23T12:04:58.842Z] MariaDB: Tables created successfully +[2026-06-23T12:28:46.560Z] Session created: session_christoffer_1782217726514_4y6nij +[2026-06-23T12:28:46.562Z] API: Player login christoffer success +[2026-06-23T12:28:46.638Z] API: Fetch player christoffer success +[2026-06-23T12:28:46.641Z] SESSION: Invalid session format session_christoffer_1782217726514_4y6nij +[2026-06-23T12:29:44.360Z] Session created: session_anders_1782217784317_px0b0g +[2026-06-23T12:29:44.362Z] API: Player login anders success +[2026-06-23T12:31:01.789Z] Session created: session_anders_1782217861734_78fcej +[2026-06-23T12:31:01.791Z] API: Player login anders success +[2026-06-23T12:41:51.589Z] MariaDB: Tables created successfully diff --git a/database/pm2.config.js b/database/pm2.config.js index f7e9604..918ea39 100644 --- a/database/pm2.config.js +++ b/database/pm2.config.js @@ -2,11 +2,17 @@ module.exports = { apps: [ { name: 'deathwatch-server', - script: './server.js', - cwd: __dirname, + script: '/home/alex/bin/start-dwroller.sh', + cwd: '/nas/git/dwroller/database', watch: false, restart_delay: 5000, - max_restarts: 10, + max_restarts: 9999, + max_memory_restart: '500M', + instances: 1, + exec_mode: 'fork', + error_file: '/home/alex/.pm2/logs/dwroller-error.log', + out_file: '/home/alex/.pm2/logs/dwroller-out.log', + merge_logs: true, env: { NODE_ENV: 'production', PORT: 5000, diff --git a/database/routes/playerRoutes.js b/database/routes/playerRoutes.js index b0b13a0..4290d5a 100644 --- a/database/routes/playerRoutes.js +++ b/database/routes/playerRoutes.js @@ -9,41 +9,48 @@ router.post('/login', async (req, res) => { console.log('Login attempt for player:', name); if (!name || !password) { - return res.status(400).json({ error: 'Name and password required' }); + return res.status(400).json({ error: 'Please enter both username and password' }); + } + + // Check if player exists first + const player = await playerHelpers.getByName(name); + if (!player) { + // Return generic message for security (don't reveal if user exists) + return res.status(401).json({ error: 'Invalid username or password' }); } // Special handling for GM user if (name.toLowerCase() === 'gm') { - const gmPassword = process.env.GM_PASSWORD || 'defaultpassword'; + const gmPassword = process.env.GM_PASSWORD || 'bongo'; if (password !== gmPassword) { - return res.status(401).json({ error: 'Invalid password' }); + return res.status(401).json({ error: 'Invalid username or password' }); } } else { // For regular players, use environment variable or default const playerPassword = process.env.PLAYER_PASSWORD || 'defaultpassword'; if (password !== playerPassword) { - return res.status(401).json({ error: 'Invalid password' }); + return res.status(401).json({ error: 'Invalid username or password' }); } } - const player = await playerHelpers.getByName(name); - if (!player) { - return res.status(404).json({ error: 'Player not found' }); - } + // Generate a session ID with expiration + const sessionId = `session_${name}_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`; + const expiresAt = new Date(Date.now() + 24 * 60 * 60 * 1000); // 24 hours - // Generate a simple session ID (in production, use proper session management) - const sessionId = `session_${name}_${Date.now()}`; + // Store session in database with expiration + await require('../sessionModel').createSession(sessionId, { playerName: name, isGM: name.toLowerCase() === 'gm' }, expiresAt); logToFile('API: Player login', name, 'success'); res.json({ success: true, sessionId, - player: { name: player.name } + player: { name: player.name }, + expiresAt: expiresAt.toISOString() }); } catch (error) { console.error('Login error:', error); logToFile('API: Failed to login player', req.body?.name, error); - res.status(500).json({ error: String(error) }); + res.status(500).json({ error: 'Login failed. Please try again later.' }); } }); @@ -156,7 +163,8 @@ router.post('/', async (req, res) => { // --- GM Endpoints (require x-gm-secret header) --- function requireGM(req, res) { - if (req.headers['x-gm-secret'] !== 'bongo') { + const gmSecret = process.env.GM_SECRET || 'bongo'; + if (req.headers['x-gm-secret'] !== gmSecret) { res.status(403).json({ error: 'Unauthorized' }); return false; } @@ -242,15 +250,24 @@ router.post('/gm/set-renown', async (req, res) => { router.post('/gm/add-or-update', async (req, res) => { if (!requireGM(req, res)) return; try { - const { name, requisitionPoints, password } = req.body; + const { name, requisitionPoints, password, charName } = req.body; if (!name) return res.status(400).json({ error: 'Name required' }); let player = await playerHelpers.getByName(name); if (!player) { - await playerHelpers.create({ name, pw: password || '1234', tabInfo: { rp: parseInt(requisitionPoints) || 0 } }); + await playerHelpers.create({ + name, + pw: password || '1234', + tabInfo: { + rp: parseInt(requisitionPoints) || 0, + charName: charName || name + } + }); logToFile('API: GM added player', name); } else { - await updateTabInfo(name, { rp: parseInt(requisitionPoints) || 0 }); + const updatedTabInfo = { rp: parseInt(requisitionPoints) || 0 }; + if (charName) updatedTabInfo.charName = charName; + await updateTabInfo(name, updatedTabInfo); if (password) { await playerHelpers.update(name, { rollerInfo: player.rollerInfo, shopInfo: player.shopInfo, tabInfo: player.tabInfo, pw: password, pwHash: '' }); } diff --git a/database/server.js b/database/server.js index d610406..e7ac932 100755 --- a/database/server.js +++ b/database/server.js @@ -173,6 +173,34 @@ app.post('/api/copy-bestiary', (req, res) => { } }); +// Local Ollama narrator — used by MissionSimTab callCopilot() +app.post('/api/narrate', express.json({ limit: '4mb' }), async (req, res) => { + try { + const { prompt, systemPrompt } = req.body || {}; + if (!prompt) return res.status(400).json({ error: 'Missing prompt' }); + const ollamaBase = process.env.OLLAMA_BASE || 'http://localhost:11434'; + const model = process.env.NARRATOR_MODEL || 'qwen3.5:latest'; + const messages = []; + if (systemPrompt) messages.push({ role: 'system', content: systemPrompt }); + messages.push({ role: 'user', content: `/no_think ${prompt}` }); + const response = await fetch(`${ollamaBase}/api/chat`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ model, messages, stream: false, think: false }), + }); + if (!response.ok) { + const errText = await response.text(); + return res.status(502).json({ error: 'Ollama error', detail: errText }); + } + const data = await response.json(); + const text = data.message?.content || data.response || ''; + return res.json({ text }); + } catch (err) { + console.error('Narrator error:', err); + return res.status(500).json({ error: 'Narrator failed', detail: err.message }); + } +}); + // Serve static files from build directory (React app) const buildDir = path.join(__dirname, '..', 'build'); app.use(express.static(buildDir)); diff --git a/database/sessionModel.js b/database/sessionModel.js index a16c647..009b03f 100644 --- a/database/sessionModel.js +++ b/database/sessionModel.js @@ -1,10 +1,54 @@ -const mongoose = require('mongoose'); +const { sessionHelpers, logToFile } = require('./mariadb'); -const sessionSchema = new mongoose.Schema({ - sessionId: { type: String, required: true, unique: true }, - playerName: { type: String, required: true }, - createdAt: { type: Date, default: Date.now }, - expiresAt: { type: Date, required: true }, -}); +async function createSession(sessionId, data, expiresAt) { + try { + // Check if session already exists + const existing = await sessionHelpers.get(sessionId); + if (existing) { + await sessionHelpers.update(sessionId, data); + return existing; + } + await sessionHelpers.create(sessionId, data, expiresAt); + logToFile('Session created:', sessionId); + } catch (error) { + console.error('Error creating session:', error); + logToFile('Session creation error:', error); + throw error; + } +} -module.exports = mongoose.model('Session', sessionSchema); +async function validateSession(sessionId) { + try { + const session = await sessionHelpers.get(sessionId); + if (!session) return null; + + // Check expiration + if (session.expires_at && new Date(session.expires_at) < new Date()) { + await sessionHelpers.delete(sessionId); + logToFile('Session expired:', sessionId); + return null; + } + + return session; + } catch (error) { + console.error('Error validating session:', error); + logToFile('Session validation error:', error); + return null; + } +} + +async function deleteSession(sessionId) { + try { + await sessionHelpers.delete(sessionId); + logToFile('Session deleted:', sessionId); + } catch (error) { + console.error('Error deleting session:', error); + logToFile('Session deletion error:', error); + } +} + +module.exports = { + createSession, + validateSession, + deleteSession +}; diff --git a/src/App.js b/src/App.js index b4e6377..6ec33a9 100755 --- a/src/App.js +++ b/src/App.js @@ -240,14 +240,16 @@ function App() { ) : (
- setLoginName(e.target.value)} - onKeyPress={handleKeyPress} - /> +

Add New Player

-
+
setName(e.target.value)} /> + setCharName(e.target.value)} + /> { if (name.trim()) { const defaultPassword = process.env.REACT_APP_PLAYER_PASSWORD || 'defaultpassword'; - onAdd(name.trim(), rp, pw || defaultPassword); + onAdd(name.trim(), rp, pw || defaultPassword, charName.trim() || name.trim()); setName(''); + setCharName(''); setRp('50'); setPw(''); } diff --git a/src/tests/login.test.js b/src/tests/login.test.js index a74579e..375f262 100644 --- a/src/tests/login.test.js +++ b/src/tests/login.test.js @@ -69,7 +69,8 @@ describe('Login Functionality', () => { data: { success: true, sessionId: 'session_gm_12345', - player: { name: 'gm' } + player: { name: 'gm' }, + expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString() }, status: 200 }); @@ -87,7 +88,7 @@ describe('Login Functionality', () => { const loginButton = screen.getByRole('button', { name: /login|enter/i }); // Fill in login form with GM credentials (test credentials) - const testGmPassword = process.env.GM_PASSWORD || 'defaultpassword'; + const testGmPassword = 'bongo'; // GM password from .env fireEvent.change(nameInput, { target: { value: 'gm' } }); fireEvent.change(passwordInput, { target: { value: testGmPassword } }); @@ -115,7 +116,7 @@ describe('Login Functionality', () => { mockedAxios.post.mockRejectedValueOnce({ response: { status: 401, - data: { error: 'Invalid password' } + data: { error: 'Invalid username or password' } }, message: 'Request failed with status code 401' }); @@ -142,10 +143,10 @@ describe('Login Functionality', () => { test('login with non-existent player fails', async () => { mockedAxios.post.mockRejectedValueOnce({ response: { - status: 404, - data: { error: 'Player not found' } + status: 401, + data: { error: 'Invalid username or password' } }, - message: 'Request failed with status code 404' + message: 'Request failed with status code 401' }); render(); @@ -158,7 +159,7 @@ describe('Login Functionality', () => { const passwordInput = screen.getByPlaceholderText(/password/i); const loginButton = screen.getByRole('button', { name: /login|enter/i }); - const testPlayerPassword = process.env.PLAYER_PASSWORD || 'defaultpassword'; + const testPlayerPassword = '1234'; // Player password from .env fireEvent.change(nameInput, { target: { value: 'nonexistent' } }); fireEvent.change(passwordInput, { target: { value: testPlayerPassword } }); fireEvent.click(loginButton); @@ -167,4 +168,52 @@ describe('Login Functionality', () => { expect(screen.getByText(/login failed/i)).toBeInTheDocument(); }); }); + + test('login with player account', async () => { + mockedAxios.post.mockResolvedValueOnce({ + data: { + success: true, + sessionId: 'session_anders_12345', + player: { name: 'anders' }, + expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString() + }, + status: 200 + }); + + render(); + + // Wait for players list to load + await waitFor(() => { + expect(screen.getByText(/anders/i)).toBeInTheDocument(); + }); + + // Find login inputs + const nameInput = screen.getByPlaceholderText(/player name|username/i); + const passwordInput = screen.getByPlaceholderText(/password/i); + const loginButton = screen.getByRole('button', { name: /login|enter/i }); + + // Fill in login form with player credentials + const testPlayerPassword = '1234'; // Player password from .env + fireEvent.change(nameInput, { target: { value: 'anders' } }); + fireEvent.change(passwordInput, { target: { value: testPlayerPassword } }); + + // Click login button + fireEvent.click(loginButton); + + // Verify login was called with correct parameters + await waitFor(() => { + expect(mockedAxios.post).toHaveBeenCalledWith( + '/api/players/login', + { + name: 'anders', + password: testPlayerPassword + } + ); + }); + + // Verify success message appears + await waitFor(() => { + expect(screen.getByText(/login successful/i)).toBeInTheDocument(); + }, { timeout: 3000 }); + }); });