Initial Import Commit
58
assets/css/errors.css
Normal file
|
@ -0,0 +1,58 @@
|
|||
@import 'fonts.css';
|
||||
|
||||
body {
|
||||
background-image: url('../images/darkbg.webp');
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
#particles-js {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
z-index: -10;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
button {
|
||||
display: inline;
|
||||
font-family: 'JetBrains Mono', sans-serif, Fallback;
|
||||
font-style: italic;
|
||||
color: green;
|
||||
background-color: transparent;
|
||||
border: 0.01em solid green;
|
||||
margin: 0.1em;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
color: black;
|
||||
background-color: green;
|
||||
border-radius: 0.25em;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
button:active {
|
||||
color: green;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
error-section {
|
||||
display: block;
|
||||
font-family: 'JetBrains Mono', Fallback, sans-serif;
|
||||
color: green;
|
||||
z-index: 1;
|
||||
border: 3px solid green;
|
||||
width: 50em;
|
||||
margin: 3em auto;
|
||||
padding: 2em;
|
||||
background-color: rgb(15, 15, 15);
|
||||
}
|
||||
|
||||
error-code {
|
||||
display: inline;
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
error-desc {
|
||||
display: inline;
|
||||
}
|
64
assets/css/fonts.css
Normal file
|
@ -0,0 +1,64 @@
|
|||
/* Meyrin Font */
|
||||
@font-face {
|
||||
font-family: 'Meyrin';
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
src: url('https://cdn.jsdelivr.net/gh/optional-is/Meyrin@master/formats/Meyrin.woff') format('woff'),
|
||||
/* Modern Browsers */
|
||||
url('https://cdn.jsdelivr.net/gh/optional-is/Meyrin@master/formats/Meyrin.ttf') format('truetype'),
|
||||
/* Safari, Android, iOS */
|
||||
url('https://cdn.jsdelivr.net/gh/optional-is/Meyrin@master/formats/Meyrin.svg#svgFontName') format('svg'),
|
||||
/* Legacy iOS */
|
||||
url('https://cdn.jsdelivr.net/gh/optional-is/Meyrin@master/formats/Meyrin.eot') format('embedded-opentype'),
|
||||
/* IE9 Compatibility Mode */
|
||||
url('https://cdn.jsdelivr.net/gh/optional-is/Meyrin@master/formats/Meyrin.eot?#iefix') format('embedded-opentype');
|
||||
/* IE6-IE8 */
|
||||
}
|
||||
|
||||
/* JetBrains Mono normal Font */
|
||||
@font-face {
|
||||
font-family: 'JetBrains Mono';
|
||||
/* Variable font */
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@master/fonts/variable/JetBrainsMono%5Bwght%5D.woff2') format('woff2');
|
||||
src: url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@master/fonts/variable/JetBrainsMono%5Bwght%5D.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* JetBrains Mono italic Font */
|
||||
@font-face {
|
||||
font-family: 'JetBrains Mono';
|
||||
/* Variable font */
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@master/fonts/variable/JetBrainsMono-Italic%5Bwght%5D.woff2') format('woff2');
|
||||
src: url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@master/fonts/variable/JetBrainsMono-Italic%5Bwght%5D.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* FixedSysExcelsior Font */
|
||||
@font-face {
|
||||
font-family: 'FixedSysExcelsior';
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
src: url('https://github.com/kika/fixedsys/releases/download/v3.02.9/FSEX302.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* InterVariable normal Font */
|
||||
@font-face {
|
||||
font-family: InterVariable;
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('https://rsms.me/inter/font-files/InterVariable.woff2?v=4.0') format('woff2');
|
||||
}
|
||||
|
||||
/* InterVariable italic Font */
|
||||
@font-face {
|
||||
font-family: InterVariable;
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('https://rsms.me/inter/font-files/InterVariable-Italic.woff2?v=4.0') format('woff2');
|
||||
}
|
25
assets/css/index.css
Normal file
|
@ -0,0 +1,25 @@
|
|||
.meyrin {
|
||||
font-family: Meyrin, serif;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.cc-img {
|
||||
height: 22px !important;
|
||||
margin-left: 3px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.Inter {
|
||||
font-family: InterVariable, sans-serif;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.footer {
|
||||
z-index: 1;
|
||||
border: 3px solid green;
|
||||
width: 25em;
|
||||
padding: 1em;
|
||||
font-size: 1em;
|
||||
margin: 2em auto;
|
||||
}
|
8
assets/css/modpacks.css
Normal file
|
@ -0,0 +1,8 @@
|
|||
.content {
|
||||
z-index: 1;
|
||||
border: 3px solid green;
|
||||
width: 50em;
|
||||
padding: 1em;
|
||||
font-size: 1.25em;
|
||||
margin: 2em auto;
|
||||
}
|
159
assets/css/redirect-anim.css
Normal file
|
@ -0,0 +1,159 @@
|
|||
:root {
|
||||
--b: #262626;
|
||||
--w: #dcdcd2;
|
||||
--s: 2s;
|
||||
/* change speed */
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: border-box;
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: var(--b);
|
||||
}
|
||||
|
||||
.content {
|
||||
width: 50vmin;
|
||||
height: 50vmin;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
perspective: 1000vmin;
|
||||
}
|
||||
|
||||
.bars {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
padding: 6.5vmin 3vmin;
|
||||
animation: mirror1 calc(var(--s) * 2) ease 0s infinite;
|
||||
}
|
||||
|
||||
.bars+.bars {
|
||||
transform: rotate(90deg) rotateX(180deg);
|
||||
animation: mirror2 calc(var(--s) * 2) ease calc(var(--s) / 2) infinite;
|
||||
}
|
||||
|
||||
.bar {
|
||||
width: 44vmin;
|
||||
height: 3vmin;
|
||||
margin: 2vmin 0vmin;
|
||||
background: linear-gradient(90deg, #fff0 33%, var(--w) 33% 67%, #fff0 67% 100%);
|
||||
animation: grow var(--s) ease-in-out 0s infinite alternate;
|
||||
background-size: 300%;
|
||||
background-position-x: -203%;
|
||||
}
|
||||
|
||||
@keyframes mirror1 {
|
||||
|
||||
0%,
|
||||
47%,
|
||||
99.99%,
|
||||
100% {
|
||||
transform: rotate(180deg) rotateX(0deg);
|
||||
}
|
||||
|
||||
47.01%,
|
||||
99.98% {
|
||||
transform: rotate(180deg) rotateX(180deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes mirror2 {
|
||||
|
||||
0%,
|
||||
47%,
|
||||
99.99%,
|
||||
100% {
|
||||
transform: rotate(90deg) rotateX(180deg);
|
||||
}
|
||||
|
||||
47.01%,
|
||||
99.98% {
|
||||
transform: rotate(90deg) rotateX(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes grow {
|
||||
|
||||
0%,
|
||||
25% {
|
||||
background-position-x: -297%;
|
||||
}
|
||||
|
||||
45%,
|
||||
55% {
|
||||
background-position-x: -250%;
|
||||
}
|
||||
|
||||
75%,
|
||||
100% {
|
||||
background-position-x: -203%;
|
||||
}
|
||||
}
|
||||
|
||||
.bar:nth-child(2) {
|
||||
animation-delay: calc(var(--s) * -0.02);
|
||||
}
|
||||
|
||||
.bar:nth-child(3) {
|
||||
animation-delay: calc(var(--s) * -0.04);
|
||||
}
|
||||
|
||||
.bar:nth-child(4) {
|
||||
animation-delay: calc(var(--s) * -0.06);
|
||||
}
|
||||
|
||||
.bar:nth-child(5) {
|
||||
animation-delay: calc(var(--s) * -0.08);
|
||||
}
|
||||
|
||||
.bar:nth-child(6) {
|
||||
animation-delay: calc(var(--s) * -0.1);
|
||||
}
|
||||
|
||||
.bar:nth-child(7) {
|
||||
animation-delay: calc(var(--s) * -0.12);
|
||||
}
|
||||
|
||||
.bars:nth-child(2) .bar:nth-child(1) {
|
||||
animation-delay: calc(calc(var(--s) * -0.001) - calc(var(--s) / 2));
|
||||
}
|
||||
|
||||
.bars:nth-child(2) .bar:nth-child(2) {
|
||||
animation-delay: calc(calc(var(--s) * -0.02) - calc(var(--s) / 2));
|
||||
}
|
||||
|
||||
.bars:nth-child(2) .bar:nth-child(3) {
|
||||
animation-delay: calc(calc(var(--s) * -0.04) - calc(var(--s) / 2));
|
||||
}
|
||||
|
||||
.bars:nth-child(2) .bar:nth-child(4) {
|
||||
animation-delay: calc(calc(var(--s) * -0.06) - calc(var(--s) / 2));
|
||||
}
|
||||
|
||||
.bars:nth-child(2) .bar:nth-child(5) {
|
||||
animation-delay: calc(calc(var(--s) * -0.08) - calc(var(--s) / 2));
|
||||
}
|
||||
|
||||
.bars:nth-child(2) .bar:nth-child(6) {
|
||||
animation-delay: calc(calc(var(--s) * -0.1) - calc(var(--s) / 2));
|
||||
}
|
||||
|
||||
.bars:nth-child(2) .bar:nth-child(7) {
|
||||
animation-delay: calc(calc(var(--s) * -0.12) - calc(var(--s) / 2));
|
||||
}
|
31
assets/css/redirect.css
Normal file
|
@ -0,0 +1,31 @@
|
|||
@import url('redirect-anim.css');
|
||||
|
||||
/* @import is for the animation on the redirect page */
|
||||
body {
|
||||
color: white;
|
||||
font-family: 'JetBrains Mono', sans-serif;
|
||||
}
|
||||
|
||||
a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#particles-js {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
z-index: -999;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.content {
|
||||
z-index: -998;
|
||||
position: fixed;
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
p {
|
||||
z-index: 999;
|
||||
position: fixed;
|
||||
}
|
81
assets/css/styles.css
Normal file
|
@ -0,0 +1,81 @@
|
|||
@import 'fonts.css';
|
||||
|
||||
body {
|
||||
font-family: 'JetBrains Mono', Fallback, sans-serif;
|
||||
color: green;
|
||||
background-image: url('../images/darkbg.webp');
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
#particles-js {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
z-index: -10;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.fse {
|
||||
font-family: 'FixedSysExcelsior', Fallback, sans-serif;
|
||||
}
|
||||
|
||||
a {
|
||||
color: green;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.l {
|
||||
text-decoration: underline green;
|
||||
}
|
||||
|
||||
.qrc {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
button {
|
||||
display: inline;
|
||||
font-family: 'JetBrains Mono', sans-serif, Fallback;
|
||||
font-style: italic;
|
||||
color: green;
|
||||
background-color: transparent;
|
||||
border: 0.01em solid green;
|
||||
margin: 0.1em;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
color: black;
|
||||
background-color: green;
|
||||
border-radius: 0.25em;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
button:active {
|
||||
color: green;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.desc {
|
||||
font-size: 0.7em
|
||||
}
|
||||
|
||||
.code {
|
||||
border-color: white;
|
||||
border-width: 0.1em;
|
||||
border-style: solid;
|
||||
background-color: black;
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.header {
|
||||
z-index: 1;
|
||||
border: 3px solid green;
|
||||
width: 20em;
|
||||
padding: 1em;
|
||||
font-size: 2em;
|
||||
margin: 2em auto;
|
||||
}
|
BIN
assets/icons/base.avif
Normal file
BIN
assets/icons/base.ico
Normal file
After Width: | Height: | Size: 264 KiB |
BIN
assets/icons/sewt.avif
Normal file
BIN
assets/icons/sewt.ico
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
assets/images/ResponseCode/403.png
Normal file
After Width: | Height: | Size: 192 KiB |
BIN
assets/images/ResponseCode/404.png
Normal file
After Width: | Height: | Size: 195 KiB |
BIN
assets/images/ResponseCode/418.png
Normal file
After Width: | Height: | Size: 121 KiB |
BIN
assets/images/ResponseCode/500.png
Normal file
After Width: | Height: | Size: 165 KiB |
BIN
assets/images/ResponseCode/503.png
Normal file
After Width: | Height: | Size: 194 KiB |
1
assets/images/ResponseCode/CREDITS.txt
Normal file
|
@ -0,0 +1 @@
|
|||
https://github.com/SAWARATSUKI/KawaiiLogos
|
BIN
assets/images/SEWT.webp
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
assets/images/SkyExploreWasTaken.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
assets/images/SkyExploreWasTaken.webp
Normal file
After Width: | Height: | Size: 174 KiB |
BIN
assets/images/darkbg.webp
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
assets/images/gravatar-qrc.webp
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
assets/images/twitch-recap-2024.png
Normal file
After Width: | Height: | Size: 1.9 MiB |
123
assets/js/config.js
Normal file
|
@ -0,0 +1,123 @@
|
|||
/* -----------------------------------------------
|
||||
/* How to use? : Check the GitHub README
|
||||
/* ----------------------------------------------- */
|
||||
|
||||
/* To load a config file (particles.json) you need to host this demo (MAMP/WAMP/local)... */
|
||||
|
||||
|
||||
|
||||
/* Otherwise just put the config content (json): */
|
||||
|
||||
particlesJS('particles-js',
|
||||
|
||||
{
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 43,
|
||||
"density": {
|
||||
"enable": true,
|
||||
"value_area": 800
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#ffffff"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle",
|
||||
"stroke": {
|
||||
"width": 0,
|
||||
"color": "#000000"
|
||||
},
|
||||
"polygon": {
|
||||
"nb_sides": 5
|
||||
},
|
||||
"image": {
|
||||
"src": "img/github.svg",
|
||||
"width": 100,
|
||||
"height": 100
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"value": 0.5,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 1,
|
||||
"opacity_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"value": 3,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 40,
|
||||
"size_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"line_linked": {
|
||||
"enable": true,
|
||||
"distance": 150,
|
||||
"color": "#ffffff",
|
||||
"opacity": 0.5445204668671129,
|
||||
"width": 1
|
||||
},
|
||||
"move": {
|
||||
"enable": true,
|
||||
"speed": 6,
|
||||
"direction": "none",
|
||||
"random": true,
|
||||
"straight": false,
|
||||
"out_mode": "out",
|
||||
"bounce": false,
|
||||
"attract": {
|
||||
"enable": true,
|
||||
"rotateX": 600,
|
||||
"rotateY": 1200
|
||||
}
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"detect_on": "window",
|
||||
"events": {
|
||||
"onhover": {
|
||||
"enable": true,
|
||||
"mode": "grab"
|
||||
},
|
||||
"onclick": {
|
||||
"enable": false,
|
||||
"mode": "bubble"
|
||||
},
|
||||
"resize": true
|
||||
},
|
||||
"modes": {
|
||||
"grab": {
|
||||
"distance": 251.73215698496793,
|
||||
"line_linked": {
|
||||
"opacity": 0.3399433427762041
|
||||
}
|
||||
},
|
||||
"bubble": {
|
||||
"distance": 167.8214379899786,
|
||||
"size": 3.99574852357092,
|
||||
"duration": 0.39957485235709195,
|
||||
"opacity": 8,
|
||||
"speed": 3
|
||||
},
|
||||
"repulse": {
|
||||
"distance": 200,
|
||||
"duration": 0.4
|
||||
},
|
||||
"push": {
|
||||
"particles_nb": 4
|
||||
},
|
||||
"remove": {
|
||||
"particles_nb": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true
|
||||
}
|
||||
);
|
19
assets/js/index.js
Normal file
|
@ -0,0 +1,19 @@
|
|||
document.addEventListener("DOMContentLoaded", function () {
|
||||
// Sélectionne tous les éléments avec la classe "code"
|
||||
const codeElements = document.querySelectorAll('.blink');
|
||||
|
||||
// Fonction pour alterner la visibilité des éléments
|
||||
function toggleVisibility() {
|
||||
codeElements.forEach(element => {
|
||||
if (element.style.visibility === 'hidden') {
|
||||
element.style.visibility = 'visible';
|
||||
} else {
|
||||
element.style.visibility = 'hidden';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Définit l'intervalle de clignotement (par exemple, toutes les 500 ms)
|
||||
setInterval(toggleVisibility, 500);
|
||||
});
|
||||
document.getElementById("sewt-desc").innerText = "a little </> websites </> developer."
|
16
assets/js/navigator.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
let appCodeName = navigator.appCodeName;
|
||||
let appName = navigator.appName;
|
||||
let appVersion = navigator.appVersion;
|
||||
let language = navigator.language;
|
||||
let onLine = navigator.onLine;
|
||||
let platform = navigator.platform;
|
||||
let product = navigator.product;
|
||||
let userAgent = navigator.userAgent;
|
||||
document.getElementById("appcodename").innerText = "Browser appCodeName is : " + appCodeName;
|
||||
document.getElementById("appname").innerText = "Browser appName is : " + appName;
|
||||
document.getElementById("appversion").innerText = "Browser appVersion is : " + appVersion;
|
||||
document.getElementById("language").innerText = "Browser language is : " + language
|
||||
document.getElementById("online").innerText = "Is the browser online : " + onLine;
|
||||
document.getElementById("platform").innerText = "Browser platform : " + platform;
|
||||
document.getElementById("product").innerText = "Browser engine name : " + product;
|
||||
document.getElementById("useragent").innerText = "Browser user-agent header : " + userAgent;
|
1541
assets/js/particles.js
Normal file
50
assets/js/redirect.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
document.addEventListener("DOMContentLoaded", function () {
|
||||
// Fonction pour obtenir les paramètres d'URL
|
||||
function getQueryParams() {
|
||||
const params = {};
|
||||
const queryString = window.location.search.substring(1);
|
||||
const regex = /([^&=]+)=([^&]*)/g;
|
||||
let match;
|
||||
while (match = regex.exec(queryString)) {
|
||||
params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
// Fonction pour charger les redirections à partir du fichier JSON relatif au script
|
||||
function loadRedirections() {
|
||||
const jsonUrl = new URL('../json/redirect.json', import.meta.url).href;
|
||||
return fetch(jsonUrl)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error("Erreur lors du chargement du fichier JSON");
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Erreur:", error);
|
||||
return {}; // Retourner un objet vide si le chargement échoue
|
||||
});
|
||||
}
|
||||
|
||||
const defaultRedirection = '../';
|
||||
|
||||
// Charger les redirections et appliquer la logique
|
||||
loadRedirections().then(redirections => {
|
||||
const queryParams = getQueryParams();
|
||||
|
||||
// Déterminer l'URL cible en fonction des paramètres d'URL
|
||||
const targetUrl = queryParams.link && redirections[queryParams.link] ? redirections[queryParams.link] : defaultRedirection;
|
||||
|
||||
// Mettre à jour le lien "here"
|
||||
const hereElement = document.getElementById('here');
|
||||
if (hereElement) {
|
||||
hereElement.href = targetUrl;
|
||||
}
|
||||
|
||||
// Rediriger après 3 secondes
|
||||
setTimeout(function () {
|
||||
window.location.href = targetUrl;
|
||||
}, 3000);
|
||||
});
|
||||
});
|
6
assets/json/redirect.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"youtube": "https://youtube.com/@SkyExploreWasTaken?sub_confirmation=1",
|
||||
"twitch": "https://twitch.tv/skyexplorewastaken",
|
||||
"discord": "https://dsc.gg/sewt-server",
|
||||
"github": "https://github.com/SkyExploreWasTaken"
|
||||
}
|