diff --git a/.gitignore b/.gitignore index 7dcb10d..127f213 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ pnpm-debug.log* /.astro-i18n/ /bun.lockb /src/pages/de/ +/steamwar-website.zip diff --git a/astro-i18n.config.ts b/astro-i18n.config.ts index 9e91a19..da65a05 100644 --- a/astro-i18n.config.ts +++ b/astro-i18n.config.ts @@ -22,6 +22,7 @@ export default defineAstroI18nConfig({ stats: "statistiken", announcements: "ankuendigungen", "privacy-policy": "datenschutzerklaerung", + "create-token": "token-erstellen" } }, }) \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs index 8ec1022..73fcff8 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -17,7 +17,9 @@ export default defineConfig({ }, compressHTML: true, site: "https://steamwar.de", - integrations: [svelte(), tailwind(), configureI18n(), sitemap({ + integrations: [svelte(), tailwind({ + configFile: "./tailwind.config.cjs" + }), configureI18n(), sitemap({ i18n: { defaultLocale: "en", locales: { diff --git a/package.json b/package.json index 0bdbcf6..59562dd 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,11 @@ "i18n:extract": "astro-i18n extract", "i18n:generate:pages": "astro-i18n generate:pages --purge", "i18n:generate:types": "astro-i18n generate:types", - "i18n:sync": "npm run i18n:generate:pages && npm run i18n:generate:types" + "i18n:sync": "pnpm run i18n:generate:pages && pnpm run i18n:generate:types", + "package": "cd dist && zip -r steamwar-website.zip * && cd ..", + "clean:dist": "rm -rf dist", + "clean:node_modules": "rm -rf node_modules", + "ci": "pnpm run clean:dist && pnpm install && pnpm run i18n:sync && pnpm run build && pnpm run package" }, "devDependencies": { "@astrojs/svelte": "^5.0.0", diff --git a/src/components/FightStatsChart.svelte b/src/components/FightStatsChart.svelte index dfc6741..355f1c9 100644 --- a/src/components/FightStatsChart.svelte +++ b/src/components/FightStatsChart.svelte @@ -44,7 +44,17 @@ } const colors = ["#abfa91", "#279900", "#00ffbe", "#9297fb", "#050b9d", "#b60fff", "#8dddfc", "#0880ad", "#41ff00", "#039973", "#96fce2", "#0009ff", "#7501a4", "#e2a2fb", "#00b9ff"]; - const map = Map.groupBy(data, entry => entry.gamemode); + const map = new Map() + for (const point of data) { + const dataset = map.get(point.gamemode) ?? [] + + dataset.push({ + x: point.date, + y: point.count + }) + + map.set(point.gamemode, dataset) + } chart = new Chart( canvas, diff --git a/src/components/Login.svelte b/src/components/Login.svelte index 947fd2e..1bf6c66 100644 --- a/src/components/Login.svelte +++ b/src/components/Login.svelte @@ -65,7 +65,7 @@

- {t("login.generateToken")}

+ {t("login.generateToken")}

{#if error}

{error}

diff --git a/src/components/dashboard/SchematicInfoModal.svelte b/src/components/dashboard/SchematicInfoModal.svelte index 0c9a842..9bd3046 100644 --- a/src/components/dashboard/SchematicInfoModal.svelte +++ b/src/components/dashboard/SchematicInfoModal.svelte @@ -68,12 +68,12 @@ }).format(dayjs(info.schem.lastUpdate).utc(false).toDate())})}

{t("dashboard.schematic.info.item", {item: info.schem.item ?? (info.schem.type == null ? "CHEST" : "CAULDRON_ITEM")})}

{#if info.members.length !== 0} -

{t("dashboard.schematic.info.members", {members: info.members.join(", ")})}

+

{t("dashboard.schematic.info.members", {members: info.members.map(value => value.name).join(", ")})}

{/if} {#if (info.schem.owner === user.id)} {/if} - + \ No newline at end of file diff --git a/src/components/dashboard/SchematicList.svelte b/src/components/dashboard/SchematicList.svelte index ddd5413..0441153 100644 --- a/src/components/dashboard/SchematicList.svelte +++ b/src/components/dashboard/SchematicList.svelte @@ -27,6 +27,7 @@ import SchematicInfo from "./SchematicInfo.svelte"; import UploadModal from "./UploadModal.svelte"; import type {Player} from "../types/data.ts"; + import SWButton from "../styled/SWButton.svelte"; const dispatch = createEventDispatcher(); @@ -63,9 +64,9 @@ {/each}
- +
diff --git a/src/components/dashboard/Statistics.svelte b/src/components/dashboard/Statistics.svelte index eaaedd3..0e0284e 100644 --- a/src/components/dashboard/Statistics.svelte +++ b/src/components/dashboard/Statistics.svelte @@ -20,7 +20,7 @@ + + \ No newline at end of file diff --git a/src/content/pages/de/about.md b/src/content/pages/de/about.md index b849107..51d6a41 100644 --- a/src/content/pages/de/about.md +++ b/src/content/pages/de/about.md @@ -4,7 +4,6 @@ description: Über SteamWar slug: ueber-uns --- - # Sicherheit Wir legen Wert auf Sicherheit. diff --git a/src/content/pages/de/join.md b/src/content/pages/de/join.md index 6b265ad..cfead96 100644 --- a/src/content/pages/de/join.md +++ b/src/content/pages/de/join.md @@ -1,10 +1,9 @@ --- -title: Join Now! +title: Jetzt Spielen! description: SteamWar Joinen slug: jetzt-spielen --- - # Minecraft Java Edition 1. Klicke in Minecraft auf »Mehrspieler« diff --git a/src/content/pages/de/token.md b/src/content/pages/de/token.md new file mode 100644 index 0000000..87eeeeb --- /dev/null +++ b/src/content/pages/de/token.md @@ -0,0 +1,22 @@ +--- +title: Erstelle einen Token für die Webseite +description: Erstelle einen Token für die Webseite +slug: token-erstellen +--- + +Ein Token ist ein Schlüssel, mit dem du dich auf der Webseite als Spieler identifizieren kannst. Dieser wird benötigt, um z.B. deine Schematics anzuzeigen. + +## Token erstellen + +Um einen Token zu erstellen, musst du dich auf dem Minecraftserver einloggen und `/token create ` eingeben. Der Name ist frei wählbar und dient nur zur Identifikation. Du kannst auch mehrere Tokens erstellen. +Du erhältst dann eine Nachricht, auf der du mit einem Klick den Token in die Zwischenablage kopieren kannst. Dieser Token ist nur einmal sichtbar, bei Verlust musst du einen neuen erstellen. + +## Token verwenden + +Um den Token zu verwenden, kannst du ihn unter dem Menüpunkt `Konto` auf der Webseite eingeben um dich zu identifizieren. Dazu wird dann auch dein Minecraftname benötigt. + +Wenn du erfolgreich mit dem Token eingeloggt wurdest, wirst du auf die Dashboardseite weitergeleitet. Dort kannst du dann deine Schematics und Statistiken sehen. + +## Token löschen + +Um einen Token zu löschen, musst du auf dem Minecraftserver `/token` eingeben. Dadurch wird eine Liste mit allen deinen Tokens angezeigt. Mit einem Klick auf den Token kannst du ihn löschen. diff --git a/src/content/pages/en/about.md b/src/content/pages/en/about.md index 7202892..72866ff 100644 --- a/src/content/pages/en/about.md +++ b/src/content/pages/en/about.md @@ -4,7 +4,6 @@ description: About SteamWar slug: about --- - # Security We value security. diff --git a/src/content/pages/en/coc.md b/src/content/pages/en/coc.md index a22d652..90472fd 100644 --- a/src/content/pages/en/coc.md +++ b/src/content/pages/en/coc.md @@ -4,7 +4,6 @@ description: Code of Conduct of SteamWar.de slug: code-of-conduct --- - # General behavior It is crucial to us, that our players find themselves in a friendly environment diff --git a/src/content/pages/en/join.md b/src/content/pages/en/join.md index cc09c3a..97b307a 100644 --- a/src/content/pages/en/join.md +++ b/src/content/pages/en/join.md @@ -5,7 +5,6 @@ slug: join german: true --- - # Minecraft Java Edition 1. Klicke in Minecraft auf »Mehrspieler« diff --git a/src/content/pages/en/token.md b/src/content/pages/en/token.md new file mode 100644 index 0000000..51f47bc --- /dev/null +++ b/src/content/pages/en/token.md @@ -0,0 +1,23 @@ +--- +title: Erstelle einen Token für die Webseite +description: Erstelle einen Token für die Webseite +german: true +slug: create-token +--- + +Ein Token ist ein Schlüssel, mit dem du dich auf der Webseite als Spieler identifizieren kannst. Dieser wird benötigt, um z.B. deine Schematics anzuzeigen. + +## Token erstellen + +Um einen Token zu erstellen, musst du dich auf dem Minecraftserver einloggen und `/token create ` eingeben. Der Name ist frei wählbar und dient nur zur Identifikation. Du kannst auch mehrere Tokens erstellen. +Du erhältst dann eine Nachricht, auf der du mit einem Klick den Token in die Zwischenablage kopieren kannst. Dieser Token ist nur einmal sichtbar, bei Verlust musst du einen neuen erstellen. + +## Token verwenden + +Um den Token zu verwenden, kannst du ihn unter dem Menüpunkt `Konto` auf der Webseite eingeben um dich zu identifizieren. Dazu wird dann auch dein Minecraftname benötigt. + +Wenn du erfolgreich mit dem Token eingeloggt wurdest, wirst du auf die Dashboardseite weitergeleitet. Dort kannst du dann deine Schematics und Statistiken sehen. + +## Token löschen + +Um einen Token zu löschen, musst du auf dem Minecraftserver `/token` eingeben. Dadurch wird eine Liste mit allen deinen Tokens angezeigt. Mit einem Klick auf den Token kannst du ihn löschen. diff --git a/src/layouts/Basic.astro b/src/layouts/Basic.astro index 78e6525..8387f6f 100644 --- a/src/layouts/Basic.astro +++ b/src/layouts/Basic.astro @@ -1,5 +1,5 @@ --- - +import '../styles/tailwind.css' import icon from '../images/logo.png'; import {getImage} from "astro:assets"; import {astroI18n} from "astro-i18n"; diff --git a/src/pages/index.astro b/src/pages/index.astro index 4045f19..d4b885b 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -133,7 +133,7 @@ function mapMap(i: Map, fn: (key: T, value: K) => J): J[] {
-
+
{v.name}
diff --git a/src/styles/tailwind.css b/src/styles/tailwind.css new file mode 100644 index 0000000..71dc082 --- /dev/null +++ b/src/styles/tailwind.css @@ -0,0 +1,22 @@ +/* + * This file is a part of the SteamWar software. + * + * Copyright (C) 2023 SteamWar.de-Serverteam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +@tailwind base; +@tailwind components; +@tailwind utilities; \ No newline at end of file diff --git a/tailwind.config.cjs b/tailwind.config.cjs index e67029b..84def38 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.cjs @@ -17,4 +17,5 @@ module.exports = { plugins: [ require('flowbite/plugin') ], + darkMode: 'class' }