bom/network/client/Login.gd

38 lines
885 B
GDScript3
Raw Normal View History

2024-01-20 22:18:58 +01:00
extends PacketHandler
2024-01-16 00:22:14 +01:00
2024-01-16 23:01:16 +01:00
@export var playerScene: PackedScene
2024-01-22 23:41:48 +01:00
var auth_token: String
2024-01-16 00:22:14 +01:00
func _ready():
2024-01-20 22:18:58 +01:00
%Client.set_handler(Packet.LOGIN, self)
2024-01-16 00:22:14 +01:00
send_login()
2024-01-22 23:41:48 +01:00
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
if data[0] != 0:
print("[Client] Login failed.")
return
print("[Client] Login succeeded.")
auth_token = data.slice(1).get_string_from_ascii()
print("[Client] Auth token: %s" % auth_token)
Global.player = spawn_player()
2024-01-16 00:22:14 +01:00
func send_login():
2024-01-22 23:41:48 +01:00
if is_logged_in():
2024-01-16 23:01:16 +01:00
return
2024-01-16 00:22:14 +01:00
var buffer := StreamPeerBuffer.new()
2024-01-16 23:01:16 +01:00
buffer.put_8(Packet.LOGIN)
2024-01-21 01:21:58 +01:00
buffer.put_data(JSON.stringify(["user1", "password"]).to_utf8_buffer())
2024-01-20 22:18:58 +01:00
%Client.socket.put_packet(buffer.data_array)
print("[Client] Connecting...")
2024-01-16 00:22:14 +01:00
2024-01-22 23:41:48 +01:00
func is_logged_in() -> bool:
return auth_token != ""
2024-01-16 00:22:14 +01:00
2024-01-16 23:01:16 +01:00
func spawn_player() -> Player:
var player = playerScene.instantiate()
%Players.add_child(player)
return player