godot-network-test/main.gd
2025-04-27 23:58:19 +10:00

48 lines
1.7 KiB
GDScript

extends Control
@onready var start_server_button: Button = %StartServerButton
@onready var join_server_button: Button = %JoinServerButton
@onready var send_message_button: Button = %SendMessageButton
@onready var console_log: CodeEdit = %Log
@onready var msg_box: LineEdit = %MSGBox
var peer: ENetMultiplayerPeer
@onready var server_ip_box: LineEdit = %ServerIPBox
@onready var server_port_box: LineEdit = %ServerPortBox
const SERVER_MAX_CLIENTS: int = 16
func _ready() -> void:
start_server_button.pressed.connect(_start_server)
join_server_button.pressed.connect(_join_server)
send_message_button.pressed.connect(_send_msg)
pass
func _start_server() -> void:
peer = ENetMultiplayerPeer.new()
peer.create_server(int(server_port_box.text), SERVER_MAX_CLIENTS)
multiplayer.multiplayer_peer = peer
console_log.insert_line_at(0, "New server started on " + server_ip_box.text + ":" + server_port_box.text)
#log.text =
func _join_server() -> void:
peer = ENetMultiplayerPeer.new()
peer.create_client(server_ip_box.text, int(server_port_box.text))
multiplayer.multiplayer_peer = peer
console_log.insert_line_at(0, "Attempting to connect to " + server_ip_box.text + ":" + server_port_box.text + "...")
await get_tree().create_timer(5).timeout
if peer.get_connection_status() == 2:
console_log.insert_line_at(0, "Connected to saerver at " + server_ip_box.text + ":" + server_port_box.text + " with unique id: " + str(peer.get_unique_id()))
print(str(peer.get_connection_status()))
func _send_msg() -> void:
if !msg_box.text.is_empty():
message_recieved.rpc(msg_box.text)
else:
message_recieved.rpc("Empty Message")
@rpc("any_peer", "call_local")
func message_recieved(msg: String) -> void:
console_log.insert_line_at(0, "New Message: " + msg)