Download and Rules
This commit is contained in:
@ -54,7 +54,7 @@
|
||||
<button class="btn mt-4 !mx-0 justify-center" type="submit" on:click|preventDefault={login}>{t("login.submit")}</button>
|
||||
</form>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="postcss">
|
||||
input {
|
||||
@apply border-2 rounded-md p-2 shadow-2xl w-80
|
||||
dark:bg-neutral-800
|
||||
|
||||
@ -59,7 +59,7 @@ async function deleteBranch(con: boolean = false) {
|
||||
async function createFile() {
|
||||
let name = prompt("File name:", "pages/en/[Name]")
|
||||
if (name) {
|
||||
await $pageRepo.createFile(`${name}.md`, selectedBranch)
|
||||
await $pageRepo.createFile(`${name}`, selectedBranch)
|
||||
reload()
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,14 +99,14 @@
|
||||
<SchematicInfo schematicId={infoModalId} on:reset={() => infoModalId = null} />
|
||||
{/if}
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="postcss">
|
||||
table {
|
||||
@apply w-full;
|
||||
}
|
||||
|
||||
tr {
|
||||
@apply transition-colors cursor-pointer border-b
|
||||
dark:hover:bg-gray-800 hover:bg-gray-300;
|
||||
dark:hover:bg-gray-800 hover:bg-gray-300;
|
||||
}
|
||||
|
||||
th {
|
||||
|
||||
@ -41,9 +41,21 @@ export const modes = defineCollection({
|
||||
})
|
||||
})
|
||||
|
||||
export const downloads = defineCollection({
|
||||
type: "data",
|
||||
schema: z.object({
|
||||
name: z.string(),
|
||||
description: z.string(),
|
||||
url: z.string().url()
|
||||
.or(z.record(z.string(), z.string())),
|
||||
sourceUrl: z.string().url().optional(),
|
||||
})
|
||||
})
|
||||
|
||||
export const collections = {
|
||||
'pages': pages,
|
||||
'help': help,
|
||||
'event': event,
|
||||
'modes': modes
|
||||
'modes': modes,
|
||||
'downloads': downloads
|
||||
}
|
||||
|
||||
9
src/content/downloads/advancedscripts.json
Normal file
9
src/content/downloads/advancedscripts.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "AdvancedScripts",
|
||||
"description": "Ein Fabric-Mod, der für den BauServer von SteamWar Hotkeys für das ScriptSystem hinzufügt. Hierzu werden die einzelnen Zeichen an den Server gesendet und vom Server verarbeitet.",
|
||||
"url": {
|
||||
"1.20.1": "https://steamwar.de/AdvancedScriptsV3",
|
||||
"1.19": "https://steamwar.de/AdvancedScripts"
|
||||
},
|
||||
"sourceUrl": "https://steamwar.de/devlabs/SteamWar/AdvancedScripts"
|
||||
}
|
||||
6
src/content/downloads/modsender.json
Normal file
6
src/content/downloads/modsender.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "FabricModSender",
|
||||
"description": "Ein Fabric-Mod, der SteamWar beim Serverjoin die von dir installierten Mods sendet und es uns damit ermöglicht, sie auf schädliche Mods zu überprüfen. Eine Installation dieses Mods ermöglicht dir das Joinen von Arenen mit Fabric auf SteamWar.",
|
||||
"url": "https://steamwar.de/FabricModSender",
|
||||
"sourceUrl": "https://steamwar.de/devlabs/SteamWar/FabricModSender"
|
||||
}
|
||||
9
src/content/downloads/teamserver.json
Normal file
9
src/content/downloads/teamserver.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "SteamWarTeamserver",
|
||||
"description": "Dieses Plugin ermöglicht die einfache Einbindung deines Servers in SteamWar. Wie du deinen (Team-)Server über SteamWar erreichbar machen kannst findest du hier.",
|
||||
"url": {
|
||||
"Info": "/teamserverintegration",
|
||||
"Download": "https://steamwar.de/SteamWarTeamserver"
|
||||
},
|
||||
"sourceUrl": "https://steamwar.de/devlabs/SteamWar/SteamWarBungeeTeamserver"
|
||||
}
|
||||
4
src/env.d.ts
vendored
4
src/env.d.ts
vendored
@ -10,9 +10,9 @@
|
||||
type PrimaryLocale = "en"
|
||||
type SecondaryLocale = "de"
|
||||
type Locale = PrimaryLocale | SecondaryLocale
|
||||
type RouteParameters = {"/dashboard":undefined;"/":undefined;"/login":undefined;"/rules":undefined;"/[...slug]":{"slug":unknown;};"/admin":undefined;"/help":undefined;"/help/[...slug]":{"slug":unknown;};}
|
||||
type RouteParameters = {"/dashboard":undefined;"/downloads":undefined;"/":undefined;"/login":undefined;"/rules":undefined;"/[...slug]":{"slug":unknown;};"/admin":undefined;"/help":undefined;"/help/[...slug]":{"slug":unknown;};}
|
||||
type Route = keyof RouteParameters
|
||||
type TranslationVariables = {"dashboard.title":{"name"?:unknown;}|undefined;"dashboard.rank":{"rank"?:unknown;}|undefined;"dashboard.permissions":object|undefined;"dashboard.buttons.logout":object|undefined;"dashboard.buttons.admin":object|undefined;"dashboard.schematic.upload":object|undefined;"dashboard.schematic.home":object|undefined;"dashboard.schematic.dir":object|undefined;"dashboard.schematic.head.type":object|undefined;"dashboard.schematic.head.name":object|undefined;"dashboard.schematic.head.owner":object|undefined;"dashboard.schematic.head.updated":object|undefined;"dashboard.schematic.head.replaceColor":object|undefined;"dashboard.schematic.head.allowReplay":object|undefined;"dashboard.schematic.info.path":{"path"?:unknown;}|undefined;"dashboard.schematic.info.replaceColor":object|undefined;"dashboard.schematic.info.allowReplay":object|undefined;"dashboard.schematic.info.type":{"type"?:unknown;}|undefined;"dashboard.schematic.info.updated":{"updated"?:unknown;}|undefined;"dashboard.schematic.info.item":{"item"?:unknown;}|undefined;"dashboard.schematic.info.members":{"members"?:unknown;}|undefined;"dashboard.schematic.info.btn.download":object|undefined;"dashboard.schematic.info.btn.close":object|undefined;"login.title":object|undefined;"login.placeholder.username":object|undefined;"login.placeholder.token":object|undefined;"login.label.username":object|undefined;"login.label.token":object|undefined;"login.generateToken":object|undefined;"login.submit":object|undefined;"wg.title":object|undefined;"wg.description":object|undefined;"as.title":object|undefined;"as.description":object|undefined;"ws.title":object|undefined;"ws.description":object|undefined;"mwg.title":object|undefined;"mwg.description":object|undefined;"rules":object|undefined;"council":object|undefined;"ranking":object|undefined;"navbar.title":object|undefined;"navbar.logo.alt":object|undefined;"navbar.links.home.title":object|undefined;"navbar.links.home.announcements":object|undefined;"navbar.links.home.about":object|undefined;"navbar.links.home.downloads":object|undefined;"navbar.links.home.faq":object|undefined;"navbar.links.rules.title":object|undefined;"navbar.links.rules.gamemode":object|undefined;"navbar.links.rules.wg":object|undefined;"navbar.links.rules.mwg":object|undefined;"navbar.links.rules.ws":object|undefined;"navbar.links.rules.as":object|undefined;"navbar.links.rules.rotating":object|undefined;"navbar.links.rules.megawg":object|undefined;"navbar.links.rules.micro":object|undefined;"navbar.links.rules.sf":object|undefined;"navbar.links.rules.general":object|undefined;"navbar.links.rules.coc":object|undefined;"navbar.links.help.title":object|undefined;"navbar.links.help.center":object|undefined;"navbar.links.help.docs":object|undefined;"navbar.links.account":object|undefined;"status.loading":object|undefined;"status.status":object|undefined;"status.online":object|undefined;"status.offline":object|undefined;"status.players":{"count"?:unknown;}|undefined;"status.version":{"version"?:unknown;}|undefined;"home.page":object|undefined;"home.title.first":object|undefined;"home.title.second":object|undefined;"home.subtitle.1":object|undefined;"home.subtitle.2":object|undefined;"home.subtitle.3":object|undefined;"home.join":object|undefined;"home.benefits.historic.title":object|undefined;"home.benefits.historic.description.1":object|undefined;"home.benefits.historic.description.2":object|undefined;"home.benefits.server.title":object|undefined;"home.benefits.server.description":object|undefined;"home.benefits.events.title":object|undefined;"home.benefits.events.description.1":object|undefined;"home.benefits.events.description.2":object|undefined;"home.prefix.Admin":object|undefined;"home.prefix.Dev":object|undefined;"home.prefix.Mod":object|undefined;"home.prefix.Sup":object|undefined;"home.prefix.Arch":object|undefined;"footer.imprint":object|undefined;"footer.privacy":object|undefined;"footer.coc":object|undefined;"footer.stats":object|undefined;"footer.gamemodes":object|undefined;"footer.announcements":object|undefined;"footer.join":object|undefined;}
|
||||
type TranslationVariables = {"dashboard.page":object|undefined;"dashboard.title":{"name"?:unknown;}|undefined;"dashboard.rank":{"rank"?:unknown;}|undefined;"dashboard.permissions":object|undefined;"dashboard.buttons.logout":object|undefined;"dashboard.buttons.admin":object|undefined;"dashboard.schematic.upload":object|undefined;"dashboard.schematic.home":object|undefined;"dashboard.schematic.dir":object|undefined;"dashboard.schematic.head.type":object|undefined;"dashboard.schematic.head.name":object|undefined;"dashboard.schematic.head.owner":object|undefined;"dashboard.schematic.head.updated":object|undefined;"dashboard.schematic.head.replaceColor":object|undefined;"dashboard.schematic.head.allowReplay":object|undefined;"dashboard.schematic.info.path":{"path"?:unknown;}|undefined;"dashboard.schematic.info.replaceColor":object|undefined;"dashboard.schematic.info.allowReplay":object|undefined;"dashboard.schematic.info.type":{"type"?:unknown;}|undefined;"dashboard.schematic.info.updated":{"updated"?:unknown;}|undefined;"dashboard.schematic.info.item":{"item"?:unknown;}|undefined;"dashboard.schematic.info.members":{"members"?:unknown;}|undefined;"dashboard.schematic.info.btn.download":object|undefined;"dashboard.schematic.info.btn.close":object|undefined;"login.page":object|undefined;"login.title":object|undefined;"login.placeholder.username":object|undefined;"login.placeholder.token":object|undefined;"login.label.username":object|undefined;"login.label.token":object|undefined;"login.generateToken":object|undefined;"login.submit":object|undefined;"login.error":object|undefined;"page":object|undefined;"wg.title":object|undefined;"wg.description":object|undefined;"as.title":object|undefined;"as.description":object|undefined;"ws.title":object|undefined;"ws.description":object|undefined;"mwg.title":object|undefined;"mwg.description":object|undefined;"rules":object|undefined;"council":object|undefined;"ranking":object|undefined;"navbar.title":object|undefined;"navbar.logo.alt":object|undefined;"navbar.links.home.title":object|undefined;"navbar.links.home.announcements":object|undefined;"navbar.links.home.about":object|undefined;"navbar.links.home.downloads":object|undefined;"navbar.links.home.faq":object|undefined;"navbar.links.rules.title":object|undefined;"navbar.links.rules.gamemode":object|undefined;"navbar.links.rules.wg":object|undefined;"navbar.links.rules.mwg":object|undefined;"navbar.links.rules.ws":object|undefined;"navbar.links.rules.as":object|undefined;"navbar.links.rules.rotating":object|undefined;"navbar.links.rules.megawg":object|undefined;"navbar.links.rules.micro":object|undefined;"navbar.links.rules.sf":object|undefined;"navbar.links.rules.general":object|undefined;"navbar.links.rules.coc":object|undefined;"navbar.links.help.title":object|undefined;"navbar.links.help.center":object|undefined;"navbar.links.help.docs":object|undefined;"navbar.links.account":object|undefined;"status.loading":object|undefined;"status.status":object|undefined;"status.online":object|undefined;"status.offline":object|undefined;"status.players":{"count"?:unknown;}|undefined;"status.version":{"version"?:unknown;}|undefined;"home.page":object|undefined;"home.title.first":object|undefined;"home.title.second":object|undefined;"home.subtitle.1":object|undefined;"home.subtitle.2":object|undefined;"home.subtitle.3":object|undefined;"home.join":object|undefined;"home.benefits.historic.title":object|undefined;"home.benefits.historic.description.1":object|undefined;"home.benefits.historic.description.2":object|undefined;"home.benefits.server.title":object|undefined;"home.benefits.server.description":object|undefined;"home.benefits.events.title":object|undefined;"home.benefits.events.description.1":object|undefined;"home.benefits.events.description.2":object|undefined;"home.prefix.Admin":object|undefined;"home.prefix.Dev":object|undefined;"home.prefix.Mod":object|undefined;"home.prefix.Sup":object|undefined;"home.prefix.Arch":object|undefined;"footer.imprint":object|undefined;"footer.privacy":object|undefined;"footer.coc":object|undefined;"footer.stats":object|undefined;"footer.gamemodes":object|undefined;"footer.announcements":object|undefined;"footer.join":object|undefined;}
|
||||
type Translation = keyof TranslationVariables
|
||||
type Environment = "none"|"node"|"browser"
|
||||
declare module "astro-i18n" {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"page": "SteamWar - Dashboard",
|
||||
"title": "Hello, {# name #}!",
|
||||
"rank": "Rank: {# rank #}",
|
||||
"permissions": "Permssions:",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"login": {
|
||||
"page": "SteamWar - Login",
|
||||
"title": "Login",
|
||||
"placeholder": {
|
||||
"username": "Username...",
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
{
|
||||
"page": "SteamWar - Regelwerke",
|
||||
"wg": {
|
||||
"description": "Heute werden die Schlachtfelder der Erde von schwerem Geschütz bestimmt. Mit unserem traditionellen Regelwerk sind auch die WarGears arenenverwüstende Schwergewichte. Aufgrund der Kanonentechnik mit den meisten Projektilen erwarten dich bei WarGears harte und kurzweilige Kämpfe."
|
||||
},
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
{
|
||||
"page": "SteamWar - Rules",
|
||||
"wg": {
|
||||
"title": "WarGears",
|
||||
"description": "Today, the battlefields of Earth are dominated by heavy artillery. With our traditional rules, WarGears are also arena-wrecking heavyweights. Due to the cannon technology with the most projectiles, you can expect hard and short-lived battles in WarGears."
|
||||
|
||||
@ -36,7 +36,7 @@ const { title } = Astro.props;
|
||||
<div>
|
||||
<a class="btn btn-gray my-1" href={l("/")}>{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">{t("navbar.links.home.downloads")}</a>
|
||||
<a class="btn btn-gray" href={l("/downloads")}>{t("navbar.links.home.downloads")}</a>
|
||||
<a class="btn btn-gray" href={l("/faq")}>{t("navbar.links.home.faq")}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -3,9 +3,10 @@ import Dashboard from "../components/Dashboard.svelte";
|
||||
import {AES} from "crypto-js";
|
||||
import {l} from "../util/util";
|
||||
import PageLayout from "../layouts/PageLayout.astro";
|
||||
import {t} from "astro-i18n";
|
||||
---
|
||||
|
||||
<PageLayout title="Dashboard">
|
||||
<PageLayout title={t("dashboard.page")}>
|
||||
<script>
|
||||
import {AES} from "crypto-js";
|
||||
import {l} from "../util/util";
|
||||
|
||||
27
src/pages/downloads.astro
Normal file
27
src/pages/downloads.astro
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
import PageLayout from "../layouts/PageLayout.astro";
|
||||
import {getCollection} from "astro:content";
|
||||
import {t} from "astro-i18n";
|
||||
|
||||
const downloads = await getCollection("downloads");
|
||||
---
|
||||
|
||||
<PageLayout title="Downloads">
|
||||
{downloads.map(e => (
|
||||
<div class="pt-4">
|
||||
<h1 class="font-bold text-6xl">{e.data.name}</h1>
|
||||
<div class="py-4">{t(e.data.description)}</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
{typeof e.data.url === 'object' ?
|
||||
Object.entries(e.data.url).map(value => (
|
||||
<a href={value[1]} class="text-blue-500 hover:underline w-fit">{t(value[0])}</a>
|
||||
))
|
||||
:
|
||||
<a href={e.data.url} class="text-blue-500 hover:underline w-fit">{t("Download")}</a>
|
||||
}
|
||||
{e.data.sourceUrl ? <a class="text-blue-500 hover:underline w-fit" href={e.data.sourceUrl}>Quelle</a> : null}
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</PageLayout>
|
||||
@ -2,9 +2,12 @@
|
||||
import {l} from "../util/util";
|
||||
import Login from "../components/Login.svelte";
|
||||
import NavbarLayout from "../layouts/NavbarLayout.astro";
|
||||
import {t} from "astro-i18n";
|
||||
import {Image} from "astro:assets";
|
||||
import localBau from "../images/2023-10-08_20.43.43.png";
|
||||
---
|
||||
|
||||
<NavbarLayout title="Login">
|
||||
<NavbarLayout title={t("login.page")}>
|
||||
<script>
|
||||
import {l} from "../util/util";
|
||||
import {AES} from "crypto-js";
|
||||
@ -13,5 +16,9 @@ import NavbarLayout from "../layouts/NavbarLayout.astro";
|
||||
window.location.href = l("/dashboard");
|
||||
}
|
||||
</script>
|
||||
<Login client:load />
|
||||
<Image src={localBau} alt="Bau" width="1920" height="1080" class="w-screen h-screen dark:brightness-75 fixed -z-10 object-cover" draggable="false" />
|
||||
<div class="h-screen mx-auto p-8 rounded-b-md shadow-md pt-40 sm:pt-28 md:pt-14 flex flex-col justify-center items-center
|
||||
dark:text-white " style="width: min(100vw, 75em);">
|
||||
<Login client:load />
|
||||
</div>
|
||||
</NavbarLayout>
|
||||
@ -7,6 +7,7 @@ import ws from "../images/WarShips.png"
|
||||
import {t} from "astro-i18n";
|
||||
import {getCollection} from "astro:content";
|
||||
import PageLayout from "../layouts/PageLayout.astro";
|
||||
import {Image} from "astro:assets";
|
||||
|
||||
const imageMap = {
|
||||
"wg": wg,
|
||||
@ -18,7 +19,7 @@ const imageMap = {
|
||||
const modes = await getCollection("modes", entry => entry.data.main)
|
||||
---
|
||||
|
||||
<PageLayout title="Rules">
|
||||
<PageLayout title={t("page")}>
|
||||
{modes.map(value => (
|
||||
<div class="dark:bg-neutral-800 rounded-md p-4 border border-neutral-400 shadow-md my-4 flex flex-col
|
||||
md:flex-row">
|
||||
|
||||
Reference in New Issue
Block a user