Display some basic stats on web
This commit is contained in:
		
							
								
								
									
										6
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								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(
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
 
 | 
			
		||||
@@ -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 (
 | 
			
		||||
		<div className="app">
 | 
			
		||||
			<p>Hello world</p>
 | 
			
		||||
			{global &&
 | 
			
		||||
				<>
 | 
			
		||||
					<p>Name: {global.name}</p>
 | 
			
		||||
					<p>Pos: {global.pos}</p>
 | 
			
		||||
					<p>Yaw: {global.yaw}</p>
 | 
			
		||||
					<p>Pitch: {global.pitch}</p>
 | 
			
		||||
 | 
			
		||||
					<p>Dimention: {global.dimension}</p>
 | 
			
		||||
 | 
			
		||||
					<p>Players:
 | 
			
		||||
						{Object.values(global.players).map(x =>
 | 
			
		||||
							<div>
 | 
			
		||||
								{global.player_names[x.player_uuid]}
 | 
			
		||||
							</div>
 | 
			
		||||
						)}
 | 
			
		||||
					</p>
 | 
			
		||||
 | 
			
		||||
					<p>Holding: {global.holding}</p>
 | 
			
		||||
					<p>AFK: {`${global.afk}`}</p>
 | 
			
		||||
					<p>Health: {global.health}</p>
 | 
			
		||||
					<p>Food: {global.food}</p>
 | 
			
		||||
					<p>Time: {global.time}</p>
 | 
			
		||||
				</>
 | 
			
		||||
			}
 | 
			
		||||
		</div>
 | 
			
		||||
	);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user