0
0
mirror of https://github.com/yude-jp/yude.jp synced 2024-06-09 23:36:01 +09:00
yude.jp/pages/components/Minecraft.js

49 lines
1.5 KiB
JavaScript
Raw Normal View History

2021-05-30 12:55:44 +09:00
import React, { useState, useEffect } from 'react';
import useTranslation from 'next-translate/useTranslation'
import { useRouter } from 'next/router'
import axios from 'axios';
export default function Minecraft(props) {
const router = useRouter()
const { locale, locales, defaultLocale, pathname } = router
const { t, lang } = useTranslation("minecraft")
const [data, setData] = useState({ hits: [] });
const fail = t('minecraft:fail')
2021-05-30 12:55:44 +09:00
useEffect(() => {
const fetchData = async () => {
const result = await axios(
2021-05-30 13:37:20 +09:00
'https://api.mcsrvstat.us/2/yude.jp',
2021-05-30 12:55:44 +09:00
);
setData(result.data);
};
fetchData();
}, []);
if (data === undefined){
console.log("[Minecraft Query] データの取得に失敗しました。 / Failed to retrieve data.")
return (
<p>{fail}</p>
2021-05-30 12:55:44 +09:00
)
}else{
2021-05-30 13:31:17 +09:00
const status = data.online
2021-05-30 13:37:20 +09:00
const player = data.players && data.players.online
2021-05-30 12:55:44 +09:00
const playing = t('minecraft:playing', {count: player})
const no_one = t('minecraft:no_one')
2021-05-30 13:31:17 +09:00
const offline = t('minecraft:offline')
2021-05-30 12:55:44 +09:00
return (
<p className="text-center">
{(() => {
2021-05-30 13:31:17 +09:00
if (status) {
2021-05-30 13:37:20 +09:00
if (player == undefined || player == 0) {
2021-05-30 12:55:44 +09:00
return <span>{no_one}</span>
} else {
return <span>{playing}</span>
2021-05-30 13:31:17 +09:00
}}else{
return <span>{offline}</span>
2021-05-30 12:55:44 +09:00
}
})()}
</p>
)
}
}