galo 1 year ago
parent
commit
0bbd5b8004
7 changed files with 51 additions and 33 deletions
  1. 22 17
      Auth.gd
  2. 7 0
      Auth.tscn
  3. 2 2
      Database.gd
  4. 5 0
      Login.gd
  5. 3 0
      envarg.gd
  6. 6 4
      loginnetcode.gd
  7. 6 10
      main.tscn

+ 22 - 17
Auth.gd

@@ -4,16 +4,15 @@ var net = NetworkedMultiplayerENet.new()
 var api = MultiplayerAPI.new()
 var port = 1909
 var maxplayer = 100
-export(NodePath) var database
-var cert = load('user://Certificate/x509_Certificate.crt')
-var key = load('user://Certificate/x509_Key.key')
+#var cert = load('user://Certificate/x509_Certificate.crt')
+#var key = load('user://Certificate/x509_Key.key')
 
 func _ready():
 	print('Login listening to port: ' + str(port))
 	net.create_server(port, maxplayer)
-	net.set_dtls_key(key)
-	net.set_dtls_certificate(cert)
-	net.set_dtls_enabled(true)
+#	net.set_dtls_key(key)
+#	net.set_dtls_certificate(cert)
+#	net.set_dtls_enabled(true)
 	self.set_custom_multiplayer(api)
 	custom_multiplayer.set_root_node(self)
 	custom_multiplayer.set_network_peer(net)
@@ -30,17 +29,23 @@ var playerphsyics = preload('res://playerphysics.tscn')
 func conn(id):
 	print('login client connected, id: ' + str(id))
 
+export(NodePath) var PostgreSQL
+
 remote func RegisterPlayer(username, password, password2, email, salt, requester):
 	var message = 'registering...'
-	if password != password2:
-		message = 'passwords are not equal'
-	if username == '':
-		message = 'put in a username'
-	if email.find('@') == -1 or email.find('@') == 0:
-		message = 'email is invalid'
-	if email.find('gmail') == -1 and email.find('outlook') == -1 and email.find('yahoo') == -1:
-		message = 'not a supported email provider'
-	if email.find('.com') == -1:
-		message = 'email is invalid'
+#	if password != password2:
+#		message = 'passwords are not equal'
+#	if username.length() < 3:
+#		message = 'username must be at least three letters'
+#	if email.find('@') == -1 or email.find('@') == 0:
+#		message = 'email is invalid'
+#	if email.find('gmail') == -1 and email.find('outlook') == -1 and email.find('yahoo') == -1:
+#		message = 'not a supported email provider'
+#	if email.find('.com') == -1:
+#		message = 'email is invalid'
+	print(message)
 	rpc_id(api.get_rpc_sender_id(), 'update_status', message)
-	if message == 'registering...': return
+#	if message == 'registering...': return
+	for i in 1024: password = (password+salt).sha256_text()
+	print('adding new data to the login db...')
+	get_node(PostgreSQL).Create('login_db',['email','username','password','salt','creation_date'],email, username, password, salt, OS.get_unix_time())

+ 7 - 0
Auth.tscn

@@ -0,0 +1,7 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://Auth.gd" type="Script" id=1]
+
+[node name="Auth" type="Node"]
+script = ExtResource( 1 )
+PostgreSQL = NodePath("../PostgreSQL")

+ 2 - 2
Database.gd

@@ -65,13 +65,13 @@ func _authentication_error(error_object: Dictionary) -> void:
 
 func _executer() -> void:
 	database.execute("""
-	create table login_info( 
+	create table login_db( 
 		id serial primary key,
 		email varchar(50) unique not null,
 		username varchar(50) unique not null,
 		password varchar(50) not null,
 		salt varchar(50) not null,
-		creation_date date not null
+		creation_date varchar(50) not null
 	);
 	""")
 #	Create('niggers',["crime","executiondate"],["'das rite'","'2017-06-01'"])

+ 5 - 0
Login.gd

@@ -2,6 +2,7 @@ extends Node
 
 var client = preload('res://Client.tscn')
 var server = preload('res://Server.tscn')
+var auth = preload('res://Auth.tscn')
 signal login_confimed
 var login_await = true
 
@@ -14,6 +15,8 @@ func _ready():
 func _on_Button_button_down():
 	$directconnect.hide()
 	$loginscreen.show()
+	get_parent().get_node("Loginetcode").ip = $directconnect/VBoxContainer/HBoxContainer/LineEdit2.get_text()
+	get_parent().get_node("Loginetcode")._connect()
 	if login_await: yield(self,'login_confimed')
 	$loginscreen.hide()
 	var client2 = client.instance()
@@ -26,7 +29,9 @@ func _on_Button_button_down():
 
 func _on_Button2_button_down():
 	var server2 = server.instance()
+	var auth2 = auth.instance()
 	get_parent().add_child(server2)
+	get_parent().add_child(auth2)
 	pass # Replace with function body.
 
 func _on_CheckButton_toggled(button_pressed):

