+
+
+
+
+
+
\ No newline at end of file
diff --git a/client/src/components/admin/PlayerDialog.vue b/client/src/components/admin/PlayerDialog.vue
index 4555208..94e28a3 100644
--- a/client/src/components/admin/PlayerDialog.vue
+++ b/client/src/components/admin/PlayerDialog.vue
@@ -22,7 +22,7 @@
\ No newline at end of file
diff --git a/client/src/pages/setup.vue b/client/src/pages/setup.vue
new file mode 100644
index 0000000..89240cb
--- /dev/null
+++ b/client/src/pages/setup.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
{{ $t('description-1') }}
+
{{ $t('description-2') }}
+
+
+
+
+
+
{{ $t('pin') }}
+
{{ authcode }}
+
{{ $t('remember-and-log-in') }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/client/src/stores/UserinfoStore.ts b/client/src/stores/UserinfoStore.ts
index 35e4430..94dd16a 100644
--- a/client/src/stores/UserinfoStore.ts
+++ b/client/src/stores/UserinfoStore.ts
@@ -3,7 +3,7 @@ import { defineStore } from 'pinia'
export type Userinfo = {
id: string
name: string
- role: '' | 'player' | 'gamemaster' | 'admin'
+ role: '' | 'player' | 'gamemaster' | 'admin' | 'setup'
game: string
lang: 'de' | 'en'
isCameo: string
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/game.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/game.json
deleted file mode 100644
index 4665250..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/game.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"Massive Demo","lang":"de","created":1651603106}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/018eb9df-00df-4749-bfc5-9aecf0510d8a.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/018eb9df-00df-4749-bfc5-9aecf0510d8a.json
deleted file mode 100755
index 2985128..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/018eb9df-00df-4749-bfc5-9aecf0510d8a.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "12.2",
- "source": "9c5a22d3-1e82-4bad-95a4-c9efb169ede0"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/0c6771cb-bca2-4464-9aca-dd9b14388302.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/0c6771cb-bca2-4464-9aca-dd9b14388302.json
deleted file mode 100755
index 29c7217..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/0c6771cb-bca2-4464-9aca-dd9b14388302.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "1.1",
- "source": "4b1c22b8-6fa1-4c9d-98d7-cbf498035074"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/1c8381c1-ed1f-4293-85bb-f2ff510f6a95.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/1c8381c1-ed1f-4293-85bb-f2ff510f6a95.json
deleted file mode 100755
index dbc2d18..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/1c8381c1-ed1f-4293-85bb-f2ff510f6a95.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "11.2",
- "source": "cede08c4-768a-4792-b92f-8df162a07307"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/1e0633ad-6fce-4d81-a63b-30c525938e3e.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/1e0633ad-6fce-4d81-a63b-30c525938e3e.json
deleted file mode 100755
index dd5e342..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/1e0633ad-6fce-4d81-a63b-30c525938e3e.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "4.1",
- "source": "b190ebb1-86c0-4308-a6b6-bf34237c10f8"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/332444d8-f855-44f8-b2b0-cc0c476bc87c.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/332444d8-f855-44f8-b2b0-cc0c476bc87c.json
deleted file mode 100755
index 6f598d4..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/332444d8-f855-44f8-b2b0-cc0c476bc87c.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "Admin #1",
- "source": "f30802dc-1c18-4169-99fe-04d1d8e7bd9e"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/383367b7-4065-4867-8316-77bc061ac796.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/383367b7-4065-4867-8316-77bc061ac796.json
deleted file mode 100755
index 45ed51a..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/383367b7-4065-4867-8316-77bc061ac796.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "7.2",
- "source": "3945635e-c65a-4fb7-a46c-675ec53abebe"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/38fba00a-26dc-46d8-812d-a3b3826fb1a5.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/38fba00a-26dc-46d8-812d-a3b3826fb1a5.json
deleted file mode 100755
index 9bd2d5f..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/38fba00a-26dc-46d8-812d-a3b3826fb1a5.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "16.1",
- "source": "49295e5b-0d0a-44ea-9bff-e74acaaa6dcf"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/49a01a5b-2174-42d9-9534-cb13d6cafdf4.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/49a01a5b-2174-42d9-9534-cb13d6cafdf4.json
deleted file mode 100755
index 0a25fe1..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/49a01a5b-2174-42d9-9534-cb13d6cafdf4.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "3.2",
- "source": "4fa78612-accd-491d-93e6-cca251ac0e5a"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/4e900166-5615-450e-8916-67a862daab49.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/4e900166-5615-450e-8916-67a862daab49.json
deleted file mode 100755
index 829a5e0..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/4e900166-5615-450e-8916-67a862daab49.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "5.1",
- "source": "3c60f533-676b-4464-8542-1f3e6fc49d13"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/4fdb5956-6017-4615-b10b-4f8e0c2164da.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/4fdb5956-6017-4615-b10b-4f8e0c2164da.json
deleted file mode 100755
index 5f5ebfe..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/4fdb5956-6017-4615-b10b-4f8e0c2164da.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "Admin #2",
- "source": "f30802dc-1c18-4169-99fe-04d1d8e7bd9e"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/5744dd1a-834c-486b-9695-c10a87371ea9.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/5744dd1a-834c-486b-9695-c10a87371ea9.json
deleted file mode 100755
index 4b9dbf4..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/5744dd1a-834c-486b-9695-c10a87371ea9.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "2.2",
- "source": "da6fdb50-8773-40ce-889f-c6f565ca35e3"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/6095b97d-e391-4b1a-8bd2-e76c3843fc33.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/6095b97d-e391-4b1a-8bd2-e76c3843fc33.json
deleted file mode 100755
index ff44bfe..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/6095b97d-e391-4b1a-8bd2-e76c3843fc33.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "6.1",
- "source": "38f508e0-b808-4d28-be5b-d2f5cb54fd69"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/645883a7-8f2c-481e-9863-23347ba1df6d.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/645883a7-8f2c-481e-9863-23347ba1df6d.json
deleted file mode 100755
index 0c4ba90..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/645883a7-8f2c-481e-9863-23347ba1df6d.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "4.2",
- "source": "b190ebb1-86c0-4308-a6b6-bf34237c10f8"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/6c1b9501-fd3b-4c7d-a4ba-6a1236ede866.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/6c1b9501-fd3b-4c7d-a4ba-6a1236ede866.json
deleted file mode 100755
index 214d083..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/6c1b9501-fd3b-4c7d-a4ba-6a1236ede866.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "13.1",
- "source": "233dd18b-cb0d-4f77-b0ee-248dc7fec65d"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/7f17c9da-90d0-417b-a23b-d122baecf23c.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/7f17c9da-90d0-417b-a23b-d122baecf23c.json
deleted file mode 100755
index d7a4365..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/7f17c9da-90d0-417b-a23b-d122baecf23c.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "9.2",
- "source": "f99ee1de-af5c-4d7e-a1f4-622ad0cd40ac"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/8ce5b49a-3282-4364-894e-6b42b00fa2c0.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/8ce5b49a-3282-4364-894e-6b42b00fa2c0.json
deleted file mode 100755
index 042ebd1..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/8ce5b49a-3282-4364-894e-6b42b00fa2c0.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "12.1",
- "source": "9c5a22d3-1e82-4bad-95a4-c9efb169ede0"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/92eb0849-43d0-4830-8e8a-ac832311decb.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/92eb0849-43d0-4830-8e8a-ac832311decb.json
deleted file mode 100755
index 86c82ed..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/92eb0849-43d0-4830-8e8a-ac832311decb.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "5.2",
- "source": "3c60f533-676b-4464-8542-1f3e6fc49d13"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/9a3da1aa-178c-486b-9e3b-613b8f549842.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/9a3da1aa-178c-486b-9e3b-613b8f549842.json
deleted file mode 100755
index 9549495..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/9a3da1aa-178c-486b-9e3b-613b8f549842.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "9.1",
- "source": "f99ee1de-af5c-4d7e-a1f4-622ad0cd40ac"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a37958d9-e4b7-463e-8792-bdb6c3da357e.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a37958d9-e4b7-463e-8792-bdb6c3da357e.json
deleted file mode 100755
index 48e2f01..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a37958d9-e4b7-463e-8792-bdb6c3da357e.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "8.2",
- "source": "81cf1907-8566-4b03-a433-3f6ea9bf8c85"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a65f5ec5-2f44-4e27-8c61-41df2d0a7e04.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a65f5ec5-2f44-4e27-8c61-41df2d0a7e04.json
deleted file mode 100755
index 8dbfdef..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a65f5ec5-2f44-4e27-8c61-41df2d0a7e04.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "15.1",
- "source": "4706f51a-c014-4e0a-99f7-866e98b19986"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a65fedb1-12aa-4b5a-900e-4b3b824515c5.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a65fedb1-12aa-4b5a-900e-4b3b824515c5.json
deleted file mode 100755
index a682558..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a65fedb1-12aa-4b5a-900e-4b3b824515c5.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "1.2",
- "source": "4b1c22b8-6fa1-4c9d-98d7-cbf498035074"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a84478b5-63ee-4def-9110-b0fc04796a5f.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a84478b5-63ee-4def-9110-b0fc04796a5f.json
deleted file mode 100755
index 0c8aeba..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/a84478b5-63ee-4def-9110-b0fc04796a5f.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "11.1",
- "source": "cede08c4-768a-4792-b92f-8df162a07307"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/b184de5b-7cab-4488-803d-616fbf926e84.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/b184de5b-7cab-4488-803d-616fbf926e84.json
deleted file mode 100755
index 0f189c4..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/b184de5b-7cab-4488-803d-616fbf926e84.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "10.2",
- "source": "8f688b3b-6e2f-4bf2-bdfa-03762f2c7b72"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/b3af0270-b198-4d2c-ad48-8f7971966a59.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/b3af0270-b198-4d2c-ad48-8f7971966a59.json
deleted file mode 100755
index b831b36..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/b3af0270-b198-4d2c-ad48-8f7971966a59.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "6.2",
- "source": "38f508e0-b808-4d28-be5b-d2f5cb54fd69"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/c22d2643-b40f-4e4b-8aaa-611c3008e8e0.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/c22d2643-b40f-4e4b-8aaa-611c3008e8e0.json
deleted file mode 100755
index ef5b1d6..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/c22d2643-b40f-4e4b-8aaa-611c3008e8e0.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "13.2",
- "source": "233dd18b-cb0d-4f77-b0ee-248dc7fec65d"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ccb116f9-b331-4c0a-9e5b-18bb4c07f9be.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ccb116f9-b331-4c0a-9e5b-18bb4c07f9be.json
deleted file mode 100755
index d638744..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ccb116f9-b331-4c0a-9e5b-18bb4c07f9be.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "8.1",
- "source": "81cf1907-8566-4b03-a433-3f6ea9bf8c85"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ce0ae512-b2ec-4ddb-b6bb-e6d9b150fd72.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ce0ae512-b2ec-4ddb-b6bb-e6d9b150fd72.json
deleted file mode 100755
index 2ad1cba..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ce0ae512-b2ec-4ddb-b6bb-e6d9b150fd72.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "10.1",
- "source": "8f688b3b-6e2f-4bf2-bdfa-03762f2c7b72"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/dee5fc44-cd3d-4d0c-b650-6b7f758fd50c.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/dee5fc44-cd3d-4d0c-b650-6b7f758fd50c.json
deleted file mode 100755
index 76ab700..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/dee5fc44-cd3d-4d0c-b650-6b7f758fd50c.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "16.2",
- "source": "49295e5b-0d0a-44ea-9bff-e74acaaa6dcf"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/e376060d-8660-408e-ae59-9227dbbc802f.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/e376060d-8660-408e-ae59-9227dbbc802f.json
deleted file mode 100755
index 3c7edd3..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/e376060d-8660-408e-ae59-9227dbbc802f.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "14.2",
- "source": "51c4c7cb-8382-4bef-ad2d-c457c5af12f2"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/e8e3c58d-3765-4730-9851-45446f1199d0.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/e8e3c58d-3765-4730-9851-45446f1199d0.json
deleted file mode 100755
index 64cc6c6..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/e8e3c58d-3765-4730-9851-45446f1199d0.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "2.1",
- "source": "da6fdb50-8773-40ce-889f-c6f565ca35e3"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ea3875eb-31b1-4836-acd4-5e38ea4690ca.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ea3875eb-31b1-4836-acd4-5e38ea4690ca.json
deleted file mode 100755
index 4ec28cf..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/ea3875eb-31b1-4836-acd4-5e38ea4690ca.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "14.1",
- "source": "51c4c7cb-8382-4bef-ad2d-c457c5af12f2"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f2a489fb-8f30-43ca-af44-d0865448b8c7.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f2a489fb-8f30-43ca-af44-d0865448b8c7.json
deleted file mode 100755
index a1a79e5..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f2a489fb-8f30-43ca-af44-d0865448b8c7.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "3.1",
- "source": "4fa78612-accd-491d-93e6-cca251ac0e5a"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f5ecb0ee-92a1-4319-bed1-6173d7482374.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f5ecb0ee-92a1-4319-bed1-6173d7482374.json
deleted file mode 100755
index f7e3289..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f5ecb0ee-92a1-4319-bed1-6173d7482374.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "7.1",
- "source": "3945635e-c65a-4fb7-a46c-675ec53abebe"
-}
\ No newline at end of file
diff --git a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f94d9bac-2912-48d0-9002-291fc5a11492.json b/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f94d9bac-2912-48d0-9002-291fc5a11492.json
deleted file mode 100755
index 33fcd66..0000000
--- a/server/data/games/64efba47-87dc-4c19-851c-aa68c9f0e2c1/quotes/f94d9bac-2912-48d0-9002-291fc5a11492.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "15.2",
- "source": "4706f51a-c014-4e0a-99f7-866e98b19986"
-}
\ No newline at end of file
diff --git a/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/game.json b/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/game.json
deleted file mode 100644
index ce38f02..0000000
--- a/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/game.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"Bumsquatsch","lang":"de","created":1670881903}
\ No newline at end of file
diff --git a/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/94b5100d-1f54-441d-ac63-7853d10c16fb.json b/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/94b5100d-1f54-441d-ac63-7853d10c16fb.json
deleted file mode 100644
index 1f7e748..0000000
--- a/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/94b5100d-1f54-441d-ac63-7853d10c16fb.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "quote": "Extra Bumsquatsch vom Oberadmin",
- "source": "6ef8620b-2b5e-4749-821e-b0722b8d8117",
- "created": 1670882004
-}
\ No newline at end of file
diff --git a/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/b93ea1f7-8e6d-4ad8-b42d-4f1f0e9f65f3.json b/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/b93ea1f7-8e6d-4ad8-b42d-4f1f0e9f65f3.json
deleted file mode 100644
index 5a02c2c..0000000
--- a/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/b93ea1f7-8e6d-4ad8-b42d-4f1f0e9f65f3.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "quote": "Bumsquatsch #2",
- "source": "c5e0cbf4-1556-4488-93de-9367f84e5ce8",
- "created": 1670881947
-}
\ No newline at end of file
diff --git a/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/c2268e77-55c4-420d-9f45-c0b7a365ea17.json b/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/c2268e77-55c4-420d-9f45-c0b7a365ea17.json
deleted file mode 100644
index 1ddefed..0000000
--- a/server/data/games/652e36de-99c4-4365-b557-8fd189a396ab/quotes/c2268e77-55c4-420d-9f45-c0b7a365ea17.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "quote": "Bumsquatsch #1",
- "source": "c5e0cbf4-1556-4488-93de-9367f84e5ce8",
- "created": 1670881943
-}
\ No newline at end of file
diff --git a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/game.json b/server/data/games/663576f0-1378-496b-a970-578bdcb222af/game.json
deleted file mode 100644
index 4e5f487..0000000
--- a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/game.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"Team Hogwards","lang":"en","created":1650831066}
\ No newline at end of file
diff --git a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/7bdda850-f3a5-4e89-9ad2-a44fb02b18c6.json b/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/7bdda850-f3a5-4e89-9ad2-a44fb02b18c6.json
deleted file mode 100644
index b73ab61..0000000
--- a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/7bdda850-f3a5-4e89-9ad2-a44fb02b18c6.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "I'm friends with spiders.",
- "source": "23c93faa-ac5b-4e37-bf32-4276aba682bb"
-}
\ No newline at end of file
diff --git a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/9ace7a20-6508-43ef-85e7-27adf74bbfc1.json b/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/9ace7a20-6508-43ef-85e7-27adf74bbfc1.json
deleted file mode 100644
index e502d93..0000000
--- a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/9ace7a20-6508-43ef-85e7-27adf74bbfc1.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "My first magic wand - an exclusive model from designer Thoronus Karpes — was a gift from my father.",
- "source": "15c03b7c-729f-4202-a880-3bcc7214dad9"
-}
\ No newline at end of file
diff --git a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/c0cd118c-d160-4bdd-b029-7e3ac62de860.json b/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/c0cd118c-d160-4bdd-b029-7e3ac62de860.json
deleted file mode 100644
index e9c2777..0000000
--- a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/c0cd118c-d160-4bdd-b029-7e3ac62de860.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "My stupid brothers frequently test their latest invention on me.",
- "source": "bff68447-513c-4fa3-9224-fc59d83da81a"
-}
\ No newline at end of file
diff --git a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/d19c5669-d0cc-42b9-ab58-1a83cb7381a9.json b/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/d19c5669-d0cc-42b9-ab58-1a83cb7381a9.json
deleted file mode 100644
index cf13f72..0000000
--- a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/d19c5669-d0cc-42b9-ab58-1a83cb7381a9.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "Since first grade, I've been best in all subjects and courses without a single miss.",
- "source": "99e1aa2e-6e37-43c7-809c-28f093e2ae81"
-}
\ No newline at end of file
diff --git a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/fcfc27ac-ebc4-409e-81db-6eaa099dc30f.json b/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/fcfc27ac-ebc4-409e-81db-6eaa099dc30f.json
deleted file mode 100644
index b528c0e..0000000
--- a/server/data/games/663576f0-1378-496b-a970-578bdcb222af/quotes/fcfc27ac-ebc4-409e-81db-6eaa099dc30f.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "My private collection has 4031 different potions.",
- "source": "35ee06ca-82c7-4f23-9bb9-bd0943848b07"
-}
\ No newline at end of file
diff --git a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/game.json b/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/game.json
deleted file mode 100644
index e03473d..0000000
--- a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/game.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"Team Hogwards","lang":"de","created":1649841591}
\ No newline at end of file
diff --git a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/246d0238-76b0-401e-bb01-44440b5f60e4.json b/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/246d0238-76b0-401e-bb01-44440b5f60e4.json
deleted file mode 100644
index 5142990..0000000
--- a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/246d0238-76b0-401e-bb01-44440b5f60e4.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "Ich bin seit der ersten Klasse in allen Fächern Klassenbeste:r.",
- "source": "de69fa89-2b55-4c78-8718-9084458ceada"
-}
\ No newline at end of file
diff --git a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/2e96d4fb-a412-4217-85f7-4295d1bb52b8.json b/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/2e96d4fb-a412-4217-85f7-4295d1bb52b8.json
deleted file mode 100644
index 45bf16c..0000000
--- a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/2e96d4fb-a412-4217-85f7-4295d1bb52b8.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "Meine Privatsammlung umfasst 4031 verschiedene Zaubertränke.",
- "source": "c885c77f-bbc8-4547-a3b4-baac5a58e76e"
-}
\ No newline at end of file
diff --git a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/6953fff5-7751-40e1-8499-955b481bf23d.json b/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/6953fff5-7751-40e1-8499-955b481bf23d.json
deleted file mode 100644
index d99ce4f..0000000
--- a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/6953fff5-7751-40e1-8499-955b481bf23d.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "Meinen ersten Zauberstab — ein exklusives Modell von Edeldesigner Thoronus Karpes — hat mir mein Vater geschenkt.",
- "source": "cf230e60-9e1e-4158-93eb-ca184e15a6af"
-}
\ No newline at end of file
diff --git a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/7e46932d-3fbc-41d6-a1c8-b79ccebf24c1.json b/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/7e46932d-3fbc-41d6-a1c8-b79ccebf24c1.json
deleted file mode 100644
index 47104df..0000000
--- a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/7e46932d-3fbc-41d6-a1c8-b79ccebf24c1.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "Ich bin mit Spinnen befreundet.",
- "source": "47ff4d04-b403-468f-b152-72226762e373"
-}
\ No newline at end of file
diff --git a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/cb59d619-0beb-4f0b-bb72-d7ac992b1bf3.json b/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/cb59d619-0beb-4f0b-bb72-d7ac992b1bf3.json
deleted file mode 100644
index f0ea643..0000000
--- a/server/data/games/e24444aa-8a18-48aa-a36d-8f84620726f8/quotes/cb59d619-0beb-4f0b-bb72-d7ac992b1bf3.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "quote": "Meine blöden Brüder testen ständig ihre neusten Erfindungen an mir.",
- "source": "fae6e837-d603-436d-ba0c-df6a850350c0"
-}
\ No newline at end of file
diff --git a/server/data/users/15c03b7c-729f-4202-a880-3bcc7214dad9.json b/server/data/users/15c03b7c-729f-4202-a880-3bcc7214dad9.json
deleted file mode 100644
index d2f26f3..0000000
--- a/server/data/users/15c03b7c-729f-4202-a880-3bcc7214dad9.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Draco","role":"player","game":"663576f0-1378-496b-a970-578bdcb222af","created":1650831166,"lastLoggedIn":0}
\ No newline at end of file
diff --git a/server/data/users/233dd18b-cb0d-4f77-b0ee-248dc7fec65d.json b/server/data/users/233dd18b-cb0d-4f77-b0ee-248dc7fec65d.json
deleted file mode 100644
index c5ef181..0000000
--- a/server/data/users/233dd18b-cb0d-4f77-b0ee-248dc7fec65d.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"805088","name":"Player #13","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603645,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/23c93faa-ac5b-4e37-bf32-4276aba682bb.json b/server/data/users/23c93faa-ac5b-4e37-bf32-4276aba682bb.json
deleted file mode 100644
index f49f79b..0000000
--- a/server/data/users/23c93faa-ac5b-4e37-bf32-4276aba682bb.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Hagrid","role":"player","game":"663576f0-1378-496b-a970-578bdcb222af","created":1650831162,"lastLoggedIn":0}
\ No newline at end of file
diff --git a/server/data/users/35ee06ca-82c7-4f23-9bb9-bd0943848b07.json b/server/data/users/35ee06ca-82c7-4f23-9bb9-bd0943848b07.json
deleted file mode 100644
index e9e911a..0000000
--- a/server/data/users/35ee06ca-82c7-4f23-9bb9-bd0943848b07.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Snape","role":"player","game":"663576f0-1378-496b-a970-578bdcb222af","created":1650831158,"lastLoggedIn":0}
\ No newline at end of file
diff --git a/server/data/users/38f508e0-b808-4d28-be5b-d2f5cb54fd69.json b/server/data/users/38f508e0-b808-4d28-be5b-d2f5cb54fd69.json
deleted file mode 100644
index 8f93ae1..0000000
--- a/server/data/users/38f508e0-b808-4d28-be5b-d2f5cb54fd69.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"406234","name":"Player #06","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603311,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/3945635e-c65a-4fb7-a46c-675ec53abebe.json b/server/data/users/3945635e-c65a-4fb7-a46c-675ec53abebe.json
deleted file mode 100644
index 45e594b..0000000
--- a/server/data/users/3945635e-c65a-4fb7-a46c-675ec53abebe.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"098577","name":"Player #07","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603340,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/3c60f533-676b-4464-8542-1f3e6fc49d13.json b/server/data/users/3c60f533-676b-4464-8542-1f3e6fc49d13.json
deleted file mode 100644
index 5319560..0000000
--- a/server/data/users/3c60f533-676b-4464-8542-1f3e6fc49d13.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"044843","name":"Player #05","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603278,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/3e6eef0e-3dbd-4f60-9009-1be052408d0a.json b/server/data/users/3e6eef0e-3dbd-4f60-9009-1be052408d0a.json
deleted file mode 100644
index 7aa13e9..0000000
--- a/server/data/users/3e6eef0e-3dbd-4f60-9009-1be052408d0a.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "authcode": "646162",
- "name": "Settel (Admin)",
- "role": "admin"
-}
diff --git a/server/data/users/4706f51a-c014-4e0a-99f7-866e98b19986.json b/server/data/users/4706f51a-c014-4e0a-99f7-866e98b19986.json
deleted file mode 100644
index df79f86..0000000
--- a/server/data/users/4706f51a-c014-4e0a-99f7-866e98b19986.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"606242","name":"Player #15","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603679,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/47ff4d04-b403-468f-b152-72226762e373.json b/server/data/users/47ff4d04-b403-468f-b152-72226762e373.json
deleted file mode 100644
index 03adca3..0000000
--- a/server/data/users/47ff4d04-b403-468f-b152-72226762e373.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Hagrid","role":"player","game":"e24444aa-8a18-48aa-a36d-8f84620726f8","created":1649841804}
\ No newline at end of file
diff --git a/server/data/users/49295e5b-0d0a-44ea-9bff-e74acaaa6dcf.json b/server/data/users/49295e5b-0d0a-44ea-9bff-e74acaaa6dcf.json
deleted file mode 100644
index d5899dd..0000000
--- a/server/data/users/49295e5b-0d0a-44ea-9bff-e74acaaa6dcf.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"920510","name":"Player #16","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603703,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/4b1c22b8-6fa1-4c9d-98d7-cbf498035074.json b/server/data/users/4b1c22b8-6fa1-4c9d-98d7-cbf498035074.json
deleted file mode 100644
index d6f8536..0000000
--- a/server/data/users/4b1c22b8-6fa1-4c9d-98d7-cbf498035074.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"350736","name":"Player #01","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603175,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/4fa78612-accd-491d-93e6-cca251ac0e5a.json b/server/data/users/4fa78612-accd-491d-93e6-cca251ac0e5a.json
deleted file mode 100644
index aa0f38e..0000000
--- a/server/data/users/4fa78612-accd-491d-93e6-cca251ac0e5a.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"160658","name":"Player #03","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603237,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/51c4c7cb-8382-4bef-ad2d-c457c5af12f2.json b/server/data/users/51c4c7cb-8382-4bef-ad2d-c457c5af12f2.json
deleted file mode 100644
index d873bf8..0000000
--- a/server/data/users/51c4c7cb-8382-4bef-ad2d-c457c5af12f2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"529733","name":"Player #14","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603656,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/6ef8620b-2b5e-4749-821e-b0722b8d8117.json b/server/data/users/6ef8620b-2b5e-4749-821e-b0722b8d8117.json
deleted file mode 100644
index 6d59d5b..0000000
--- a/server/data/users/6ef8620b-2b5e-4749-821e-b0722b8d8117.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"171903","name":"Admin von Bumsquatsch","role":"gamemaster","game":"652e36de-99c4-4365-b557-8fd189a396ab","created":1670881903,"lastLoggedIn":1670881992}
\ No newline at end of file
diff --git a/server/data/users/81cf1907-8566-4b03-a433-3f6ea9bf8c85.json b/server/data/users/81cf1907-8566-4b03-a433-3f6ea9bf8c85.json
deleted file mode 100644
index 1f9f07c..0000000
--- a/server/data/users/81cf1907-8566-4b03-a433-3f6ea9bf8c85.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"776678","name":"Player #08","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603395,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/8f688b3b-6e2f-4bf2-bdfa-03762f2c7b72.json b/server/data/users/8f688b3b-6e2f-4bf2-bdfa-03762f2c7b72.json
deleted file mode 100644
index f18ed73..0000000
--- a/server/data/users/8f688b3b-6e2f-4bf2-bdfa-03762f2c7b72.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"837254","name":"Player #10","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603471,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/99e1aa2e-6e37-43c7-809c-28f093e2ae81.json b/server/data/users/99e1aa2e-6e37-43c7-809c-28f093e2ae81.json
deleted file mode 100644
index b6c6fb5..0000000
--- a/server/data/users/99e1aa2e-6e37-43c7-809c-28f093e2ae81.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Hermine","role":"player","game":"663576f0-1378-496b-a970-578bdcb222af","created":1650831149,"lastLoggedIn":0}
\ No newline at end of file
diff --git a/server/data/users/9c5a22d3-1e82-4bad-95a4-c9efb169ede0.json b/server/data/users/9c5a22d3-1e82-4bad-95a4-c9efb169ede0.json
deleted file mode 100644
index 38dbf42..0000000
--- a/server/data/users/9c5a22d3-1e82-4bad-95a4-c9efb169ede0.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"370173","name":"Player #12","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603619,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/9db57a3f-7fa3-478f-86d5-24f24918fb91.json b/server/data/users/9db57a3f-7fa3-478f-86d5-24f24918fb91.json
deleted file mode 100644
index 584aeea..0000000
--- a/server/data/users/9db57a3f-7fa3-478f-86d5-24f24918fb91.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"934289","name":"Harry","role":"player","game":"e24444aa-8a18-48aa-a36d-8f84620726f8","created":1649841804}
\ No newline at end of file
diff --git a/server/data/users/aa639191-953a-408d-b8c2-521889834f6a.json b/server/data/users/aa639191-953a-408d-b8c2-521889834f6a.json
deleted file mode 100644
index 3e96893..0000000
--- a/server/data/users/aa639191-953a-408d-b8c2-521889834f6a.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"001002","name":"Dumbledore","role":"gamemaster","game":"e24444aa-8a18-48aa-a36d-8f84620726f8","created":1649841804,"lastLoggedIn":1649841540}
\ No newline at end of file
diff --git a/server/data/users/b190ebb1-86c0-4308-a6b6-bf34237c10f8.json b/server/data/users/b190ebb1-86c0-4308-a6b6-bf34237c10f8.json
deleted file mode 100644
index 11290a6..0000000
--- a/server/data/users/b190ebb1-86c0-4308-a6b6-bf34237c10f8.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"576653","name":"Player #04","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603258,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/bff68447-513c-4fa3-9224-fc59d83da81a.json b/server/data/users/bff68447-513c-4fa3-9224-fc59d83da81a.json
deleted file mode 100644
index ddbe510..0000000
--- a/server/data/users/bff68447-513c-4fa3-9224-fc59d83da81a.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Ron","role":"player","game":"663576f0-1378-496b-a970-578bdcb222af","created":1650831153,"lastLoggedIn":0}
\ No newline at end of file
diff --git a/server/data/users/c5e0cbf4-1556-4488-93de-9367f84e5ce8.json b/server/data/users/c5e0cbf4-1556-4488-93de-9367f84e5ce8.json
deleted file mode 100644
index 0323c3a..0000000
--- a/server/data/users/c5e0cbf4-1556-4488-93de-9367f84e5ce8.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"000000","name":"Harald von Bumsquatsch","role":"player","game":"652e36de-99c4-4365-b557-8fd189a396ab","created":1670881923,"lastLoggedIn":1670881950}
\ No newline at end of file
diff --git a/server/data/users/c885c77f-bbc8-4547-a3b4-baac5a58e76e.json b/server/data/users/c885c77f-bbc8-4547-a3b4-baac5a58e76e.json
deleted file mode 100644
index b592af8..0000000
--- a/server/data/users/c885c77f-bbc8-4547-a3b4-baac5a58e76e.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Snape","role":"player","game":"e24444aa-8a18-48aa-a36d-8f84620726f8","created":1649841804}
\ No newline at end of file
diff --git a/server/data/users/cede08c4-768a-4792-b92f-8df162a07307.json b/server/data/users/cede08c4-768a-4792-b92f-8df162a07307.json
deleted file mode 100644
index 1a4d99a..0000000
--- a/server/data/users/cede08c4-768a-4792-b92f-8df162a07307.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"019048","name":"Player #11","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603541,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/cf230e60-9e1e-4158-93eb-ca184e15a6af.json b/server/data/users/cf230e60-9e1e-4158-93eb-ca184e15a6af.json
deleted file mode 100644
index a44ab52..0000000
--- a/server/data/users/cf230e60-9e1e-4158-93eb-ca184e15a6af.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Draco","role":"player","game":"e24444aa-8a18-48aa-a36d-8f84620726f8","created":1649841804}
\ No newline at end of file
diff --git a/server/data/users/d06fb83a-51eb-477e-b57c-6138a38eecb5.json b/server/data/users/d06fb83a-51eb-477e-b57c-6138a38eecb5.json
deleted file mode 100644
index e439ac5..0000000
--- a/server/data/users/d06fb83a-51eb-477e-b57c-6138a38eecb5.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"123456","name":"Harry","role":"player","game":"663576f0-1378-496b-a970-578bdcb222af","created":1650831122,"lastLoggedIn":1661949675}
\ No newline at end of file
diff --git a/server/data/users/da6fdb50-8773-40ce-889f-c6f565ca35e3.json b/server/data/users/da6fdb50-8773-40ce-889f-c6f565ca35e3.json
deleted file mode 100644
index 0071e97..0000000
--- a/server/data/users/da6fdb50-8773-40ce-889f-c6f565ca35e3.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"256473","name":"Player #02","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603188,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/de69fa89-2b55-4c78-8718-9084458ceada.json b/server/data/users/de69fa89-2b55-4c78-8718-9084458ceada.json
deleted file mode 100644
index 7ad1954..0000000
--- a/server/data/users/de69fa89-2b55-4c78-8718-9084458ceada.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Hermine","role":"player","game":"e24444aa-8a18-48aa-a36d-8f84620726f8","created":1649841804}
\ No newline at end of file
diff --git a/server/data/users/e7b48531-b562-495b-bb70-71e81038810e.json b/server/data/users/e7b48531-b562-495b-bb70-71e81038810e.json
deleted file mode 100644
index c3003dc..0000000
--- a/server/data/users/e7b48531-b562-495b-bb70-71e81038810e.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"002002","name":"Dumbledore","role":"gamemaster","game":"663576f0-1378-496b-a970-578bdcb222af","created":1650831066,"lastLoggedIn":1661965111}
\ No newline at end of file
diff --git a/server/data/users/f30802dc-1c18-4169-99fe-04d1d8e7bd9e.json b/server/data/users/f30802dc-1c18-4169-99fe-04d1d8e7bd9e.json
deleted file mode 100644
index e88c045..0000000
--- a/server/data/users/f30802dc-1c18-4169-99fe-04d1d8e7bd9e.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"631854","name":"Admin","role":"gamemaster","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603106,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/f99ee1de-af5c-4d7e-a1f4-622ad0cd40ac.json b/server/data/users/f99ee1de-af5c-4d7e-a1f4-622ad0cd40ac.json
deleted file mode 100644
index b8d053b..0000000
--- a/server/data/users/f99ee1de-af5c-4d7e-a1f4-622ad0cd40ac.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"494434","name":"Player #09","role":"player","game":"64efba47-87dc-4c19-851c-aa68c9f0e2c1","created":1651603452,"lastLoggedIn":1651603989}
\ No newline at end of file
diff --git a/server/data/users/fae6e837-d603-436d-ba0c-df6a850350c0.json b/server/data/users/fae6e837-d603-436d-ba0c-df6a850350c0.json
deleted file mode 100644
index bd29b26..0000000
--- a/server/data/users/fae6e837-d603-436d-ba0c-df6a850350c0.json
+++ /dev/null
@@ -1 +0,0 @@
-{"authcode":"","name":"Ron","role":"player","game":"e24444aa-8a18-48aa-a36d-8f84620726f8","created":1649841804}
\ No newline at end of file
diff --git a/server/src/application/isInitialized.go b/server/src/application/isInitialized.go
new file mode 100644
index 0000000..809df7b
--- /dev/null
+++ b/server/src/application/isInitialized.go
@@ -0,0 +1,8 @@
+package application
+
+func (app *Application) IsInitialized() bool {
+ app.mu.Lock()
+ defer app.mu.Unlock()
+
+ return len(app.users) > 0
+}
diff --git a/server/src/application/loadGames.go b/server/src/application/loadGames.go
index 9931028..1e04e58 100644
--- a/server/src/application/loadGames.go
+++ b/server/src/application/loadGames.go
@@ -1,6 +1,7 @@
package application
import (
+ "errors"
"os"
"path"
@@ -11,7 +12,14 @@ func (app *Application) loadGames() error {
dirName := path.Join(app.config.DataDir, "games")
files, err := os.ReadDir(dirName)
if err != nil {
- return err
+ if !errors.Is(err, os.ErrNotExist) {
+ return err
+ }
+
+ if err = os.Mkdir(dirName, 0777); err != nil {
+ return err
+ }
+ return nil
}
for _, file := range files {
diff --git a/server/src/application/loadUsers.go b/server/src/application/loadUsers.go
index ee6269d..a2d13ac 100644
--- a/server/src/application/loadUsers.go
+++ b/server/src/application/loadUsers.go
@@ -1,6 +1,7 @@
package application
import (
+ "errors"
"os"
"path"
@@ -11,7 +12,14 @@ func (app *Application) loadUsers() error {
dirName := path.Join(app.config.DataDir, "users")
files, err := os.ReadDir(dirName)
if err != nil {
- return err
+ if !errors.Is(err, os.ErrNotExist) {
+ return err
+ }
+
+ if err = os.Mkdir(dirName, 0777); err != nil {
+ return err
+ }
+ return nil
}
app.mu.Lock()
diff --git a/server/src/application/struct.go b/server/src/application/struct.go
index 9fd1e79..6e2dc26 100644
--- a/server/src/application/struct.go
+++ b/server/src/application/struct.go
@@ -17,3 +17,7 @@ type Application struct {
playerATime map[string]time.Time
debounceMap map[string]bool
}
+
+type ServerInfo struct {
+ IsInitialized bool `json:"isInitialized"`
+}
diff --git a/server/src/applicationConfig/appconfig.go b/server/src/applicationConfig/appconfig.go
index 25e7d3c..d18d6e4 100644
--- a/server/src/applicationConfig/appconfig.go
+++ b/server/src/applicationConfig/appconfig.go
@@ -7,25 +7,27 @@ import (
)
type ApplicationConfig struct {
- DataDir string
+ DataDir string
+ BindString string
}
func NewApplicationConfig() ApplicationConfig {
-
- flagVerbose := flag.Bool("v", false, "log debug messages, too")
- flagQuiet := flag.Bool("q", false, "be quiet; warning and error messages only")
+ flagVerbosePtr := flag.Bool("v", false, "log debug messages, too")
+ flagQuietPtr := flag.Bool("q", false, "be quiet; warning and error messages only")
+ bindStringPtr := flag.String("b", "localhost:32039", "interface and port to bind to")
flag.Parse()
log.SetLoglevel(log.LOG_INFO)
- if *flagVerbose {
+ if *flagVerbosePtr {
log.SetLoglevel(log.LOG_DEBUG)
}
- if *flagQuiet {
+ if *flagQuietPtr {
log.SetLoglevel(log.LOG_WARN)
}
return ApplicationConfig{
- DataDir: "data/",
+ DataDir: "data/",
+ BindString: *bindStringPtr,
}
}
diff --git a/server/src/handler/authmux.go b/server/src/handler/authmux.go
index cee075f..4e5d279 100644
--- a/server/src/handler/authmux.go
+++ b/server/src/handler/authmux.go
@@ -2,6 +2,8 @@ package handler
import (
"net/http"
+ "strings"
+
"sirlab.de/go/knowyt/application"
"sirlab.de/go/knowyt/user"
)
@@ -10,22 +12,33 @@ type HandlerFunc func(http.ResponseWriter, *http.Request)
type PrivateHandlerFunc func(*user.User, http.ResponseWriter, *http.Request)
type AuthMux struct {
- mux *http.ServeMux
- Port int
- app *application.Application
+ mux *http.ServeMux
+ bindInterfaceAndPort string
+ app *application.Application
}
func NewAuthMux(app *application.Application) *AuthMux {
+ bindString := app.GetConfig().BindString
+ if !strings.Contains(bindString, ":") {
+ bindString = bindString + ":32039"
+ }
mux := AuthMux{
- app: app,
- mux: http.NewServeMux(),
- Port: 32039,
+ app: app,
+ mux: http.NewServeMux(),
+ bindInterfaceAndPort: bindString,
}
http.Handle("/", mux.mux)
return &mux
}
+func (authMux *AuthMux) GetBindString() string {
+ if authMux.bindInterfaceAndPort[0] == ':' {
+ return "*" + authMux.bindInterfaceAndPort
+ }
+ return authMux.bindInterfaceAndPort
+}
+
func (authMux *AuthMux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
authMux.mux.ServeHTTP(w, r)
}
@@ -39,5 +52,5 @@ func (authMux *AuthMux) PublicHandle(pattern string, handler http.Handler) {
}
func (authMux *AuthMux) ListenAndServe() {
- http.ListenAndServe(":32039", nil)
+ http.ListenAndServe(authMux.bindInterfaceAndPort, nil)
}
diff --git a/server/src/handler/checkSetup.go b/server/src/handler/checkSetup.go
new file mode 100644
index 0000000..acd2180
--- /dev/null
+++ b/server/src/handler/checkSetup.go
@@ -0,0 +1,25 @@
+package handler
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+
+ "sirlab.de/go/knowyt/user"
+)
+
+func (authMux *AuthMux) CheckSetup(w http.ResponseWriter, r *http.Request) {
+ if !authMux.app.IsInitialized() {
+ usrSetup := UserInfoJson{
+ Name: "setup",
+ Role: user.ROLE_SETUP,
+ }
+
+ w.Header().Add("Content-Type", "application/json")
+ jsonString, _ := json.Marshal(usrSetup)
+ fmt.Fprintf(w, "%s", string(jsonString))
+ return
+ }
+
+ authMux.accessDenied(w, r)
+}
diff --git a/server/src/handler/private.go b/server/src/handler/private.go
index 98bf22b..f86c29c 100644
--- a/server/src/handler/private.go
+++ b/server/src/handler/private.go
@@ -8,18 +8,22 @@ import (
"sirlab.de/go/knowyt/user"
)
-func (authMux *AuthMux) PrivateHandleFunc(pattern string, handlerFunc PrivateHandlerFunc) {
+func (authMux *AuthMux) PrivateOrPublicHandleFunc(pattern string, privateHandlerFunc PrivateHandlerFunc, publicHandlerFunc HandlerFunc) {
authMux.mux.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) {
usr, err := authMux.getUserFromSession(r)
if err != nil {
- authMux.accessDenied(w, r)
- return
+ // could not authenticate
+ publicHandlerFunc(w, r)
+ } else {
+ privateHandlerFunc(usr, w, r)
}
-
- handlerFunc(usr, w, r)
})
}
+func (authMux *AuthMux) PrivateHandleFunc(pattern string, handlerFunc PrivateHandlerFunc) {
+ authMux.PrivateOrPublicHandleFunc(pattern, handlerFunc, authMux.accessDenied)
+}
+
func (authMux *AuthMux) accessDenied(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusForbidden)
fmt.Fprintf(w, "Forbidden")
diff --git a/server/src/knowyt.go b/server/src/knowyt.go
index 89293a6..b553c5b 100644
--- a/server/src/knowyt.go
+++ b/server/src/knowyt.go
@@ -22,8 +22,8 @@ func main() {
mux.PublicHandleFunc("/api/login", mux.Login)
mux.PublicHandleFunc("/api/logout", mux.Logout)
mux.PublicHandleFunc("/api/createGame", app.CreateGame)
+ mux.PrivateOrPublicHandleFunc("/api/userinfo", mux.GetUserInfo, mux.CheckSetup)
mux.PrivateHandleFunc("/api/cameo", mux.Cameo)
- mux.PrivateHandleFunc("/api/userinfo", mux.GetUserInfo)
mux.PrivateHandleFunc("/api/gameinfo", app.GetGameInfo)
mux.PrivateHandleFunc("/api/games", app.GetGames)
mux.PrivateHandleFunc("/api/setGameName", app.SetGameName)
@@ -47,6 +47,6 @@ func main() {
mux.PublicHandleFunc("/", handler.FileHandler)
// start listening
- log.Info("Listening at http://localhost:%d/\n", mux.Port)
+ log.Info("Listening at http://%s/\n", mux.GetBindString())
mux.ListenAndServe()
}
diff --git a/server/src/user/struct.go b/server/src/user/struct.go
index a88d602..16f45a7 100644
--- a/server/src/user/struct.go
+++ b/server/src/user/struct.go
@@ -8,6 +8,7 @@ const (
ROLE_ADMIN = "admin"
ROLE_GAMEMASTER = "gamemaster"
ROLE_PLAYER = "player"
+ ROLE_SETUP = "setup"
)
type User struct {