From 0d17544b3e3220a7493319271b79ce435f991a0b Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Sat, 15 Feb 2025 12:35:53 +0100 Subject: next commit --- Game/Lobby/game_lobby.gd | 90 ----------------------------------------------- Game/Lobby/games_lobby.gd | 90 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 90 deletions(-) delete mode 100644 Game/Lobby/game_lobby.gd create mode 100644 Game/Lobby/games_lobby.gd (limited to 'Game/Lobby') diff --git a/Game/Lobby/game_lobby.gd b/Game/Lobby/game_lobby.gd deleted file mode 100644 index ffc66f3..0000000 --- a/Game/Lobby/game_lobby.gd +++ /dev/null @@ -1,90 +0,0 @@ -extends Node - - -class HTTPRequestConfig extends Resource: - var headers: PackedStringArray - var method: HTTPClient.Method - var data: Dictionary - var node: HTTPRequest - - @warning_ignore("shadowed_variable") - func _init( - headers := PackedStringArray(), - method := HTTPClient.METHOD_GET, - data := {}, - node := HTTPRequest.new() - ) -> void: - self.headers = headers - self.method = method - self.data = data - self.node = node - - -class HTTPResponse extends Resource: - var result_code: HTTPRequest.Result - var response_code: int - var headers: PackedStringArray - var body: PackedByteArray - - func parse_json() -> Dictionary: - return JSON.parse_string(body.get_string_from_utf8()) - - -var server_base_url: String = Client.get_config().get_value("general", "game_lobby_server_base_url") -var current_game_id: String -var current_secret: String - - -func request( - url: String, - config: HTTPRequestConfig = HTTPRequestConfig.new() -) -> HTTPResponse: - get_tree().root.add_child(config.node) - - if config.method == HTTPClient.METHOD_POST: - config.data["id"] = current_game_id - config.data["secret"] = current_secret - - var response = HTTPResponse.new() - config.node.request_completed.connect( - func ( - result_code: int, - response_code: int, - headers: PackedStringArray, - body: PackedByteArray - ): - response.result_code = result_code - response.response_code = response_code - response.headers = headers - response.body = body - - get_tree().root.remove_child(config.node) - ) - - config.node.request( - "%s%s" % [server_base_url, url], - config.headers, - config.method, - JSON.stringify(config.data) - ) - - await config.node.request_completed - return response - - -func request_get(url: String, headers := PackedStringArray()): - var config := HTTPRequestConfig.new(headers) - - return await request(url, config) - - -func request_post(url: String, data: Dictionary = {}, headers := PackedStringArray()): - var config := HTTPRequestConfig.new(headers, HTTPClient.METHOD_POST, data) - - return await request(url, config) - - -func check_available() -> bool: - var response = await GameLobby.request_get("") - - return response.result_code == HTTPRequest.RESULT_SUCCESS diff --git a/Game/Lobby/games_lobby.gd b/Game/Lobby/games_lobby.gd new file mode 100644 index 0000000..ffc66f3 --- /dev/null +++ b/Game/Lobby/games_lobby.gd @@ -0,0 +1,90 @@ +extends Node + + +class HTTPRequestConfig extends Resource: + var headers: PackedStringArray + var method: HTTPClient.Method + var data: Dictionary + var node: HTTPRequest + + @warning_ignore("shadowed_variable") + func _init( + headers := PackedStringArray(), + method := HTTPClient.METHOD_GET, + data := {}, + node := HTTPRequest.new() + ) -> void: + self.headers = headers + self.method = method + self.data = data + self.node = node + + +class HTTPResponse extends Resource: + var result_code: HTTPRequest.Result + var response_code: int + var headers: PackedStringArray + var body: PackedByteArray + + func parse_json() -> Dictionary: + return JSON.parse_string(body.get_string_from_utf8()) + + +var server_base_url: String = Client.get_config().get_value("general", "game_lobby_server_base_url") +var current_game_id: String +var current_secret: String + + +func request( + url: String, + config: HTTPRequestConfig = HTTPRequestConfig.new() +) -> HTTPResponse: + get_tree().root.add_child(config.node) + + if config.method == HTTPClient.METHOD_POST: + config.data["id"] = current_game_id + config.data["secret"] = current_secret + + var response = HTTPResponse.new() + config.node.request_completed.connect( + func ( + result_code: int, + response_code: int, + headers: PackedStringArray, + body: PackedByteArray + ): + response.result_code = result_code + response.response_code = response_code + response.headers = headers + response.body = body + + get_tree().root.remove_child(config.node) + ) + + config.node.request( + "%s%s" % [server_base_url, url], + config.headers, + config.method, + JSON.stringify(config.data) + ) + + await config.node.request_completed + return response + + +func request_get(url: String, headers := PackedStringArray()): + var config := HTTPRequestConfig.new(headers) + + return await request(url, config) + + +func request_post(url: String, data: Dictionary = {}, headers := PackedStringArray()): + var config := HTTPRequestConfig.new(headers, HTTPClient.METHOD_POST, data) + + return await request(url, config) + + +func check_available() -> bool: + var response = await GameLobby.request_get("") + + return response.result_code == HTTPRequest.RESULT_SUCCESS -- cgit v1.2.3