werefox-cafe/src/info/pages/minecraft/index.js

67 lines
1.6 KiB
JavaScript

import HomePage from "../../components/home-page";
import ICard from "../../components/introduction-card";
import WCard from "../../components/werefox-card";
import axios from "axios";
export const getPlugins = async () =>
await axios.get("http://192.168.0.202:8111/api/plugins/list").then(
(result) => {
return result.data;
},
(error) => {
console.log(error);
return null;
}
);
// Grab data from a static YAML file
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let INTRODUCTION = {};
const promise = getPlugins();
const plugins = await Promise.resolve(promise);
const plugins_sorted = plugins.plugins
.map((p) => {
return p[0].toUpperCase() + p.substr(1);
})
.sort();
try {
let fileContent = fs.readFileSync(
"./data/minecraft/introduction.yml",
"utf8"
);
INTRODUCTION = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
INTRODUCTION,
plugins_list: plugins_sorted,
},
};
}
export default function Minecraft({ plugins_list, INTRODUCTION }) {
return (
<HomePage
theme="Ada"
page_title="Minecraft Server Info"
card_title="Minecraft Server Info"
>
<WCard theme="Ada" title="Queercule Minecraft Server">
<ICard theme="Ada" introduction={INTRODUCTION.intro} emoji_paths={{}} />
</WCard>
<WCard theme="Ada" title="Plugins">
{Object.keys(plugins_list).map((plugin) => (
<div key={plugin} className="">
- {plugins_list[plugin]}
</div>
))}
</WCard>
</HomePage>
);
}