diff --git a/main.py b/main.py index 33e3149..e1eb148 100644 --- a/main.py +++ b/main.py @@ -5,7 +5,9 @@ import traceback import json from flask import Flask +from flask_cors import CORS app = Flask(__name__) +CORS(app) from munch import Munch from watchdog.observers import Observer @@ -35,8 +37,8 @@ g.health = 20 g.food = 20 g.sand_origin = None -@app.route('/') -def hello_world(): +@app.route('/api/global') +def api_global(): data = json.dumps(g, default=lambda o: str(o), indent=4) response = app.response_class( diff --git a/requirements.txt b/requirements.txt index fcf93a2..4b10814 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,6 +11,7 @@ cryptography==3.4.7 distlib==0.3.0 distro==1.4.0 Flask==1.1.2 +Flask-Cors==3.0.10 html5lib==1.0.1 idna==2.8 ipaddr==2.2.0 diff --git a/web_interface/package.json b/web_interface/package.json index 3cb79b2..ce185b4 100644 --- a/web_interface/package.json +++ b/web_interface/package.json @@ -6,6 +6,7 @@ "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", + "axios": "^0.21.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "4.0.3", diff --git a/web_interface/src/App.js b/web_interface/src/App.js index 68dce68..e024983 100644 --- a/web_interface/src/App.js +++ b/web_interface/src/App.js @@ -1,7 +1,51 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios'; + +axios.defaults.baseURL = 'http://minecraft-bot.dns.t0.vc'; + function App() { + const [global, setGlobal] = useState(false); + + useEffect(() => { + const get = async() => { + try { + const res = await axios.get('/api/global'); + setGlobal(res.data); + } catch (error) { + setGlobal(false); + } + }; + + const interval = setInterval(get, 500); + return () => clearInterval(interval); + }, []); + return (
-

Hello world

+ {global && + <> +

Name: {global.name}

+

Pos: {global.pos}

+

Yaw: {global.yaw}

+

Pitch: {global.pitch}

+ +

Dimention: {global.dimension}

+ +

Players: + {Object.values(global.players).map(x => +

+ {global.player_names[x.player_uuid]} +
+ )} +

+ +

Holding: {global.holding}

+

AFK: {`${global.afk}`}

+

Health: {global.health}

+

Food: {global.food}

+

Time: {global.time}

+ + }
); } diff --git a/web_interface/yarn.lock b/web_interface/yarn.lock index e827ff7..24b0267 100644 --- a/web_interface/yarn.lock +++ b/web_interface/yarn.lock @@ -2493,6 +2493,13 @@ axe-core@^4.0.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.2.tgz#7cf783331320098bfbef620df3b3c770147bc224" integrity sha512-V+Nq70NxKhYt89ArVcaNL9FDryB3vQOd+BFXZIfO3RP6rwtj+2yqqqdHEkacutglPaZLkJeuXKCjCJDMGPtPqg== +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -4998,6 +5005,11 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== +follow-redirects@^1.10.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.0.tgz#f5d260f95c5f8c105894491feee5dc8993b402fe" + integrity sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"