Merge pull request #22 from ProjectSegfault/refactor

Refactor
This commit is contained in:
Akis 2022-07-06 19:06:10 +03:00 committed by GitHub
commit 0c9e5ff8b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 592 additions and 756 deletions

View File

@ -2,10 +2,10 @@
"name": "project-segfault-website", "name": "project-segfault-website",
"version": "2.0.0", "version": "2.0.0",
"scripts": { "scripts": {
"dev": "svelte-kit dev --host", "dev": "vite",
"build": "svelte-kit build", "build": "vite build",
"package": "svelte-kit package", "package": "svelte-kit package",
"preview": "svelte-kit preview", "preview": "vite preview",
"prepare": "svelte-kit sync", "prepare": "svelte-kit sync",
"check": "svelte-check --tsconfig ./tsconfig.json", "check": "svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch", "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
@ -17,16 +17,17 @@
"@iconify-json/simple-icons": "^1.1.15", "@iconify-json/simple-icons": "^1.1.15",
"@sveltejs/adapter-static": "next", "@sveltejs/adapter-static": "next",
"@sveltejs/kit": "next", "@sveltejs/kit": "next",
"mdsvex": "^0.10.6",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"prettier-plugin-svelte": "^2.7.0", "prettier-plugin-svelte": "^2.7.0",
"svelte": "^3.48.0", "svelte": "^3.48.0",
"svelte-check": "^2.7.2", "svelte-check": "^2.7.2",
"svelte-preprocess": "^4.10.7", "svelte-preprocess": "^4.10.7",
"svelte-seo": "^1.4.1", "svelte-seo": "^1.4.1",
"sveltekit-i18n": "^2.2.2",
"tslib": "^2.4.0", "tslib": "^2.4.0",
"typescript": "^4.7.4", "typescript": "^4.7.4",
"unplugin-icons": "^0.14.5" "unplugin-icons": "^0.14.5",
"vite": "^2.9.13"
}, },
"type": "module" "type": "module"
} }

View File

