|
@ -5,13 +5,17 @@ import secrets |
|
|
from flask import Flask, abort, request, jsonify |
|
|
from flask import Flask, abort, request, jsonify |
|
|
|
|
|
|
|
|
START_PORT = 8128 |
|
|
START_PORT = 8128 |
|
|
GAME_EXEC = '/opt/godot/Godot_v3.1.1-stable_linux_server.64' |
|
|
|
|
|
|
|
|
GAME_EXEC = 'godot_server' |
|
|
GAME_EXEC_ARG_PACK = '--main-pack' |
|
|
GAME_EXEC_ARG_PACK = '--main-pack' |
|
|
GAME_EXEC_ARG_PACK_PATH = '/opt/godot/Muffrace Pre Alpha.pck' |
|
|
|
|
|
|
|
|
GAME_EXEC_ARG_PACK_PATH = '/opt/godot/MUR.pck' |
|
|
GAME_EXEC_ARG_PORT = '--port={0}' |
|
|
GAME_EXEC_ARG_PORT = '--port={0}' |
|
|
GAME_EXEC_ARG_ID = '--server-id={0}' |
|
|
GAME_EXEC_ARG_ID = '--server-id={0}' |
|
|
GAME_EXEC_ARG_SECRET = '--secret={0}' |
|
|
GAME_EXEC_ARG_SECRET = '--secret={0}' |
|
|
GAME_EXEC_ARG_BOTS = '--bots={0}' |
|
|
GAME_EXEC_ARG_BOTS = '--bots={0}' |
|
|
|
|
|
GAME_EXEC_ARG_SERVER_ADDR = '--server-addr={0}' |
|
|
|
|
|
GAME_EXEC_ARG_API_ADDR = '--api-addr={0}' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
games = {} |
|
|
games = {} |
|
|
|
|
|
|
|
|
try: |
|
|
try: |
|
@ -66,15 +70,21 @@ def create_game(): |
|
|
|
|
|
|
|
|
# gen secret |
|
|
# gen secret |
|
|
secret = secrets.token_hex(32) |
|
|
secret = secrets.token_hex(32) |
|
|
cur.execute("INSERT INTO games (name,secret,ip,port,bots,running) VALUES (?,?,?,?,?,0)", |
|
|
|
|
|
|
|
|
cur.execute("INSERT INTO games (name,secret,ip,port,bots,player_count,running) VALUES (?,?,?,?,?,0,0)", |
|
|
(name, secret, request.remote_addr, port, bots)) |
|
|
(name, secret, request.remote_addr, port, bots)) |
|
|
con.commit() |
|
|
con.commit() |
|
|
cur.execute("SELECT id FROM games WHERE secret=?", |
|
|
cur.execute("SELECT id FROM games WHERE secret=?", |
|
|
(secret,)) |
|
|
(secret,)) |
|
|
result = cur.fetchone() |
|
|
result = cur.fetchone() |
|
|
if result[0]: |
|
|
if result[0]: |
|
|
games[result[0]] = subprocess.Popen([GAME_EXEC, GAME_EXEC_ARG_PACK, GAME_EXEC_ARG_PACK_PATH, GAME_EXEC_ARG_ID.format(int(result[0])), GAME_EXEC_ARG_PORT.format( |
|
|
|
|
|
port), GAME_EXEC_ARG_SECRET.format(secret), GAME_EXEC_ARG_BOTS.format(int(bots))]) |
|
|
|
|
|
|
|
|
games[result[0]] = subprocess.Popen([GAME_EXEC, |
|
|
|
|
|
GAME_EXEC_ARG_PACK,GAME_EXEC_ARG_PACK_PATH, |
|
|
|
|
|
GAME_EXEC_ARG_ID.format(int(result[0])), |
|
|
|
|
|
GAME_EXEC_ARG_PORT.format(port), |
|
|
|
|
|
GAME_EXEC_ARG_SECRET.format(secret), |
|
|
|
|
|
GAME_EXEC_ARG_BOTS.format(int(bots)), |
|
|
|
|
|
GAME_EXEC_ARG_SERVER_ADDR.format('127.0.0.1'), # localhost |
|
|
|
|
|
GAME_EXEC_ARG_API_ADDR.format('http://127.0.0.1:5000/')]) |
|
|
except: |
|
|
except: |
|
|
con.rollback() |
|
|
con.rollback() |
|
|
abort(500) |
|
|
abort(500) |
|
@ -168,4 +178,4 @@ def close_game(): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
if __name__ == '__main__': |
|
|
app.run(debug=True) |
|
|
|
|
|
|
|
|
app.run(debug=True,host='0.0.0.0',port=5000) |