Transfer some Posts and automate original German

Dieser Commit ist enthalten in:
Chaoscaot 2023-12-10 01:48:53 +01:00
Ursprung 311856415e
Commit 3d95bffb6a
89 geänderte Dateien mit 1630 neuen und 1163 gelöschten Zeilen

Datei anzeigen

@ -1,47 +1,35 @@
# Astro Starter Kit: Minimal # SteamWar.de Website
```sh ## Tech Stack
npm create astro@latest -- --template minimal
- [Svelte](https://svelte.dev/)
- [Astro](https://astro.build/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Day.js](https://day.js.org/)
- [Chart.js](https://www.chartjs.org/)
- [astro-i18n](https://github.com/Alexandre-Fernandez/astro-i18n)
- [Flowbite Svelte](https://flowbite-svelte.com/)
## Building
```bash
pnpm install
``` ```
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal) ### Development
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/minimal)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/minimal/devcontainer.json)
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! ```bash
pnpm run dev
## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
```text
/
├── public/
├── src/
│ └── pages/
│ └── index.astro
└── package.json
``` ```
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. ### Production
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. ```bash
pnpm run build
```
Any static assets, like images, can be placed in the `public/` directory. ### i18n-sync
## 🧞 Commands ```bash
pnpm run i18n:sync
All commands are run from the root of the project, from a terminal: ```
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).

Datei anzeigen

@ -14,28 +14,27 @@
"i18n:sync": "npm run i18n:generate:pages && npm run i18n:generate:types" "i18n:sync": "npm run i18n:generate:pages && npm run i18n:generate:types"
}, },
"devDependencies": { "devDependencies": {
"@astrojs/prefetch": "^0.4.1",
"@astrojs/svelte": "^5.0.0", "@astrojs/svelte": "^5.0.0",
"@astrojs/tailwind": "^5.0.3", "@astrojs/tailwind": "^5.0.3",
"@astropub/icons": "^0.2.0", "@astropub/icons": "^0.2.0",
"@types/color": "^3.0.6", "@types/color": "^3.0.6",
"@types/crypto-js": "^4.2.1", "@types/crypto-js": "^4.2.1",
"@types/node": "^20.10.1", "@types/node": "^20.10.4",
"cssnano": "^6.0.1", "cssnano": "^6.0.1",
"esbuild": "^0.19.8", "esbuild": "^0.19.8",
"postcss-nesting": "^12.0.1", "postcss-nesting": "^12.0.1",
"sass": "^1.69.5", "sass": "^1.69.5",
"svelte": "^4.2.8", "svelte": "^4.2.8",
"tailwind-merge": "^2.0.0", "tailwind-merge": "^2.1.0",
"tailwindcss": "^3.3.5", "tailwindcss": "^3.3.6",
"typescript": "^5.3.2" "typescript": "^5.3.3"
}, },
"dependencies": { "dependencies": {
"@codemirror/lang-json": "^6.0.1", "@codemirror/lang-json": "^6.0.1",
"@ddietr/codemirror-themes": "^1.4.2", "@ddietr/codemirror-themes": "^1.4.2",
"astro": "^4.0.2", "astro": "^4.0.3",
"astro-i18n": "^2.1.18", "astro-i18n": "^2.1.18",
"chart.js": "^4.4.0", "chart.js": "^4.4.1",
"chartjs-adapter-dayjs-4": "^1.0.4", "chartjs-adapter-dayjs-4": "^1.0.4",
"chartjs-adapter-moment": "^1.0.1", "chartjs-adapter-moment": "^1.0.1",
"color": "^4.2.3", "color": "^4.2.3",
@ -46,7 +45,7 @@
"flowbite-svelte": "^0.44.20", "flowbite-svelte": "^0.44.20",
"flowbite-svelte-icons": "^0.4.5", "flowbite-svelte-icons": "^0.4.5",
"sharp": "^0.32.6", "sharp": "^0.32.6",
"svelte-awesome": "^3.2.1", "svelte-awesome": "^3.3.0",
"svelte-codemirror-editor": "^1.2.0", "svelte-codemirror-editor": "^1.2.0",
"svelte-spa-router": "^3.3.0", "svelte-spa-router": "^3.3.0",
"zod": "^3.22.4" "zod": "^3.22.4"

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {t} from "astro-i18n" import {t} from "astro-i18n"
import {dataRepo, schemRepo} from "./repo/repo"; import {dataRepo, schemRepo} from "./repo/repo";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {statsRepo} from "./repo/repo.ts"; import {statsRepo} from "./repo/repo.ts";
import {t} from "astro-i18n"; import {t} from "astro-i18n";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {statsRepo} from "./repo/repo.ts"; import {statsRepo} from "./repo/repo.ts";
import FightStatsChart from "./FightStatsChart.svelte"; import FightStatsChart from "./FightStatsChart.svelte";

Datei anzeigen

@ -1,5 +1,24 @@
<!--
- 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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {onMount} from "svelte" import {onDestroy, onMount} from "svelte"
import { import {
Chart, Chart,
LineController, LineController,
@ -60,6 +79,11 @@
} }
) )
}) })
onDestroy(() => {
chart.destroy()
})
</script> </script>
<div> <div>

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {window} from "./util.ts"; import {window} from "./util.ts";
import {astroI18n, t} from "astro-i18n"; import {astroI18n, t} from "astro-i18n";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {window} from "./util.ts"; import {window} from "./util.ts";
import {t} from "astro-i18n"; import {t} from "astro-i18n";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {l} from "../util/util.ts"; import {l} from "../util/util.ts";
import {t} from "astro-i18n"; import {t} from "astro-i18n";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {server} from "./stores/stores.ts"; import {server} from "./stores/stores.ts";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import { t } from "astro-i18n" import { t } from "astro-i18n"
import {server} from "./stores/stores.ts"; import {server} from "./stores/stores.ts";
@ -14,6 +33,6 @@
<h2>{t("status.status")}: <span class="text-green-500">{t("status.online")}</span></h2> <h2>{t("status.status")}: <span class="text-green-500">{t("status.online")}</span></h2>
<h2>{t("status.players", { count: `${data.players.online}/${data.players.max}`})}</h2> <h2>{t("status.players", { count: `${data.players.online}/${data.players.max}`})}</h2>
<h2>{t("status.version", { version: generateVersionString(data.version.name)})}</h2> <h2>{t("status.version", { version: generateVersionString(data.version.name)})}</h2>
{:catch error} {:catch _}
<h1>{t("status.status")}: <span class="text-red-500">{t("status.offline")}</span></h1> <h1>{t("status.status")}: <span class="text-red-500">{t("status.offline")}</span></h1>
{/await} {/await}

Datei anzeigen

@ -8,7 +8,6 @@ interface Props {
} }
const {tag} = Astro.props; const {tag} = Astro.props;
--- ---
<a href={l(`/announcements/tags/${tag}`)}> <a href={l(`/announcements/tags/${tag}`)}>

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import type {ConditionsFailedEvent, RouteDefinition} from "svelte-spa-router"; import type {ConditionsFailedEvent, RouteDefinition} from "svelte-spa-router";
import wrap from "svelte-spa-router/wrap"; import wrap from "svelte-spa-router/wrap";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Button, Modal} from "flowbite-svelte"; import {Button, Modal} from "flowbite-svelte";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Input, Label, Select} from "flowbite-svelte"; import {Input, Label, Select} from "flowbite-svelte";
import TypeAheadSearch from "./TypeAheadSearch.svelte"; import TypeAheadSearch from "./TypeAheadSearch.svelte";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Button, Dropdown, DropdownItem, Search} from 'flowbite-svelte' import {Button, Dropdown, DropdownItem, Search} from 'flowbite-svelte'

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {ArrowLeftSolid} from "flowbite-svelte-icons"; import {ArrowLeftSolid} from "flowbite-svelte-icons";
import {Button, Card, Input, Label, Navbar, NavBrand, NavHamburger, NavUl, Spinner} from "flowbite-svelte"; import {Button, Card, Input, Label, Navbar, NavBrand, NavHamburger, NavUl, Spinner} from "flowbite-svelte";
@ -37,7 +56,7 @@ async function createBranch() {
} }
} }
async function deleteBranch(con: boolean = false) { async function deleteBranch(con: boolean) {
if (selectedBranch !== "master") { if (selectedBranch !== "master") {
let conf = con || confirm("Are you sure you want to delete this branch?") let conf = con || confirm("Are you sure you want to delete this branch?")
if(conf) { if(conf) {
@ -101,7 +120,7 @@ async function mergeBranch() {
{/if} {/if}
<Button on:click={createFile} color="alternative">Create File</Button> <Button on:click={createFile} color="alternative">Create File</Button>
{#if selectedBranch !== "master"} {#if selectedBranch !== "master"}
<Button on:click={deleteBranch} color="ghost">Delete Branch</Button> <Button on:click={() => deleteBranch(false)} color="none">Delete Branch</Button>
{/if} {/if}
</div> </div>
</div> </div>
@ -111,7 +130,8 @@ async function mergeBranch() {
<summary class="p-4 transition-colors hover:bg-gray-700 cursor-pointer">{key}</summary> <summary class="p-4 transition-colors hover:bg-gray-700 cursor-pointer">{key}</summary>
<ul> <ul>
{#each value as page} {#each value as page}
{@const match = nameRegex.exec(page.path) ? nameRegex.exec(page.path)[0] : ""} {@const nameRegexExec = nameRegex.exec(page.path)}
{@const match = nameRegexExec ? nameRegexExec[0] : ""}
{@const startIndex = page.path.indexOf(match)} {@const startIndex = page.path.indexOf(match)}
{@const endIndex = startIndex + match.length} {@const endIndex = startIndex + match.length}
<li class="p-4 transition-colors hover:bg-gray-700 cursor-pointer" on:click|preventDefault={() => selected = page.id}> <li class="p-4 transition-colors hover:bg-gray-700 cursor-pointer" on:click|preventDefault={() => selected = page.id}>

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Avatar, Navbar, NavBrand, Spinner, TabItem, Tabs} from "flowbite-svelte"; import {Avatar, Navbar, NavBrand, Spinner, TabItem, Tabs} from "flowbite-svelte";
import EventEdit from "./event/EventEdit.svelte"; import EventEdit from "./event/EventEdit.svelte";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Avatar, Navbar, NavBrand, Spinner, TabItem, Tabs} from "flowbite-svelte"; import {Avatar, Navbar, NavBrand, Spinner, TabItem, Tabs} from "flowbite-svelte";
import EventEdit from "./event/EventEdit.svelte"; import EventEdit from "./event/EventEdit.svelte";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Button, Modal, Navbar, NavBrand, NavHamburger, NavLi, NavUl, Spinner} from "flowbite-svelte"; import {Button, Modal, Navbar, NavBrand, NavHamburger, NavLi, NavUl, Spinner} from "flowbite-svelte";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Button, Input, Label, Spinner, Toast} from "flowbite-svelte"; import {Button, Input, Label, Spinner, Toast} from "flowbite-svelte";
import {fly} from "svelte/transition"; import {fly} from "svelte/transition";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {onMount} from "svelte"; import {onMount} from "svelte";
import {replace} from "svelte-spa-router"; import {replace} from "svelte-spa-router";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Button, Card, Checkbox, Input, Label, Navbar, NavBrand, Radio, Spinner} from "flowbite-svelte"; import {Button, Card, Checkbox, Input, Label, Navbar, NavBrand, Radio, Spinner} from "flowbite-svelte";
import {ArrowLeftSolid} from "flowbite-svelte-icons"; import {ArrowLeftSolid} from "flowbite-svelte-icons";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Spinner, Toolbar, ToolbarButton, ToolbarGroup, Tooltip} from "flowbite-svelte"; import {Spinner, Toolbar, ToolbarButton, ToolbarGroup, Tooltip} from "flowbite-svelte";
import {json} from "@codemirror/lang-json"; import {json} from "@codemirror/lang-json";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {onDestroy, onMount} from "svelte"; import {onDestroy, onMount} from "svelte";
import EasyMDE from "easymde"; import EasyMDE from "easymde";

Datei anzeigen

@ -1,9 +1,28 @@
<!--
- 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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import type {ExtendedEvent} from "../../../types/event.js"; import type {ExtendedEvent} from "../../../types/event.js";
import {Button, Heading, Input, Label, Modal, Range, Select, Toast, Toggle} from "flowbite-svelte"; import {Button, Heading, Input, Label, Modal, Range, Select, Toast, Toggle} from "flowbite-svelte";
import {schemTypes} from "../../../stores/stores.js"; import {schemTypes} from "../../../stores/stores.js";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
import * as utc from "dayjs/plugin/utc" import utc from "dayjs/plugin/utc"
import type {UpdateEvent} from "../../../repo/event.js"; import type {UpdateEvent} from "../../../repo/event.js";
import {eventRepo} from "../../../repo/repo.js"; import {eventRepo} from "../../../repo/repo.js";
import ErrorModal from "../../components/ErrorModal.svelte"; import ErrorModal from "../../components/ErrorModal.svelte";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {EditOutline, InboxSolid, TrashBinOutline} from "flowbite-svelte-icons"; import {EditOutline, InboxSolid, TrashBinOutline} from "flowbite-svelte-icons";
import {Button, Checkbox, Modal, Toolbar, ToolbarButton} from "flowbite-svelte"; import {Button, Checkbox, Modal, Toolbar, ToolbarButton} from "flowbite-svelte";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import type {EventFight, ExtendedEvent} from "../../../types/event.js"; import type {EventFight, ExtendedEvent} from "../../../types/event.js";
import { import {
@ -21,7 +40,7 @@
import {groups, players} from "../../../stores/stores.js"; import {groups, players} from "../../../stores/stores.js";
import TypeAheadSearch from "../../components/TypeAheadSearch.svelte"; import TypeAheadSearch from "../../components/TypeAheadSearch.svelte";
import type {UpdateFight} from "../../../repo/fight.js"; import type {UpdateFight} from "../../../repo/fight.js";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
import * as duration from "dayjs/plugin/duration" import * as duration from "dayjs/plugin/duration"
dayjs.extend(duration) dayjs.extend(duration)

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Avatar, Button, Modal} from "flowbite-svelte"; import {Avatar, Button, Modal} from "flowbite-svelte";
import type {ExtendedEvent} from "../../../types/event.js"; import type {ExtendedEvent} from "../../../types/event.js";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Button, Modal} from "flowbite-svelte"; import {Button, Modal} from "flowbite-svelte";
import type {ExtendedEvent} from "../../../../types/event.js"; import type {ExtendedEvent} from "../../../../types/event.js";
@ -6,7 +25,7 @@
import type {CreateFight} from "../../../../repo/fight.ts"; import type {CreateFight} from "../../../../repo/fight.ts";
import ErrorModal from "../../../components/ErrorModal.svelte"; import ErrorModal from "../../../components/ErrorModal.svelte";
import {createEventDispatcher} from "svelte"; import {createEventDispatcher} from "svelte";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
let dispatch = createEventDispatcher(); let dispatch = createEventDispatcher();

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Button, Input, Label, Modal, Select} from "flowbite-svelte"; import {Button, Input, Label, Modal, Select} from "flowbite-svelte";
import type {EventFight, ExtendedEvent} from "../../../../types/event.js"; import type {EventFight, ExtendedEvent} from "../../../../types/event.js";
@ -6,8 +25,8 @@
import {fightRepo} from "../../../../repo/repo.js"; import {fightRepo} from "../../../../repo/repo.js";
import ErrorModal from "../../../components/ErrorModal.svelte"; import ErrorModal from "../../../components/ErrorModal.svelte";
import {createEventDispatcher} from "svelte"; import {createEventDispatcher} from "svelte";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
import * as utc from "dayjs/plugin/utc"; import utc from "dayjs/plugin/utc";
dayjs.extend(utc); dayjs.extend(utc);

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {createEventDispatcher} from "svelte"; import {createEventDispatcher} from "svelte";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import type {ExtendedEvent} from "../../../types/event.js"; import type {ExtendedEvent} from "../../../types/event.js";
import TeamChip from "./TeamChip.svelte"; import TeamChip from "./TeamChip.svelte";
@ -8,7 +27,7 @@
import {PlusSolid} from "flowbite-svelte-icons"; import {PlusSolid} from "flowbite-svelte-icons";
import {fightRepo} from "../../../repo/repo.js"; import {fightRepo} from "../../../repo/repo.js";
import {replace} from "svelte-spa-router"; import {replace} from "svelte-spa-router";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
export let data: ExtendedEvent; export let data: ExtendedEvent;
$: teams = new Map<number, Team>(data.teams.map(team => [team.id, team])); $: teams = new Map<number, Team>(data.teams.map(team => [team.id, team]));

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import type {Team} from "../../../types/team.js"; import type {Team} from "../../../types/team.js";
import {brightness, colorFromTeam, lighten} from "../../util.js"; import {brightness, colorFromTeam, lighten} from "../../util.js";

Datei anzeigen

@ -1,9 +1,28 @@
<!--
- 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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Button, Input, Label, Modal} from "flowbite-svelte"; import {Button, Input, Label, Modal} from "flowbite-svelte";
import {createEventDispatcher} from "svelte"; import {createEventDispatcher} from "svelte";
import ErrorModal from "../../components/ErrorModal.svelte"; import ErrorModal from "../../components/ErrorModal.svelte";
import {eventRepo} from "../../../repo/repo.js"; import {eventRepo} from "../../../repo/repo.js";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
export let open = false; export let open = false;
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Card} from "flowbite-svelte"; import {Card} from "flowbite-svelte";
import {link} from 'svelte-spa-router' import {link} from 'svelte-spa-router'

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import Color from "color"; import Color from "color";
import type {Team} from "../types/team.js"; import type {Team} from "../types/team.js";
import type {ListPage, PageList} from "../types/page.ts"; import type {ListPage, PageList} from "../types/page.ts";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {createEventDispatcher} from "svelte"; import {createEventDispatcher} from "svelte";
import {schemRepo} from "../repo/repo"; import {schemRepo} from "../repo/repo";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {astroI18n, t} from "astro-i18n"; import {astroI18n, t} from "astro-i18n";
import {CheckSolid, XCircleOutline} from "flowbite-svelte-icons"; import {CheckSolid, XCircleOutline} from "flowbite-svelte-icons";
@ -6,7 +25,7 @@
import {createEventDispatcher} from "svelte"; import {createEventDispatcher} from "svelte";
import {schemRepo} from "../repo/repo"; import {schemRepo} from "../repo/repo";
import type {Player} from "../types/data.ts"; import type {Player} from "../types/data.ts";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {t} from "astro-i18n"; import {t} from "astro-i18n";
import {ChevronDoubleRightOutline, FolderOutline, HomeOutline, InfoCircleOutline} from "flowbite-svelte-icons"; import {ChevronDoubleRightOutline, FolderOutline, HomeOutline, InfoCircleOutline} from "flowbite-svelte-icons";

Datei anzeigen

@ -1,10 +1,29 @@
<!--
- 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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {astroI18n, t} from "astro-i18n"; import {astroI18n, t} from "astro-i18n";
import {CheckSolid, FileOutline, FolderOutline, XCircleOutline} from "flowbite-svelte-icons"; import {CheckSolid, FileOutline, FolderOutline, XCircleOutline} from "flowbite-svelte-icons";
import type {Schematic} from "../types/schem.ts"; import type {Schematic} from "../types/schem.ts";
import type {Player} from "../types/data.ts"; import type {Player} from "../types/data.ts";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
import * as utc from "dayjs/plugin/utc"; import utc from "dayjs/plugin/utc";
dayjs.extend(utc); dayjs.extend(utc);

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import type {Player} from "../types/data.ts"; import type {Player} from "../types/data.ts";
import {statsRepo} from "../repo/repo.ts"; import {statsRepo} from "../repo/repo.ts";

Datei anzeigen

@ -1,6 +1,25 @@
<!--
- 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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {Modal} from "flowbite-svelte"; import {Modal} from "flowbite-svelte";
import {schemRepo} from "../repo/repo.js"; import {schemRepo} from "../repo/repo.ts";
import {createEventDispatcher} from "svelte"; import {createEventDispatcher} from "svelte";
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
-->
<script lang="ts"> <script lang="ts">
import {t} from "astro-i18n"; import {t} from "astro-i18n";
import type {Player} from "../types/data.ts"; import type {Player} from "../types/data.ts";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import type {Player, Server} from "../types/data.ts"; import type {Player, Server} from "../types/data.ts";
import {PlayerSchema, ServerSchema} from "../types/data.ts"; import {PlayerSchema, ServerSchema} from "../types/data.ts";
import {fetchWithToken} from "./repo.ts"; import {fetchWithToken} from "./repo.ts";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import type {ExtendedEvent, ShortEvent, SWEvent} from "../types/event.js"; import type {ExtendedEvent, ShortEvent, SWEvent} from "../types/event.js";
import {fetchWithToken} from "./repo.js"; import {fetchWithToken} from "./repo.js";
import {ExtendedEventSchema, ShortEventSchema, SWEventSchema} from "../types/event.js"; import {ExtendedEventSchema, ShortEventSchema, SWEventSchema} from "../types/event.js";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import type {EventFight} from "../types/event.js"; import type {EventFight} from "../types/event.js";
import {fetchWithToken} from "./repo.js"; import {fetchWithToken} from "./repo.js";
import {z} from "zod"; import {z} from "zod";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import type {Page, PageList} from "../types/page.ts"; import type {Page, PageList} from "../types/page.ts";
import {fetchWithToken} from "./repo.ts"; import {fetchWithToken} from "./repo.ts";
import {PageListSchema, PageSchema} from "../types/page.ts"; import {PageListSchema, PageSchema} from "../types/page.ts";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import type {Perms, UserPerms} from "../types/perms.js"; import type {Perms, UserPerms} from "../types/perms.js";
import {fetchWithToken} from "./repo.js"; import {fetchWithToken} from "./repo.js";
import {PermsSchema, UserPermsSchema} from "../types/perms.js"; import {PermsSchema, UserPermsSchema} from "../types/perms.js";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {derived, writable} from "svelte/store"; import {derived, writable} from "svelte/store";
import {EventRepo} from "./event.js"; import {EventRepo} from "./event.js";
import {FightRepo} from "./fight.js"; import {FightRepo} from "./fight.js";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {fetchWithToken} from "./repo.ts"; import {fetchWithToken} from "./repo.ts";
import type {SchematicCode, SchematicInfo, SchematicList} from "../types/schem.ts"; import type {SchematicCode, SchematicInfo, SchematicList} from "../types/schem.ts";
import {SchematicCodeSchema, SchematicInfoSchema, SchematicListSchema} from "../types/schem.ts"; import {SchematicCodeSchema, SchematicInfoSchema, SchematicListSchema} from "../types/schem.ts";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import type {FightStats, Ranking, UserStats} from "../types/stats.ts"; import type {FightStats, Ranking, UserStats} from "../types/stats.ts";
import {fetchWithToken} from "./repo.ts"; import {fetchWithToken} from "./repo.ts";
import {FightStatsSchema, RankingSchema, UserStatsSchema} from "../types/stats.ts"; import {FightStatsSchema, RankingSchema, UserStatsSchema} from "../types/stats.ts";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {readonly, writable} from "svelte/store"; import {readonly, writable} from "svelte/store";
import type {Readable, Subscriber, Unsubscriber} from "svelte/store"; import type {Readable, Subscriber, Unsubscriber} from "svelte/store";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import type {Player, SchematicType} from "../types/data.js"; import type {Player, SchematicType} from "../types/data.js";
import {PlayerSchema} from "../types/data.js"; import {PlayerSchema} from "../types/data.js";
import {cached, cachedFamily} from "./cached.js"; import {cached, cachedFamily} from "./cached.js";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {z} from "zod"; import {z} from "zod";
export const SchematicTypeSchema = z.object({ export const SchematicTypeSchema = z.object({

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {z} from "zod"; import {z} from "zod";
import {TeamSchema} from "./team.js"; import {TeamSchema} from "./team.js";
import {PlayerSchema} from "./data.js"; import {PlayerSchema} from "./data.js";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {z} from "zod"; import {z} from "zod";
export const ListPageSchema = z.object({ export const ListPageSchema = z.object({

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {z} from "zod"; import {z} from "zod";
export const PrefixSchema = z.object({ export const PrefixSchema = z.object({

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {z} from "zod"; import {z} from "zod";
import {PlayerSchema} from "./data.ts"; import {PlayerSchema} from "./data.ts";

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {z} from "zod"; import {z} from "zod";
export const RankingSchema = z.array(z.object({ export const RankingSchema = z.array(z.object({

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import {z} from "zod"; import {z} from "zod";
export const TeamSchema = z.object({ export const TeamSchema = z.object({

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
export function window<T>(arr: T[], len: number): T[][] { export function window<T>(arr: T[], len: number): T[][] {
let result: T[][] = []; let result: T[][] = [];
for (let i = 0; i < arr.length; i += len) { for (let i = 0; i < arr.length; i += len) {

Datei anzeigen

@ -0,0 +1,26 @@
---
title: AirShip PublicClash
key: as-publicclash
description: Ein kleines Airshipevent für die Community nur mit Publics
created: 2023-11-08
tags:
- event
- airship
- publicclash
---
**Liebe Community**
Nach längerer Zeit steht wieder ein kleineres Airshipevent am **17.12.2023** an. Es wird nur an einem Tag statt finden.
Es ist ein Public Event welch in der **Version 1.20** Ausgetragen wird. Es werden noch zeitlich noch ein weitere Public/ Publics hinzugefügt.
Mit dem Befehl /team event ASPublicClash könnt Ihr euch ab sofort bis zum **15.12.2023** anmelden.
Es sind pro Team **max 6 Kämpfer** zugelassen. Der Ansprechpartner ist der Airshiprat (Atom65, Novacfranz) Eventleiter wird TheBreadBeard sein.
Wir würden uns freuen, wenn sich ein Paar Teams anmelden und wünschen viel Spaß bei diesem kleinen Event.
Viele Grüßen
SteamwarServerteam

Datei anzeigen

@ -1,17 +0,0 @@
---
title: First Announcement
description: First announcement for the 2021 edition of the conference.
created: 2021-01-01
tags:
- blog
- event
---
# First Announcement
<fight-table data-event="7" data-group="Gruppe 1" data-rows="2"></fight-table>
<group-table data-event="7" data-group="Gruppe 1" data-rows="1"></group-table>
Text, text, text

Datei anzeigen

@ -1,10 +1,11 @@
--- ---
title: First Announcement title: MicroNeujahrsEvent
description: First announcement for the 2021 edition of the conference. With realy long text to test the layout. But this is not enough, so I will add some more key: microneujahrsevent
description: Das traditionelle MicroNeujahrsEvent findet auch 2024 wieder statt. Wir freuen uns auf Eure Teilnahme!
created: 2023-12-03 created: 2023-12-03
tags: tags:
- event - event
- miniwargear - microwargear
--- ---
Liebe Community! Liebe Community!
@ -17,7 +18,7 @@ Auf diesem Wege Lade ich Euch zum traditionelle MicroWargearEvent auf Steamwar e
- Wo? Steamwar.de Minecraft Server - Wo? Steamwar.de Minecraft Server
- Version: 1.20 - Version: 1.20
- Regelwerk: MicroWarGear Regelwerk – SteamWar - Regelwerk: MicroWarGear Regelwerk – SteamWar
- max 3 Fighter pro Team - max. 3 Fighter pro Team
das Serverteam würde sich freuen, wenn es wieder viele Teams gibt welch an diesem Event teilnehmen und wünschen allen Viel Spaß, Erfolg und einen Guten Rutsch! das Serverteam würde sich freuen, wenn es wieder viele Teams gibt welch an diesem Event teilnehmen und wünschen allen Viel Spaß, Erfolg und einen Guten Rutsch!

Datei anzeigen

@ -0,0 +1,26 @@
---
title: Steamwar Winterzeit
key: winterzeit
description: Die Winterzeit ist angebrochen. Wir nutzen den November für die Vorbereitung der Winterzeit. Es wird einige Events geben. Zudem werden noch Builder gesucht.
created: 2023-11-05
tags:
- event
---
Liebe Steamwar Community.
bestimmt ist Euch aufgefallen, welch dieses Jahr unüblich ist, dass wir im November kein Event angesetzt haben und wir nach außen hin recht ruhig geworden sind. Hierbei möchte ich eine Info an Euch weiter geben was gerade Sache ist.
Der November wird bei uns als primäre Vorbereitung genutzt für die Winterzeit.
aktuell werden noch nach wie vor Builder gesucht um z.B an unseren Vorbereitungen zu unterstützen. Falls Ihr daran Interesse habt noch dem Builderteam beizutreten steht Tim7077 Euch als Ansprechpartner zur Verfügung.
Zudem stehen mindestens zwei Events an. Einmal ein Public AS Event am 17.12.2023 sowie unser Traditionelles Micro Neujahrs Event. Hierbei laufen die Vorbereitungen. (näheres zu den Events kommt später in einer Extra Ankündigung) .
Auch wird es einige Plugin Veränderungen /Erweiterungen geben unteranderem für die Verwirklichung des von Haylims vorgeschlagenen QuickGear Modus. Sowie einige 1.20 Updates
Ich hoffe es trifft auf Verständnis, dass der November daher mit wenig „Aktion“ abgeht.
Liebe Grüße
Steamwar Team

Datei anzeigen

@ -0,0 +1,24 @@
---
title: Veränderung im Supporterteam
key: supporter-entfernung
description: Wir haben uns entschieden die Zusammenarbeit mit einem Supporter zu beenden.
created: 2023-11-01
tags:
- team
---
Hallo Liebe Community,
wie die aktiven Diskussionen auf unserem Community DC bezüglich dem Vertrauen eines Supporters, wurde von mir entschieden unsere Zusammenarbeit mit der Betroffenen Person zukünftig zu beenden.
Es existiert keine Vertrauensbasis mehr. Es würde nur die Moral des restlichen Serverteams schaden und soll ein Zeichen sein, dass wir von Serverteammitglieder eine gewisse Verantwortung Verlangen!
Ob die Vorwürfe gegen Ihn stimmen oder nicht, ist erstmal dahingestellt. Die Bestätigte Aussagen als „ist doch nicht verboten“ abzustempeln war für mich schlussendlich der Grund ihn zukünftig nicht mehr im Serverteam zu halten. Vor allem als Supporter sollte man im Klaren sein, dass die Moralischen Aspekten sehr viel mehr von Bedeutung sind, als wie von einem Normalen Spieler.
Er hat uns gezeigt, dass er für die Verantwortungsvolle Aufgaben als Supporter nicht geeignet sind. Wir das Serverteam sind ebenso nicht Bereit uns für dieses dumme und Verantwortungslose Verhalten eines Supporters zu rechtfertigen.
Ich hoffe, dass hiermit die Streitigkeiten geklärt sind
Liebe Grüße
AdmiralSeekrank

Datei anzeigen

@ -1,11 +0,0 @@
---
title: Second Announcement
description: Second announcement for the 2022 edition of the conference.
created: 2022-01-01
tags:
- blog
---
# First Announcement
<fight-table data-event="7" data-group="Gruppe 1" />

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
// @ts-ignore // @ts-ignore
import {defineCollection, reference, z} from 'astro:content'; import {defineCollection, reference, z} from 'astro:content';
@ -44,7 +63,6 @@ export const downloads = defineCollection({
export const rules = defineCollection({ export const rules = defineCollection({
type: "content", type: "content",
schema: z.object({ schema: z.object({
german: z.boolean().optional().default(false),
translationKey: z.string(), translationKey: z.string(),
}) })
}) })
@ -56,8 +74,8 @@ export const announcements = defineCollection({
description: z.string(), description: z.string(),
image: image().optional(), image: image().optional(),
tags: z.array(z.string()), tags: z.array(z.string()),
german: z.boolean().optional().default(false), created: z.date(),
created: z.date() key: z.string()
}) })
}) })

Datei anzeigen

@ -2,6 +2,7 @@
title: FAQ title: FAQ
description: Frequently asked questions description: Frequently asked questions
slug: faq slug: faq
german: true
--- ---
# Server/ IP-Adresse # Server/ IP-Adresse

Datei anzeigen

@ -2,6 +2,7 @@
title: Join Now! title: Join Now!
description: How to join SteamWar.de description: How to join SteamWar.de
slug: join slug: join
german: true
--- ---

Datei anzeigen

@ -1,114 +0,0 @@
---
german: true
translationKey: as
---
# AirShip-Regelwerk
## Definitionen
Ein AirShip ist eine beidseitig bewaffnete Struktur in Minecraft 1.19 und sieht flugfähig aus.
## Maße
![Picture](../../../images/Screenshot_2023-08-30_at_21.43.56-1536x714.png)
**Technikbereich**:
- 70 lang
- 35 breit
- 24 hoch
**Designbereich**:
- 130 lang
- 51 breit
- 32 hoch
Entfernung von Mitte zu Mitte des Gegners: 100 Block
Technik darf sich 4 Blöcke über die Maße hinaus ausfahren – unabhängige Flugmaschinen ausgenommen. Kanonen, Schilde, Flugmaschinen und Panzerung dürfen nur im Technikbereich verbaut werden.
## Projektile
Ein Projektil ist ein gezündetes TNT, welches in die gegnerische Hälfte wechselt. Eine Kanone ist eine Vorrichtung zum Beschleunigen von Projektilen. Es ist verboten, mehrere Kanonen als eine Einzige auszugeben.
Jeder Seite stehen bis zu 30 Projektile zur Verfügung. Sie müssen auf der dem Gegner zugewandten Seite oder, wenn beidseitig, in der Mitte gezündet werden
## Kampfablauf
- 5 min Vorbereitungszeit
- 45 s zum Starten von Flugmaschinen
- ab 5 min Kampfzeit ist Entern erlaubt
- 10 min Kampf
## Siegesbedingung
- Ein AirShip wird zu 60% (nach prozentualer Redstonekomponenten) zerstört.
- Alle Kämpfer eines AirShips sind tot.
- Nach 10 Minuten wird ein Unentschieden eingeleitet.
- Der Kampfleiter entscheidet.
## Blöcke
Es dürfen maximal je 30 TNT/slime/honey und 32 Werfer verbaut werden. Verbaute Blöcke dürfen einen TNT-Widerstand von maximal 6 haben. Ausgenommen davon ist Wasser mit dem einzigen Zweck, die Kanone vor selbstverursachtem Schaden zu bewahren.
Inventar-Blöcke dürfen nur mit Blumen, Honigflaschen und Pferderüstungen gefüllt sein. Zusätzlich dürfen sich in Kisten und Fässern TNT sowie in Werfern 2·64 Feuerbälle, 2·64 reguläre Pfeile oder 1 Eimer zum Aufheben von powdered Snow befinden.
Zusätzlich verboten: Monster Spawner, Eis, Nether Portal, Silberfischsteine, Leuchtfeuer, unsichtbare Blöcke (Ausnahme: structure_void) Das Duplizieren von Blöcken und Entities ist verboten.
Blöcke aus dem eigenen AS dürfen nicht in großer Menge entfernt werden.
Bug-Using ist nicht erwünscht.
<hr>
# Versteckte Blöcke (Ersetzt durch Stein)
- WATER
- NOTE_BLOCK
- POWERED_RAIL
- DETECTOR_RAIL
- PISTON
- PISTON_HEAD
- STICKY_PISTON
- TNT
- CHEST
- TRAPPED_CHEST
- REDSTONE_WIRE
- STONE_PRESSURE_PLATE
- IRON_DOOR
- OAK_PRESSURE_PLATE
- SPRUCE_PRESSURE_PLATE
- BIRCH_PRESSURE_PLATE
- JUNGLE_PRESSURE_PLATE
- ACACIA_PRESSURE_PLATE
- DARK_OAK_PRESSURE_PLATE
- REDSTONE_TORCH
- REDSTONE_WALL_TORCH
- REPEATER
- BREWING_STAND
- TRIPWIRE_HOOK
- TRIPWIRE
- HEAVY_WEIGHTED_PRESSURE_PLATE
- LIGHT_WEIGHTED_PRESSURE_PLATE
- COMPARATOR
- REDSTONE_BLOCK
- HOPPER
- ACTIVATOR_RAIL
- DROPPER
- SLIME_BLOCK
- OBSERVER
- HONEY_BLOCK
- LEVER
# Zusatzinhalte folgender Blöcke (z.B. Text, Inhalt von Inventaren) werden mit versteckt:
- SIGN
- DISPENSER
- CHEST
- TRAPPED_CHEST
- FURNACE
- BREWING_STAND
- HOPPER
- DROPPER
- SHULKER_BOX
- JUKEBOX
- COMPARATOR

Datei anzeigen

@ -1,8 +0,0 @@
---
german: true
translationKey: megawg
---
# MegaWarGear Regelwerk
MegaWarGear-Kämpfe finden aus technischen Gründen in der 1.12.2 statt. Der Spielmodus MegaWarGear soll die Möglichkeit bieten, einfach mal ein grenzenloses WarGear zu bauen. Daher ist ein anspruchsvolles Design bzw. Formgebung notwendig (kein Kasten o.ä.). MegaWarGears sollen (abgesehen von Größen- und Mengenlimitierungen) technisch typischen WarGears ähnlich sein (Endstoneblöcke als stärkste Panzerung, kein TNT in Dispensern etc.) Da dieser Spielmodus nicht als kompetetiver Spielmodus (mit dem Hauptziel, den Gegner mit allen Mitteln zu besiegen) ausgelegt ist, sollte jedes freigegebene MegaWarGear auch so als Public veröffentlicht werden (können).

Datei anzeigen

@ -1,131 +0,0 @@
---
german: true
translationKey: microwg
---
# MicroWarGear Regelwerk
MicroWargears werden in der 1.20 gebaut.
## Maße
Max. 7 Block tief
Max. 7 Block breit
Max. 7 Block hoch
Ein MicroWarGear darf sich maximal 7 Blöcke in alle Richtungen ausfahren. Schildtechniken dürfen von jeder beliebigen Stelle im MicroWarGear aktiviert werden.
## Materialien
Alle Blöcke im MicroWarGear dürfen maximal einen TNT-Widerstand von 9 aufweisen. Inventarblöcke dürfen ausschließlich Blumen, Honigflaschen und Pferderüstungen beinhalten. In Truhen, Shulker-Boxen und Fässern darf TNT gelagert werden. In Werfern dürfen sich nur 1*64 Feuerbälle oder 1*64 Pfeile (ohne Effekte) befinden.
Es dürfen maximal 8 Werfer verbaut werden.
Folgende Materialien dürfen zusätzlich nicht verbaut werden: Alle Sprösslinge, Eis (Minecraft:Ice),
Nether Portal, Lava, Waterlogged Leaves und Waterlogged Roots, TNT (vorverbaut), jegliche (nicht Block-) Entities.
Wasser darf nur und ausschließlich in Kanonen verwendet werden, um Schaden beim eigenen
Schuss zu verhindern.
## Kanonen
Eine Kanone ist eine durchgehende Redstonekonstruktion, welche in der Lage ist,
den Gegner durch gezündetes TNT zu beschädigen. Eine TNT-Kanone ist der einzige Ort in einem Micro an dem Wasser verbaut werden darf, wenn es die Kanone nicht verlässt und /oder im intakten Zustand Wasserschilde bildet. Außerdem darf sich die Kanone nicht gezielt selbst beschädigen. Eine TNT-Kanone darf maximal 8 Projektile pro Schuss abfeuern.
Zusätzlich ist eine Hauptkanone mit 12 Projektilen erlaubt.
## Brücke
Ein MicroWargear benötigt eine Brücke welche entweder als klar erkennbarer Raum, als Freiluftbrücke oder als Kriechbrücke vom Rest des Micros durch Türen, Zauntore, Falltüren oder Kolben abtrennbar ist.
Die Brücke muss folgende Voraussetzungen erfüllen:
- Min. 25 m² (1 Block = 1 Meter)
- Ein Sichtfenster auf das gegnerische MicroWarGear (Ausnahme bei Freiluftbrücken mit direkter Sicht auf den Gegner, diese benötigen kein extra Sichtfenster)
- Die Ansteuerung für min. 4 vom Gegner aus sichtbare Frontscheinwerfer.
- Diese müssen ihren Zustand beibehalten, bis der/ die Mechanismen erneut manuell betätigt wird/ werden
- Die einzige Ansteuerung für ggf. vorhandene Werfer, die mit Pfeilen oder Feuerbällen den Gegner beschießen
## Design
Ein MicroWarGear benötigt (neben mindestens einer Kanone) ein Design. Die äußere Schicht
des MicroWarGears darf maximal einen TNT-Widerstand von 6 besitzen. Es wird eine
durchgängige Struktur über die gesamte Front des Micros erwartet. Es müssen
mindestens 2 verschiedene Blöcke im Design eingebaut werden. (Redstone-Komponenten nicht mitgezählt).
Eine durchgängige Struktur bedeutet, dass keine größeren Flächen keine Variation in der
Tiefe besitzen. Eine Variation in der Tiefe kann auch durch Mauern oder
Treppenstufen erreicht werden.
## Bug-Using
Das Duplizieren jeglicher Blöcke oder Entities ist verboten. Exzessives Verwenden von Blöcken, die vom Techhider replaced werden ist ebenfalls verboten
## Definitionen
### Projektil
Ein Projektil ist ein TNT, welches im gezündeten Zustand die maximalen Ausfahrmaße eines
MicroWarGears in Richtung des Gegners verlässt.
### Treibladung
Eine Treibladung ist ein TNT, welches im gezündeten Zustand Projektile in die gegnerische
Hälfte beschleunigt. Die Treibladungen einer Kanone dürfen nur die Projektile der dazugehörigen Kanone beeinflussen
## Versteckte Blöcke (Ersetzt durch Endstone)
- WATER
- NOTE_BLOCK
- POWERED_RAIL
- DETECTOR_RAIL
- PISTON
- PISTON_HEAD
- STICKY_PISTON
- TNT
- CHEST
- TRAPPED_CHEST
- REDSTONE_WIRE
- STONE_PRESSURE_PLATE
- IRON_DOOR
- OAK_PRESSURE_PLATE
- SPRUCE_PRESSURE_PLATE
- BIRCH_PRESSURE_PLATE
- JUNGLE_PRESSURE_PLATE
- ACACIA_PRESSURE_PLATE
- DARK_OAK_PRESSURE_PLATE
- REDSTONE_TORCH
- REDSTONE_WALL_TORCH
- REPEATER
- BREWING_STAND
- TRIPWIRE_HOOK
- TRIPWIRE
- HEAVY_WEIGHTED_PRESSURE_PLATE
- LIGHT_WEIGHTED_PRESSURE_PLATE
- COMPARATOR
- REDSTONE_BLOCK
- HOPPER
- ACTIVATOR_RAIL
- DROPPER
- SLIME_BLOCK
- OBSERVER
- HONEY_BLOCK
- LEVER
- SCULK_SENSOR
- POLISHED_BLACKSTONE_PRESSURE_PLATE
- MANGROVE_PRESSURE_PLATE
- CRIMSON_PRESSURE_PLATE
- WARPED_PRESSURE_PLATE
## Zusatzinhalte folgender Blöcke (z.B. Text, Inhalt von Inventaren) werden mit versteckt:
- SIGN
- DISPENSER
- CHEST
- TRAPPED_CHEST
- FURNACE
- BREWING_STAND
- HOPPER
- DROPPER
- SHULKER_BOX
- JUKEBOX
- COMPARATOR
<hr>
Ob ein MicroWarGear Regelkonform ist, obliegt der Entscheidung der Prüfer

Datei anzeigen

@ -1,166 +0,0 @@
---
german: true
translationKey: mwg
---
# MiniWarGear-Regelwerk
MiniWargears werden in der 1.19 gebaut.
## Maße
- Max. 20 Block tief (+ 1 Block Design pro Seite) (22)
- Max. 35 Block breit (+ 1 Block Design pro Seite) (37)
- Max. 26 Block hoch
Ein MiniWarGear darf sich maximal 7 Blöcke in alle Richtungen ausfahren. Alle ausfahrbare Schild- Komponenten dürfen nur von der Brücke aus aktivierbar sein.
## Materialien
Alle Blöcke im MiniWarGear dürfen maximal einen TNT-Widerstand von 9 aufweisen. Es
dürfen maximal 120 TNT verbaut werden. Inventarblöcke dürfen ausschließlich Blumen,
Honigflaschen und Pferderüstungen beherbergen. In Truhen und Fässer darf TNT gelagert
werden. In Werfern dürfen sich nur 1*64 Feuerbälle oder 1*64 Pfeile (ohne Effekte) befinden.
Es dürfen maximal 16 Werfer verbaut werden.
Folgende Materialien dürfen zusätzlich nicht verbaut werden: Alle Sprösslinge (6), Eis (79),
Nether Portal (90), Waterlogged Leaves und Waterlogged Roots
Wasser darf nur und ausschließlich in Kanonen verwendet werden, um Schaden beim eigenen
Schuss zu verhindern.
## Kanonen
Eine Kanone ist eine durchgehende Redstonekonstruktion, welche in der Lage ist,
gezündetes TNT in die gegnerische Hälfte zu befördern. Eine TNT-Kanone ist der einzige Ort
in einem MWG an dem Wasser verbaut werden darf, wenn es die Kanone nicht verlässt und
/oder im intakten Zustand Wasserschilde bildet. Außerdem darf sich die Kanone nicht gezielt
selbst beschädigen. Eine TNT-Kanone darf maximal 8 Projektile pro Schuss abfeuern.
Zusätzlich ist eine Hauptkanone mit 12 Projektilen erlaubt. Die Hauptkanone darf nur eine
manuelle Kanone sein.
Ein MiniWarGear darf insgesamt 9 Kanonen besitzen. Es ist
verboten, eine Vielzahl von Kanonen als eine einzige Kanone auszugeben. Es ist ebenfalls
Verboten eine einzige Kanone als mehrere auszugeben. Ob dies der Fall ist, entscheidet der
Prüfer des MiniWarGears oder der / die Kampfleiter.
Manuelle Kanonen sind TNT-Kanonen, welche manuell beladen werden müssen. Diese
dürfen vor dem Kampf nicht beladen sein. Des Weiteren müssen manuelle Kanonen am
Gegner Schaden anrichten können. Eine manuelle Kanone darf bis zu 3 Schüsse ohne
Nachladen abschießen.
Eine manuelle Kanone, welche ohne weiteres Nachladen mehrere
Schüsse hintereinander abgeben kann, muss die Projektile der einzelnen Schüsse von
denselben Abschusspunkt(en) aus abschießen. Der Ort wird vom ersten Schuss definiert.
Automatische Kanonen sind Kanonen welche ohne manuelles beladen mindestens 5
Schüsse abgeben können und vor Fightbeginn beladen sein müssen. Damit eine automaische
Kanone vorbeladen sein darf, muss diese mindestens 5 Schüsse abgeben. Alle Schüsse
müssen von den selben Abschusspunkt/en abgeschossen werden und die ersten 5 Schüsse
müssen gleich viele Projektile verschießen. Ab dem 6. Schuss darf die Projektilanzahl
abnehmen, jedoch nicht zunehmen. Eine Automatische Kanone darf max. alle 4 Sekunden
(40 Redstoneticks) schießen. Es sind max. 2 Automatische Kanonen erlaubt.
## Brücke
Ein MiniWargear benötigt eine Brück welche als klar erkennbarer Raum vom Rest des Miniwargears durch Türen oder Kolben abtrennbar ist.
Die Brücke muss folgende Voraussetzungen erfüllen:
- Min. 25 begehbare Blöcke
- Einen periodisch akustischen (Notenblock/Glocke) und optischen Schadenssensor
- Sichtfenster auf das gegnerische MiniWarGear
- Die Ansteuerung für min. 4 vom Gegner aus Sichtbare Frontscheinwerfer
- Die Ansteuerung für ggf. vorhandene automatische Kanonen
- Die einzige Ansteuerung für ggf. vorhandene Werfer, die mit Pfeilen oder Feuerbällen den Gegner beschießen
- Die Ansteuerung für ggf. vorhandene Schildtechniken
## Design
Ein MiniWarGear benötigt (neben mindestens einer Kanone) ein Design. Die äußere Schicht
des MiniWarGears darf maximal einen TNT-Widerstand von 6 besitzen. Es wird eine
durchgängige Struktur über die gesamte Front des MiniWarGears erwartet. Es müssen
mindestens 2 verschiedene Blöcke im Design eingebaut werden. (Werfer und
Redstonelampen werden nicht mitgezählt).
Eine durchgängige Struktur bedeutet, dass keine größeren Flächen keine Variation in der
Tiefe besitzen. Eine Variation in der Tiefe kann teilweise auch durch Mauern oder
Treppenstufen erreicht werden, darf aber nicht überwiegend dadurch erzeugt werden. Ob dies
der Fall ist, liegt im Ermessen des Prüfers.
## Bug-Using
Das erschaffen von TNT im MWG ist verboten
Exzessives verwenden von Blöcken die vom Techhider replacet werden ist verboten
## Definitionen
### Projektil
Ein Projektil ist ein TNT, welches im gezündeten Zustand von den Treibladungen
beschleunigt wird. Ein Projektil ist auch ein TNT, welches die maximalen Maße eines
MiniWarGears in Richtung des Gegners verlässt.
### Treibladung
Eine Treibladung ist ein TNT, das im gezündeten Zustand Projektile in die gegnerische
Hälfte beschleunigt. Die Treibladungen einer Kanone (manuelle und automatische Kanonen)
dürfen nur die eigenen Projektile beeinflussen.
## Versteckte Blöcke (Ersetzt durch Endstein)
- WATER
- NOTE_BLOCK
- POWERED_RAIL
- DETECTOR_RAIL
- PISTON
- PISTON_HEAD
- STICKY_PISTON
- TNT
- CHEST
- TRAPPED_CHEST
- REDSTONE_WIRE
- STONE_PRESSURE_PLATE
- IRON_DOOR
- OAK_PRESSURE_PLATE
- SPRUCE_PRESSURE_PLATE
- BIRCH_PRESSURE_PLATE
- JUNGLE_PRESSURE_PLATE
- ACACIA_PRESSURE_PLATE
- DARK_OAK_PRESSURE_PLATE
- REDSTONE_TORCH
- REDSTONE_WALL_TORCH
- REPEATER
- BREWING_STAND
- TRIPWIRE_HOOK
- TRIPWIRE
- HEAVY_WEIGHTED_PRESSURE_PLATE
- LIGHT_WEIGHTED_PRESSURE_PLATE
- COMPARATOR
- REDSTONE_BLOCK
- HOPPER
- ACTIVATOR_RAIL
- DROPPER
- SLIME_BLOCK
- OBSERVER
- HONEY_BLOCK
- LEVER
- SCULK_SENSOR
- POLISHED_BLACKSTONE_PRESSURE_PLATE
- MANGROVE_PRESSURE_PLATE
- CRIMSON_PRESSURE_PLATE
- WARPED_PRESSURE_PLATE
## Zusatzinhalte folgender Blöcke (z.B. Text, Inhalt von Inventaren) werden mit versteckt:
- SIGN
- DISPENSER
- CHEST
- TRAPPED_CHEST
- FURNACE
- BREWING_STAND
- HOPPER
- DROPPER
- SHULKER_BOX
- JUKEBOX
- COMPARATOR

Datei anzeigen

@ -1,28 +0,0 @@
---
translationKey: qg
german: true
---
# QuickGear-Regelwerk
QuickGears werden in der 1.20 gebaut.
## Maße
Max. 20 Block tief (+ 1 Block Design pro Seite) (22)
Max. 35 Block breit (+ 1 Block Design pro Seite) (37)
Max. 26 Block hoch
Kein Block darf das QuickGear verlassen.
## Materialien
Alle Blöcke im QuickGear müssen durch TNT zerstörbar sein. Davon ausgenommen ist Wasser. Es dürfen sich keine TNT Blocke im QuickGear befinden. Inventarblöcke dürfen ausschließlich Blumen, Honigflaschen und Pferderüstungen beherbergen. In Werfern dürfen sich nur 1×64 Feuerbälle oder 1×64 Pfeile (ohne Effekte) befinden.
## Design
Ein Design ist erwünscht, muss aber nicht zwingend vorhanden sein.
## Bug-Using
Gezündetes TNT darf nur durch vom Spieler platzierte TNT-Blöcke entstehen. Das Duplizieren von TNT ist verboten.

Datei anzeigen

@ -1,69 +0,0 @@
---
german: true
translationKey: sf
---
# Street Fight Regelwerk
**Street Fight WarGears** werden in der Version 1.19 Gebaut und sind Redstone-Kampfmaschinen in Minecraft. Sie sind mit einer Vielzahl von
Redstonetechniken und TNT-Kanonen ausgestattet
<hr>
## Maße
Höhe: 41
Block Tiefe: 47
Block Breite: 67 Block
Die Ausfahrmaße sind nicht begrenzt
<hr>
## Materialien
Es dürfen alle Blöcke verbaut werden, die einen TNT-Widerstand von max. 9 haben.
Folgende Blöcke sind nicht erlaubt:
- Alle Sprösslinge (6),
- jegliche Spawnerarten (52),
- Eis (Minecraft:Ice)
- Nether-Portal (90),
- Waterlogged Leaves
- Waterlogged Roots
Folgende Blöcke sind erlaubt:
- Wasser
- Lava
Inventarblöcke dürfen ausschließlich Blumen, Honigflaschen und Pferderüstungen beinhalten. Truhen, Fässer, Shulker-Boxen und Fässer dürfen TNT beinhalten.
Werfer dürfen nur mit je **2*64 Pfeilen (ohne Effekte) oder 2*64 Feuerbällen** bestückt sein. Insgesamt dürfen sich von beiden Typen nur je 2048 Items (32 Stacks) in Werfern befinden.
Es dürfen **max. 200 TNT** verbaut werden.
Das Generieren von Blöcken, welche vom Regelwerk erlaubt sind, ist erlaubt (z.B. Cobblestone-Generatoren)
<hr>
## Design
Ein Street Fight WarGear benötigt ein Design. Die äußere Schicht
des Street Fight WarGears darf maximal einen TNT-Widerstand von 6 besitzen. Es wird eine
durchgängige Struktur über die gesamte Front erwartet. Dies bedeutet, dass keine größeren Flächen keine Variation in der Tiefe besitzen. Eine Variation in der Tiefe kann teilweise auch durch Mauern oder Treppenstufen erreicht werden, darf aber nicht überwiegend dadurch erzeugt werden. Ein Design muss darüber hinaus aus mindestens 2 verschiedenen Blöcken bestehen. Alle Redstone-Elemente, wie zum Beispiel Werfer, Redstonelampen, Redstone Blöcke, usw., werden nicht mitgezählt.
<hr>
## Bug-Using/ Lag-Regeln
Beacons dürfen als Block in WarGears vorhanden sein, jedoch nicht im aktiven Zustand.
Diese dürfen auch während eines Fights nicht aktiviert werden.
Das dupen von TNT ist verboten.
Alle **Clocks** müssen nach Vollendung ihrer Aufgabe sich selbst ausschalten.
Übermäßiges Erzeugen von Lags (z.B. zu viele Banner, zu viele Partikel durch Campfire oder Entities) kann zum Sperren der Schematic führen.
Bis auf das direkte Zünden von TNT ist das Erzeugen von jeglicher anderen Entität in den Ausfahrmaßen des eigenen WarGears verboten. Das Erzeugen von Sand-, Gravel-, Concrete-Powder-, DragonEgg- und Scaffolding-Entities ist in den Ausfahrmaßen des eigenen WarGears erlaubt, genauso ist das Erzeugen von Items, durch Dispenser oder Droppern erlaubt. Feuerball-Entities, sowie Pfeil-Entities dürfen auch von Dispensern erzeugt werden.

Datei anzeigen

@ -1,219 +0,0 @@
---
german: true
translationKey: wg
---
# WarGear 1.20 Regelwerk
Ein **WarGear** ist eine Redstone-Kampfmaschine in Minecraft. Es ist mit einer Vielzahl von Redstonetechniken und
TNT-Kanonen ausgestattet. Es ist gebaut, um anderen WarGears Schaden zuzufügen.
Diese unterteilen sich in Basic WarGear, WarGear und Pro WarGear. Basic WarGears sollen insbesondere Einsteigern eine
Möglichkeit geben in WarGears rein zu kommen und erste selbstgebaute Technik zu ermöglichen. WarGear, auch Competitive
WarGear genannt, ist der Modus, worin primär Events ausgetragen werden. Außerdem ist dieser für Casual Fights ausgelegt.
Pro WarGears sind für sogenannte "Schwitzer", welche sich mit starken SFA's und starker manueller Technik bekämpfen
wollen.
## Definitionen
### Clocks
Eine **Clock** ist ein Mechanismus, welcher in einem regelmäßigen oder unregelmäßigen Abstand wiederholt ein Signal
ausgibt. Diese muss sich unmittelbar nach Vollendung ihrer Aufgabe selbst abschalten.
### Autostarter
Ein **Autostarter** ist eine Konstruktion, welche entweder durch Spielerinteraktion oder/durch das replacen des
einzelnen Bedrocks, automatische Kanonen und oder automatische Schilde aktiviert.
### Kampfbereiten Zustand
Der **Kampfbereite Zustand** beschreibt den Zustand in dem das WarGear nach der Freigabe vor dem Kampf verweilt.
## Maße/Blöcke/Design
Ein WarGear ist 41 Blöcke hoch, 47 Blöcke tief und 67 Blöcke breit. In jede Richtung, außer nach unten, darf sich dieses
16 Blöcke ausfahren.
Es dürfen alle Blöcke in einem WarGear verbaut werden, die einen TNT-Widerstand von maximal 9 haben. Ausgenommen davon
sind alle Sprösslinge, jegliche Spawner, Eis (`minecraft:ice`), Nether-Portal und Lava. Wasser darf verbaut werden. Für
einen Autostarter darf im WarGear ein Bedrock verbaut werden, dieser muss in der Nähe der Kommandozentrale verbaut
werden. Zum Zeitpunkt der Kitvergabe, wird der Bedrock zu einem Slime Block replaced. Inventarblöcke dürfen
ausschließlich Blumen, Honigflaschen und Pferderüstungen beinhalten. Truhen, Fässer und Shulker Boxen dürfen TNT
beinhalten. In Werfer dürfen neben Blumen, Honigflaschen und Pferderüstungen auch noch 2\*64 Pfeile (ohne Effekt) oder
2\*64 Feuerbälle oder ein leerer Eimer sein. Der leeren Eimer darf hierbei nur für die Aufnahme und das wieder
platzieren von Pulverschnee verwendet werden. Es dürfen sich nur 2048 (32 Stacks) Pfeile und 2048 (32 Stacks) Feuerbälle
in Werfern befinden. In Lecterns dürfen Bücher enthalten sein.
Ein WarGear benötigt ein Design. Die äußere Schicht des WarGears darf maximal einen TNT-Widerstand von 6 besitzen. Es
wird eine durchgängige Struktur über die gesamte Front des WarGears erwartet. Dies bedeutet, dass keine größeren Flächen
keine Variation in der Tiefe besitzen. Eine Variation in der Tiefe kann teilweise auch durch Mauern oder Treppenstufen
erreicht werden, darf aber nicht überwiegend dadurch erzeugt werden. Ein Design muss darüber hinaus aus mindestens 2
verschiedenen Blöcken bestehen. Alle Redstone-Elemente, wie zum Beispiel Werfer, Redstonelampen, Redstone Blöcke, usw.,
und auch jegliches Glas werden nicht mitgezählt.
Jedes WarGear benötigt mindestens 1 Ausguck. Einer davon muss mindestens eine auf den Gegner weisende Oberfläche
von mindestens 6 durchsichtige Blöcke aufweisen. Ein Ausguck zählt nicht als dieser, wenn er den Lauf einer Kanone
darstellt.
## Kanonen
Ein WarGear darf maximal 14 Kanonen beinhalten. Es ist verboten, eine Vielzahl von Kanonen als eine einzige Kanone
auszugeben.
### Definitionen
Eine **Treibladung** ist ein gezündetes TNT, das durch seine Explosion Projektile und ggf. Step-Ladungen beschleunigt.
Eine **Step-Ladung** ist ein gezündetes TNT, das durch seine Explosion Projektile und ggf. weitere Step-Ladungen
beschleunigt. Diese dürfen keinen Block Schaden am Gegner verursachen und nicht für das Brechen von Schilden genutzt
werden.
Ein **Projektil** ist ein gezündetes TNT, welches Schaden am Gegner anrichtet.
Ein **Schuss** ist der Vorgang, bei dem Treibladungen, Projektile und ggf. Step-Ladungen beschleunigt werden. Ein Schuss
ist dann beendet, wenn keine weiteren TNT-Explosionen auf die Projektile Einfluss nehmen. Die Explosionen, welche von
einem Schuss ausgehen, dürfen im Kampfbereiten Zustand nicht das eigene WarGear beschädigen. Das Beschleunigen von
mehreren Projektilen, von noch getrennten Schüssen, durch die **selben** Steps lässt diese Schüsse als einen gelten.
Der **Abschusspunkt**, ist der Punkt, an dem das TNT die letzte Beschleunigung erhält, die nachfolgend zu einem
Verlassen oder Durchfliegen des eignen WarGears führt.
**Wasser** darf nicht verbaut werden um den Platz anderer Wasserquellen einzunehmen oder diese zu ersetzten.
Eine **Kanone** ist eine durchgehende Redstoneschaltung, welche mindestens einen Schuss abgeben kann.
### Manuelle Kanonen
Manuelle Kanonen dürfen vor dem Kampfgeschehen kein TNT beinhalten. Diese werden manuell beladen und dürfen auch mehrere
Schüsse abgeben ohne neu beladen werden zu müssen.
### Automatische Kanonen
Automatische Kanonen sind Kanonen, welche vor dem Kampfgeschehen TNT beinhalten und ohne nachgeladen zu werden mehrere
Schüsse abgeben können. Zu beachten ist, dass die Projektile aller Schüsse immer von dem/den exakt gleichen Punkt-/en
aus abgeschossen werden müssen. Vor Fightbeginn dürfen automatische Kanonen vollständig leergeschossen werden.
Automatische Kanonen müssen von der Kommandozentrale aus aktivierbar sein. Dies kann auch durch den Verbau des
Autostarters innerhalb der Kommandozentrale erfolgen. Des weiteren muss eine Möglichkeit innerhalb der Kommandozentrale
gegeben sein die automatische Kanone vollständig vor Fightbeginn leerschießen zu können.
Das wiederverwenden des Abschusswinkels einer Automatischen Kanone zählt immer als zweite Kanone. Auch das Nachladen
der Automatischen Kanone zählt als zweite Kanone.
#### Competitive
336 TNT dürfen in Automatischen Kanonen vorverbaut werden. Eine automatische Kanone muss mindestens 6 Schüsse
aufeinanderfolgend abgeben. Alle 6 Schüsse müssen dieselbe Projektilanzahl verschießen. Bei jedem weiteren Schuss darf
die Projektilanzahl abnehmen. SFAs dürfen eine maximale Feuerrate von einem Schuss alle 1,5 Redstoneticks haben.
Das Zünden der Projektile und Steps ist überall erlaubt.
#### Pro
600 TNT dürfen in Automatischen Kanonen vorverbaut werden. Eine automatische Kanone muss mindestens 8 Schüsse
aufeinanderfolgend abgeben. Alle 8 Schüsse müssen dieselbe Projektilanzahl verschießen. Bei jedem weiteren Schuss darf
die Projektilanzahl abnehmen. SFAs dürfen eine maximale Feuerrate von einem Schuss alle 0,5 Redstoneticks haben.
Die Projektile und Steps aller Schüsse **müssen** von dem/den exakt gleichen Punkt-/en aus gezündet werden.
## Schilde
Jeder Block, welcher aus den normalen Maßen, geschoben wird, zählt als Schild. Ausgenommen hiervon sind
Abschussvorrichtungen von Kanonen und einzelne ausfahrende Blöcke. Diese müssen weder von der Kommandozentrale aktiviert
werden, noch automatisch ausfahren können.
### Manuelle Schilde
Alle Manuelle Schilde benötigen einen aktiven Input eines Users um sich auszufahren. Der Autostarter zählt nicht als
aktiven Input. Alle manuelle Schilde müssen vollständig von der Kommandozentrale aus ansteuerbar sein. Darüber hinaus
dürfen die Schilde von weiteren Stellen aus aktivierbar sein. Wenn ein manuelles Schild mehrere Interaktionen braucht um
sich vollständig auszufahren, ist die Reihenfolge unmissverständlich in der Kommandozentrale anzugeben.
### Automatische Schilde
Alle Schilde, welche durch den Autostarter oder das Pasten aktivieren, zählen als automatische Schilde. Diese bedürfen
keiner weiteren Aktivierungsmöglichkeit in der Kommandozentrale.
## Kommandozentrale
Jedes WarGear braucht neben der Bewaffnung eine Kommandozentrale. Diese muss vom Prüfer als solche erkennbar sein. Sie
muss nicht abriegelbar sein und darf sich auch in einem Gang befinden. Die Ansteuerungselemente der Kommandozentrale
müssen nah beieinander sein.
Die Ansteuerungselemente sind:
- Ansteuerung von mindestens 8 Scheinwerfern, welche frontal vom Gegner aus, im angeschalteten/aufgedeckten Zustand,
erkennbar sein müssen
- Autostarter Block (Bedrock) oder alternative Autostarter Vorrichtung, für sowohl Automatische Schilde als auch für
Automatische Kanonen
- Manuelle Schildansteuerung
- Manuelle Ansteuerung für automatische Kanonen
## Publics
WarGears, welche später öffentlich werden, nennen sich Publics und unterliegen besonderen Anforderungen. Der Fokus eines
solchen Publics sollte auf der Verständlichkeit der Kanonen und Schilde liegen. Wir erwarten ein ausgeprägtes Außen- als
auch Innen-Design. Kanonen müssen **nicht** vollständig designt sein. An die Kommandozentrale gibt es neben den normalen
Regeln noch weitere Anforderungen. Diese muss ein nach Möglichkeit abriegelbarer eigenständiger Raum sein. Außerdem muss
der Ausguck in der Kommandozentrale verbaut sein. Alle Schilde müssen sich automatisch ausfahren und ein
Bedrock-Autostarter für automatische Kanonen verwendet werden. Automatische Kanonen müssen über eine Standarteinstellung
verfügen.
### Basic WarGear
#### Kanonen
- Second (oder mehr) - Step Stich Kanonen/SFAs sind nicht erlaubt (Ausnahme sind Q's, also Statics, welche im Gegner zu
einer
Seite stepen können)
- Backstich Kanonen/SFAs sind nicht erlaubt
- AKs sind erlaubt, dürfen allerdings kein Schwenkmodul und keine Höhenabprallblöcke haben (Ausnahme für Modes, die
unter der Kanonenhöhe liegen)
- SLS/SMS/STS Kanonen sind erlaubt, dürfen allerdings keine Höhenabprallblöcke haben.
- Mehr-Mann Kanonen (also Kanonen, welche von mehr als einer Person beladen werden) sind nicht erlaubt
- Automatische Kanonen sind gestattet, dürfen aber nicht schneller als 12 Tick laufen. Automatische Kanonen dürfen keine
Schilde brechen. Sie dürfen nur maximal 3 Block Dicke Schilde brechen
- Jegliche Streuschaden Kanonen (Smartie, Static, etc.) sind gestattet.
- Es darf Powderedsnow für das Erzeugen von Höhenmodi verwendet werden
#### Schilde
- 2 oder mehr Achsenmassivschilde sind nicht gestattet. Wurmloch oder 3D-Druck-Schilde ebenfalls nicht.
- Artischilde, Backstepschilde, Spikes, Massivschilde, Sandschilde, Vorgesetzte Sidestep- und Artischilde sind
gestattet, sollten aber nicht übermäßig verbaut werden.
### WarGear
Neben allen Regelungen von Basic WarGear gelten noch die folgenden.
#### Kanonen
- IDS und ISS sind erlaubt, allerdings nur in nicht brechend
- Automatische Kanonen sind gestattet, dürfen aber nicht schneller als 6 Tick laufen. Automatische Kanonen dürfen keine
Schilde brechen (Sie müssen also alle nicht brechend sein).
- Oberlader-Kanonen sind gestattet, sollten aber simpel gehalten werden
### Rat
Die oben genannten Punkte gelten nur als Richtwerte. Am Ende obliegt die Entscheidung, ob ein WarGear Public wird dem
WarGear-Rat. Der WG-Rat behält sich ebenfalls vor, diese Kriterien zu verändern und Ausnahmen festzulegen. Allgemein ist
eine gute Kommunikation mit dem WarGear-Rat beim Bau eines Publics von Vorteil.
## Bug-Using/Anti-Lag
Bis auf das direkte Zünden von TNT ist das Erzeugen von jeglicher anderen Entität in den Ausfahrmaßen des eigenen
WarGears verboten. Das Erzeugen von Sand-, Gravel-, Concrete-Powder-, DragonEgg-, Drippstone- und Scaffolding-Entities
ist in den Ausfahrmaßen des eigenen WarGears erlaubt, genauso ist das Erzeugen von Items, durch Dispenser oder Droppern
erlaubt. Feuerball-Entities, sowie Pfeil-Entities dürfen auch von Dispensern erzeugt werden.
Beacons dürfen im **nicht** aktiven Zustand verbaut werden und auch im Laufe eines Fights nicht aktiviert werden.
Der Techhider darf nicht missbraucht werden, um dadurch jegliche Läufe, auch Fake-Läufe unkenntlich und unersichtlich zu
machen. Außerdem darf die Designschicht keine Techhiderblöcke, welche Läufe oder ähnliches verbergen, enthalten. Das
Benutzen des Techhiders um damit Gänge unkenntlich zu machen ist ebenfalls verboten.
Übermäßiges Erzeugen von Lags (z.B. zu viele Banner, zu viele Partikel durch Campfire) kann zum Sperren der Schematic
führen.
## Prüfer
Dem Prüfer obliegt am Ende des Prüfprozesses, die finale Entscheidung darüber, ob das WarGear insbesondere im Bereich
von Grauzonen, noch konform ist. Des weiteren darf das Serverteam auch bei schon freigegebenen Schematics diese im
nachhinein sperren.

Datei anzeigen

@ -1,79 +0,0 @@
---
german: true
translationKey: ws
---
# WarShip-Regelwerk
## Definitionen
### WarShip
Ein WarShip ist eine bewaffnete, schwimmende Struktur in Minecraft mit der optischen Erscheinung eines Schiffes. Der Schwimmkörper muss dabei einen Großteil des WarShips ausmachen. Ein WarShip kann optional ein Design aufweisen, das andere im Wasser schwimmende/befindliche Dinge oder Tiere repräsentiert, sofern das gewählte Design gänzlich implementiert wird. Jedes WarShip muss beidseitig gleich bewaffnet sein.
### Projektil
Ein Projektil ist ein TNT, welches im gezündeten Zustand in die gegnerische Hälfte wechselt. Projektile müssen auf der dem Gegner zugewandten Schiffsseite gezündet werden. Unter Wasser gezündete Projektile müssen innerhalb des Technikbereiches, oberhalb der Wasserlinie gezündete Projektile innerhalb des Ausfahrbereichs gezündet werden.
### Kanone
Eine Kanone ist eine Vorrichtung zum Beschleunigen von Projektilen. Eine Kanone darf maximal 2 Projektile verschießen. Eine Kanone muss manuell beladen werden. Eine Kanone darf maximal alle 2s schießen. Es dürfen maximal 32 Kanonen pro Seite verbaut werden. Kanonen sind der einzige Ort, an dem Wasser verbaut werden darf, wenn es keinen anderen Zweck hat, als diese vor selbst verursachten Schaden zu bewahren und TNT zu transportieren.
## Maße
- Länge: 230 Block
- Breite: 35 Block (+ 4 Block Design pro Seite)
- Höhe: 30 Block + 20 Block Design
- Tiefe: Bis zu 8 Block unter dem Meeresspiegel
Bei jedem WarShip müssen sich mindestens 10% der absoluten Blöcke (45.000 Blöcke) über der Wasserlinie befinden.
Im Designbereich dürfen sich keine kampfrelevanten (Kanonen, Schleim/Honigfahrzeuge, Schilde) Techniken befinden. Eine Durchpanzerung des Designbereiches ist nicht zulässig. Der Designbereich ist ausschließlich für einzelne überstehende Designobjekte wie beispielsweise Kanonenrohre, Segel, Banner oder Bullaugen da.
## Blöcke
Es dürfen nur Blöcke mit einem TNT-Widerstand von maximal 6 verbaut werden. Vor und im Kampf dürfen sich in allen Blöcken mit Inventar nur Blumen, Honigflaschen und Pferderüstungen befinden, in Kisten und Fässer darf auch TNT sein. Es dürfen maximal 32 Werfer pro Seite verbaut werden. In Werfern dürfen sich 2×64 Feuerbälle oder 2×64 Pfeile (ohne Effekte) befinden.
Das Verbauen von unsichtbaren Mauern oder anderen unsichtbaren Blöcken mit Hitbox ist verboten.
Ebenso verboten sind: Monsterspawner, Eis, Netherportalblock, Alle Silberfischsteine.
Das Missbrauchen von unverschiebbaren Blöcken als Panzerung ist verboten.
Wasser darf nicht zum Schutz des eigenen WarShips missbraucht werden.
## Design
Größere Hohlräume im Rumpf zum Ausweichen feindlicher Schüsse sind nicht gestattet, auch nicht während des Kampfes. Jedes WarShip braucht eine Flagge.
Ein WarShip benötigt einen fortbewegungsfähigen Rumpf mit entsprechendem Antrieb (z.B. Segel, Schiffsschrauben).
Der Rumpf muss mindestens einen Block tief unter Wasser sowie mindestens 5 Block über dem Meeresspiegel sein (dies gilt auch während des Kampfes relativ zur Wasseroberfläche). Der Rumpf darf max. 16 Block hoch sein.
Jedes WarShip benötigt eine Brücke, welche die folgenden Kriterien erfüllt:
- Min. 50 begehbare Blöcke
- Min. 2 Block hoch im gesamten Brückenraum
- Ansteuerung von min. zwei zum Gegner gewandten Scheinwerfer
- Optische Brückeneinrichtung
## Anti-Lag-Regeln
Clocks müssen sich mit Ende ihres Einsatzzweckes selbst abschalten.
Sämtliche Redstonetechnik zum Schutz des eigenen WarShips muss ihre Aktivität vor dem Verteilen der Kits eingestellt haben.
Raketen und Flugmaschinen
Ein WarShip darf sich maximal 12 Block vom Technikbereich an weit ausfahren, davon ausgenommen sind Raketen und Flugmaschinen. Raketen und Flugmaschinen dürfen sich im Flug nicht in mehrere Schleim/Honigfahrzeuge aufteilen.
Flugmaschinen sind Schleim/Honigfahrzeuge, welche die Ausfahrmaße des WarShips verlassen und kein TNT zum Gegner transportieren. Flugmaschinen, welche TNT von Raketen zünden oder Flugmaschinen und/oder Raketen stoppen werden bei der Bestimmung der Anzahl nicht gezählt. Es dürfen maximal 8 Flugmaschinen pro Seite verbaut werden.
Eine Rakete ist ein Schleim/Honigfahrzeug, das TNT zum Gegner transportiert. Es dürfen maximal 12 Raketen pro Seite verbaut werden. Ein Raketenmagazin ist in der Lage, mehrere Raketen auf der nahezu gleichen Flugbahn zum Gegner zu schicken. Ein Raketenmagazin wird wie 2 Raketen gewertet.
Es dürften maximal 1000 der vorverbauten Slime- + Honig- + TNT-Blöcke das WarShip in Flugmaschinen und Raketen verlassen.
## Kampfablauf
60 Sekunden vor Kampfbeginn können Flugmaschinen und Raketen das eigene WarShip verlassen. Mit Kampfbeginn dürfen Blöcke abgebaut und platziert werden; TNT-Schaden wird aktiviert. 10 Minuten nach Kampfbeginn wird das Entern des feindlichen WarShips erlaubt. Spieler mit einem Kit, welches TNT beladen kann und nicht dem Kapitän zugeordnet ist, dürfen erst 15 Minuten nach Kampfbeginn entern.
Der Kampf endet, wenn:
- Der Kampf länger als 20 Minuten dauert
- Der Anführer eines Teams tot ist
- Ein WarShip zu 7% beschädigt wurde

19
src/env.d.ts vendored
Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
/// <reference path="../.astro/types.d.ts" /> /// <reference path="../.astro/types.d.ts" />
/// <reference types="astro/client" /> /// <reference types="astro/client" />

Datei anzeigen

@ -27,12 +27,12 @@ const { title } = Astro.props;
</a> </a>
<div class="flex justify-center flex-wrap"> <div class="flex justify-center flex-wrap">
<div class="btn-dropdown my-1"> <div class="btn-dropdown my-1">
<div class="btn btn-gray" tabindex="0"> <button class="btn btn-gray">
<a href={l("/")}> <a href={l("/")}>
<span class="btn__text">{t("navbar.links.home.title")}</span> <span class="btn__text">{t("navbar.links.home.title")}</span>
</a> </a>
<CaretDownOutline class="ml-2 mt-auto" /> <CaretDownOutline class="ml-2 mt-auto" />
</div> </button>
<div> <div>
<a class="btn btn-gray my-1" href={l("/announcements")}>{t("navbar.links.home.announcements")}</a> <a class="btn btn-gray my-1" href={l("/announcements")}>{t("navbar.links.home.announcements")}</a>
<a class="btn btn-gray" href={l("/about")}>{t("navbar.links.home.about")}</a> <a class="btn btn-gray" href={l("/about")}>{t("navbar.links.home.about")}</a>
@ -41,12 +41,12 @@ const { title } = Astro.props;
</div> </div>
</div> </div>
<div class="btn-dropdown my-1"> <div class="btn-dropdown my-1">
<div class="btn btn-gray" tabindex="0"> <button class="btn btn-gray">
<a rel="prefetch" href={l("/rules")}> <a rel="prefetch" href={l("/rules")}>
<span class="btn__text">{t("navbar.links.rules.title")}</span> <span class="btn__text">{t("navbar.links.rules.title")}</span>
</a> </a>
<CaretDownOutline class="ml-2 mt-auto" /> <CaretDownOutline class="ml-2 mt-auto" />
</div> </button>
<div> <div>
<h2 class="px-2 text-gray-300">{t("navbar.links.rules.gamemode")}</h2> <h2 class="px-2 text-gray-300">{t("navbar.links.rules.gamemode")}</h2>
<a href={l("/rules/wargear")} class="btn btn-gray">{t("navbar.links.rules.wg")}</a> <a href={l("/rules/wargear")} class="btn btn-gray">{t("navbar.links.rules.wg")}</a>
@ -107,7 +107,7 @@ const { title } = Astro.props;
<main class="flex-1"> <main class="flex-1">
<slot /> <slot />
</main> </main>
<footer class="bg-gray-900 w-screen min-h-80 mt-4 rounded-t-2xl flex flex-col dark:bg-neutral-900"> <footer class="bg-gray-900 w-screen min-h-80 mt-4 pb-2 rounded-t-2xl flex flex-col dark:bg-neutral-900">
<div class="flex-1 flex justify-evenly items-center md:items-start mt-4 md:flex-row flex-col"> <div class="flex-1 flex justify-evenly items-center md:items-start mt-4 md:flex-row flex-col">
<div class="footer-card"> <div class="footer-card">
<h1>Serverstatus</h1> <h1>Serverstatus</h1>
@ -130,7 +130,7 @@ const { title } = Astro.props;
<a class="flex" href="/"><DiscordSolid class="mr-2" /> Discord</a> <a class="flex" href="/"><DiscordSolid class="mr-2" /> Discord</a>
</div> </div>
</div> </div>
<span class="text-sm text-white text-center">© SteamWar.de - {new Date().getFullYear()}</span> <span class="text-sm text-white text-center mt-1">© SteamWar.de - Made with ❤️ by Chaoscaot</span>
</footer> </footer>
</div> </div>
</Fragment> </Fragment>

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import { sequence } from "astro/middleware" import { sequence } from "astro/middleware"
import { useAstroI18n } from "astro-i18n" import { useAstroI18n } from "astro-i18n"

Datei anzeigen

@ -4,26 +4,37 @@ import {getCollection, CollectionEntry} from "astro:content";
import PageLayout from "../../layouts/PageLayout.astro"; import PageLayout from "../../layouts/PageLayout.astro";
import {TagSolid, CalendarMonthSolid} from "flowbite-svelte-icons" import {TagSolid, CalendarMonthSolid} from "flowbite-svelte-icons"
import TagComponent from "../../components/TagComponent.astro"; import TagComponent from "../../components/TagComponent.astro";
import {l} from "../../util/util";
import {capitalize} from "../../components/admin/util";
export const getStaticPaths = createGetStaticPaths(async () => { export const getStaticPaths = createGetStaticPaths(async () => {
const posts = await getCollection('announcements', entry => entry.id.split('/')[0] === astroI18n.locale) const posts = await getCollection('announcements', entry => entry.id.split('/')[0] === astroI18n.locale);
const germanPosts = await getCollection('announcements', entry => entry.id.split('/')[0] === 'de');
germanPosts.forEach(value => {
if (posts.find(post => post.data.key === value.data.key)) {
return
} else {
posts.push(value)
}
})
return posts.map(value => ({ return posts.map(value => ({
params: { params: {
slug: value.slug.split("/").slice(1).join("/") slug: value.slug.split("/").slice(1).join("/")
}, },
props: { props: {
post: value post: value,
german: value.id.split('/')[0] != astroI18n.locale
} }
})) }))
}) })
interface Props { interface Props {
post: CollectionEntry<'announcements'> post: CollectionEntry<'announcements'>,
german: boolean
} }
const {post} = Astro.props; const {post, german} = Astro.props;
const { Content } = await post.render(); const { Content } = await post.render();
--- ---
@ -37,7 +48,7 @@ const { Content } = await post.render();
month: 'short', month: 'short',
year: 'numeric' year: 'numeric'
}).format(post.data.created)} </h5> }).format(post.data.created)} </h5>
{post.data.german && ( {german && (
<div class="bg-yellow-100 border-l-4 border-yellow-500 text-yellow-700 p-4" role="alert"> <div class="bg-yellow-100 border-l-4 border-yellow-500 text-yellow-700 p-4" role="alert">
<div class="font-bold">{t("warning.title", {}, {route: "/rules"})}</div> <div class="font-bold">{t("warning.title", {}, {route: "/rules"})}</div>
<div>{t("warning.text", {}, {route: "/rules"})}</div> <div>{t("warning.text", {}, {route: "/rules"})}</div>
@ -111,6 +122,10 @@ const { Content } = await post.render();
<style is:global> <style is:global>
article { article {
fight-table, group-table {
display: contents;
}
>* { >* {
all: revert; all: revert;
} }

Datei anzeigen

@ -3,10 +3,25 @@ import { getCollection } from "astro:content"
import PageLayout from "../../layouts/PageLayout.astro"; import PageLayout from "../../layouts/PageLayout.astro";
import {astroI18n, t} from "astro-i18n"; import {astroI18n, t} from "astro-i18n";
import PostComponent from "../../components/PostComponent.astro"; import PostComponent from "../../components/PostComponent.astro";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
const posts = (await getCollection("announcements", (entry) => entry.id.split("/")[0] === astroI18n.locale)) async function getPosts() {
.sort((a, b) => dayjs(b.data.created).unix() - dayjs(a.data.created).unix()); const posts = await getCollection('announcements', entry => entry.id.split('/')[0] === astroI18n.locale);
const germanPosts = await getCollection('announcements', entry => entry.id.split('/')[0] === 'de');
germanPosts.forEach(value => {
if (posts.find(post => post.data.key === value.data.key)) {
return
} else {
posts.push(value)
}
})
return posts.sort((a, b) => dayjs(b.data.created).unix() - dayjs(a.data.created).unix()).filter((value, index) => index < 20);
}
const posts = await getPosts();
--- ---

Datei anzeigen

@ -5,11 +5,24 @@ import {getCollection} from "astro:content";
import PageLayout from "../../../layouts/PageLayout.astro"; import PageLayout from "../../../layouts/PageLayout.astro";
import {capitalize} from "../../../components/admin/util"; import {capitalize} from "../../../components/admin/util";
import PostComponent from "../../../components/PostComponent.astro"; import PostComponent from "../../../components/PostComponent.astro";
import * as dayjs from "dayjs"; import dayjs from "dayjs";
export const getStaticPaths = createGetStaticPaths(async () => { export const getStaticPaths = createGetStaticPaths(async () => {
const posts = (await getCollection('announcements', entry => entry.id.split("/")[0] === astroI18n.locale)) let posts = (await getCollection('announcements', entry => entry.id.split("/")[0] === astroI18n.locale));
.sort((a, b) => dayjs(b.data.created).unix() - dayjs(a.data.created).unix());
const germanPosts = await getCollection('announcements', entry => entry.id.split('/')[0] === 'de');
posts.sort((a, b) => dayjs(b.data.created).unix() - dayjs(a.data.created).unix());
germanPosts.forEach(value => {
if (posts.find(post => post.data.key === value.data.key)) {
return
} else {
posts.push(value)
}
})
posts = posts.filter((value, index) => index < 20)
let groupedByTags: Record<string, CollectionEntry<'announcements'>[]> = {} let groupedByTags: Record<string, CollectionEntry<'announcements'>[]> = {}
posts.forEach(post => { posts.forEach(post => {

Datei anzeigen

@ -6,23 +6,34 @@ import PageLayout from "../../layouts/PageLayout.astro";
export const getStaticPaths = createGetStaticPaths(async () => { export const getStaticPaths = createGetStaticPaths(async () => {
let posts = await getCollection("rules", value => value.id.split("/")[0] === astroI18n.locale); let posts = await getCollection("rules", value => value.id.split("/")[0] === astroI18n.locale);
const germanPosts = await getCollection('rules', entry => entry.id.split('/')[0] === 'de');
germanPosts.forEach(value => {
if (posts.find(post => post.id.split("/")[1] === value.id.split("/")[1])) {
return
} else {
posts.push(value)
}
})
return posts.map((page) => ({ return posts.map((page) => ({
props: { page }, params: { mode: page.slug.split("/")[1] } props: { page, german: page.id.split("/")[0] != astroI18n.locale }, params: { mode: page.slug.split("/")[1] }
})) }))
}) })
interface Props { interface Props {
page: CollectionEntry<"rules"> page: CollectionEntry<"rules">,
german: boolean
} }
const { page } = Astro.props; const { page, german } = Astro.props;
const { Content } = await page.render(); const { Content } = await page.render();
--- ---
<PageLayout title={t("title", {mode: t(`${page.data.translationKey}.title`, {}, {route: "/rules"})}, {route: "/rules"})}> <PageLayout title={t("title", {mode: t(`${page.data.translationKey}.title`, {}, {route: "/rules"})}, {route: "/rules"})}>
<article> <article>
{page.data.german && ( {german && (
<div class="bg-yellow-100 border-l-4 border-yellow-500 text-yellow-700 p-4" role="alert"> <div class="bg-yellow-100 border-l-4 border-yellow-500 text-yellow-700 p-4" role="alert">
<div class="font-bold">{t("warning.title", {}, {route: "/rules"})}</div> <div class="font-bold">{t("warning.title", {}, {route: "/rules"})}</div>
<div>{t("warning.text", {}, {route: "/rules"})}</div> <div>{t("warning.text", {}, {route: "/rules"})}</div>

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
.btn { .btn {
@apply bg-yellow-400 font-bold py-2 px-4 rounded cursor-pointer select-none mx-2 text-black flex flex-row; @apply bg-yellow-400 font-bold py-2 px-4 rounded cursor-pointer select-none mx-2 text-black flex flex-row;
@apply hover:bg-yellow-300 hover:text-black hover:shadow-2xl hover:scale-105; @apply hover:bg-yellow-300 hover:text-black hover:shadow-2xl hover:scale-105;

Datei anzeigen

@ -1,3 +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 <https://www.gnu.org/licenses/>.
*/
import { l as proxyL } from 'astro-i18n' import { l as proxyL } from 'astro-i18n'
const locales = ["de"]; const locales = ["de"];