@ -5,32 +5,34 @@ specifiers:
'@iconify-json/simple-icons': ^1.1.15 '@iconify-json/simple-icons': ^1.1.15
'@sveltejs/adapter-static': next '@sveltejs/adapter-static': next
'@sveltejs/kit': next '@sveltejs/kit': next
mdsvex: ^0.10.6
prettier: ^2.7.1 prettier: ^2.7.1
prettier-plugin-svelte: ^2.7.0 prettier-plugin-svelte: ^2.7.0
svelte: ^3.48.0 svelte: ^3.48.0
svelte-check: ^2.7.2 svelte-check: ^2.7.2
svelte-preprocess: ^4.10.7 svelte-preprocess: ^4.10.7
svelte-seo: ^1.4.1 svelte-seo: ^1.4.1
sveltekit-i18n: ^2.2.2
tslib: ^2.4.0 tslib: ^2.4.0
typescript: ^4.7.4 typescript: ^4.7.4
unplugin-icons: ^0.14.5 unplugin-icons: ^0.14.5
vite: ^2.9.13
devDependencies: devDependencies:
'@iconify-json/fa6-solid': 1.1.4 '@iconify-json/fa6-solid': 1.1.4
'@iconify-json/simple-icons': 1.1.15 '@iconify-json/simple-icons': 1.1.15
'@sveltejs/adapter-static': 1.0.0-next.34 '@sveltejs/adapter-static': 1.0.0-next.34
'@sveltejs/kit': 1.0.0-next.352_svelte@3.48.0 '@sveltejs/kit': 1.0.0-next.360_svelte@3.48.0+vite@2.9.13
mdsvex: 0.10.6_svelte@3.48.0
prettier: 2.7.1 prettier: 2.7.1
prettier-plugin-svelte: 2.7.0_prettier@2.7.1+svelte@3.48.0 prettier-plugin-svelte: 2.7.0_prettier@2.7.1+svelte@3.48.0
svelte: 3.48.0 svelte: 3.48.0
svelte-check: 2.7.2_svelte@3.48.0 svelte-check: 2.7.2_svelte@3.48.0
svelte-preprocess: 4.10.7_svelte@3.48.0+typescript@4.7.4 svelte-preprocess: 4.10.7_svelte@3.48.0+typescript@4.7.4
svelte-seo: 1.4.1_typescript@4.7.4 svelte-seo: 1.4.1_typescript@4.7.4
sveltekit-i18n: 2.2.2_svelte@3.48.0
tslib: 2.4.0 tslib: 2.4.0
typescript: 4.7.4 typescript: 4.7.4
unplugin-icons: 0.14.5 unplugin-icons: 0.14.5_vite@2.9.13
vite: 2.9.13
packages: packages:
@ -125,27 +127,25 @@ packages:
tiny-glob: 0.2.9 tiny-glob: 0.2.9
dev: true dev: true
/@sveltejs/kit/1.0.0-next.352_svelte@3.48.0: /@sveltejs/kit/1.0.0-next.360_svelte@3.48.0+vite@2.9.13:
resolution: {integrity: sha512-cYQWGZ2TU1iMsh1cqi44FJm5Aqs3iOkuUOnRpoecthcbmiZaqkD1sPG/uROBIPexXSbfyUfrck/hgr9vdCAmCw==} resolution: {integrity: sha512-z1W6oYSmDzYcjlXANkbsb0N0IS/0aDl0huzDGRZWXobis4VmzoqzOyxsczyvxwH6FWxQBXls5wNrtm6drzsr6A==}
engines: {node: '>=16.7'} engines: {node: '>=16.7'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
svelte: ^3.44.0 svelte: ^3.44.0
vite: ^2.9.10
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 1.0.0-next.49_svelte@3.48.0+vite@2.9.12 '@sveltejs/vite-plugin-svelte': 1.0.0-next.49_svelte@3.48.0+vite@2.9.13
chokidar: 3.5.3 chokidar: 3.5.3
sade: 1.8.1 sade: 1.8.1
svelte: 3.48.0 svelte: 3.48.0
vite: 2.9.12 vite: 2.9.13
transitivePeerDependencies: transitivePeerDependencies:
- diff-match-patch - diff-match-patch
- less
- sass
- stylus
- supports-color - supports-color
dev: true dev: true
/@sveltejs/vite-plugin-svelte/1.0.0-next.49_svelte@3.48.0+vite@2.9.12: /@sveltejs/vite-plugin-svelte/1.0.0-next.49_svelte@3.48.0+vite@2.9.13:
resolution: {integrity: sha512-AKh0Ka8EDgidnxWUs8Hh2iZLZovkETkefO99XxZ4sW4WGJ7VFeBx5kH/NIIGlaNHLcrIvK3CK0HkZwC3Cici0A==} resolution: {integrity: sha512-AKh0Ka8EDgidnxWUs8Hh2iZLZovkETkefO99XxZ4sW4WGJ7VFeBx5kH/NIIGlaNHLcrIvK3CK0HkZwC3Cici0A==}
engines: {node: ^14.13.1 || >= 16} engines: {node: ^14.13.1 || >= 16}
peerDependencies: peerDependencies:
@ -163,25 +163,11 @@ packages:
magic-string: 0.26.2 magic-string: 0.26.2
svelte: 3.48.0 svelte: 3.48.0
svelte-hmr: 0.14.12_svelte@3.48.0 svelte-hmr: 0.14.12_svelte@3.48.0
vite: 2.9.12 vite: 2.9.13
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@sveltekit-i18n/base/1.2.1_svelte@3.48.0:
resolution: {integrity: sha512-F8gqG2+KAOeT0o2wYlUrW3TRCX7zaD7rBy/1CEVNw0irfw9TgFf/ODmhubkHHT3+6Zk+SMz8RNgeuffBfAMbJw==}
peerDependencies:
svelte: ^3.x
dependencies:
svelte: 3.48.0
optionalDependencies:
'@sveltekit-i18n/parser-default': 1.0.3
dev: true
/@sveltekit-i18n/parser-default/1.0.3:
resolution: {integrity: sha512-HheveklTjp3hxpYQhoHfyA6B4bQaUeSV5MQf2usIv/58UF2jY/YqhCAWj9bDBjufbuZc5pSz4BXvdX3WVT+viA==}
dev: true
/@types/node/18.0.0: /@types/node/18.0.0:
resolution: {integrity: sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==} resolution: {integrity: sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==}
dev: true dev: true
@ -196,6 +182,10 @@ packages:
'@types/node': 18.0.0 '@types/node': 18.0.0
dev: true dev: true
/@types/unist/2.0.6:
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
dev: true
/acorn/8.7.1: /acorn/8.7.1:
resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
@ -710,6 +700,18 @@ packages:
sourcemap-codec: 1.4.8 sourcemap-codec: 1.4.8
dev: true dev: true
/mdsvex/0.10.6_svelte@3.48.0:
resolution: {integrity: sha512-aGRDY0r5jx9+OOgFdyB9Xm3EBr9OUmcrTDPWLB7a7g8VPRxzPy4MOBmcVYgz7ErhAJ7bZ/coUoj6aHio3x/2mA==}
peerDependencies:
svelte: 3.x
dependencies:
'@types/unist': 2.0.6
prism-svelte: 0.4.7
prismjs: 1.28.0
svelte: 3.48.0
vfile-message: 2.0.4
dev: true
/merge-stream/2.0.0: /merge-stream/2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
dev: true dev: true
@ -868,6 +870,15 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/prism-svelte/0.4.7:
resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==}
dev: true
/prismjs/1.28.0:
resolution: {integrity: sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==}
engines: {node: '>=6'}
dev: true
/queue-microtask/1.2.3: /queue-microtask/1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true dev: true
@ -1096,16 +1107,6 @@ packages:
engines: {node: '>= 8'} engines: {node: '>= 8'}
dev: true dev: true
/sveltekit-i18n/2.2.2_svelte@3.48.0:
resolution: {integrity: sha512-6eygICleGCSL7elY7A3trF8XUhV+mlW56ZSoD0UUKXlw+Y6u0MTTHDq48u1LyY73SfnlbPHXgTarhTjZ0BvUKA==}
peerDependencies:
svelte: ^3.x
dependencies:
'@sveltekit-i18n/base': 1.2.1_svelte@3.48.0
'@sveltekit-i18n/parser-default': 1.0.3
svelte: 3.48.0
dev: true
/tiny-glob/0.2.9: /tiny-glob/0.2.9:
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
dependencies: dependencies:
@ -1130,7 +1131,13 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/unplugin-icons/0.14.5: /unist-util-stringify-position/2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
dependencies:
'@types/unist': 2.0.6
dev: true
/unplugin-icons/0.14.5_vite@2.9.13:
resolution: {integrity: sha512-fxi/fuBZXtZu64L8iAPj+ecu/rnSvTbfR14RO44xIWdsI/Ohpzs9Gve7+nHIgD6JFrdtCfzGnXWBEVPbMGWX3A==} resolution: {integrity: sha512-fxi/fuBZXtZu64L8iAPj+ecu/rnSvTbfR14RO44xIWdsI/Ohpzs9Gve7+nHIgD6JFrdtCfzGnXWBEVPbMGWX3A==}
peerDependencies: peerDependencies:
'@svgr/core': '>=5.5.0' '@svgr/core': '>=5.5.0'
@ -1153,7 +1160,7 @@ packages:
debug: 4.3.4 debug: 4.3.4
kolorist: 1.5.1 kolorist: 1.5.1
local-pkg: 0.4.1 local-pkg: 0.4.1
unplugin: 0.7.0 unplugin: 0.7.0_vite@2.9.13
transitivePeerDependencies: transitivePeerDependencies:
- esbuild - esbuild
- rollup - rollup
@ -1162,7 +1169,7 @@ packages:
- webpack - webpack
dev: true dev: true
/unplugin/0.7.0: /unplugin/0.7.0_vite@2.9.13:
resolution: {integrity: sha512-OsiFrgybmqm5bGuaodvbLYhqUrvGuRHRMZDhddKEXTDbuQ1x+hR7M1WpQguXj03whVYjEYChhFo738cZH5RNig==} resolution: {integrity: sha512-OsiFrgybmqm5bGuaodvbLYhqUrvGuRHRMZDhddKEXTDbuQ1x+hR7M1WpQguXj03whVYjEYChhFo738cZH5RNig==}
peerDependencies: peerDependencies:
esbuild: '>=0.13' esbuild: '>=0.13'
@ -1181,12 +1188,20 @@ packages:
dependencies: dependencies:
acorn: 8.7.1 acorn: 8.7.1
chokidar: 3.5.3 chokidar: 3.5.3
vite: 2.9.13
webpack-sources: 3.2.3 webpack-sources: 3.2.3
webpack-virtual-modules: 0.4.3 webpack-virtual-modules: 0.4.3
dev: true dev: true
/vite/2.9.12: /vfile-message/2.0.4:
resolution: {integrity: sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew==} resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==}
dependencies:
'@types/unist': 2.0.6
unist-util-stringify-position: 2.0.3
dev: true
/vite/2.9.13:
resolution: {integrity: sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==}
engines: {node: '>=12.2.0'} engines: {node: '>=12.2.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:

View File

@ -1,27 +0,0 @@
{
"NAME": "Project Segfault",
"PROJECT": "Project",
"SEGFAULT": "Segfault",
"MATRIX_INVITE": "https://matrix.to/#/#project-segfault:projectsegfau.lt/",
"DISCORD_INVITE": "https://discord.gg/26EG7fFtfS/",
"GITHUB": "https://github.com/ProjectSegfault/",
"STATUS": "https://status.projectsegfau.lt/",
"MINECRAFT": "Minecraft",
"INSTANCES": "https://instances.projectsegfau.lt/",
"BLOG_URL": "https://blog.projectsegfau.lt/",
"EMAIL": "contact@projectsegfau.lt",
"MIDOU": "Midou",
"MIDOU_MATRIX_URL": "https://matrix.to/#/@midou:projectsegfau.lt/",
"MRLERIEN": "MrLeRien",
"MRLERIEN_DISCORD_URL": "https://discord.com/users/213634643327582208/",
"AKISBLACK": "akisblack",
"AKISBLACK_MATRIX_URL": "https://matrix.to/#/@akis:projectsegfau.lt/",
"AKISBLACK_DISCORD_URL": "https://discord.com/users/845535118285602866/",
"DEVNOL": "Devnol",
"DEVNOL_MATRIX_URL": "https://matrix.to/#/@devnol:projectsegfau.lt/",
"DEVNOL_DISCORD_URL": "https://discord.com/users/429353559566319626/",
"MONERO": "Monero",
"MINECRAFT_JAVA_IP": "mc.projectsegfau.lt:25565",
"MINECRAFT_BEDROCK_IP": "mc.projectsegfau.lt:19132",
"TRANSPARENCY_REPO": "https://github.com/ProjectSegfault/transparency/"
}

View File

@ -1,65 +0,0 @@
{
"NAVBAR_INSTANCES": "Instances & Gameservers",
"NAVBAR_DONATE": "Donate",
"NAVBAR_FAQ": "FAQ",
"NAVBAR_CONTACT": "Contact",
"NAVBAR_BLOG": "Blog",
"FOOTER_COPYRIGHT": "© 2021 - present, Project Segfault",
"INDEX_DESCRIPTION": "3 idiots, a Sun server and a Hitachi Compute Rack.",
"INDEX_WHAT": "What is this?",
"INDEX_WHO_ARE_WE": "We are 3 teenagers who have a decently powerful server. What do we do with this server? Host game servers and random assortment of privacy respecting tools like Invidious, Nextcloud, Matrix etc.... and maybe some original works. You'll see eventually!",
"INDEX_TELL_ME_MORE": "Tell me more! What do you guys host? Where can I contact you? Can you fix my daughter's iPad?",
"INDEX_MORE_INFO": "We can't fix your daughter's iPad, but there is a navigation bar at the top of the page with links to websites and pages that explain things about us, or contain useful information about our services.",
"DONATE_TITLE": "Donate to Project Segfault",
"DONATE_DESCRIPTION": "The ways you can donate to us and more.",
"DONATE_PLEASE_DO": "Reasons to donate to our project.",
"DONATE_EXPLANATION": "If you donate, we will be more motivated to work on the server and host more stuff and maybe even get more hardware. We really recommend you donate any spare money you have if you enjoy or use our services on a daily basis. Thanks!",
"DONATE_TRANSPARENCY_1": "You can find all of our financial reports on",
"DONATE_TRANSPARENCY_2": "our transparency repository on GitHub",
"DONATE_OK_SURE": "Donation Links",
"CONTACT_TITLE": "Contact Us",
"CONTACT_DESCRIPTION": "Do you want to contact us?",
"CONTACT_OUR_EMAIL": "Our email",
"CONTACT_EMAIL_SPAM": "Please be aware that Microsoft often blocks non-popular emails, if you do contact us through there, make sure to check your spam and mark it as not-spam!",
"CONTACT_PEOPLE": "People",
"CONTACT_CLICK": "Click to show who is active on what platform",
"MINECRAFT_TITLE": "Project Segfault MC",
"MINECRAFT_DESCRIPTION": "Yeah, we have a Minecraft server.",
"MINECRAFT_SMP": "We have an invite-only SMP server running on our network on version 1.18* (1.18, 1.18.1, 1.18.2) which is also bridged to Bedrock using GeyserMC.",
"MINECRAFT_JOIN": "If you would like to join, please join our Matrix space or Discord server and ask a project member to whitelist your account.",
"MINECRAFT_DISCORD": "Invite link to our Discord",
"MINECRAFT_RULES": "Rules",
"MINECRAFT_RULE_1": "1. Do not modify buildings without permission.",
"MINECRAFT_RULE_2": "2. Do not bypass protections. (mining around a protected door, bypassing chest locks etc.)",
"MINECRAFT_RULE_3": "3. Do not cheat.",
"MINECRAFT_RULE_4": "4. Do not lag the server purposely.",
"MINECRAFT_IP": "IP",
"MINECRAFT_NOTE_1": "Psst, you can join bedrock on your Switch using the app weve linked below!",
"MINECRAFT_NOTE_2": "Another psst, if you play on both Java and Bedrock, link your accounts together on GeyserMCs website! Your accounts will be linked together meaning you will have the exact same experience.",
"MINECRAFT_LINKS": "Links",
"MINECRAFT_MC_IOS": "MC Server Connector for iOS",
"MINECRAFT_MC_ANDROID": "MC Server Connector for Android",
"MINECRAFT_CLIENT_SIDE_MODS": "Recommended Client-Side Mods",
"MINECRAFT_CLIENT_SIDE_MODS_URL": "Click me for a list of recommended client-side mods.",
"MINECRAFT_PLUGIN_LIST_TITLE": "Plugin List",
"MINECRAFT_PLUGIN_LIST_NOTE": "This is a manually made list of our plugins, so it might not reflect the plugins currently on the server.",
"MINECRAFT_MCMMO": "Click here to download our build of mcMMO.",
"MINECRAFT_VIAVERSION_NOTE": "You may only connect from a base version and its subversions (1.18, 1.18.1, 1.18.2). You cannot connect from a major version older or newer than the major version the server is running.",
"CSM_GOBACK": "Click me to go back to the Minecraft site.",
"CSM_TITLE": "Recommended Mods List",
"CSM_HOW_THEY_ARE_PICKED": "These are picked by our community or are required for server features like voice chatting.",
"CSM_NOTE_BEDROCK": "These plugins only support Minecraft Java edition and most only work on the Fabric/Quilt modloaders. If you play on Bedrock or Forge mod loader, try to find an alternative to these. Mods like Simple Voice Chat have no alternative on Bedrock, sorry.",
"CSM_OPTIMIZATION_MODS_NOTE": "Any optimization mod (We recommend at least Sodium)",
"FAQ_TITLE": "Frequently Asked Questions",
"FAQ_OWNER_TITLE": "Who is the project owner?",
"FAQ_OWNER": "Orignally: Midou (sysadmin) and Mrlerien (hoster), but now Odsysey346 (gameserver sysadmin, web developer and social media manager), Devnol (hoster) and akisblack (web developer) are with us.",
"FAQ_TOXICITY_TITLE": "One of your services contains toxic people!",
"FAQ_TOXICITY_1": "You can contact us by mail or Matrix and we can figure this out with you. But we recommend that you put most of these requests in our support channel at",
"FAQ_TOXICITY_2": "on Matrix. If it's something personal, just say that you have a report against someone on one of our services and you'd like to be contacted by an admin and we'll contact you as soon as possible. We generally tend to be active throughout the day.",
"FAQ_TRUST_TITLE": "How can I trust your services?",
"FAQ_TRUST_1": "Well, you really can't. We don't make our logs or anything else public, however, if you would like access to the data we have on you, please contact us. If you're extremely privacy/security conscious,",
"FAQ_TRUST_2": "you are allowed to use Tor on our services",
"FAQ_TRUST_3": ", but we don't host any .onion links.",
"FAQ_CONTACT_TITLE": "Which ways do you prefer to communicate?",
"FAQ_CONTACT": "Look at"
}

View File

@ -1,63 +0,0 @@
{
"NAVBAR_INSTANCES": "Instances & Gameservers",
"NAVBAR_DONATE": "Faire un don",
"NAVBAR_FAQ": "FAQ",
"NAVBAR_CONTACT": "Contact",
"NAVBAR_BLOG": "Blog",
"FOOTER_COPYRIGHT": "© 2021 - présent, Project Segfault",
"INDEX_DESCRIPTION": "3 idiots, un server Sun et un server Hitachi",
"INDEX_WHAT": "Hein?",
"INDEX_WHO_ARE_WE": "On est 3 ados qui on un Server assez puissant. Mais on fait quoi de ce server? Eh bien on héberge des servers pour jeu et quelque service qui aident à mieux protéger sa vie privée comme Invidious, Nextcloud, Matrix et etc... et peut être on finira par faire un VRAI projet unique. Ça arrivera patientez!",
"INDEX_TELL_ME_MORE": "Hé, je veux plus de détails! Je veux savoir ce que vous hébergez et ce que vous faites!",
"INDEX_MORE_INFO": "Il y'a une barre en haut de la page avec des boutons dessus, j'espère que vous n'avez pas de problème de vision!",
"DONATE_TITLE": "Faire un don à Project Segfault",
"DONATE_DESCRIPTION": "Les manières dont vous pouvez faire des dons:",
"DONATE_PLEASE_DO": "Faites un don quand vous le pourrez s'il vous plaît!",
"DONATE_EXPLANATION": "Si on reçoit des dons, on sera capable de héberger plus longtemps que prévu, avec votre soutien, on pourra aussi faire des nouvelles fonctionnalités et des nouveaux serveurs. Et vous ferez un peu de bien pour nous, car c'est un projet qui nous fait une part de la vie.",
"DONATE_OK_SURE": "OK! Je suis sûr que je peux faire un don! Ou devrais-je faire un don?",
"CONTACT_TITLE": "Nous contacter",
"CONTACT_DESCRIPTION": "Vous voulez nous contacter?",
"CONTACT_OUR_EMAIL": "Notre mail",
"CONTACT_EMAIL_SPAM": "Si vous attendez un mail, c'est que vous avez un problème avec le spam. Microsoft a un filtre anti-spam qui bloque les mails non connnus, si c'est le cas, veuillez cliquer sur \"ne pas considérer comme spam\". Merci infiniment!",
"CONTACT_PEOPLE": "Les membres",
"CONTACT_CLICK": "Cliquez ici pour afficher les moyens de contact des membres de Project Segfault!",
"MINECRAFT_TITLE": "Serveur Minecraft de Project Segfault",
"MINECRAFT_DESCRIPTION": "Ouep, on a aussi un server Minecraft.",
"MINECRAFT_SMP": "On a un server SMP qui est sur liste blanche, il est jouable sous la version 1.18 jusquà 1.19, le server est bridgé avec la version Bedrock, donc vous pouvez aussi jouer sur mobile!",
"MINECRAFT_JOIN": "Si vous voulez nous rejoindre, contactez nous sous Discord ou Matrix afin de vous laisser accéder au server.",
"MINECRAFT_DISCORD": "Invite Discord",
"MINECRAFT_RULES": "Règles",
"MINECRAFT_RULE_1": "1. Ne détruisez pas les maisons faites par les autres joueurs, et ne les changez pas sans autorisation de son propriétaire.",
"MINECRAFT_RULE_2": "2. Ne contournez pas les portes protégés! C'est comme barricader une maison.",
"MINECRAFT_RULE_3": "3. Trichez pas",
"MINECRAFT_RULE_4": "4. Ne laggez pas le serveur",
"MINECRAFT_IP": "IP",
"MINECRAFT_NOTE_1": "psst, tu peux rejoindre le jeux sous bedrock avec l'application ci dessous!",
"MINECRAFT_NOTE_2": "another psst, Si vous avez bedrock et java, vous pouvez les lier sur geyser mc, comme ça vous aurez le même compte sur les deux côtés!",
"MINECRAFT_LINKS": "Liens",
"MINECRAFT_MC_IOS": "MC Server Connector pour iOS",
"MINECRAFT_MC_ANDROID": "MC Server Connector pour Android",
"MINECRAFT_CLIENT_SIDE_MODS": "Les mods recommandés",
"MINECRAFT_CLIENT_SIDE_MODS_URL": "Cliquez sur moi pour une liste de mods recommandés!",
"MINECRAFT_PLUGIN_LIST_TITLE": "Liste des extensions",
"MINECRAFT_PLUGIN_LIST_NOTE": "Ceci est une liste d'extensions composée manuellement, donc elle peut être un peu datée.",
"MINECRAFT_MCMMO": "Cliquez ici pour télecharger notre version compilée de MCMMO!",
"MINECRAFT_VIAVERSION_NOTE": "Vous devez vous connecter sur une de ces versions (1.18, 1.18.1, 1.18.2). Vous pouvez pas utiliser une version plus récente que celle-ci.",
"CSM_GOBACK": "Clique moi pour revenir sur le site Minecraft!",
"CSM_TITLE": "Liste de mods recommandés",
"CSM_HOW_THEY_ARE_PICKED": "Celles-ci on été choisies par notre équipe pour être les plus utiles pour vous.",
"CSM_NOTE_BEDROCK": "Si vous jouez sous Bedrock, Essayez de trouver d'autre alternatives. Simple Voice Chat n'a pas d'autres alternatives. Désolé.",
"CSM_OPTIMIZATION_MODS_NOTE": "N'importe que optimisation pour minecraft (comme sodium)",
"FAQ_TITLE": "Foire aux questions",
"FAQ_OWNER_TITLE": "C'est qui les membres ?",
"FAQ_OWNER": "Originellement: Midou (Sysadmin) et Mrlerien (Hébergeur), Mais Odyssey346 (Sysadmin coté jeux, développeur web (faut vraiment faire sa pub à la con qui fout plus la honte qu'autre chose?) et le géreur de réseaux sociaux (c'est aussi con que le premier) et Devnol (Hébergeur²) sont avec nous.",
"FAQ_TOXICITY_TITLE": "Un de vos services est vraiment pas acceuillant et toxique! Comment faire pour le signaler?",
"FAQ_TOXICITY_1": "Vous pouvez nous contacter par mail, mais les demandes faites dans le chat (plus précisément le channel de singalement) sont plus efficaces.",
"FAQ_TOXICITY_2": "Si c'est personnel. Vous pouvez nous le demander en MP. On a pas de vie alors on est souvent actif.",
"FAQ_TRUST_TITLE": "Comment je peux faire confiances à vous services?",
"FAQ_TRUST_1": "En vrai, il y'a aucun moyen de prouver que nous sommes des personnes de confiance, mais si vous voulez avoir vos informations (sous la loi GDPR), vous pouvez nous le demander sous le salon requêtes.",
"FAQ_TRUST_2": "Ah, et tor existe",
"FAQ_TRUST_3": ", mai on héberge pas de sites sous tor.",
"FAQ_CONTACT_TITLE": "Quel moyen de communication vous préferez?",
"FAQ_CONTACT": "Regardez"
}

View File

@ -1,62 +0,0 @@
{
"NAVBAR_INSTANCES": "Våre tjenester og spillservere",
"NAVBAR_DONATE": "Doner",
"NAVBAR_FAQ": "OSS",
"NAVBAR_CONTACT": "Kontakt",
"NAVBAR_BLOG": "Blogg",
"INDEX_DESCRIPTION": "4 idioter, en Sun server og en Hitachi Compute Rack.",
"INDEX_WHAT": "Hva?",
"INDEX_WHO_ARE_WE": "Vi er 4 tenåringer med en grei server. Hva gjør vi med denne serveren? Vi ofrer tjenester som respekterer personvernet ditt som for eksempel Invidious, Matrix, Pleroma. Vi kjører også noen spillservere på serveren våres, for eksempel Minecraft. Kanskje vi lager noe originalt... det får du se etterhvert!",
"INDEX_TELL_ME_MORE": "Fortell meg mer! Hva kjører dere på serverene deres? Hvor kan jeg komme i kontakt med dere? Kan dere fikse min datters iPad?",
"INDEX_MORE_INFO": "Vi kan ikke fikse din datters iPad, men det er navigasjonslinje på toppen av siden som har lenker til sider som forklarer ting om oss, eller har nyttig informasjon om oss.",
"DONATE_TITLE": "Doner til Project Segfault",
"DONATE_DESCRIPTION": "Veiene du kan donere til oss og mer",
"DONATE_PLEASE_DO": "Grunner til å donere til Project Segfault",
"DONATE_EXPLANATION": "Hvis du donerer, blir vi mer motivert til å jobbe på serverene våres og ofre flere tjenester, og kanskje skaffe oss mer maskinvare. Jeg anbefaler at du donerer reservepenger hvis du liker å bruke tjenestene våres, eller hvis du bruker våres tjenester på en daglig basis. Takk!",
"DONATE_OK_SURE": "Doneringsmeteoder",
"CONTACT_TITLE": "Få kontakt med oss",
"CONTACT_DESCRIPTION": "Veier du kan komme i kontakt med oss.",
"CONTACT_OUR_EMAIL": "Våres e-post",
"CONTACT_EMAIL_SPAM": "Microsoft (Outlook, Hotmail) pleier å markere e-poster som ikke er populære som søppelpost. Hvis du sender oss en e-post via Microsoft, husk å markere oss som ikke søppelpost!",
"CONTACT_PEOPLE": "Medlemmer i Project Segfault",
"CONTACT_CLICK": "Klikk for å komme i kontakt med en av medlemmene våres.",
"MINECRAFT_TITLE": "Project Segfault MC",
"MINECRAFT_DESCRIPTION": "Vi har en Minecraft server.",
"MINECRAFT_SMP": "Vi har en semi-privat \"SMP\" Minecraft server som kjører på vår Soleil server. Vi kjører Minecraft versjon 1.18* (1.18, 1.18.1, 1.18.2), som man kan også bli med i med Bedrock, takket være GeyserMC",
"MINECRAFT_JOIN": "Hvis du har lyst til å bli med i serveren, bli med på Discorden eller Matrix-rommet våres og spør om å bli puttet på hvitelisten.",
"MINECRAFT_DISCORD": "Invitasjonslenke til våres Discord",
"MINECRAFT_RULES": "Regler",
"MINECRAFT_RULE_1": "1. Ikke modifiser byggninger uten tilatelse.",
"MINECRAFT_RULE_2": "2. Ikke kjør om beskyttninger. (ødelegge blokker rundt en beskyttet dør, kjøre om låser på kister osv)",
"MINECRAFT_RULE_3": "3. Ikke juks",
"MINECRAFT_RULE_4": "4. Ikke gjør serveren treg med vilje.",
"MINECRAFT_IP": "IP",
"MINECRAFT_NOTE_1": "forresten, du kan bli med på din Nintendo Switch med å bruke appen vi har lenket under!",
"MINECRAFT_NOTE_2": "også, hvis du spiller på både Java og Bedrock, så kan du koble kontoene sammen på GeyserMCs nettsted. Du får prikk lik opplevelse på begge kontoene dine.",
"MINECRAFT_LINKS": "Linker",
"MINECRAFT_MC_IOS": "MC Server Connector for iOS",
"MINECRAFT_MC_ANDROID": "MC Server Connector for Android",
"MINECRAFT_CLIENT_SIDE_MODS": "Anbefalte mods som kjører på din maskin",
"MINECRAFT_CLIENT_SIDE_MODS_URL": "Klikk meg for en liste av anbefalt lokale mods",
"MINECRAFT_PLUGIN_LIST_TITLE": "Plugin liste",
"MINECRAFT_PLUGIN_LIST_NOTE": "Denne listen er laget manuelt, så det kan hende at den ikke er oppdatert.",
"MINECRAFT_MCMMO": "Klikk her for å laste ned våres bygg av mcMMO.",
"MINECRAFT_VIAVERSION_NOTE": "Du kan bare koble til serveren fra en basisversjon (for eksempel 1.18) og versjonene som er etter basisstasjonen (for eksempel 1.18.1 eller 1.18.2). Du kan ikke koble til fra en stor versjon som er eldre eller nyere enn den våres server kjører.",
"CSM_GOBACK": "Klikk for å gå tilbake til Minecraft siden",
"CSM_TITLE": "Anbefalte mods",
"CSM_HOW_THEY_ARE_PICKED": "Disse er plukket av våres felleskap eller er nødvendig for funksjoner som stemmechat.",
"CSM_NOTE_BEDROCK": "Meste av disse fungerer bare på Fabric/Quilt modinnlasterne. Hvis du spiller på Bedrock, eller bruker Forge, så får du ikke brukt mods som Simple Voice Chat. Unnskyld! :(",
"CSM_OPTIMIZATION_MODS_NOTE": "Hva slags mod som gjør spillet kjappere (Vi anbefaler i det minste Sodium)",
"FAQ_TITLE": "Ofte Stilte Spørsmål",
"FAQ_OWNER_TITLE": "Hvem eier prosjektet?",
"FAQ_OWNER": "Originalt var det Midou (system administrator) og MrLeRien (personen som eier 2 av våres VPSer og Soleil), men nå har Odyssey346 (Spillserver systemadministrator, nettutvikler og norsk-oversetter) og Devnol (personen som eier Helios) blitt med oss.",
"FAQ_TOXICITY_TITLE": "En av deres tjenester har slemme folk!",
"FAQ_TOXICITY_1": "Du kan få i kontakt med oss på e-post eller på Matrix og vi kan diskutere det med deg. Vi anbefaler at du putter meste av disse forespørselene i våres support-kanal her:",
"FAQ_TOXICITY_2": "på Matrix. Hvis det er personlig, bare si at du har en rapport mot noen på våres tjenester, og at du har lyst til å bli kontaktet av en administrator, så kontakter vi deg når det er mulig.",
"FAQ_TRUST_TITLE": "Hvordan kan jeg stole på dere?",
"FAQ_TRUST_1": "Vel, du kan egentlig ikke det. Vi slepper ikke ut loggene våres, men du kan spørre oss om informasjom vi har om deg på serverene våres med å kontakte oss. Hvis du er veldig forsiktig med personvern,",
"FAQ_TRUST_2": " det er lov å bruke Tor på våres tjenester",
"FAQ_TRUST_3": ", men vi har ingen .onion lenker.",
"FAQ_CONTACT_TITLE": "Hvordan har dere lyst til å kommunisere?",
"FAQ_CONTACT": "Se på"
}

View File

@ -3,8 +3,6 @@
import IconMatrix from "~icons/simple-icons/matrix"; import IconMatrix from "~icons/simple-icons/matrix";
import IconGitHub from "~icons/simple-icons/github"; import IconGitHub from "~icons/simple-icons/github";
import IconSignal from "~icons/fa6-solid/signal"; import IconSignal from "~icons/fa6-solid/signal";
import * as global from "../i18n/_global.json";
import { t } from "$lib/translations";
import { page } from "$app/stores"; import { page } from "$app/stores";
</script> </script>
@ -22,19 +20,19 @@
{/if} {/if}
<hr /> <hr />
<div class="content"> <div class="content">
<span>{$t("common.FOOTER_COPYRIGHT")}</span> <span>© 2021 - present, Project Segfault</span>
<div class="links"> <div class="links">
<a href={global.MATRIX_INVITE}> <a href="https://matrix.to/#/#project-segfault:projectsegfau.lt/">
<IconMatrix /> <IconMatrix />
</a> </a>
<a href={global.DISCORD_INVITE}> <a href="https://discord.gg/26EG7fFtfS/">
<IconDiscord /> <IconDiscord />
</a> </a>
<a href={global.GITHUB}> <a href="https://github.com/ProjectSegfault/">
<IconGitHub /> <IconGitHub />
</a> </a>
<a href={global.STATUS}> <a href="https://status.projectsegfau.lt/">
<IconSignal /> <IconSignal />
</a> </a>
</div> </div>
@ -71,6 +69,8 @@
.links a { .links a {
text-decoration: none; text-decoration: none;
display: flex;
align-items: center;
} }
@media only screen and (max-width: 500px) { @media only screen and (max-width: 500px) {

View File

@ -0,0 +1,37 @@
<script lang="ts">
export let title;
export let description;
export let separator;
import SvelteSeo from "svelte-seo";
// Enjoy the jank.
if (title === "Project Segfault") {
title = "";
separator = "";
} else {
separator = "|";
}
</script>
<SvelteSeo
openGraph={{
title: title,
description: description,
type: "website",
images: [
{
url: "https://projectsegfau.lt:8448/_matrix/media/r0/download/projectsegfau.lt/HBgjhWUExhKPzbpkpIqQfUkF",
width: 850,
height: 650,
alt: "Image"
}
]
}}
/>
<svelte:head>
<title>{title} {separator} Project Segfault</title>
</svelte:head>
<div class="mdsvex_content">
<slot />
</div>

56
src/lib/Members.json Normal file
View File

@ -0,0 +1,56 @@
[
{
"name": "akisblack",
"matrix": "https://matrix.to/#/@akis:projectsegfau.lt/",
"discord": "https://discord.com/users/845535118285602866/",
"position": "Web developer",
"description": "Hi, I am Akis.",
"github": "https://github.com/akisblack/",
"website": "https://akisblack.github.io/"
},
{
"name": "Devnol",
"matrix": "https://matrix.to/#/@devnol:projectsegfau.lt/",
"discord": "https://discord.com/users/429353559566319626/",
"position": "Greece server owner",
"description": "Placeholder",
"github": "https://github.com/Devnol/",
"website": "https://devnol.github.io/"
},
{
"name": "Midou",
"matrix": "https://matrix.to/#/@midou:projectsegfau.lt/",
"position": "System administrator",
"description": "Placeholder",
"github": "https://github.com/Midou36O/",
"website": "https://miicord.com/"
},
{
"name": "MrLeRien",
"discord": "https://discord.com/users/213634643327582208/",
"matrix": "https://matrix.to/#/@mrlerien:projectsegfau.lt/",
"position": "France server owner",
"description": "Placeholder"
},
{
"name": "Odyssey346",
"matrix": "https://matrix.to/#/@odyssey:projectsegfau.lt",
"position": "Web Developer, Gameserver system administrator",
"description": "Hi, I'm Odyssey346 and I do things here. Check out my website for more info.",
"github": "https://github.com/Odyssey346",
"website": "https://odyssey346.dev"
},
{
"name": "openssl_rand",
"matrix": "https://matrix.to/#/@openssl_rand:projectsegfau.lt/",
"position": "System administrator",
"description": "\"I am openssl_rand, a system administrator of the project Segfau.lt.\" - GitHub Copilot"
},
{
"name": "stephenvk",
"matrix": "https://matrix.to/#/@stephenvk:projectsegfau.lt",
"position": "Backup host",
"description": "I am Stephenvk and I host a server that takes our backups.",
"website": "https://stephenvk.xyz"
}
]

View File

@ -1,27 +1,25 @@
<script>
import * as global from "../i18n/_global.json";
import { t } from "$lib/translations";
</script>
<nav> <nav>
<a class="brand" href="/"> <a class="brand" href="/">
<img src="/logo.png" alt="{global.NAME} logo" /> <img src="/logo.png" alt="Project Segfault logo" />
<span <span
style="color: var(--accent-secondary); margin-left: 4px; margin-right: 4px;" style="color: var(--accent-secondary); margin-left: 4px; margin-right: 4px;"
>{global.PROJECT}</span >Project</span
> >
<span style="color: var(--accent-primary); margin-right: 8px;" <span style="color: var(--accent-primary); margin-right: 8px;"
>{global.SEGFAULT}</span >Segfault</span
> >
</a> </a>
<div class="links"> <div class="links">
<a href={global.INSTANCES}>{$t("common.NAVBAR_INSTANCES")}</a> <a href="https://instances.projectsegfau.lt/">Instances & Gameservers</a
<a href="/minecraft">{global.MINECRAFT}</a> >
<a href="/donate">{$t("common.NAVBAR_DONATE")}</a> <a href="/minecraft">Minecraft</a>
<a href="/faq">{$t("common.NAVBAR_FAQ")}</a> <a href="/donate">Donate</a>
<a href="/contact">{$t("common.NAVBAR_CONTACT")}</a> <a href="/faq">FAQ</a>
<a href={global.BLOG_URL}>{$t("common.NAVBAR_BLOG")}</a> <a href="/contact">Contact</a>
<a href="/members">Members</a>
<a href="https://blog.projectsegfau.lt/">Blog</a>
<a href="/legal">Legal</a>
</div> </div>
</nav> </nav>
@ -81,6 +79,7 @@
nav { nav {
flex-direction: column; flex-direction: column;
align-items: flex-start; align-items: flex-start;
line-height: normal;
} }
div.links { div.links {

View File

@ -1,33 +0,0 @@
import i18n from "sveltekit-i18n";
/** @type {import('sveltekit-i18n').Config} */
const config = {
loaders: [
{
locale: "en",
key: "common",
loader: async () => (await import("../i18n/common.json")).default
},
{
locale: "nb",
key: "common",
loader: async () => (await import("../i18n/nb.json")).default
},
{
locale: "fr",
key: "common",
loader: async () => (await import("../i18n/fr.json")).default
}
/*
{
locale: "el",
key: "common",
loader: async () => (await import("../i18n/el.json")).default
}
*/
]
};
export const { t, locale, locales, loading, loadTranslations } = new i18n(
config
);

View File

@ -1,47 +1,21 @@
<script context="module">
import { locale, loadTranslations } from "$lib/translations";
export const load = async ({ url }) => {
const { pathname } = url;
const defaultLocale = "en"; // get from cookie, user session, ...
const initLocale = locale.get() || defaultLocale; // set default if no locale already set
await loadTranslations(initLocale, pathname); // keep this just before the `return`
// firefox
// https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language
// chrome
// https://developer.chrome.com/extensions/i18n#overview-getAcceptLanguages
// edge
// https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx
return {};
};
</script>
<script> <script>
import "$lib/app.css"; import "$lib/app.css";
import Nav from "$lib/Nav.svelte"; import Nav from "$lib/Nav.svelte";
import Footer from "$lib/Footer.svelte"; import Footer from "$lib/Footer.svelte";
import SvelteSeo from "svelte-seo"; import SvelteSeo from "svelte-seo";
import Banner from "$lib/images/ProjectSegfault_Desktop_16-9.png";
import * as global from "../i18n/_global.json";
import { t } from "$lib/translations";
</script> </script>
<SvelteSeo <SvelteSeo
title="{global.NAME}" title="Project Segfault"
description="{$t("common.INDEX_DESCRIPTION")}" description="4 idiots, a Sun server and a Hitachi Compute Rack."
canonical="https://projectsegfau.lt/" canonical="https://projectsegfau.lt/"
openGraph={{ openGraph={{
url: "https://projectsegfau.lt/", url: "https://projectsegfau.lt/",
title: global.NAME, title: "Project Segfault",
description: $t("common.INDEX_DESCRIPTION"), description: "4 idiots, a Sun server and a Hitachi Compute Rack.",
images: [ images: [
{ {
url: Banner, url: "/ProjectSegfault_Desktop_16-9.png",
width: 850, width: 850,
height: 650, height: 650,
alt: "Our banner" alt: "Our banner"

18
src/routes/contact.md Normal file
View File

@ -0,0 +1,18 @@
---
title: Contact Us
description: Do you want to contact us?
---
# { title }
{ description }
## Our email
[contact@projectsegfau.lt](mailto:contact@projectsegfau.lt)
_Please be aware that Microsoft often blocks non-popular emails, if you do contact us through there, make sure to check your spam and mark it as not-spam!_
## People
You can find ways to contact individual members [on our Members page](/members).

View File

@ -1,125 +0,0 @@
<script lang="ts">
import { t } from "$lib/translations";
import * as global from "../i18n/_global.json";
import SvelteSeo from "svelte-seo";
</script>
<SvelteSeo
title="{$t("common.CONTACT_TITLE")} | {global.NAME}"
description="{$t("common.CONTACT_DESCRIPTION")}"
canonical="https://projectsegfau.lt/contact"
openGraph={{
url: "https://projectsegfau.lt/contact/",
title: "{$t('common.CONTACT_TITLE')} | {global.NAME}",
description: $t("common.CONTACT_DESCRIPTION")
}}
/>
<h1>{$t("common.CONTACT_TITLE")}</h1>
<h2>{$t("common.CONTACT_DESCRIPTION")}</h2>
<h1>{$t("common.CONTACT_OUR_EMAIL")}</h1>
<p><a href="mailto:{global.EMAIL}">{global.EMAIL}</a></p>
<p><i>{$t("common.CONTACT_EMAIL_SPAM")}</i></p>
<h1>{$t("common.CONTACT_PEOPLE")}</h1>
<div id="Active">
<div class="parent">
<div class="div1">{global.MIDOU}:</div>
<a class="div2 matrixcolored" href={global.MIDOU_MATRIX_URL}>[Matrix]</a
>
<div class="div3" />
<div class="div4">{global.MRLERIEN}:</div>
<a class="div5 discordcolored" href={global.MRLERIEN_DISCORD_URL}
>Discord</a
>
<div class="div6" />
<div class="div7">{global.AKISBLACK}:</div>
<a class="div8 matrixcolored" href={global.AKISBLACK_MATRIX_URL}
>[Matrix]</a
>
<a class="div9 discordcolored" href={global.AKISBLACK_DISCORD_URL}
>Discord</a
>
<div class="div10">{global.DEVNOL}:</div>
<a class="div11 matrixcolored" href={global.DEVNOL_MATRIX_URL}
>[Matrix]</a
>
<a class="div12 discordcolored" href={global.DEVNOL_DISCORD_URL}
>Discord</a
>
</div>
</div>
<style>
.parent {
display: grid;
grid-template-columns: repeat(3, max-content);
grid-template-rows: repeat(4, 1fr);
grid-column-gap: 16px;
grid-row-gap: 16px;
max-width: 50%;
align-items: center;
}
/* this is a hack to make the grid work, need to improve this */
.div1 {
grid-area: 1 / 1 / 2 / 2;
}
.div2 {
grid-area: 1 / 2 / 2 / 3;
}
.div3 {
grid-area: 1 / 3 / 2 / 4;
}
.div4 {
grid-area: 2 / 1 / 3 / 2;
}
.div5 {
grid-area: 2 / 2 / 3 / 3;
}
.div6 {
grid-area: 2 / 3 / 3 / 4;
}
.div7 {
grid-area: 3 / 1 / 4 / 2;
}
.div8 {
grid-area: 3 / 2 / 4 / 3;
}
.div9 {
grid-area: 3 / 3 / 4 / 4;
}
.div10 {
grid-area: 4 / 1 / 5 / 2;
}
.div11 {
grid-area: 4 / 2 / 5 / 3;
}
.div12 {
grid-area: 4 / 3 / 5 / 4;
}
#Active a {
border: none;
border-radius: 10px;
padding: 0.5rem;
cursor: pointer;
font-family: var(--font-primary);
color: var(--secondary);
text-decoration: none;
}
.matrixcolored {
background-color: #fff;
}
.discordcolored {
background-color: #5865f2;
color: #fff !important;
}
</style>

52
src/routes/donate.md Normal file
View File

@ -0,0 +1,52 @@
---
title: Donate to Project Segfault
description: The ways you can donate to us and more.
---
# { title }
{ description }
## Reasons to donate to our project.
If you donate, we will be more motivated to work on the server and host more stuff and maybe even get more hardware. We really recommend you donate any spare money you have if you enjoy or use our services on a daily basis. Thanks!
## Donation Links
<div class="monero">
Monero: <code style="margin-left: 4px;">47L7Qsto7XcifY3CdG18ySe5Tt83kpFLDLve9jQwbc9taPBLNGv6ZrJNUKpMG9Nj9zHgCZ4FQMSyt75e8Jvx12JFLtJyFdA</code>
<img src="/Monero.png" alt="Monero Qr Code" />
</div>
<p class="reports-note">
You can find all of our financial reports on <a href="https://github.com/ProjectSegfault/transparency/">our transparency repository on GitHub</a>.
</p>
<style>
.monero {
display: flex;
align-items: center;
word-break: break-all;
}
.monero > img {
margin-left: 26px;
}
.reports-note {
margin-top: 32px;
font-style: italic;
}
@media only screen and (max-width: 930px) {
.monero {
flex-direction: column;
align-items: flex-start;
}
.monero > img {
margin-left: 0;
margin-top: 8px;
}
}
</style>

View File

@ -1,75 +0,0 @@
<script lang="ts">
import MoneroQR from "$lib/images/Monero.png";
import { t } from "$lib/translations";
import * as global from "../i18n/_global.json";
import SvelteSeo from "svelte-seo";
</script>
<SvelteSeo
title="{$t("common.DONATE_TITLE")} | {global.NAME}"
description="{$t("common.DONATE_DESCRIPTION")}"
canonical="https://projectsegfau.lt/donate/"
openGraph={{
url: "https://projectsegfau.lt/donate/",
title: "{$t('common.DONATE_TITLE')} | {global.NAME}",
description: $t("common.DONATE_DESCRIPTION")
}}
/>
<h1>{$t("common.DONATE_TITLE")}</h1>
<h2>{$t("common.DONATE_DESCRIPTION")}</h2>
<h1>{$t("common.DONATE_PLEASE_DO")}</h1>
<p>{$t("common.DONATE_EXPLANATION")}</p>
<h1>{$t("common.DONATE_OK_SURE")}</h1>
<div class="monero">
<span
>{global.MONERO}:
<code
>47L7Qsto7XcifY3CdG18ySe5Tt83kpFLDLve9jQwbc9taPBLNGv6ZrJNUKpMG9Nj9zHgCZ4FQMSyt75e8Jvx12JFLtJyFdA</code
></span
>
<img src={MoneroQR} alt="Monero Qr Code" />
</div>
<p class="reports-note">
<i>
{$t("common.DONATE_TRANSPARENCY_1")}
<a href={global.TRANSPARENCY_REPO}
>{$t("common.DONATE_TRANSPARENCY_2")}</a
>
.
</i>
</p>
<style>
.monero {
display: flex;
align-items: center;
}
.monero > img {
margin-left: 26px;
}
.reports-note {
margin-top: 32px;
}
@media only screen and (max-width: 930px) {
.monero {
flex-direction: column;
align-items: flex-start;
}
.monero > img {
margin-left: 0;
margin-top: 8px;
}
}
</style>

22
src/routes/faq.md Normal file
View File

@ -0,0 +1,22 @@
---
title: Frequently Asked Questions
description: Frequently Asked Questions
---
# { title }
## Who is the project owner?
The project doesn't have a single owner but is made up of a team of people. A list of the people involved and their positions can be found [on our members page](/members).
## One of your services contains toxic people!
You can contact us by mail or Matrix and we can figure this out with you. But we recommend that you put most of these requests in our support channel at [#support:projectsegfau.lt](https://matrix.to/#/#support:projectsegfau.lt) on Matrix. If it's something personal, just say that you have a report against someone on one of our services and you'd like to be contacted by an admin and we'll contact you as soon as possible. We generally tend to be active throughout the day.
## How can I trust your services?
Well, you really can't. We don't make our logs or anything else public, however, if you would like access to the data we have on you, please contact us. If you're extremely privacy/security conscious, **you are allowed to use Tor on our services**, but we don't host any `.onion` links.
## Which ways do you prefer to communicate?
Look at [Contact](/contact).

View File

@ -1,44 +0,0 @@
<script lang="ts">
import { t } from "$lib/translations";
import * as global from "../i18n/_global.json";
import SvelteSeo from "svelte-seo";
</script>
<SvelteSeo
title="{$t("common.FAQ_TITLE")} | {global.NAME}"
description="{$t("common.FAQ_TITLE")}"
canonical="https://projectsegfau.lt/faq/"
openGraph={{
url: "https://projectsegfau.lt/faq/",
title: "{$t('common.FAQ_TITLE')} | {global.NAME}",
description: $t("common.FAQ_TITLE")
}}
/>
<h1>{$t("common.FAQ_TITLE")}</h1>
<h2>{$t("common.FAQ_OWNER_TITLE")}</h2>
<p>{$t("common.FAQ_OWNER")}</p>
<h2>{$t("common.FAQ_TOXICITY_TITLE")}</h2>
<p>
{$t("common.FAQ_TOXICITY_1")}
<a href="https://matrix.to/#/#support:projectsegfau.lt"
>#support:projectsegfau.lt</a
>
{$t("common.FAQ_TOXICITY_2")}
</p>
<h2>{$t("common.FAQ_TRUST_TITLE")}</h2>
<p>
{$t("common.FAQ_TRUST_1")}
<strong>{$t("common.FAQ_TRUST_2")}</strong>
{$t("common.FAQ_TRUST_3")}
</p>
<h2>{$t("common.FAQ_CONTACT_TITLE")}</h2>
<p>
{$t("common.FAQ_CONTACT")}
<a href="/contact">{$t("common.NAVBAR_CONTACT")}</a>
.
</p>

16
src/routes/index.md Normal file
View File

@ -0,0 +1,16 @@
---
title: Home
description: 4 idiots, a Sun server and a Hitachi Compute Rack.
---
# Project Segfault
{ description }
## What is this?
We are 4 teenagers who have a decently powerful server. What do we do with this server? Host game servers and random assortment of privacy respecting tools like Invidious, Nextcloud, Matrix etc.... and maybe some original works. You'll see eventually!
## Tell me more! What do you guys host? Where can I contact you? Can you fix my daughter's iPad?
We can't fix your daughter's iPad, but there is a navigation bar at the top of the page with links to websites and pages that explain things about us, or contain useful information about our services.

View File

@ -1,23 +0,0 @@
<script>
import { t } from "$lib/translations";
import * as global from "../i18n/_global.json";
</script>
<svelte:head>
<title>{global.NAME}</title>
</svelte:head>
<h1>{global.NAME}</h1>
<div>
<h2>{$t("common.INDEX_DESCRIPTION")}</h2>
<h1>{$t("common.INDEX_WHAT")}</h1>
<!-- Cause I feel the need to scream -->
<p>{$t("common.INDEX_WHO_ARE_WE")}</p>
<h1>{$t("common.INDEX_TELL_ME_MORE")}</h1>
<p>{$t("common.INDEX_MORE_INFO")}</p>
</div>

11
src/routes/legal/index.md Normal file
View File

@ -0,0 +1,11 @@
---
title: Legal stuff
---
# { title }
Since we care about transparency, privacy and safety we have created some documents regarding these topics.
- [Privacy Policy](/legal/privacy-policy)
- [Terms of Service](/legal/tos)
- [Transparency reports](https://github.com/ProjectSegfault/transparency/)

View File

@ -0,0 +1,35 @@
---
title: Privacy Policy
description: Our privacy policy
---
# { title }
We take your privacy more seriously than FAANG.
## We don't collect more information than we need to.
Here's what we collect.
- User agent (OS and browser)
- IP address (This is kind of obvious. Every website does this. If you're paranoid about this, get a [good VPN](https://wiki.pussthecat.org/general/privacy-guide/#vpn) or use Tor.)
- When you made a request
- Referrer (Where you came from when you made a request.)
The log looks like this, for reference: `127.0.0.1 - - [17/Jun/2022:20:19:26 +0300] "GET / HTTP/2.0" 200 144 "https://projectsegfau.lt/" "Mozilla/5.0 (Windows NT 10.0; rv:100.0) Gecko/20100101 Firefox/100.0" "-"`
Some of our services have things like databases and things, for example [Pleroma](https://social.projectsegfau.lt), but that should be pretty obvious the moment you make an account on there. They may collect some things, however we barely even access those databases so you should be fine.
If you want the data we've collected on you to be sent, please contact us on Matrix in [this room](https://matrix.to/#/#gdpr:projectsegfau.lt). You don't need an account on our Matrix instance in order to chat there, you can choose from a bunch of public instances or make your own.
## We don't give any of the data we collect to anyone outside of Project Segfault.
What we just described above won't be sold or given to anyone outside of Project Segfault. It could be given to law enforcement IF they have a warrant.
There is no reason for anyone outside of Project Segfault to see your data. In fact, Project Segfault really has no reason to see your data, unless there's something to suspect.
## Data may be cleared at any point upon request, but...
As we said, you can request any GDPR/Privacy things in [this Matrix room](https://matrix.to/#/#gdpr:projectsegfau.lt). But, if there's any ongoing investigations and a law enforcement agency contacts us, we will comply. But, we will only do it if we can verify it's official and they have a warrant.
We hope you can understand our privacy policy.

13
src/routes/legal/tos.md Normal file
View File

@ -0,0 +1,13 @@
---
title: Terms of Service
description: We're not anarchists, so we have some rules.
---
# { title }
## { description }
1. Do not use our Services to (D)DOS or attempt to disrupt someone else's online stability.
2. Do not use our Services to Dox someone.
3. Do not do anything on our Services that would be illegal in Greece or France.
4. Refrain from using our services to harass people.

136
src/routes/members.svelte Normal file
View File

@ -0,0 +1,136 @@
<script lang="ts">
import members from "$lib/Members.json";
import IconDiscord from "~icons/simple-icons/discord";
import IconMatrix from "~icons/simple-icons/matrix";
import IconGitHub from "~icons/simple-icons/github";
import IconGlobe from "~icons/fa6-solid/globe";
</script>
<svelte:head>
<title>Members | Project Segfault</title>
<meta name="description" content="Members of Project Segfault." />
</svelte:head>
<div class="members">
<h1>Members</h1>
<p>Our excellent members!</p>
<div class="member-outer">
{#each members as { name, discord, matrix, position, description, github, website }}
<div class="member-inner">
<div class="main">
<span>{name} - {position}</span>
{#if description}
<p class="description">{description}</p>
{/if}
</div>
<div class="socials">
{#if matrix}
<a href={matrix} class="matrixcolored"><IconMatrix /></a
>
{/if}
{#if discord}
<a href={discord} class="discordcolored"
><IconDiscord /></a
>
{/if}
{#if github}
<a href={github} class="githubcolored"><IconGitHub /></a
>
{/if}
{#if website}
<a href={website} class="web"><IconGlobe /></a>
{/if}
</div>
</div>
{/each}
</div>
</div>
<style>
.member-outer {
display: flex;
flex-direction: column;
gap: 2rem;
flex-flow: row wrap;
}
.member-inner {
background-color: #252525;
border-radius: 10px;
padding: 1rem;
width: 30em;
display: flex;
flex-direction: column;
}
.main {
flex: 1;
}
span {
font-size: 25px;
font-weight: bold;
}
a {
border: none;
border-radius: 10px;
padding: 0.5rem;
cursor: pointer;
font-family: var(--font-primary);
color: var(--secondary);
text-decoration: none;
width: fit-content;
}
.matrixcolored {
background-color: #fff;
font-size: 20px;
height: 23px;
}
.discordcolored {
background-color: #5865f2;
color: #fff !important;
font-size: 20px;
height: 23px;
}
.githubcolored {
background-color: #333;
color: #fff !important;
font-size: 20px;
height: 23px;
}
.web {
background-color: var(--tertiary);
color: #fff !important;
font-size: 20px;
height: 23px;
}
.web:hover {
background-color: var(--accent-tertiary);
color: var(--secondary) !important;
transition: all 0.5s;
}
.web:active {
background-color: var(--accent-primary);
transition: all 0.5s;
}
.socials {
display: flex;
flex-direction: row;
gap: 0.5rem;
}
</style>

View File

@ -0,0 +1,25 @@
---
title: Recommended Client Side Mods
description: Recommended client side mods for use when playing on our server.
---
# { title }
{ description }
_[Click me to go back to the Minecraft page](/minecraft)_
## How are these mods picked?
These are picked by our community or are required for server features like voice chatting.
## Can I use these plugins on Bedrock edition or the Forge mod loader?
These plugins only support Minecraft Java edition and most only work on the Fabric/Quilt modloaders. If you play on Bedrock or Forge mod loader, try to find an alternative to these. Mods like Simple Voice Chat have no alternative on Bedrock, sorry.
## The list
- [Xaero's World Map](https://www.curseforge.com/minecraft/mc-mods/xaeros-world-map/)
- [Xaero's Minimap](https://www.curseforge.com/minecraft/mc-mods/xaeros-minimap/)
- [Simple Voice Chat](https://modrinth.com/mod/simple-voice-chat/)
- Any optimization mod (we recommend at least Sodium, but you can find more on [Modrinth](https://modrinth.com/).)

View File

@ -1,43 +0,0 @@
<script>
import { t } from "$lib/translations";
import * as global from "../../i18n/_global.json";
import SvelteSeo from "svelte-seo";
</script>
<SvelteSeo
title="{$t("common.MINECRAFT_TITLE")} | {global.NAME}"
description="{$t("common.CSM_TITLE")}"
canonical="https://projectsegfau.lt/minecraft/client-side-mods"
openGraph={{
url: "https://projectsegfau.lt/minecraft/client-side-mods",
title: "{$t('common.MINECRAFT_TITLE')} | {global.NAME}",
description: $t("common.CSM_TITLE")
}}
/>
<h1>{$t("common.MINECRAFT_TITLE")}</h1>
<h1><a href="/minecraft">{$t("common.CSM_GOBACK")}</a></h1>
<h2>{$t("common.CSM_TITLE")}</h2>
<p>{$t("common.CSM_HOW_THEY_ARE_PICKED")}</p>
<p>{$t("common.CSM_NOTE_BEDROCK")}</p>
<ul>
<li>
<a href="https://www.curseforge.com/minecraft/mc-mods/xaeros-world-map"
>Xaero's World Map</a
>
&
<a href="https://www.curseforge.com/minecraft/mc-mods/xaeros-minimap"
>Xaero's Minimap</a
>
</li>
<li>{$t("common.CSM_OPTIMIZATION_MODS_NOTE")}</li>
<li>
<a href="https://modrinth.com/mod/simple-voice-chat/"
>Simple Voice Chat</a
>
</li>
</ul>

View File

@ -0,0 +1,59 @@
---
title: Minecraft
description: Information about our Minecraft server.
---
# { title }
We have an invite-only SMP server running on our network on version 1.18\* (1.18, 1.18.1, 1.18.2) which is also bridged to Bedrock using GeyserMC.
## How do I join?
If you would like to join, please join our Matrix space or Discord server and ask a project member to whitelist your account. The links to either the Matrix or the Discord can be found on the footer of the page.
## Rules
1. Do not modify buildings without permission.
2. Do not bypass protections. (mining around a protected door, bypassing chest locks etc.)
3. Do not cheat.
4. Do not lag the server purposely.
## IP
**Java**: `mc.projectsegfau.lt:25565`
**Bedrock**: `mc.projectsegfau.lt:19132`
_Psst, you can join bedrock on your Switch using the app weve linked below!_
## Links
[Dynmap](https://map.mc.projectsegfau.lt/)
[MC Server Connector for iOS](https://apps.apple.com/us/app/mc-server-connector/id1548251304/)
[MC Server Connector for Android](https://play.google.com/store/apps/details?id=com.smokiem.mcserverconnector/)
## Recommended Client Side Mods
[Click me for a list of recommended client side mods.](/minecraft/client-side-mods/)
## Plugin List
A list of plugins we use on our server via PaperMC.
_This is a manually made list of our plugins, so it might not reflect the plugins currently on the server._
- BlockLocker
- CoreProtect
- [Dynmap](https://map.mc.projectsegfau.lt/)
- EssentialsX (EssentialsXDiscord, EssentialsXGeoIP)
- Geyser & Floodgate
- LuckPerms
- mcMMO ([Click here to download our build of mcMMO.](https://dl.odyssey346.dev/Software/mcMMO.jar))
- TabTPS
- Vault
- ViaVersion (You may only connect from a base version and its subversions (1.18, 1.18.1, 1.18.2). You cannot connect from a major version older or newer than the major version the server is running.)
- PlugMan
- CombatLogX
- Simple Voice Chat

View File

@ -1,87 +0,0 @@
<script>
import { t } from "$lib/translations";
import * as global from "../../i18n/_global.json";
import SvelteSeo from "svelte-seo";
</script>
<SvelteSeo
title="{$t("common.MINECRAFT_TITLE")} | {global.NAME}"
description="{$t("common.MINECRAFT_DESCRIPTION")}"
canonical="https://projectsegfau.lt/minecraft/"
openGraph={{
url: "https://projectsegfau.lt/minecraft/",
title: "{$t('common.MINECRAFT_TITLE')} | {global.NAME}",
description: $t("common.MINECRAFT_DESCRIPTION")
}}
/>
<h1>{$t("common.MINECRAFT_TITLE")}</h1>
<h1>{$t("common.MINECRAFT_DESCRIPTION")}</h1>
<p>{$t("common.MINECRAFT_SMP")}</p>
<p>{$t("common.MINECRAFT_JOIN")}</p>
<a href={global.DISCORD_INVITE}>{$t("common.MINECRAFT_DISCORD")}</a>
<h2>{$t("common.MINECRAFT_RULES")}</h2>
<p>{$t("common.MINECRAFT_RULE_1")}</p>
<p>{$t("common.MINECRAFT_RULE_2")}</p>
<p>{$t("common.MINECRAFT_RULE_3")}</p>
<p>{$t("common.MINECRAFT_RULE_4")}</p>
<h2>{$t("common.MINECRAFT_IP")}</h2>
<p><b>Java</b>: {global.MINECRAFT_JAVA_IP}</p>
<p><b>Bedrock</b>: {global.MINECRAFT_BEDROCK_IP}</p>
<i>{$t("common.MINECRAFT_NOTE_1")}</i>
<br />
<i>{$t("common.MINECRAFT_NOTE_2")}</i>
<h2>{$t("common.MINECRAFT_LINKS")}</h2>
<a href="https://map.mc.projectsegfau.lt">Dynmap</a>
<a href="https://apps.apple.com/us/app/mc-server-connector/id1548251304"
>{$t("common.MINECRAFT_MC_IOS")}</a
>
<a
href="https://play.google.com/store/apps/details?id=com.smokiem.mcserverconnector&hl=no&gl=US"
>{$t("common.MINECRAFT_MC_ANDROID")}</a
>
<h2>{$t("common.MINECRAFT_CLIENT_SIDE_MODS")}</h2>
<a href="/minecraft/client-side-mods"
>{$t("common.MINECRAFT_CLIENT_SIDE_MODS_URL")}</a
>
<h2>{$t("common.MINECRAFT_PLUGIN_LIST_TITLE")}</h2>
<p>{$t("common.MINECRAFT_PLUGIN_LIST_NOTE")}</p>
<ul>
<li>BlockLocker</li>
<li>CoreProtect</li>
<li><a href="https://map.mc.projectsegfau.lt">Dynmap</a></li>
<li>EssentialsX (EssentialsXDiscord, EssentialsXGeoIP)</li>
<li>Geyser & Floodgate</li>
<li>LuckPerms</li>
<li>
mcMMO <a href="https://dl.odyssey346.dev/Software/mcMMO.jar"
>{$t("common.MINECRAFT_MCMMO")}</a
>
</li>
<li>TabTPS</li>
<li>Vault</li>
<li>ViaVersion ({$t("common.MINECRAFT_VIAVERSION_NOTE")})</li>
<li>PlugMan</li>
<li>CombatLogX</li>
<li>Simple Voice Chat</li>
</ul>

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 426 KiB

View File

@ -1,25 +1,24 @@
import adapter from "@sveltejs/adapter-static"; import adapter from "@sveltejs/adapter-static";
import preprocess from "svelte-preprocess"; import preprocess from "svelte-preprocess";
import icons from "unplugin-icons/vite"; import { mdsvex } from "mdsvex";
/** @type {import('@sveltejs/kit').Config} */ /** @type {import('@sveltejs/kit').Config} */
const config = { const config = {
// Consult https://github.com/sveltejs/svelte-preprocess // Consult https://github.com/sveltejs/svelte-preprocess
// for more information about preprocessors // for more information about preprocessors
extensions: [".svelte"], extensions: [".svelte", ".md"],
preprocess: [preprocess()], preprocess: [
preprocess(),
mdsvex({
extensions: [".md"],
layout: "./src/lib/MDsvexLayout.svelte"
})
],
kit: { kit: {
adapter: adapter(), adapter: adapter(),
vite: {
plugins: [
icons({
compiler: "svelte"
})
]
},
prerender: { prerender: {
default: true default: true
} }

15
vite.config.js Normal file
View File

@ -0,0 +1,15 @@
import { sveltekit } from "@sveltejs/kit/vite";
import icons from "unplugin-icons/vite";
/** @type {import('vite').UserConfig} */
const config = {
plugins: [
sveltekit(),
icons({
compiler: "svelte"
})
]
};
export default config;