40 lines
948 B
GDScript3
40 lines
948 B
GDScript3
|
extends Button
|
||
|
|
||
|
@export var username_field: LineEdit
|
||
|
@export var password_field: LineEdit
|
||
|
@export var http_request: HTTPRequest
|
||
|
var url: String = "http://localhost:8080/api/v1/player/login"
|
||
|
var headers = ["Content-Type: application/json"]
|
||
|
|
||
|
|
||
|
func _ready() -> void:
|
||
|
if not username_field:
|
||
|
push_error("No Username Field set")
|
||
|
return
|
||
|
if not password_field:
|
||
|
push_error("No Password Field set")
|
||
|
return
|
||
|
if not http_request:
|
||
|
push_error("No Http Request set")
|
||
|
return
|
||
|
connect("pressed", login)
|
||
|
|
||
|
|
||
|
func login() -> void:
|
||
|
var login_data = {
|
||
|
"username": username_field.text,
|
||
|
"password": password_field.text,
|
||
|
}
|
||
|
var json = JSON.stringify(login_data)
|
||
|
http_request.connect("request_completed", on_login_response)
|
||
|
http_request.request(url, headers, HTTPClient.METHOD_POST, json)
|
||
|
|
||
|
|
||
|
func on_login_response(
|
||
|
_result: int,
|
||
|
_response_code: int,
|
||
|
_headers: PackedStringArray,
|
||
|
body: PackedByteArray,
|
||
|
) -> void:
|
||
|
print(body.get_string_from_utf8())
|