Files
lobby-server/scripts/server_networking.gd

52 lines
1.2 KiB
GDScript3
Raw Permalink Normal View History

class_name ServerNetworking extends Node
2026-08-07 03:02:53 -05:00
var peer: ENetMultiplayerPeer
func _ready() -> void:
pass
func start_server(address: String = "0.0.0.0", port: int = 8080) -> void:
if peer: return
push_warning("Server Starting... Address: ", address, " Port: ", port)
peer = ENetMultiplayerPeer.new()
peer.set_bind_ip(address)
var state = peer.create_server(port)
match state:
OK:
push_warning("Server Started: ", state)
multiplayer.multiplayer_peer = peer
multiplayer.peer_connected.connect(server_client_connected)
multiplayer.peer_disconnected.connect(server_client_disconnected)
get_parent()._server_host_started()
ERR_ALREADY_IN_USE:
peer.close()
peer = null
start_server(address, port)
ERR_CANT_CREATE:
push_warning("Couldn't create server...")
func close_connection() -> void:
if not peer: return
push_warning("Server Closed...")
multiplayer.peer_connected.disconnect(server_client_connected)
multiplayer.peer_disconnected.disconnect(server_client_disconnected)
peer.close()
peer = null
func server_client_connected(_id: int) -> void:
assert(false, "This method needs to be overridden...")
2026-08-07 03:02:53 -05:00
func server_client_disconnected(_id: int) -> void:
assert(false, "This method needs to be overridden...")