+ 3 - 0
envarg.gd

@@ -1,6 +1,7 @@
 extends Node
 
 var server = preload('res://Server.tscn')
+var auth = preload('res://Auth.tscn')
 
 func _ready():
 	var args = Array(OS.get_cmdline_args())
@@ -10,9 +11,11 @@ func _ready():
 		"-server":
 			print("player starting server...")
 			var server2 = server.instance()
+			var auth2 = auth.instance()
 			server2.port = int(args[1])
 			yield(get_tree().create_timer(1.0),'timeout')
 			get_parent().add_child(server2)
+			get_parent().add_child(auth2)
 		"-x509":
 			print("generating SSl Cert...")
 #			get_tree().change_scene("res://x509Gen/X509Generator.tscn")

+ 6 - 4
loginnetcode.gd

@@ -4,13 +4,15 @@ var net = NetworkedMultiplayerENet.new()
 var api = MultiplayerAPI.new()
 var port = 1909
 var ip = '127.0.0.1'
+var polling = false
 # Called when the node enters the scene tree for the first time.
-func _ready():
+func _connect():
+	polling = true
 	print('Login connecting to port: ' + str(port))
 	print('at ip: '+ip)
 	net.create_client(ip,port)
-	net.set_dtls_enabled(true)
-	net.set_dtls_verify_enabled(false)
+#	net.set_dtls_enabled(true)
+#	net.set_dtls_verify_enabled(false)
 	self.set_custom_multiplayer(api)
 	custom_multiplayer.set_root_node(self)
 	custom_multiplayer.set_network_peer(net)
@@ -20,7 +22,7 @@ func _ready():
 	pass # Replace with function body.
 
 func _process(_delta):
-	custom_multiplayer.poll()
+	if polling: custom_multiplayer.poll()
 
 func _On_Connection_Failed():
 	print("Failed to connect to game server")

+ 6 - 10
main.tscn

@@ -1,10 +1,9 @@
-[gd_scene load_steps=15 format=2]
+[gd_scene load_steps=14 format=2]
 
 [ext_resource path="res://Login.gd" type="Script" id=1]
 [ext_resource path="res://envarg.gd" type="Script" id=2]
 [ext_resource path="res://Database.gd" type="Script" id=3]
 [ext_resource path="res://x509gen.gd" type="Script" id=4]
-[ext_resource path="res://Auth.gd" type="Script" id=5]
 [ext_resource path="res://loginnetcode.gd" type="Script" id=6]
 [ext_resource path="res://art/Untitledcxz.png" type="Texture" id=10]
 [ext_resource path="res://Textures.gd" type="Script" id=11]
@@ -48,7 +47,7 @@ render_target_v_flip = true
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin1"]
 modulate = Color( 0, 0.811765, 1, 1 )
 frames = SubResource( 5 )
-frame = 1
+frame = 2
 playing = true
 offset = Vector2( 32, 32 )
 
@@ -73,7 +72,7 @@ render_target_v_flip = true
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin3"]
 modulate = Color( 1, 0, 0, 1 )
 frames = SubResource( 5 )
-frame = 2
+frame = 1
 speed_scale = 1.2
 playing = true
 offset = Vector2( 32, 32 )
@@ -87,12 +86,12 @@ render_target_v_flip = true
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin4"]
 modulate = Color( 1, 0, 0.984314, 1 )
 frames = SubResource( 5 )
-frame = 2
+frame = 3
 speed_scale = 0.9
 playing = true
 offset = Vector2( 32, 32 )
 
-[node name="Database" type="Node" parent="."]
+[node name="PostgreSQL" type="Node" parent="."]
 script = ExtResource( 3 )
 
 [node name="Loginetcode" type="Node" parent="."]
@@ -102,7 +101,6 @@ script = ExtResource( 6 )
 script = ExtResource( 1 )
 
 [node name="directconnect" type="Control" parent="LoginUI"]
-visible = false
 anchor_right = 1.0
 anchor_bottom = 1.0
 margin_left = 180.0
@@ -234,6 +232,7 @@ margin_bottom = 20.0
 text = "back"
 
 [node name="register" type="Control" parent="LoginUI"]
+visible = false
 anchor_right = 1.0
 anchor_bottom = 1.0
 margin_left = 180.0
@@ -341,9 +340,6 @@ script = ExtResource( 2 )
 [node name="x509gen" type="Node" parent="."]
 script = ExtResource( 4 )
 
-[node name="Auth" type="Node" parent="."]
-script = ExtResource( 5 )
-
 [connection signal="button_down" from="LoginUI/directconnect/VBoxContainer/Button" to="LoginUI" method="_on_Button_button_down"]
 [connection signal="button_down" from="LoginUI/directconnect/VBoxContainer/Button2" to="LoginUI" method="_on_Button2_button_down"]
 [connection signal="button_down" from="LoginUI/directconnect/VBoxContainer/x509" to="x509gen" method="_on_x509_button_down"]