diff options
Diffstat (limited to 'client/menu/main.gd')
| -rw-r--r-- | client/menu/main.gd | 19 | 
1 files changed, 18 insertions, 1 deletions
| diff --git a/client/menu/main.gd b/client/menu/main.gd index f2b9f021..e2c89798 100644 --- a/client/menu/main.gd +++ b/client/menu/main.gd @@ -1,5 +1,6 @@  # Hurry Curry! - a game about cooking  # Copyright 2024 metamuffin +# Copyright 2024 nokoe  #  # This program is free software: you can redistribute it and/or modify  # it under the terms of the GNU Affero General Public License as published by @@ -15,6 +16,8 @@  #  extends Menu +var url_regex: RegEx = RegEx.new() +  @onready var quit_button = $side/margin/options/quit  @onready var connect_uri = $side/margin/options/connect/uri  @onready var server = $side/margin/options/server @@ -23,6 +26,7 @@ extends Menu  func _ready():  	super() +	url_regex.compile("^(?:(ws|wss)://)?([^:]+)(?::([0-9]+))?$")  	if OS.has_feature("web"):  		quit_button.hide()  		server.hide() @@ -39,9 +43,19 @@ func _on_credits_pressed():  func _on_connect_pressed():  	var url = connect_uri.text +	var result := url_regex.search(url) +	if result != null: +		print(result.strings) +		if result.get_string(1) == "": +			url = "ws://" + url +		# only set default port for non-tls websocket connections +		if result.get_string(3) == "" and result.get_string(1) != "wss": +			url = url + ":27032" +		connect_uri.text = url  	Global.set_profile("last_server_url", url)  	connect_to(url) +  func _on_quick_connect_pressed():  	if OS.has_feature("JavaScript"):  		connect_to(JavaScriptBridge.eval(""" @@ -52,7 +66,7 @@ func _on_quick_connect_pressed():  	else:  		connect_to("wss://hurrycurry.metamuffin.org/") -func connect_to(url): +func connect_to(url: String):  	print("Connecting to %s" % url)  	Global.server_url = url  	replace_menu("res://menu/game.tscn") @@ -96,3 +110,6 @@ func _process(_delta):  			server_control.text = tr("Server (Unavailable)")  			server_control.disabled = true  			server_control.tooltip_text = tr("Server binary was not found. Please install the server separately.") + +func _on_uri_text_changed(new_text): +	connect_uri.modulate = Color.WHITE if url_regex.search(new_text) else Color.RED | 
