summaryrefslogtreecommitdiff
path: root/network/login_server.gd
blob: b2e6e1bb55bd642d896cf89752cd593dfcd8aeaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class_name LoginServer
extends Server


#signal logged_in(packet: LoginServerLoginSuccessPacket)
#signal login_failed(packet: LoginFailedPacket)


@warning_ignore("shadowed_variable_base_class")
func _init(host: String, port: int = 6900) -> void:
	super._init(host, port)


func login(username: String, password: String) -> Packet:
	var login_server_login_packet = LoginServerLoginPacket.new()
	login_server_login_packet.username = username
	login_server_login_packet.password = password
	
	send(login_server_login_packet)
	
	return await wait_for_packets([
		LoginServerLoginSuccessPacket,
		LoginFailedPacket,
		LoginFailedPacket2,
	])


func get_keep_alive_timer() -> Timer:
	var login_server_keep_alive_timer = Timer.new()
	login_server_keep_alive_timer.name = "LoginServerKeepAliveTimer"
	login_server_keep_alive_timer.autostart = true
	login_server_keep_alive_timer.one_shot = false
	login_server_keep_alive_timer.wait_time = 20.0 # 30.0 # 60.0
	
	login_server_keep_alive_timer.timeout.connect(func():
		var login_server_keep_alive_packet := LoginServerKeepAlivePacket.new()
		login_server_keep_alive_packet.user_name = "dweipert"
		send(login_server_keep_alive_packet)
	)
	
	return login_server_keep_alive_timer